From 13b76069f6d7e3c1fdf64ffc3f877ae47638571d Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 14 二月 2025 16:38:54 +0800
Subject: [PATCH] 增加是否允许挂起
---
src/views/projectEngineering/projectLibrary/index.vue | 271 +++++++++++++++++++++++++++++++++---------------------
1 files changed, 166 insertions(+), 105 deletions(-)
diff --git a/src/views/projectEngineering/projectLibrary/index.vue b/src/views/projectEngineering/projectLibrary/index.vue
index fbbe70d..6528a10 100644
--- a/src/views/projectEngineering/projectLibrary/index.vue
+++ b/src/views/projectEngineering/projectLibrary/index.vue
@@ -29,10 +29,10 @@
<el-date-picker
style="width: 270px"
size="small"
- v-model="queryParams[timeRange]"
+ v-model="timeRange"
type="daterange"
range-separator="-"
- value-format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd HH:mm:ss"
start-placeholder="寮�濮嬫棩鏈�"
end-placeholder="缁撴潫鏃ユ湡"
@change="handleQuery"
@@ -50,7 +50,8 @@
<el-row>
<el-col :span="12">
<el-form-item label="椤圭洰绫诲瀷">
- <el-select v-model="queryParams.projectType" clearable placeholder="璇烽�夋嫨" class="select-option" @change="handleQuery"
+ <el-select v-model="queryParams.projectType" clearable placeholder="璇烽�夋嫨" class="select-option"
+ @change="handleQuery"
size="small">
<el-option v-for="item in dict.type.sys_project_type" :key="item.value" :label="item.label"
:value="item.value"/>
@@ -59,7 +60,8 @@
</el-col>
<el-col :span="12">
<el-form-item label="閲嶇偣鍒嗙被">
- <el-select v-model="queryParams.importanceType" clearable placeholder="璇烽�夋嫨" class="select-option" @change="handleQuery">
+ <el-select v-model="queryParams.importanceType" clearable placeholder="璇烽�夋嫨" class="select-option"
+ @change="handleQuery">
<el-option v-for="item in dict.type.sys_key_categories" :key="item.value" :label="item.label"
:value="item.value"/>
</el-select>
@@ -69,7 +71,8 @@
<el-row>
<el-col :span="12">
<el-form-item label="椤圭洰鏍囩">
- <el-select v-model="queryParams.tag" clearable placeholder="璇烽�夋嫨" class="select-option" @change="handleQuery">
+ <el-select v-model="queryParams.tag" clearable placeholder="璇烽�夋嫨" class="select-option"
+ @change="handleQuery">
<el-option v-for="item in dict.type.sys_project_tags" :key="item.value" :label="item.label"
:value="item.value"/>
</el-select>
@@ -77,7 +80,8 @@
</el-col>
<el-col :span="12">
<el-form-item label="椤圭洰鐘舵��">
- <el-select v-model="queryParams.projectStatus" :disabled="isProjectCategory" clearable @change="handleQuery"
+ <el-select v-model="queryParams.projectStatus" :disabled="isProjectCategory" clearable
+ @change="handleQuery"
placeholder="璇烽�夋嫨" class="select-option">
<el-option v-for="item in dict.type.sys_project_status" :key="item.value" :label="item.label"
:value="item.value"/>
@@ -88,7 +92,8 @@
<el-row>
<el-col :span="12">
<el-form-item label="椤圭洰鐮�">
- <el-select v-model="queryParams.projectColorCode" clearable placeholder="璇烽�夋嫨" class="select-option" @change="handleQuery">
+ <el-select v-model="queryParams.coding" clearable placeholder="璇烽�夋嫨" class="select-option"
+ @change="handleQuery">
<el-option v-for="item in dict.type.sys_project_code" :key="item.value" :label="item.label"
:value="item.value"/>
</el-select>
@@ -96,7 +101,8 @@
</el-col>
<el-col :span="12">
<el-form-item label="鍏宠仈鐘舵��">
- <el-select v-model="queryParams.assignmentStatus" clearable placeholder="璇烽�夋嫨" class="select-option" @change="handleQuery">
+ <el-select v-model="queryParams.assignmentStatus" clearable placeholder="璇烽�夋嫨" class="select-option"
+ @change="handleQuery">
<el-option v-for="item in dict.type.sys_association_status" :key="item.value" :label="item.label"
:value="item.value"/>
</el-select>
@@ -106,7 +112,8 @@
<el-row>
<el-col :span="12">
<el-form-item label="璧勯噾绫诲瀷">
- <el-select v-model="queryParams.investmentType" clearable placeholder="璇烽�夋嫨" class="select-option" @change="handleQuery">
+ <el-select v-model="queryParams.investmentType" clearable placeholder="璇烽�夋嫨" class="select-option"
+ @change="handleQuery">
<el-option v-for="item in dict.type.sys_funding_type" :key="item.value" :label="item.label"
:value="item.value"/>
</el-select>
@@ -114,7 +121,8 @@
</el-col>
<el-col :span="12">
<el-form-item label="椤圭洰闃舵">
- <el-select v-model="queryParams.projectPhase" clearable placeholder="璇烽�夋嫨" class="select-option" @change="handleQuery">
+ <el-select v-model="queryParams.projectPhase" clearable placeholder="璇烽�夋嫨" class="select-option"
+ @change="handleQuery">
<el-option v-for="item in dict.type.sys_project_phases" :key="item.value" :label="item.label"
:value="item.value"/>
</el-select>
@@ -124,7 +132,8 @@
<el-row>
<el-col :span="12">
<el-form-item label="鎶曡祫绫诲埆">
- <el-select v-model="queryParams.investType" clearable placeholder="璇烽�夋嫨" class="select-option" @change="handleQuery">
+ <el-select v-model="queryParams.investType" clearable placeholder="璇烽�夋嫨" class="select-option"
+ @change="handleQuery">
<el-option v-for="item in dict.type.sys_investment_type" :key="item.value" :label="item.label"
:value="item.value"/>
</el-select>
@@ -132,15 +141,17 @@
</el-col>
<el-col :span="12">
<el-form-item label="琛屾斂鍖哄垝">
- <el-select v-model="queryParams.area" clearable placeholder="璇烽�夋嫨" class="select-option" @change="handleQuery">
- <el-option v-for="item in dict.type.sys_administrative_divisions" :key="item.value" :label="item.label"
+ <el-select v-model="queryParams.area" clearable placeholder="璇烽�夋嫨" class="select-option"
+ @change="handleQuery">
+ <el-option v-for="item in dict.type.sys_administrative_divisions" :key="item.value"
+ :label="item.label"
:value="item.value"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
- <el-button style="margin-right: 16px; margin-top: 1px; color: #3369ff" slot="reference"
+ <el-button style="margin-right: 16px; margin-top: 1px; color: #3369ff" slot="reference"
size="small">
鏇村绛涙煡鏉′欢
<span style="margin-left: 5px">
@@ -185,9 +196,9 @@
v-loading="loading"
:data="projectInfoList"
@selection-change="handleSelectionChange"
- height="60vh"
+ height="100%"
sortable="custom"
- :show-overflow-tooltip="true">
+ >
<el-table-column type="selection" width="55" align="center"/>
<!-- 鍔ㄦ�佸垪 -->
<el-table-column
@@ -203,56 +214,82 @@
<template v-if="item.slotName">
<!-- projectStatus鎻掓Ы -->
<template v-if="item.slotName === 'projectStatus'">
- <div class="mx-1">{{ '鑷畾涔夋牱寮�' }}</div>
+ <dict-tag :options="dict.type.sys_project_status" :value="scope.row.projectStatus"/>
</template>
- <!-- projectColorCode鎻掓Ы -->
- <template v-if="item.slotName === 'projectColorCode'">
- <div class="mx-1 has-dot">{{ '鑷畾涔夋牱寮�' }}<span class="dot" style="margin-left: 5px"></span></div>
+ <!-- coding鎻掓Ы -->
+ <template v-if="item.slotName === 'coding'">
+ <dict-tag :options="dict.type.sys_project_code" :value="scope.row.coding"/>
</template>
<!-- projectType鎻掓Ы -->
<template v-if="item.slotName === 'projectType'">
- <div class="mx-1">{{ '鑷畾涔夋牱寮�' }}</div>
+ <dict-tag :options="dict.type.sys_project_type" :value="scope.row.projectType"/>
</template>
<!-- investType鎻掓Ы -->
<template v-if="item.slotName === 'investType'">
- <div class="mx-1">{{ '鑷畾涔夋牱寮�' }}</div>
+ <dict-tag :options="dict.type.sys_investment_type" :value="scope.row.investType"/>
</template>
- <!-- planStartTime鎻掓Ы -->
+ <!-- investType鎻掓Ы -->
+ <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] + '骞�' : '' }}
+ </template>
+ <!-- usedStatus鎻掓Ы -->
+ <template v-if="item.slotName === 'usedStatus'">
+ <dict-tag :options="dict.type.sys_used_status" :value="scope.row.usedStatus"/>
</template>
</template>
<!-- 榛樿鏄剧ず -->
<span v-else>{{ scope.row[item.id] }}</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 label="鎿嶄綔" width="140" align="center" >
+ <el-table-column label="鎿嶄綔" width="140" align="center">
<template slot-scope="scope">
- <el-button
- size="medium"
- type="text"
- icon="el-icon-view"
- @click="handleDetail(scope.row)"
- >
- </el-button>
- <el-button
- v-if="isReserve"
- size="medium"
- type="text"
- icon="el-icon-edit"
- @click="handleUpdate(scope.row)"
- >
- </el-button>
- <el-button
- v-if="isReserve"
- size="medium"
- type="text"
- icon="el-icon-delete"
- @click="handleDelete(scope.row)"
- >
- </el-button>
+ <el-tooltip class="item" effect="dark" content="瀹℃牳" placement="top">
+ <el-button
+ v-if="scope.row.auditRole && $route.query.projectCategory==='6'"
+ 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>
+ </el-tooltip>
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <el-button
+ v-if="isReserve"
+ v-hasRole="['user']"
+ size="medium"
+ type="text"
+ icon="el-icon-edit"
+ @click="handleUpdate(scope.row)"
+ >
+ </el-button>
+ </el-tooltip>
+ <el-tooltip class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <el-button
+ v-if="isReserve"
+ size="medium"
+ type="text"
+ icon="el-icon-delete"
+ @click="handleDelete(scope.row)"
+ >
+ </el-button>
+ </el-tooltip>
+
</template>
</el-table-column>
</el-table>
@@ -260,7 +297,7 @@
<pagination
v-show="total>0"
:total="total"
- :page.sync="queryParams.pageNum"
+ :page.sync="queryParams.currentPage"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
@@ -270,20 +307,22 @@
:isImportOrExport="isImportOrExport"
@fileDialogCancel="fileDialogCancel"
:currentColumns="columns"
+ :dataIdList="ids"
/>
</div>
</template>
<script>
-import {listInfo, getInfo, delInfo, addInfo, updateInfo} from "@/api/projectInfo";
+import {listProject, getProject, delProject, addProject, updateProject} from "@/api/projectEngineering/projectInfo";
import {current, currentRest} from '@/views/projectEngineering/projectLibrary/list';
-import FileDialog from '@/views/projectEngineering/component/FileDialog';
+import FileDialog from '@/views/projectEngineering/projectLibrary/component/FileDialog';
+import Cookies from "js-cookie";
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'],
- name: "projectInfo",
+ 'sys_project_tags', 'sys_key_categories', 'sys_project_type','sys_used_status'],
+ name: "ProjectInfo",
components: {
FileDialog
},
@@ -322,16 +361,18 @@
timeRange: [],
// 鏌ヨ鍙傛暟
queryParams: {
- pageNum: 1,
+ currentPage: 1,
pageSize: 10,
projectName: null,
projectCode: null,
+ projectStartTime: null,
+ projectEndTime: null,
},
moreQueryParams: {
projectType: '', // 椤圭洰绫诲瀷
importanceType: '', // 閲嶇偣鍒嗙被
projectStatus: '', // 椤圭洰鐘舵��
- projectColorCode: '', // 椤圭洰鐮�
+ coding: '', // 椤圭洰鐮�
investmentType: '', // 璧勯噾绫诲瀷
projectPhase: '', // 椤圭洰闃舵
investType: '', // 鎶曡祫绫诲埆
@@ -353,38 +394,89 @@
};
},
created() {
+ this.queryParams.importanceType = this.$route.query.importanceType;
const projectCategory = this.$route.query.projectCategory;
- if(!projectCategory || projectCategory === '1'){
+ if (!projectCategory || projectCategory === '1' || projectCategory === '6') {
this.isReserve = true;
}
- if(projectCategory){
+ if (projectCategory) {
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(projectCategory !== '6') {
+ item.visible = false
+ } else {
+ item.visible = true
+ }
+ }
return item;
});
this.columns = columns;
this.defaultColumns = JSON.parse(JSON.stringify(columns));
this.getList();
},
+ beforeDestroy() {
+ this.removeStore();
+ },
methods: {
+ /** 淇敼鎸夐挳鎿嶄綔 */
+ handleUpdate(row) {
+ this.removeStore();
+ this.$router.push({path: '/projectEngineering/project/ProjectDetails', query: {projectId: row.id}});
+ },
+ handleDetail(row) {
+ this.removeStore();
+ const audit = this.$route.query.projectCategory==='6'? 1:0
+ this.$router.push({path: '/projectEngineering/project/ProjectDetails', query: {projectId: row.id,disabled: 'true',audit: audit }});
+ },
+ // 鏂板椤甸潰
+ add() {
+ this.removeStore();
+ this.$router.push({path: '/projectEngineering/project/ProjectDetails'});
+ },
+ //娓呯悊缂撳瓨
+ removeStore() {
+ localStorage.removeItem("projectForm")
+ localStorage.removeItem("investmentForm")
+ localStorage.removeItem("investmentFundsForm")
+ localStorage.removeItem("legalPersonForm")
+ localStorage.removeItem("policyInfoForm")
+ localStorage.removeItem("documentsInfoForm")
+ },
// 閲嶇疆鎺掑簭鐨勬柟娉�
handleResetSort() {
this.defaultColumns = currentRest.map((item, index) => {
item.index = index + 1;
item.key = index;
item.serialNumber = index + 1
+ if(item.id ==='usedStatus' ){
+ if(projectCategory !== '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(projectCategory !== '6') {
+ item.visible = false
+ } else {
+ item.visible = true
+ }
+ }
return item;
});
+ //寮哄埗table娓叉煋
+ this.tableKey = this.tableKey + 1;
},
// 鏇存柊鍒楃殑鏂规硶
handleUpdateColumns(row) {
@@ -397,7 +489,7 @@
});
},
handleUpdateSort(row) {
- console.log( this.columns, '鎺掑簭鍓嶇殑鍒�');
+ console.log(this.columns, '鎺掑簭鍓嶇殑鍒�');
this.columns = this.columns.map(item => {
if (item.key === row.key) {
return row;
@@ -407,8 +499,8 @@
this.defaultColumns = JSON.parse(JSON.stringify(this.columns)).sort((a, b) => a.index - b.index);
this.columns.sort((a, b) => a.serialNumber - b.serialNumber);
//寮哄埗table娓叉煋
- this.tableKey = this.tableKey +1;
- console.log( this.columns, '鎺掑簭鍚庣殑鍒�');
+ this.tableKey = this.tableKey + 1;
+ console.log(this.columns, '鎺掑簭鍚庣殑鍒�');
},
// 鍏抽棴鏂囦欢澶勭悊寮规鐨勬柟娉�
fileDialogCancel() {
@@ -426,11 +518,16 @@
/** 鏌ヨ椤圭洰绠$悊鍩虹淇℃伅鍒楄〃 */
getList() {
this.loading = true;
- listInfo(this.queryParams).then(response => {
+ this.queryParams.projectCategory = this.$route.query.projectCategory;
+ if (this.timeRange) {
+ this.queryParams.projectStartTime = this.timeRange[0]
+ this.queryParams.projectEndTime = this.timeRange[1]
+ }
+ listProject(this.queryParams).then(response => {
this.projectInfoList = response.data;
this.total = response.total;
+ this.loading = false;
});
- this.loading = false;
},
// 鍙栨秷鎸夐挳
cancel() {
@@ -480,7 +577,7 @@
},
/** 鎼滅储鎸夐挳鎿嶄綔 */
handleQuery() {
- this.queryParams.pageNum = 1;
+ this.queryParams.currentPage = 1;
this.getList();
},
/** 閲嶇疆鎸夐挳鎿嶄綔 */
@@ -494,47 +591,12 @@
this.single = selection.length !== 1
this.multiple = !selection.length
},
- /** 鏂板鎸夐挳鎿嶄綔 */
- handleAdd() {
- this.reset();
- this.open = true;
- this.title = "娣诲姞椤圭洰绠$悊鍩虹淇℃伅";
- },
- /** 淇敼鎸夐挳鎿嶄綔 */
- handleUpdate(row) {
- this.reset();
- const id = row.id || this.ids
- getInfo(id).then(response => {
- this.form = response.data;
- this.open = true;
- this.title = "淇敼椤圭洰绠$悊鍩虹淇℃伅";
- });
- },
- /** 鎻愪氦鎸夐挳 */
- submitForm() {
- this.$refs["form"].validate(valid => {
- if (valid) {
- if (this.form.id != null) {
- updateInfo(this.form).then(response => {
- this.$modal.msgSuccess("淇敼鎴愬姛");
- this.open = false;
- this.getList();
- });
- } else {
- addInfo(this.form).then(response => {
- this.$modal.msgSuccess("鏂板鎴愬姛");
- this.open = false;
- this.getList();
- });
- }
- }
- });
- },
+
/** 鍒犻櫎鎸夐挳鎿嶄綔 */
handleDelete(row) {
const ids = row.id || this.ids;
- this.$modal.confirm('鏄惁纭鍒犻櫎椤圭洰绠$悊鍩虹淇℃伅缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function () {
- return delInfo(ids);
+ this.$modal.confirm('鏄惁纭鍒犻櫎椤圭洰:"' + row.projectName + '"鐨勬暟鎹」锛�').then(function () {
+ return delProject(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
@@ -548,9 +610,8 @@
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.download('code/info/export', {
- ...this.queryParams
- }, `info_${new Date().getTime()}.xlsx`)
+ this.isImportOrExport = true;
+ this.fileDialogVisible = true;
}
}
};
--
Gitblit v1.8.0