From 1320baf817d73d83af3cb0498130689dcf478e0b Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期五, 29 十一月 2024 23:49:22 +0800
Subject: [PATCH] 首页待办

---
 src/views/components/noticeTable.vue |  359 ++++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 207 insertions(+), 152 deletions(-)

diff --git a/src/views/components/noticeTable.vue b/src/views/components/noticeTable.vue
index 099f0ac..ebf0b62 100644
--- a/src/views/components/noticeTable.vue
+++ b/src/views/components/noticeTable.vue
@@ -1,183 +1,238 @@
 <template>
-    <div>
-        <div class="flex justify-between mb-[15px]">
-            <div class="block mb-3 font-semibold fonts">寰呭姙浜嬮」</div>
-            <div class="flex text-[12px]">
-                <div
-                    :class="{ active: currentTab === 'process' }"
-                    class="tab"
-                    @click="switchTab('process')"
-                >
-                    娴佺▼寰呭姙
-                </div>
-                <!-- <div
-                    :class="{ active: currentTab === 'progress' }"
-                    class="tab"
-                    @click="switchTab('progress')"
-                >
-                    杩涘害寰呭姙
-                </div> -->
-            </div>
-        </div>
-        <el-table
-            :data="tableData"
-            :header-cell-style="{
-                background: '#F5F7FC',
-                color: '#454B5E',
-                fontSize: '12px'
-            }"
-            height="280"
-            max-height="280"
+  <div>
+    <div class="flex justify-between mb-[15px]">
+      <div class="block mb-3 font-semibold fonts">寰呭姙浜嬮」</div>
+      <div class="flex text-[12px]">
+        <div
+          :class="{ active: currentTab === 'process' }"
+          class="tab"
+          @click="switchTab('process')"
         >
-            <el-table-column
-                v-for="column in currentTableHeaders"
-                :key="column.prop"
-                :align="column.align"
-                :label="column.label"
-                :min-width="column.minWidth"
-                :prop="column.prop"
-                :show-overflow-tooltip="true"
-            >
-            </el-table-column>
-
-            <el-table-column
-                align="center"
-                fixed="right"
-                label="鎿嶄綔"
-                min-width="150"
-            >
-                <template #default="scope">
-                    <el-button
-                        plain
-                        size="small"
-                        type="primary"
-                        @click="handleDetail(scope.row)"
-                    >
-                        鏌ョ湅</el-button
-                    >
-                    <el-button
-                        plain
-                        size="small"
-                        type="primary"
-                        @click="handleUpdate(scope.row)"
-                    >
-                        澶勭疆</el-button
-                    >
-                </template>
-            </el-table-column>
-        </el-table>
-        <pagination
-            v-show="total >= 0"
-            :limit="queryParams.pageSize"
-            :page="queryParams.pageNum"
-            :total="total"
-            @pagination="getList"
-        />
+          娴佺▼寰呭姙
+        </div>
+        <div
+          :class="{ active: currentTab === 'schedule' }"
+          class="tab"
+          @click="switchTab('schedule')"
+        >
+          杩涘害寰呭姙
+        </div>
+      </div>
     </div>
+    <el-table
+      :data="tableData"
+      :header-cell-style="{
+        background: '#F5F7FC',
+        color: '#454B5E',
+        fontSize: '12px',
+      }"
+      height="280"
+      max-height="280"
+    >
+      <el-table-column
+        v-for="column in currentTableHeaders"
+        :key="column.prop"
+        :align="column.align"
+        :label="column.label"
+        :min-width="column.minWidth"
+        :prop="column.prop"
+        :show-overflow-tooltip="true"
+      >
+      </el-table-column>
+
+      <el-table-column
+        align="center"
+        fixed="right"
+        label="鎿嶄綔"
+        min-width="150"
+      >
+        <template #default="scope">
+          <el-button
+            plain
+            size="small"
+            type="primary"
+            @click="handleDetail(scope.row)"
+          >
+            鏌ョ湅</el-button
+          >
+          <el-button
+            plain
+            size="small"
+            type="primary"
+            @click="handleUpdate(scope.row)"
+          >
+            澶勭疆</el-button
+          >
+        </template>
+      </el-table-column>
+    </el-table>
+    <pagination
+      v-show="total >= 0"
+      :limit="queryParams.pageSize"
+      :page="queryParams.pageNum"
+      :total="total"
+      @pagination="getList"
+    />
+  </div>
 </template>
 <script>
-
-import { getTodo } from '@/api/message';
+import { getProjectProcessTodo } from "@/api/projectProcess/projectProcess.js";
+import { getProjectPlanToDoList } from "@/api/projectPlan";
 export default {
-    data() {
-        return {
-            currentTab: "process",
-            total: 0,
-            queryParams: {
-                pageNum: 1,
-                pageSize: 10
-            },
-            tableData: [],
-            currentTableHeaders: [
-                { label: '娴佺▼鐜妭', prop: 'name', minWidth: 150, align: 'left' },
-                { label: '鐢宠椤圭洰', prop: 'businessName', minWidth: 150, align: 'left' },
-                { label: '瀹℃壒浜�', prop: 'assigneeName', minWidth: 100, align: 'left' },
-                { label: '鍓╀綑鏃堕棿', prop: 'remainingTime', minWidth: 143, align: 'left' }
-            ]
+  data() {
+    return {
+      currentTab: "process",
+      total: 0,
+      queryParams: {
+        pageNum: 1,
+        pageSize: 5,
+      },
+      tableData: [],
+      currentTableHeaders: [],
+      processTableHeaders: [
+        { label: "娴佺▼鐜妭", prop: "taskName", minWidth: 150, align: "left" },
+        {
+          label: "鐢宠椤圭洰",
+          prop: "processName",
+          minWidth: 150,
+          align: "left",
+        },
+        { label: "瀹℃壒浜�", prop: "handlerName", minWidth: 100, align: "left" },
+        { label: "瀹屾垚鎯呭喌", prop: "taskStatus", minWidth: 143, align: "left" },
+        {
+          label: "鍓╀綑鏃堕棿",
+          prop: "remainingTime",
+          minWidth: 143,
+          align: "left",
+        },
+      ],
+      scheduleTableHeaders: [
+        {
+          label: "寰呭姙浜嬮」",
+          prop: "projectPlanInfoTitle",
+          minWidth: 150,
+          align: "left",
+        },
+        {
+          label: "瀵瑰簲椤圭洰",
+          prop: "projectName",
+          minWidth: 150,
+          align: "left",
+        },
+        { label: "瀹℃壒浜�", prop: "assigneeName", minWidth: 100, align: "left" },
+        {
+          label: "鐘舵��",
+          prop: "progressStatusStr",
+          minWidth: 143,
+          align: "left",
+        },
+        {
+          label: "鍓╀綑鏃堕棿",
+          prop: "remainder",
+          minWidth: 143,
+          align: "left",
+        },
+      ],
+    };
+  },
+  props: {
+    calculation: Array,
+    countExceptionProjectData: Object,
+  },
+  created() {
+    (this.currentTab = "process"),
+      (this.currentTableHeaders = this.processTableHeaders);
+    this.getList();
+  },
+  methods: {
+    async getList() {
+      var resp;
+      this.total = 0;
+      this.tableData = [];
+      if (this.currentTab == "process") {
+        resp = await getProjectProcessTodo(this.queryParams);
+        if (resp.code === 200) {
+          this.total = resp.total;
+          this.tableData = resp.taskList;
         }
-    },
-    props: {
-        calculation: Array,
-        countExceptionProjectData:Object,
-    },
-    created() {
-        this.getList();
-    },
-    methods: {
-        async getList() {
-            const resp = await getTodo(this.queryParams);
-            if (resp.code === 200) {
-                this.total.value = resp.total;
-                this.tableData.value = resp.rows;
-            }
-        },
-        handleDetail(row) {
-            console.log(111);
-            this.$router.push({
-                path: '/projectManage/nodeDetails',
-                query: {
-                    taskId: row.id,
-                    id: row.businessKey,
-                    disabled: 'true'
-                }
-            });
-        },
-        handleUpdate(row) {
-            this.$router.push({
-                path: '/projectManage/nodeDetails',
-                query: {
-                    taskId: row.id,
-                    id: row.businessKey
-                }
-            });
-            console.log(111);
-        },
-        switchTab(tab) {
-            this.currentTab = tab;
+      } else {
+        resp = await getProjectPlanToDoList(this.queryParams);
+        if (resp.code === 200) {
+          this.total = resp.total;
+          this.tableData = resp.data;
         }
-    }
-}
-
+      }
+    },
+    handleDetail(row) {
+      if (this.currentTab == "process") {
+      } else {
+        row.id = row.planId;
+        this.$router.push({
+          path: "/projectManage/progressRecord",
+          query: {
+            data: row,
+          },
+        });
+      }
+    },
+    handleUpdate(row) {
+      if (this.currentTab == "process") {
+      } else {
+        row.id = row.planId;
+        this.$router.push({
+          path: "/projectManage/progressRecord",
+          query: {
+            data: row,
+          },
+        });
+      }
+    },
+    switchTab(tab) {
+      this.currentTab = tab;
+      this.currentTableHeaders =
+        tab == "process" ? this.processTableHeaders : this.scheduleTableHeaders;
+      this.getList();
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>
 .tab {
-    padding: 8px;
-    border: 1px solid #dbdeea;
-    cursor: pointer;
-    width: 72px;
+  padding: 8px;
+  border: 1px solid #dbdeea;
+  cursor: pointer;
+  width: 72px;
 }
 
 .active {
-    border: 1px solid #3369ff;
-    color: #3369ff;
+  border: 1px solid #3369ff;
+  color: #3369ff;
 }
 
 .fonts {
-    font-size: 16px;
-    color: #212a40;
-    display: flex;
-    align-items: center;
+  font-size: 16px;
+  color: #212a40;
+  display: flex;
+  align-items: center;
 }
 
 ::v-deep .el-table__row {
-    font-size: 12px;
+  font-size: 12px;
 }
 
 ::v-deep .el-pagination {
-    margin: -15px;
-    text-align: end;
+  margin: -15px;
+  text-align: end;
 }
 
 ::v-deep .el-pagination .btn-prev .el-icon,
- ::v-deep .el-pagination .btn-next .el-icon 
-{
-    display: inline;
+::v-deep .el-pagination .btn-next .el-icon {
+  display: inline;
 }
 .flex {
-    display: flex;
-    justify-content: space-between;
-    font-size: 12px;
+  display: flex;
+  justify-content: space-between;
+  font-size: 12px;
 }
-
 </style>

--
Gitblit v1.8.0