From 1b9b94bd65d49581f72a771f1936fb36db98ca5a Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 24 三月 2025 11:40:43 +0800
Subject: [PATCH] 首页展示容缺待办
---
src/views/projectEngineering/projectLibrary/index.vue | 212 ++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 144 insertions(+), 68 deletions(-)
diff --git a/src/views/projectEngineering/projectLibrary/index.vue b/src/views/projectEngineering/projectLibrary/index.vue
index c5f5e6c..4e15aeb 100644
--- a/src/views/projectEngineering/projectLibrary/index.vue
+++ b/src/views/projectEngineering/projectLibrary/index.vue
@@ -180,15 +180,17 @@
<VisibilityToolbar
v-model:showSearch="showSearch"
:columns="defaultColumns"
+ :hiddenTotal="hiddenTotal"
@queryTable="handleQuery"
@update:sort="handleUpdateSort"
@update:columns="handleUpdateColumns"
@update:resetSort="handleResetSort"
+ @update:page="handlePage"
></VisibilityToolbar>
</div>
</div>
</el-form>
-
+<!-- <el-button type="primary" @click="save">鍒濆鍖栨坊鍔爈ist.js</el-button>-->
<el-table
:key="tableKey"
ref="elTable"
@@ -202,10 +204,9 @@
<el-table-column type="selection" width="55" align="center"/>
<!-- 鍔ㄦ�佸垪 -->
<el-table-column
- v-for="item in columns"
- :key="item.id"
+ v-for="item in columnsNew"
v-if="item.visible"
- :prop="item.id"
+ :prop="item.columns"
:label="item.label"
:min-width="item.minWidth"
>
@@ -224,9 +225,9 @@
<template v-if="item.slotName === 'projectType'">
<dict-tag :options="dict.type.sys_project_type" :value="scope.row.projectType"/>
</template>
- <!-- projectSubType鎻掓Ы -->
+ <!-- attractInvestment鎻掓Ы -->
<template v-if="item.slotName === 'attractInvestment'">
- <dict-tag :options="dict.type.sys_project_type" :value="scope.row.attractInvestment"/>
+ <dict-tag :options="dict.type.attract_investment" :value="scope.row.attractInvestment"/>
</template>
<!-- constructionNature鎻掓Ы -->
<template v-if="item.slotName === 'constructionNature'">
@@ -236,21 +237,27 @@
<template v-if="item.slotName === 'investType'">
<dict-tag :options="dict.type.sys_investment_type" :value="scope.row.investType"/>
</template>
- <!-- investType鎻掓Ы -->
+ <!-- importanceType鎻掓Ы -->
<template v-if="item.slotName === 'importanceType'">
<dict-tag :options="dict.type.sys_key_categories" :value="scope.row.importanceType"/>
</template>
- <!-- planStartTime -->
- <template v-if="item.slotName === 'planStartTime'">
- {{ scope.row.planStartTime ? scope.row.planStartTime.split('-')[0] + '骞�' : '' }}
+ <!-- plannedStartDate -->
+ <template v-if="item.slotName === 'plannedStartDate'">
+ {{ scope.row.plannedStartDate ? scope.row.plannedStartDate.split('-')[0] + '骞�' : '' }}
</template>
<!-- usedStatus鎻掓Ы -->
<template v-if="item.slotName === 'usedStatus'">
<dict-tag :options="dict.type.sys_used_status" :value="scope.row.usedStatus"/>
</template>
+ <!-- planStartTime -->
+ <template v-else-if="item.slotName === 'planStartTime'">
+ {{ scope.row.planStartTime ? scope.row.planStartTime.split(' ')[0] : '' }}
+ </template>
</template>
+ <!-- 杞崲璁″垝寮�宸ユ牱寮� 绌烘牸鍒囧壊鏁扮粍 -->
+
<!-- 榛樿鏄剧ず -->
- <span v-else>{{ scope.row[item.id] }}</span>
+ <span v-else>{{ scope.row[item.columns] }}</span>
</template>
</el-table-column>
<el-table-column v-if="this.$route.query.projectPhase==6" label="瀹℃牳澶囨敞" width="140" align="center" prop="remark"/>
@@ -307,21 +314,21 @@
:total="total"
:page.sync="queryParams.currentPage"
:limit.sync="queryParams.pageSize"
- @pagination="getList"
+ @pagination="() => getList(null)"
/>
<FileDialog
:fileDialogVisible.sync="fileDialogVisible"
:isImportOrExport="isImportOrExport"
@fileDialogCancel="fileDialogCancel"
- :currentColumns="columns"
+ :currentColumns="columnsNew"
:dataIdList="ids"
/>
</div>
</template>
<script>
-import {listProject, getProject, delProject, addProject, updateProject} 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";
@@ -344,8 +351,13 @@
//椤圭洰鐘舵�佺瓫閫夋潯浠�
isProjectCategory: false,
//琛ㄥご
- columns: [],
+ columnsNew: [],
+ //鏄鹃殣缁勪欢鐨勮〃澶撮泦鍚�
defaultColumns: [],
+ //閲嶇疆琛ㄥご
+ resetColumns:[],
+ //鏄鹃殣缁勪欢鐨勬煡璇㈡�绘暟
+ hiddenTotal: 0,
//鎺у埗鏇村绛涢�夋樉闅�
popoverValue: false,
// 閬僵灞�
@@ -372,10 +384,15 @@
queryParams: {
currentPage: 1,
pageSize: 10,
+ center: 0, // 1 浠h〃椤圭洰涓績
projectName: null,
projectCode: null,
projectStartTime: null,
projectEndTime: null,
+ },
+ //鏄鹃殣鍒楄〃鏌ヨ鍙傛暟
+ pageQueryParams:{
+ currentPage: 1,
},
moreQueryParams: {
projectType: '', // 椤圭洰绫诲瀷
@@ -405,33 +422,84 @@
created() {
this.queryParams.importanceType = this.$route.query.importanceType;
const projectPhase = this.$route.query.projectPhase;
+ if (projectPhase === '6') {
+ this.queryParams.center = 1
+ }
if (!projectPhase || projectPhase === '1' || projectPhase === '6') {
this.isReserve = true;
}
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.hiddenColumnsList();
+ this.pageHiddenColumnsList();
this.getList(this.$route.query.projectPhase == '5' || this.$route.query.projectPhase == '6' ? null : this.$route.query.projectPhase);
},
beforeDestroy() {
this.removeStore();
},
methods: {
+
+ //鏌ヨ鍚庣鎵�鏈夎〃澶存暟鎹�
+ hiddenColumnsList(){
+ getAll().then(res =>{
+ const projectPhase = this.$route.query.projectPhase;
+ //杞崲
+ res.data.forEach((item,index)=>{
+ item.index = index + 1;
+ item.label = item.name;
+
+ 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 = res.data;
+ })
+ },
+ 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.label = item.name;
+ 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) {
// return ''
@@ -474,61 +542,69 @@
localStorage.removeItem("policyInfoForm")
localStorage.removeItem("documentsInfoForm")
},
+
+ // save(){
+ // const list =current.map((item, index) => {
+ // item.name = item.label;
+ // item.sort = index + 1;
+ // item.columns = item.id;
+ // item.id = 0;
+ // if(item.slotName === undefined){
+ // item.slotName = null;
+ // }
+ // if(item.visible){
+ // item.display = "1";
+ // }else {
+ // item.display ="0";
+ // }
+ // return item;
+ // });
+ // console.log(list)
+ // addList(list).then(res=>{
+ // console.log(res.msg)
+ // })
+ //
+ // },
// 閲嶇疆鎺掑簭鐨勬柟娉�
handleResetSort() {
- 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.columns = 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.hiddenColumnsList();
+ this.pageHiddenColumnsList();
this.tableKey = this.tableKey + 1;
},
// 鏇存柊鍒楃殑鏂规硶
handleUpdateColumns(row) {
- // this.currentColumns = row;
- this.columns = this.columns.map(item => {
- if (item.key === row.key) {
+ //鏇挎崲鍏冪礌
+ this.columnsNew = this.columnsNew.map(item => {
+ if (item.columns === row.columns) {
return row;
}
return item;
});
+
},
+ //鐐瑰嚮鎺掑簭鍔犲噺鏇存柊
handleUpdateSort(row) {
- console.log(this.columns, '鎺掑簭鍓嶇殑鍒�');
- this.columns = this.columns.map(item => {
- if (item.key === row.key) {
+ //鏇挎崲琛ㄥご鍏冪礌
+ this.columnsNew = this.columnsNew.map(item => {
+ if (item.id === row.id) {
return row;
}
return item;
});
- this.defaultColumns = JSON.parse(JSON.stringify(this.columns)).sort((a, b) => a.index - b.index);
- this.columns.sort((a, b) => a.serialNumber - b.serialNumber);
+ //鏇挎崲浼犲叆鏄鹃殣缁勪欢鏁版嵁
+ this.defaultColumns = this.defaultColumns.map(item => {
+ if (item.id === row.id) {
+ return row;
+ }
+ return item;
+ });
+ //鏄鹃殣鎺掑簭
+ 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.columns, '鎺掑簭鍚庣殑鍒�');
},
// 鍏抽棴鏂囦欢澶勭悊寮规鐨勬柟娉�
fileDialogCancel() {
@@ -608,7 +684,7 @@
/** 鎼滅储鎸夐挳鎿嶄綔 */
handleQuery() {
this.queryParams.currentPage = 1;
- this.getList();
+ this.getList(null);
},
/** 閲嶇疆鎸夐挳鎿嶄綔 */
resetQuery() {
--
Gitblit v1.8.0