From 31d78dd4e988cfce8f0a16678f2041849cc0dce3 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期五, 06 六月 2025 18:07:52 +0800 Subject: [PATCH] 工作台 --- src/views/components/noticeTable.vue | 106 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 86 insertions(+), 20 deletions(-) diff --git a/src/views/components/noticeTable.vue b/src/views/components/noticeTable.vue index 4789ab9..9e173d3 100644 --- a/src/views/components/noticeTable.vue +++ b/src/views/components/noticeTable.vue @@ -11,6 +11,13 @@ 娴佺▼寰呭姙 </div> <div + :class="{ active: currentTab === 'wait' }" + class="tab" + @click="switchTab('wait')" + > + 瀹圭己寰呭姙 + </div> + <div :class="{ active: currentTab === 'schedule' }" class="tab" @click="switchTab('schedule')" @@ -20,6 +27,7 @@ </div> </div> <el-table + v-loading="tableLoading" :data="tableData" :header-cell-style="{ background: '#F5F7FC', @@ -69,27 +77,32 @@ <div style="width: 100%;display: flex;flex-direction: row-reverse;align-items: center"> <pagination style="width: 100%" - v-show="total >= 0" + v-show="total > 0" :page-sizes="[4]" :limit="queryParams.pageSize" - :page="queryParams.pageNum" + :page="queryParams.currentPage" :total="total" - @pagination="getList" + @pagination="pageChange" /> </div> </div> </div> </template> <script> -import { getProjectProcessTodo, getDetailByProcessInsId } from "@/api/projectProcess/projectProcess.js"; +import { + getProjectProcessTodo, + getDetailByProcessInsId, + getProjectProcessWait +} from "@/api/projectProcess/projectProcess.js"; import { getProjectPlanToDoList } from "@/api/projectPlan"; export default { data() { return { + tableLoading: false, currentTab: "process", total: 0, queryParams: { - pageNum: 1, + currentPage: 1, pageSize: 4, }, tableData: [], @@ -125,6 +138,37 @@ align: "left", }, ], + waitTableHeaders: [ + { label: "娴佺▼鐜妭", prop: "taskName", minWidth: 150, align: "left" }, + { + label: "鐢宠椤圭洰", + prop: "projectName", + minWidth: 150, + align: "left", + }, + { + label: "澶勭悊浜�", + prop: "promoterName", + minWidth: 100, + align: "left", + formatter: (row) => { + if (row.handlerType === 'USER') { + return row.promoterName.join('銆�') + } else if (row.handlerType === 'DEPT') { + return row.promoterUnitName.join('銆�') + } else if (row.handlerType === 'ROLE') { + return row.promoterUnitName.join('銆�') + } + } + }, + // { label: "瀹屾垚鎯呭喌", prop: "taskStatus", minWidth: 143, align: "left" }, + // { + // label: "鍓╀綑鏃堕棿", + // prop: "remainingTime", + // minWidth: 143, + // align: "left", + // }, + ], scheduleTableHeaders: [ { label: "寰呭姙浜嬮」", @@ -164,34 +208,51 @@ this.getList(); }, methods: { + pageChange(data) { + this.queryParams.currentPage = data.page + this.getList() + }, async getList() { var resp; - this.total = 0; - this.tableData = []; + this.tableLoading = true if (this.currentTab == "process") { resp = await getProjectProcessTodo(this.queryParams); if (resp.code === 200) { this.total = resp.total; this.tableData = resp.taskList; + this.tableLoading = false } + } else if (this.currentTab == "wait") { + resp = await getProjectProcessWait(this.queryParams); + if (resp.code === 200) { + this.total = resp.total; + this.tableData = resp.data; + this.tableLoading = false + } } else { resp = await getProjectPlanToDoList(this.queryParams); if (resp.code === 200) { this.total = resp.total; this.tableData = resp.data; + this.tableLoading = false } } }, async handleDetail(row) { - if (this.currentTab == "process") { + if (this.currentTab == "process" || this.currentTab == "wait") { const resp = await getDetailByProcessInsId({ processDefId: row.processDefId, processInsId: row.processInsId }); if (resp.code === 200 && resp.data.length > 0) { const projectProcess = resp.data[0] + sessionStorage.removeItem("projectProDetail") this.$router.push({ path: '/projectFlow/detail', query: { - projectId: projectProcess.projectId, - processDefId: row.processDefId + projectId: projectProcess.projectId, + processDefId: row.processDefId, + processInsId: row.processInsId, + deployId: row.deployId, + processName: row.processName, + selectTabId: this.currentTab == "process" ? 2 : 3 } }) } @@ -206,17 +267,22 @@ } }, async handleUpdate(row) { - if (this.currentTab == "process") { + if (this.currentTab == "process" || this.currentTab == "wait") { const resp = await getDetailByProcessInsId({ processDefId: row.processDefId, processInsId: row.processInsId }); if (resp.code === 200 && resp.data.length > 0) { - const projectProcess = resp.data[0] - this.$router.push({ - path: '/projectFlow/detail', - query: { - projectId: projectProcess.projectId, - processDefId: row.processDefId - } - }) + const projectProcess = resp.data[0] + sessionStorage.removeItem("projectProDetail") + this.$router.push({ + path: '/projectFlow/detail', + query: { + projectId: projectProcess.projectId, + processDefId: row.processDefId, + processInsId: row.processInsId, + deployId: row.deployId, + processName: row.processName, + selectTabId: this.currentTab == "process" ? 2 : 3 + } + }) } } else { row.id = row.planId; @@ -231,7 +297,7 @@ switchTab(tab) { this.currentTab = tab; this.currentTableHeaders = - tab == "process" ? this.processTableHeaders : this.scheduleTableHeaders; + tab == "process" ? this.processTableHeaders : tab == "wait" ? this.waitTableHeaders : this.scheduleTableHeaders; this.getList(); }, }, -- Gitblit v1.8.0