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