5 Commits

Author SHA1 Message Date
caolc
8e02a1240e 12 2023-04-27 13:16:24 +08:00
caolc
b3991ebba0 Merge branch 'master' of http://121.196.213.68:3000/caoliancun/dispacth_zhongpin into caolc 2023-04-27 09:47:12 +08:00
1c9d822b2a Merge pull request '样式-按钮' (#11) from zyj into master
Reviewed-on: #11
2023-04-27 01:46:58 +00:00
caolc
0752af5887 111 2023-04-27 09:46:02 +08:00
f4d26f411c 样式-按钮 2023-04-26 18:12:25 +08:00
13 changed files with 120 additions and 53 deletions

View File

@@ -1,6 +1,6 @@
import request from '@/utils/request'
var service_name = 'xkhl-finance'
var group_name = 'OilCustomerInvoicRecord'
var group_name = 'saasCustomerInvoicRecord'
export default {
fuyous(){
@@ -18,14 +18,14 @@ export default {
},
getInfo(id) { // 根据id查询
return request({
url: `/${service_name}/${group_name}/getInfo/${id}`,
url: `/${service_name}/saasCustomerInvoicRecord/getInfo/${id}`,
method: 'get'
})
},
save(oilCustomerInvoicRecord) { // 保存
return request({
url: `/${service_name}/${group_name}/save`,
url: `/${service_name}/saasCustomerInvoicRecord/save`,
method: 'post',
data: oilCustomerInvoicRecord
})

View File

@@ -0,0 +1,34 @@
组件 参数
sourceData : 数据源 类型:对象 {}
mappingData映射表 类型:数组 []
isHeader是否需要标题 默认为false 类型:布尔
title详情标题 默认为 默认详情头 类型:字符串
mappingData 示例
[
{ //第一层 为卡片
carTitle//卡片标题
iconClass://图标名
isFold是否可折叠
carItems[
{
label:名称
value显示的值 支持 string(相对相应的字段) array( 支持嵌套字段如['a','b'],实际为sourceData.a.b) functoin(接收一个参数为当前数据源,需返回一个字符串类型的值)
fieldDefault默认值 value没有数据的时候现实的值
remark备注
isCopy是否可复制
field字段
}
]
}
]
插槽模式 slot
header 整个组件的头部
field 每个字段都可以使用插槽自定义 插槽名称为相对应的字段
index card_bottom 每张卡片都有相对应的底部 index为索引
footer 整个组件的底部
index_car 整张卡片的插槽名称 index为卡片索引
#4_car="data" 将返回 当前卡片对象对应的值

View File

@@ -9,9 +9,9 @@
<slot name="title_bottom"></slot>
</div>
<div class="generalDetails_card_container">
<div v-for="(item, index) in dataPage" :key="index">
<div name v-for="(item, index) in dataPage" :key="index">
<el-card class="generalDetails_card">
<div @click="isShow(item)" class="generalDetails_card_header" slot="header">
<div @click="isShow(item)" class="generalDetails_card_header" slot="header">
<div>
<span class="generalDetails-card-header-icon">
<svg-icon style="color: #118dde" :icon-class="item.iconClass" />
@@ -19,30 +19,37 @@
<span class="generalDetails-card-header-text">{{ item.title }}</span>
</div>
<div class="fold">
<i :style="{ transform: `rotate(${item.isFold ? 0 : 180}deg)` }"
class="el-icon-arrow-down generalDetails_card_arrow_down"></i>
<i
:style="{
transform: `rotate(${item.isFold ? 0 : 180}deg)`
}"
class="el-icon-arrow-down generalDetails_card_arrow_down"
></i>
</div>
</div>
<div :style="{ maxHeight: item.isFold ? '100vh' : '0px' }" class="my-cell">
<div v-for="(i, x) in item.listData " :key="x" class="cell-item">
<span :title="i.remark" class="color-999 test-tst">
{{ i.label }}
<i v-if="i.remark" class="header-icon el-icon-info"></i>
<i @click="isCopy(i.value, $event)" v-if="i.isCopy" class="el-icon-document-copy"></i>
</span>
<br />
<slot class="inner-data" :name="`${i.field}`">
<span class="inner-data">{{ i.value }}</span>
</slot>
<slot :name="`${index}_car`" :item="item">
<div :style="{ maxHeight: item.isFold ? '100vh' : '0px' }" class="my-cell">
<div v-for="(i, x) in item.listData" :key="x" class="cell-item">
<span :title="i.remark" class="color-999 test-tst">
{{ i.label }}
<i v-if="i.remark" class="header-icon el-icon-info"></i>
<i @click="isCopy(i.value, $event)" v-if="i.isCopy" class="el-icon-document-copy"></i>
</span>
<br />
<slot class="inner-data" :name="`${i.field}`">
<span class="inner-data">{{ i.value }}</span>
</slot>
</div>
</div>
</div>
</slot>
</el-card>
<div>
<div >
<slot :name="`${index}card_bottom`"></slot>
</div>
</div>
</div>
<div class="generalDetails_footer">
<slot name="footer">
<el-button @click="close" type="primary" :size="$store.getters.size">关闭</el-button>
</slot>
@@ -78,8 +85,10 @@ export default {
dataPage: []
}
},
created() {
(this.sourceData !== null) && (this.mappingData.length !== 0) && (this.init())
console.log('created')
this.sourceData !== null && this.mappingData.length !== 0 && this.init()
},
methods: {
isShow(item) {
@@ -100,14 +109,32 @@ export default {
listData: item.carItems.map((carItem, index) => {
return {
label: carItem.label,
value: (typeof carItem.value =='function')&&(carItem.value(this.sourceData)) || this.sourceData[carItem.value] || carItem.fieldDefault || '暂无数据',
value:
(typeof carItem.value == 'function' && carItem.value(this.sourceData)) ||
(Array.isArray(carItem.value) &&
carItem.value.reduce((prev, current, index, _arr) =>
index == 1
? this.sourceData[prev]
? this.sourceData[prev][current] !== null && this.sourceData[prev][current] !== undefined
? this.sourceData[prev][current]
: '暂无数据'
: '暂无数据'
: typeof prev == 'object'
? prev[current]
: prev
)) ||
(this.sourceData[carItem.value] !== null && this.sourceData[carItem.value] !== undefined
? String(this.sourceData[carItem.value])
: false) ||
carItem.fieldDefault ||
'暂无数据',
field: carItem.value,
remark: carItem.remark,
isCopy: carItem.isCopy || false
}
})
}
});
})
console.log(this.dataPage)
}
}
@@ -115,9 +142,10 @@ export default {
</script>
<style scoped>
.title_bottom{
.title_bottom {
margin-top: 20px;
}
.fold {
/* position: absolute;
bottom: 0px;
@@ -130,7 +158,7 @@ export default {
}
.generalDetails_card_arrow_down {
transition: all .9s;
transition: all 0.9s;
}
.generalDetails_card_header {
@@ -156,7 +184,7 @@ title {
flex-wrap: wrap;
max-height: 100vh;
overflow: hidden;
transition: all .9s;
transition: all 0.9s;
}
.color-999 {
@@ -196,6 +224,7 @@ title {
padding: 15px 20px;
box-sizing: border-box;
border-top: solid 1px #e5e5e5;
z-index: 999999;
}
.generalDetails_header {
@@ -223,4 +252,4 @@ title {
flex-direction: column;
position: relative;
}
</style>
</style>

View File

@@ -129,7 +129,7 @@
:size="$store.getters.size"
type="text"
@click="handleDetail(scope.row.id)"
><svg-icon icon-class="iconxiangqing1" /> 操作</el-button
><svg-icon icon-class="iconxiangqing1" /> 详情</el-button
>
<el-dropdown>
<el-button type="text">
@@ -258,7 +258,7 @@
class="table-detail-drawer"
:visible.sync="showTableDrawer"
direction="ltr"
size="80%"
size="55%"
>
<SysCustomerInfoInfo
v-if="showTableDrawer"

View File

@@ -190,25 +190,27 @@
v-el-drag-dialog
title="添加"
:visible.sync="addDialog"
size="60%"
size="55%"
direction="ltr"
destroy-on-close
>
<OilVehicleOwnerAdd @getByPage="getByPage" @closeDialog="closeDialog" />
</el-drawer>
<!-- 导出弹窗 -->
<el-dialog
<!-- 导出抽屉 -->
<el-drawer
v-el-drag-dialog
title="导出"
:visible.sync="outPutDialog"
width="55%"
size="55%"
direction="ltr"
destroy-on-close
>
<OilVehicleOwnerOutput
<OilVehicleOwnerOutput
@getByPage="getByPage"
@closeDialog="closeDialog"
/>
</el-dialog>
</el-drawer>
<!-- 导入弹窗 -->
<el-dialog
@@ -223,12 +225,12 @@
/>
</el-dialog>
<!-- 修改弹窗 -->
<!-- 修改抽屉 -->
<el-drawer
v-el-drag-dialog
title="修改"
:visible.sync="updateDialog"
size="60%"
size="55%"
direction="ltr"
destroy-on-close
>
@@ -246,7 +248,7 @@
class="table-detail-drawer"
:visible.sync="showTableDrawer"
direction="ltr"
size="50%"
size="55%"
:withHeader="false"
>
<general-details

View File

@@ -1,5 +1,5 @@
<template>
<div>
<div style="padding: 20px;">
<el-row>
<el-form :model="data" label-width="100px" :size="$store.getters.size">
<el-row :gutter="gridNum.row.gutter">

View File

@@ -195,7 +195,7 @@
v-el-drag-dialog
title="导出"
:visible.sync="outPutDialog"
width="55%"
width="60%"
>
<OilCompanyMatchOutput
@getByPage="getByPage"
@@ -208,7 +208,7 @@
v-el-drag-dialog
title="导入"
:visible.sync="importDialog"
width="55%"
width="60%"
>
<OilCompanyMatchImport
@getByPage="getByPage"
@@ -238,7 +238,7 @@
title="详情"
class="table-detail-drawer"
:visible.sync="showTableDrawer"
size="55%"
size="60%"
direction="ltr"
:withHeader="false"
>

View File

@@ -116,8 +116,8 @@
<div style="float: right;">
<el-button @click="$emit('close')">取消</el-button>
<el-button @click="update">修改</el-button>
<el-button type="primary" @click="updateAndAudit">修改并审核</el-button>
<el-button @click="update">提交</el-button>
<el-button type="primary" @click="updateAndAudit">提交并审核</el-button>
</div>
</div>
</template>

View File

@@ -96,7 +96,7 @@
<el-col :span="1">
<el-button type="primary" :size="$store.getters.size" icon="el-icon-plus"
@click="addRecordDialog = true">
新增</el-button>
添加</el-button>
</el-col>
<el-col :span="23">
<el-button type="primary" :size="$store.getters.size" icon="el-icon-search" @click="getByPage">查询

View File

@@ -103,7 +103,7 @@
</section>
<div style="float: right;">
<el-button @click="$emit('close')">取消</el-button>
<el-button type="primary" @click="add()">新增</el-button>
<el-button type="primary" @click="add()">提交</el-button>
</div>
</div>

View File

@@ -102,6 +102,7 @@
<el-date-picker
v-model="page.params.createTime"
type="datetimerange"
style="width: 105%"
value-format="yyyy-MM-dd HH:mm:ss"
range-separator="~"
start-placeholder="开始时间"
@@ -120,14 +121,15 @@
:size="$store.getters.size"
icon="el-icon-search"
@click="search"
>&nbsp;&nbsp;查询
>查询
</el-button>
<el-button
type="info"
:size="$store.getters.size"
icon="el-icon-refresh"
@click="page.params = {}"
>
&nbsp;&nbsp;重置
重置
</el-button>
</div>
</el-col>

View File

@@ -218,7 +218,7 @@
class="table-detail-drawer"
:visible.sync="updatePwdDialog"
direction="ltr"
size="50%"
size="55%"
>
<div style="padding: 20px;">
<el-form
@@ -245,7 +245,7 @@
class="table-detail-drawer"
:visible.sync="addDialog"
direction="ltr"
size="50%"
size="55%"
>
<SysCustomerInfoAdd @getByPage="getByPage" @closeDialog="closeDialog" />
</el-drawer>
@@ -297,7 +297,7 @@
class="table-detail-drawer"
:visible.sync="updateDialog"
direction="ltr"
size="50%"
size="55%"
>
<SysCustomerInfoUpdate
v-if="updateDialog"
@@ -314,7 +314,7 @@
class="table-detail-drawer"
:visible.sync="showTableDrawer"
direction="ltr"
size="50%"
size="55%"
>
<SysCustomerInfoInfo
v-if="showTableDrawer"

View File

@@ -26,7 +26,7 @@ module.exports = {
[process.env.VUE_APP_BASE_API]: {
// target: "http://uat.xingoil.com/adminapi",
// target: 'https://www.xingoil.com/adminapi',
target: `http://192.168.0.22:38080`,
target: `http://192.168.0.27:38080`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''