From 9ab899395abe6317c44cc9142b89554ab15ed23d Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期二, 11 三月 2025 18:15:22 +0800 Subject: [PATCH] 显隐问题 --- src/views/projectEngineering/projectLibrary/index.vue | 164 +++++++++++++++-------------------------- src/api/projectEngineering/projectInfo.js | 10 ++ src/components/VisibilityToolbar/index.vue | 29 +++---- 3 files changed, 83 insertions(+), 120 deletions(-) diff --git a/src/api/projectEngineering/projectInfo.js b/src/api/projectEngineering/projectInfo.js index af8f0d7..9d561d1 100644 --- a/src/api/projectEngineering/projectInfo.js +++ b/src/api/projectEngineering/projectInfo.js @@ -88,6 +88,7 @@ params: data }) } +//鍒嗛〉琛ㄥご export function getHiddenList(data){ return request({ url:'/hidden-admin/page', @@ -95,6 +96,7 @@ params: data }) } +//淇敼琛ㄥご export function saveHiddenList(data){ return request({ url:'/hidden-admin/updateList', @@ -102,6 +104,7 @@ data: data }) } +//鏂板琛ㄥご export function addList(data){ return request({ url:'/hidden-admin/addList', @@ -109,3 +112,10 @@ data:data }) } +//鑾峰緱鎵�鏈夎〃澶� +export function getAll(){ + return request({ + url:'/hidden-admin/list', + method:'get', + }) +} diff --git a/src/components/VisibilityToolbar/index.vue b/src/components/VisibilityToolbar/index.vue index 871a291..9471870 100644 --- a/src/components/VisibilityToolbar/index.vue +++ b/src/components/VisibilityToolbar/index.vue @@ -39,7 +39,7 @@ </el-table-column> <el-table-column prop="date" label="鎺掑簭"> <template slot-scope="scope"> - <el-input-number v-model="scope.row.serialNumber" :min="0" style="width: 120px" @change="sortChange(scope.row, $event)"></el-input-number> + <el-input-number v-model="scope.row.sort" :min="0" style="width: 120px" @change="sortChange(scope.row, $event)"></el-input-number> </template> </el-table-column> </el-table> @@ -129,7 +129,6 @@ this.table = true; }, switchChange(row) { - row.sort = row.serialNumber; if (row.visible === true){ row.display = "1" }else { @@ -139,17 +138,16 @@ this.saveList.push(row) }else { let have = true; - this.saveList.forEach((item ,index)=>{ - if (item.id === row.id){ - item[index] =item; + let index = this.saveList.findIndex(item => item.id === row.id); + if (index !== -1){ + this.saveList[index] = row; have =false; - } - }) + } + if (have){ this.saveList.push(row) } } - console.log(this.saveList) this.$emit('update:columns', row); }, handlePageChange(page) { @@ -185,11 +183,12 @@ if (this.saveList.length !== 0){ saveHiddenList(CircularJSON.stringify(this.saveList)).then(res =>{ this.$modal.msgSuccess("淇濆瓨鎴愬姛"); + //鍒锋柊椤甸潰 + this.$emit('update:resetSort'); }); } }, sortChange(row, val) { - row.sort = row.serialNumber; if (row.visible === true){ row.display = "1" }else { @@ -199,12 +198,11 @@ this.saveList.push(row) }else { let have = true; - this.saveList.forEach((item ,index)=>{ - if (item.id === row.id){ - item[index] =item; - have =false; - } - }) + let index = this.saveList.findIndex(item => item.id === row.id); + if (index !== -1){ + this.saveList[index] = row; + have =false; + } if (have){ this.saveList.push(row) } @@ -221,7 +219,6 @@ // // // 鏍规嵁serialNumber瀵筺ewColumns杩涜鎺掑簭 // this.cpList = this.cpList.sort((a, b) => a.serialNumber - b.serialNumber); - // // // 瑙﹀彂浜嬩欢閫氱煡鐖剁粍浠禼olumns宸叉洿鏂帮紙濡傛灉鐖剁粍浠堕渶瑕佺煡閬撹繖涓彉鍖栵級 // this.$emit('update:sort', this.cpList); this.$emit('update:sort', row); diff --git a/src/views/projectEngineering/projectLibrary/index.vue b/src/views/projectEngineering/projectLibrary/index.vue index 0ee0d0b..58e4a6c 100644 --- a/src/views/projectEngineering/projectLibrary/index.vue +++ b/src/views/projectEngineering/projectLibrary/index.vue @@ -323,7 +323,7 @@ </template> <script> -import {listProject, getProject, delProject, addProject, updateProject,getHiddenList,addList} from "@/api/projectEngineering/projectInfo"; +import {listProject, getProject, delProject, addProject, updateProject,getHiddenList,addList,getAll} from "@/api/projectEngineering/projectInfo"; import {current, currentRest} from '@/views/projectEngineering/projectLibrary/list'; import FileDialog from '@/views/projectEngineering/projectLibrary/component/FileDialog'; import Cookies from "js-cookie"; @@ -426,39 +426,24 @@ if (projectPhase) { this.isProjectCategory = true; } - // const columns = current.map((item, index) => { - // item.index = index + 1; - // item.key = index; - // item.serialNumber = index + 1; - // if(item.id ==='usedStatus' ){ - // if(projectPhase !== '6') { - // item.visible = false - // } else { - // item.visible = true - // } - // } - // return item; - // }); - // this.columns = columns; - // this.defaultColumns = JSON.parse(JSON.stringify(columns)); - this.hiddenList(); - + this.hiddenColumnsList(); + this.pageHiddenColumnsList(); this.getList(this.$route.query.projectPhase == '5' || this.$route.query.projectPhase == '6' ? null : this.$route.query.projectPhase); }, beforeDestroy() { this.removeStore(); }, methods: { - hiddenList(){ - getHiddenList().then(res =>{ + + //鏌ヨ鍚庣鎵�鏈夎〃澶存暟鎹� + hiddenColumnsList(){ + getAll().then(res =>{ const projectPhase = this.$route.query.projectPhase; //杞崲 res.data.forEach((item,index)=>{ item.index = index + 1; item.key = index; - item.serialNumber = item.sort; item.label = item.name; - // item.slotName = item.columns; if(item.display === '0'){ item.visible = false }else { @@ -472,13 +457,45 @@ } } }); - - this.defaultColumns = res.data; this.columnsNew = res.data; - console.log(this.columnsNew) + }) + }, + pageHiddenColumnsList(){ + getHiddenList(this.pageQueryParams).then(res =>{ + this.buildColumns(res.data); this.hiddenTotal = res.total; }) - + }, + //闅愯棌鍒楄〃缈婚〉 + handlePage(page){ + this.pageQueryParams.currentPage = page; + getHiddenList(this.pageQueryParams).then(res =>{ + this.buildColumns(res.data); + }) + }, + buildColumns(data){ + const projectPhase = this.$route.query.projectPhase; + //杞崲 + data.forEach((item,index)=>{ + item.index = index + 1; + item.key = index; + item.label = item.name; + // item.slotName = item.columns; + if(item.display === '0'){ + item.visible = false + }else { + item.visible = true; + } + if(item.columns ==='usedStatus' ){ + if(projectPhase !== '6') { + item.visible = false + } else { + item.visible = true + } + } + }); + //鍒嗛〉鏁版嵁浼犲叆鏄鹃殣缁勪欢 + this.defaultColumns = data; }, // async getProjectSubType(projectType, projectSubType) { // if (!projectType || !projectSubType) { @@ -522,40 +539,7 @@ localStorage.removeItem("policyInfoForm") localStorage.removeItem("documentsInfoForm") }, - //闅愯棌鍒楄〃缈婚〉 - handlePage(page){ - this.pageQueryParams.currentPage = page; - getHiddenList(this.pageQueryParams).then(res =>{ - this.buildColumns(res.data); - }) - }, - buildColumns(data){ - const projectPhase = this.$route.query.projectPhase; - //杞崲 - data.forEach((item,index)=>{ - item.index = index + 1; - item.key = index; - item.serialNumber = item.sort; - item.label = item.name; - // item.slotName = item.columns; - if(item.display === '0'){ - item.visible = false - }else { - item.visible = true; - } - if(item.columns ==='usedStatus' ){ - if(projectPhase !== '6') { - item.visible = false - } else { - item.visible = true - } - } - }); - this.columnsNew = data; - this.defaultColumns = data; - - }, save(){ const list =current.map((item, index) => { item.name = item.label; @@ -580,69 +564,41 @@ }, // 閲嶇疆鎺掑簭鐨勬柟娉� handleResetSort() { - this.hiddenList() - // const projectPhase = this.$route.query.projectPhase; - // this.defaultColumns= currentRest.map((item, index) => { - // item.index = index + 1; - // item.key = index; - // item.serialNumber = index + 1 - // if(item.id ==='usedStatus' ){ - // if(projectPhase !== '6') { - // item.visible = false - // } else { - // item.visible = true - // } - // } - // return item; - // }); - - - // this.columnsNew = currentRest.map((item, index) => { - // item.index = index + 1; - // item.key = index; - // item.serialNumber = index + 1 - // if(item.id ==='usedStatus' ){ - // if(projectPhase !== '6') { - // item.visible = false - // } else { - // item.visible = true - // } - // } - // return item; - // }); - //寮哄埗table娓叉煋 - - // this.defaultColumns = this.resetColumns; - // - // - // this.columnsNew = this.resetColumns; - + this.hiddenColumnsList(); + this.pageHiddenColumnsList(); this.tableKey = this.tableKey + 1; }, // 鏇存柊鍒楃殑鏂规硶 handleUpdateColumns(row) { - // this.currentColumns = row; - row.key = Number(row.key) + //鏇挎崲鍏冪礌 this.columnsNew = this.columnsNew.map(item => { - if (item.key === row.key) { + if (item.columns === row.columns) { return row; } return item; }); + }, handleUpdateSort(row) { - console.log(this.columnsNew, '鎺掑簭鍓嶇殑鍒�'); + //鏇挎崲琛ㄥご鍏冪礌 this.columnsNew = this.columnsNew.map(item => { - if (item.key === row.key) { + if (item.columns === row.columns) { return row; } return item; }); - this.defaultColumns = this.columnsNew.sort((a, b) => a.index - b.index); - this.columnsNew.sort((a, b) => a.serialNumber - b.serialNumber); + //鏇挎崲浼犲叆鏄鹃殣缁勪欢鏁版嵁 + this.defaultColumns = this.defaultColumns.map(item => { + if (item.columns === row.columns) { + return row; + } + return item; + }); + this.defaultColumns = this.defaultColumns.sort((a, b) => a.sort - b.sort); + this.columnsNew.sort((a, b) => a.sort - b.sort); + //寮哄埗table娓叉煋 this.tableKey = this.tableKey + 1; - console.log(this.columnsNew, '鎺掑簭鍚庣殑鍒�'); }, // 鍏抽棴鏂囦欢澶勭悊寮规鐨勬柟娉� fileDialogCancel() { -- Gitblit v1.8.0