From d0f24d6ed53aec6f345d2fa9c7b7e397a83e32d4 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 03 三月 2025 00:53:03 +0800
Subject: [PATCH] 调整流程推进api
---
src/views/projectEngineering/projectLibrary/index.vue | 265 ++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 220 insertions(+), 45 deletions(-)
diff --git a/src/views/projectEngineering/projectLibrary/index.vue b/src/views/projectEngineering/projectLibrary/index.vue
index 00cc31d..0ee0d0b 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,10 @@
<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"
+ :key="item.columns"
v-if="item.visible"
- :prop="item.id"
+ :prop="item.columns"
:label="item.label"
:min-width="item.minWidth"
>
@@ -223,6 +225,14 @@
<!-- projectType鎻掓Ы -->
<template v-if="item.slotName === 'projectType'">
<dict-tag :options="dict.type.sys_project_type" :value="scope.row.projectType"/>
+ </template>
+ <!-- projectSubType鎻掓Ы -->
+ <template v-if="item.slotName === 'attractInvestment'">
+ <dict-tag :options="dict.type.sys_project_type" :value="scope.row.attractInvestment"/>
+ </template>
+ <!-- constructionNature鎻掓Ы -->
+ <template v-if="item.slotName === 'constructionNature'">
+ <dict-tag :options="dict.type.construction_nature" :value="scope.row.constructionNature"/>
</template>
<!-- investType鎻掓Ы -->
<template v-if="item.slotName === 'investType'">
@@ -242,18 +252,28 @@
</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.projectCategory==6" label="瀹℃牳澶囨敞" width="140" align="center" prop="remark"/>
+ <el-table-column v-if="this.$route.query.projectPhase==6" label="瀹℃牳澶囨敞" width="140" align="center" prop="remark"/>
<!-- 鎿嶄綔鍒� -->
<el-table-column label="鎿嶄綔" width="140" align="center">
<template slot-scope="scope">
<el-tooltip class="item" effect="dark" content="瀹℃牳" placement="top">
<el-button
+ v-if="scope.row.auditRole && $route.query.projectPhase==='6' && scope.row.usedStatus === 1"
size="medium"
type="text"
icon="el-icon-circle-check"
+ @click="handleDetail(scope.row)"
+ >
+ </el-button>
+ </el-tooltip>
+ <el-tooltip class="item" effect="dark" content="璇︽儏" placement="top">
+ <el-button
+ size="medium"
+ type="text"
+ icon="el-icon-view"
@click="handleDetail(scope.row)"
>
</el-button>
@@ -289,29 +309,30 @@
: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} 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";
+import {getChildList} from "@/api/system/dict/data";
export default {
dicts: ['sys_administrative_divisions', 'sys_investment_type', 'sys_project_phases',
'sys_funding_type', 'sys_association_status', 'sys_project_status', 'sys_project_code',
- 'sys_project_tags', 'sys_key_categories', 'sys_project_type','sys_used_status'],
+ 'sys_project_tags', 'sys_key_categories', 'sys_project_type','sys_used_status', 'construction_nature', 'attract_investment'],
name: "ProjectInfo",
components: {
FileDialog
@@ -325,8 +346,13 @@
//椤圭洰鐘舵�佺瓫閫夋潯浠�
isProjectCategory: false,
//琛ㄥご
- columns: [],
+ columnsNew: [],
+ //鏄鹃殣缁勪欢鐨勮〃澶撮泦鍚�
defaultColumns: [],
+ //閲嶇疆琛ㄥご
+ resetColumns:[],
+ //鏄鹃殣缁勪欢鐨勬煡璇㈡�绘暟
+ hiddenTotal: 0,
//鎺у埗鏇村绛涢�夋樉闅�
popoverValue: false,
// 閬僵灞�
@@ -353,10 +379,15 @@
queryParams: {
currentPage: 1,
pageSize: 10,
+ center: 0, // 1 浠h〃椤圭洰涓績
projectName: null,
projectCode: null,
projectStartTime: null,
projectEndTime: null,
+ },
+ //鏄鹃殣鍒楄〃鏌ヨ鍙傛暟
+ pageQueryParams:{
+ currentPage: 1,
},
moreQueryParams: {
projectType: '', // 椤圭洰绫诲瀷
@@ -385,27 +416,88 @@
},
created() {
this.queryParams.importanceType = this.$route.query.importanceType;
- const projectCategory = this.$route.query.projectCategory;
- if (!projectCategory || projectCategory === '1' || projectCategory === '6') {
+ const projectPhase = this.$route.query.projectPhase;
+ if (projectPhase === '6') {
+ this.queryParams.center = 1
+ }
+ if (!projectPhase || projectPhase === '1' || projectPhase === '6') {
this.isReserve = true;
}
- if (projectCategory) {
+ if (projectPhase) {
this.isProjectCategory = true;
}
- const columns = current.map((item, index) => {
- item.index = index + 1;
- item.key = index;
- item.serialNumber = index + 1;
- return item;
- });
- this.columns = columns;
- this.defaultColumns = JSON.parse(JSON.stringify(columns));
- this.getList();
+ // 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.getList(this.$route.query.projectPhase == '5' || this.$route.query.projectPhase == '6' ? null : this.$route.query.projectPhase);
},
beforeDestroy() {
this.removeStore();
},
methods: {
+ hiddenList(){
+ getHiddenList().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 {
+ item.visible = true;
+ }
+ if(item.columns ==='usedStatus' ){
+ if(projectPhase !== '6') {
+ item.visible = false
+ } else {
+ item.visible = true
+ }
+ }
+ });
+
+ this.defaultColumns = res.data;
+ this.columnsNew = res.data;
+ console.log(this.columnsNew)
+ this.hiddenTotal = res.total;
+ })
+
+ },
+ // async getProjectSubType(projectType, projectSubType) {
+ // if (!projectType || !projectSubType) {
+ // return ''
+ // }
+ // let value = '';
+ // // 鏍规嵁椤圭洰绫诲瀷鏌ュ瓙绫诲瀷
+ // const projectTypeItem = this.dict.type.sys_project_type.find(item => item.raw.dictValue === projectType);
+ // if (projectTypeItem) {
+ // const res = await getChildList(projectTypeItem.raw.dictCode);
+ // const target = res.data.filter(item => item.dictValue === projectSubType);
+ // if (target && target.length > 0) {
+ // value = target[0].dictLabel;
+ // console.log(value);
+ // }
+ // }
+ // console.log("鎷垮埌鍊间簡", value);
+ // return value;
+ // },
/** 淇敼鎸夐挳鎿嶄綔 */
handleUpdate(row) {
this.removeStore();
@@ -413,7 +505,7 @@
},
handleDetail(row) {
this.removeStore();
- const audit = this.$route.query.projectCategory==='6'? 1:0
+ const audit = this.$route.query.projectPhase==='6'? 1:0
this.$router.push({path: '/projectEngineering/project/ProjectDetails', query: {projectId: row.id,disabled: 'true',audit: audit }});
},
// 鏂板椤甸潰
@@ -430,27 +522,108 @@
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;
+ 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() {
- this.defaultColumns = currentRest.map((item, index) => {
- item.index = index + 1;
- item.key = index;
- item.serialNumber = index + 1
- return item;
- });
- this.columns = currentRest.map((item, index) => {
- item.index = index + 1;
- item.key = index;
- item.serialNumber = index + 1
- return item;
- });
+ 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.tableKey = this.tableKey + 1;
},
// 鏇存柊鍒楃殑鏂规硶
handleUpdateColumns(row) {
// this.currentColumns = row;
- this.columns = this.columns.map(item => {
+ row.key = Number(row.key)
+ this.columnsNew = this.columnsNew.map(item => {
if (item.key === row.key) {
return row;
}
@@ -458,18 +631,18 @@
});
},
handleUpdateSort(row) {
- console.log(this.columns, '鎺掑簭鍓嶇殑鍒�');
- this.columns = this.columns.map(item => {
+ console.log(this.columnsNew, '鎺掑簭鍓嶇殑鍒�');
+ this.columnsNew = this.columnsNew.map(item => {
if (item.key === row.key) {
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.columnsNew.sort((a, b) => a.index - b.index);
+ this.columnsNew.sort((a, b) => a.serialNumber - b.serialNumber);
//寮哄埗table娓叉煋
this.tableKey = this.tableKey + 1;
- console.log(this.columns, '鎺掑簭鍚庣殑鍒�');
+ console.log(this.columnsNew, '鎺掑簭鍚庣殑鍒�');
},
// 鍏抽棴鏂囦欢澶勭悊寮规鐨勬柟娉�
fileDialogCancel() {
@@ -485,9 +658,11 @@
this.popoverValue = false;
},
/** 鏌ヨ椤圭洰绠$悊鍩虹淇℃伅鍒楄〃 */
- getList() {
+ getList(projectPhase) {
this.loading = true;
- this.queryParams.projectCategory = this.$route.query.projectCategory;
+ if (projectPhase) {
+ this.queryParams.projectPhase = projectPhase;
+ }
if (this.timeRange) {
this.queryParams.projectStartTime = this.timeRange[0]
this.queryParams.projectEndTime = this.timeRange[1]
@@ -547,7 +722,7 @@
/** 鎼滅储鎸夐挳鎿嶄綔 */
handleQuery() {
this.queryParams.currentPage = 1;
- this.getList();
+ this.getList(null);
},
/** 閲嶇疆鎸夐挳鎿嶄綔 */
resetQuery() {
--
Gitblit v1.8.0