From 0286939336746905caeadf2f31748ecbd4aee9b4 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期一, 10 四月 2023 16:45:18 +0800
Subject: [PATCH] 1.基础设置下模块下的动态列渲染完成
---
src/views/basicSettings/contactUnitList.vue | 235 ++++++++++++++++++++++++++++++++++------------------------
1 files changed, 137 insertions(+), 98 deletions(-)
diff --git a/src/views/basicSettings/contactUnitList.vue b/src/views/basicSettings/contactUnitList.vue
index 5630fc9..8c83bb4 100644
--- a/src/views/basicSettings/contactUnitList.vue
+++ b/src/views/basicSettings/contactUnitList.vue
@@ -64,8 +64,13 @@
</div>
<div class="elTableDiv">
+ <TableColumnSettings
+ :list1="tableColumnSettingsArray"
+ @tableColumnUpdate="tableColumnUpdate"
+ />
<el-table
ref="tableDataRef"
+ :key="tableTimeStampKey"
:data="tableData"
border
class="tableFixed"
@@ -77,101 +82,26 @@
:style="{width: 100+'%',height:tableHeight+'px'}"
@sort-change="sortChange"
>
- <!-- <el-table-column-->
- <!-- type="selection"-->
- <!-- width="50"-->
- <!-- />-->
- <el-table-column
- prop="RowNum"
- width="50"
- fixed
- label="搴忓彿"
- />
- <el-table-column
- prop="code"
- label="鍗曚綅缂栫爜"
- show-tooltip-when-overflow
- sortable="custom"
- min-width="110"
- />
- <el-table-column
- prop="name"
- label="鍗曚綅鍚嶇О"
- sortable="custom"
- min-width="240px"
- show-tooltip-when-overflow
- />
- <el-table-column
- label="鍗曚綅灞炴��"
- show-tooltip-when-overflow
- width="160"
- sortable="custom"
- prop="type"
- >
- <!-- sortable="custom"-->
- <template slot-scope="{row}">
- <div v-if="row.type==='226'">瀹㈡埛</div>
- <div v-else-if="row.type==='211'">渚涘簲鍟�</div>
- <div v-else-if="row.type==='228'">瀹㈡埛/渚涘簲鍟�</div>
- <div v-else>/</div>
- <!-- <div style="display: flex;justify-content: flex-start">-->
- <!-- <div v-if="row.mtype==='211'" style="margin-right: 15px">渚涘簲鍟�</div>-->
- <!-- <div v-if="row.btype==='228'" style="margin-right: 15px;">瀹㈡埛/渚涘簲鍟�</div>-->
- <!-- <div v-if="row.htype==='226'">瀹㈡埛</div>-->
- <!-- </div>-->
- </template>
- </el-table-column>
<el-table-column
- prop="conttacts"
- label="鑱旂郴浜�"
- width="110"
+ v-for="item in tableColumnSettingsArray"
+ v-if="item.show"
+ :key="item.id"
+ :sortable="item.sortable"
+ :prop="item.prop"
+ :min-width="item.minWidth"
+ :label="item.label"
+ :width="item.width"
show-tooltip-when-overflow
- sortable="custom"
+ :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
>
<template slot-scope="{row}">
- <div v-if="row.conttacts">{{ row.conttacts }}</div>
- <div v-else>/</div>
+ <div v-if="!row[item.prop]">/</div>
+ <div v-else-if="item.prop==='type'">{{ UnitAttrArr.find(i=>i.value===row[item.prop]).label }}</div>
+ <div v-else>{{ row[item.prop] }}</div>
</template>
</el-table-column>
- <el-table-column
- prop="conttphone"
- label="鑱旂郴鏂瑰紡"
- show-tooltip-when-overflow
- width="160"
- sortable="custom"
- >
- <template slot-scope="{row}">
- <div v-if="row.conttphone">{{ row.conttphone }}</div>
- <div v-else>/</div>
- </template>
- </el-table-column>
- <el-table-column
- prop="addr"
- min-width="160"
- label="琛ュ厖鎻忚堪"
- show-tooltip-when-overflow
- sortable="custom"
- >
- <template slot-scope="{row}">
- <div v-if="row.addr">{{ row.addr }}</div>
- <div v-else>/</div>
- </template>
- </el-table-column>
- <el-table-column
- prop="lm_user"
- label="鍒涘缓浜哄憳"
- width="110"
- show-tooltip-when-overflow
- sortable="custom"
- />
- <el-table-column
- prop="lm_date"
- label="鍒涘缓鏃堕棿"
- sortable="custom"
- width="160"
- show-tooltip-when-overflow
- />
+
<el-table-column
label="鎿嶄綔"
fixed="right"
@@ -180,7 +110,11 @@
<template slot-scope="{row}">
<div class="operationClass">
<el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
- <i :style="{color:$store.state.settings.theme}" class="el-icon-edit-outline" @click="edit('edit',row)" />
+ <i
+ :style="{color:$store.state.settings.theme}"
+ class="el-icon-edit-outline"
+ @click="edit('edit',row)"
+ />
</el-tooltip>
<el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
<i :style="{color:$store.state.settings.theme}" class="el-icon-delete" @click="del(row)" />
@@ -266,7 +200,14 @@
</el-dialog>
<!--瀵煎叆缁勪欢-->
- <import-picker ref="importPickerFunc" class="importPickerClass" :shows.sync="shows" :title="title_value" :colos="colos" :code="code" />
+ <import-picker
+ ref="importPickerFunc"
+ class="importPickerClass"
+ :shows.sync="shows"
+ :title="title_value"
+ :colos="colos"
+ :code="code"
+ />
</div>
</template>
@@ -281,10 +222,12 @@
import { validateCode } from '@/utils/global'
import elDragDialog from '@/directive/el-drag-dialog'
import waves from '@/directive/waves'
+import TableColumnSettings from '@/components/TableColumnSettings'
+
export default {
name: 'WLDW',
components: {
- Pagination, ImportPicker
+ Pagination, ImportPicker, TableColumnSettings
},
directives: { elDragDialog, waves },
data() {
@@ -324,6 +267,91 @@
],
tableData: [],
total: 10,
+ tableColumnSettingsArray: [
+ { minWidth: 50, width: false, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず
+ { minWidth: 25, width: 50, prop: 'RowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'code',
+ label: '鍗曚綅缂栫爜',
+ id: 3,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 330,
+ width: false,
+ prop: 'name',
+ label: '鍗曚綅鍚嶇О',
+ id: 4,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'type',
+ label: '鍗曚綅灞炴��',
+ id: 5,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'conttacts',
+ label: '鑱旂郴浜�',
+ id: 6,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'conttphone',
+ label: '鑱旂郴鏂瑰紡',
+ id: 7,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'addr',
+ label: '琛ュ厖鎻忚堪',
+ id: 8,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'lm_user',
+ label: '鍒涘缓浜哄憳',
+ id: 9,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'lm_date',
+ label: '鍒涘缓鏃堕棿',
+ id: 10,
+ show: true,
+ fixed: false,
+ sortable: true
+ }
+ ],
+ tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key
dialogVisible: false,
dialogForm: {
id: '', // 寰�鏉ュ崟浣峣d
@@ -386,6 +414,13 @@
// }
},
methods: {
+ tableColumnUpdate(val, isCopyTrue) {
+ if (isCopyTrue) {
+ this.tableColumnSettingsArray = val
+ }
+ this.tableTimeStampKey = new Date().getTime()
+ this.$refs.tableDataRef.doLayout()
+ },
async getCurrentUnitSearch() {
const res = await CurrentUnitSearch(this.form)
this.tableData = res.data
@@ -556,11 +591,12 @@
<!--鍏叡椤甸潰鏍峰紡-->
<style lang="scss" scoped>
$main_color: #42b983;
-.el-icon-share ,.el-icon-delete,.el-icon-edit-outline{
+.el-icon-share, .el-icon-delete, .el-icon-edit-outline {
color: $main_color;
cursor: pointer;
}
-.el-icon-edit-outline{
+
+.el-icon-edit-outline {
margin-right: 15px;
}
@@ -621,8 +657,8 @@
background-color: #f8f8fa;
}
-::v-deep .el-table__body .el-table__row.hover-row td{
- background-color: #eaecef ;
+::v-deep .el-table__body .el-table__row.hover-row td {
+ background-color: #eaecef;
}
::v-deep .el-form--inline .el-form-item__label {
@@ -638,14 +674,17 @@
.body ::v-deep .el-form-item {
margin-bottom: 0;
}
+
.userDialogVisible ::v-deep .el-form-item {
margin-bottom: 0;
}
-.tableFixed{
- ::v-deep .el-table__fixed-right{
+
+.tableFixed {
+ ::v-deep .el-table__fixed-right {
height: 100% !important;
}
- ::v-deep .el-table__fixed{
+
+ ::v-deep .el-table__fixed {
height: 100% !important;
}
}
--
Gitblit v1.9.3