From f2c0dc24a5142ddc08912456d55c80351cf4d9b6 Mon Sep 17 00:00:00 2001 From: zhangxp <zhangxp@chicecm.com> Date: 星期三, 14 六月 2023 14:46:47 +0800 Subject: [PATCH] 优化穿梭框 --- Source/UBCS-WEB/src/components/template/Stage.vue | 91 +++++++++++++++++++-------------------------- 1 files changed, 38 insertions(+), 53 deletions(-) diff --git a/Source/UBCS-WEB/src/components/template/Stage.vue b/Source/UBCS-WEB/src/components/template/Stage.vue index ef29b0f..31ee7b5 100644 --- a/Source/UBCS-WEB/src/components/template/Stage.vue +++ b/Source/UBCS-WEB/src/components/template/Stage.vue @@ -1,5 +1,5 @@ <template> - <el-dialog title="妯℃澘闃舵" width="90%" append-to-body="true" :visible.sync="dialogVisible"> + <div> <avue-crud ref="crud" :table-loading="loading" :data="data" :option="option" :page.sync="page" @on-load="getDataList" @size-change="handleSizePage" @current-change="handleCurrentPage" @row-click="handleRowClick"> @@ -17,9 +17,9 @@ </template> </avue-crud> </el-dialog> - <table-transfer :visible.sync="dialogTransfer" v-model="listVal" :dataList="tableData" :columns="columns" - keyName="oid" @save="handleSave"></table-transfer> - </el-dialog> + <table-transfer v-if="flag" :visible.sync="dialogTransfer" v-model="attributeValue" :dataList="attributeData" + :columns="columns" keyName="oid" @save="handleSave" @close="handelClose"></table-transfer> + </div> </template> <script> @@ -31,11 +31,6 @@ TableTransfer }, props: { - // 鏄惁鎵撳紑 - visible: { - typeof: Boolean, - default: false - }, code: { typeof: String, required: true, @@ -43,25 +38,7 @@ } }, watch: { - visible(n) { - this.dialogVisible = n; - }, - dialogVisible(n) { - this.$emit('update:visible', n) - }, - }, - computed: { - tableData() { - return this.setTable() - }, - listVal() { - let data = this.setTable() - let newdata = data.map(item => { - return item.checked ? item.oid : undefined - }) - console.log(newdata.filter(item => item)) - return newdata.filter(item => item) - } + }, data() { const options = { @@ -81,9 +58,9 @@ editBtn: false, } return { - list: [], - listRight: [], - dialogVisible: this.visible, + attributeData: [], + attributeValue: [], + flag: false, dialogTransfer: false, dialogNode: false, visibleTable: false, @@ -136,14 +113,11 @@ }, } }, - mounted() { - this.getAttributeList() - }, methods: { - setTable() { - return this.list.map(item => { - if (this.listRight.length !== 0) { - this.listRight.forEach(element => { + setTable(data, list) { + return data.map(item => { + if (list.length !== 0) { + list.forEach(element => { if (item.id === element.attrId) item.checked = true }); } @@ -178,12 +152,22 @@ // 鑾峰彇鍏ㄩ儴灞炴�� async getAttributeList() { const response = await attributeList({ 'conditionMap[classifyTemplateOid]': this.code }) - if (response.status === 200) { - const data = response.data.data - this.list = data.records.map(item => { + const responseRight = await attributeListRight({ templateId: this.code, modelKey: this.modelKey, taskId: this.saveParam.taskId }) + if (response.status === 200 && responseRight.status === 200) { + let datas = response.data.data.records + let dataRight = responseRight.data.data + datas = datas.map(item => { const { oid, id, name, attributeGroup } = item - return { oid, id, name, attributeGroup, ...{ checked: false } } + item = { oid, id, name, attributeGroup, ...{ checked: false } } + if (dataRight.length !== 0) { + dataRight.forEach(element => { if (item.id === element.attrId) item.checked = true }); + return item + } }) + let dataValue = datas.map(item => item.checked ? item.oid : undefined) + this.attributeValue = dataValue.filter(item => item) + this.attributeData = datas + this.flag = true } }, // 鑾峰彇宸蹭繚瀛樺睘鎬� @@ -205,17 +189,12 @@ this.saveParam.modelKey = row.modelKey }, handleMaintenanceTransfer(row) { - console.log(row) - this.dialogTransfer = true this.saveParam.taskId = row.taskId this.saveParam.taskName = row.taskName - this.getAttributeListRight() - }, - handleSizePage(event) { - this.page.pageSize = event - }, - handleCurrentPage(event) { - this.page.currentPage = event + this.getAttributeList() + this.$nextTick(() => { + this.dialogTransfer = true + }) }, handleRowClick(row) { console.log(row) @@ -224,10 +203,12 @@ this.dialogNode = true }, handleRowStageClick(row) { - this.dialogTransfer = true this.saveParam.taskId = row.taskId this.saveParam.taskName = row.taskName - this.getAttributeListRight() + this.getAttributeList() + this.$nextTick(() => { + this.dialogTransfer = true + }) }, async handleSave(event) { console.log(event) @@ -250,9 +231,13 @@ type: 'success', message: '鏂板鏁版嵁鎴愬姛锛�' }) + this.flag = false // done() // this.getDataList() } + }, + handelClose() { + this.flag = false } } } -- Gitblit v1.9.3