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