From 51385421b53865e8be9952b242373d429aad48bf Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期五, 14 三月 2025 11:44:01 +0800
Subject: [PATCH] Merge branch 'dev'
---
src/views/components/noticeTable.vue | 236 +++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 175 insertions(+), 61 deletions(-)
diff --git a/src/views/components/noticeTable.vue b/src/views/components/noticeTable.vue
index ca39d0e..b1367c0 100644
--- a/src/views/components/noticeTable.vue
+++ b/src/views/components/noticeTable.vue
@@ -1,6 +1,6 @@
<template>
- <div>
- <div class="flex justify-between mb-[15px]">
+ <div style="position: relative">
+ <div class="flex justify-between mb-[15px]" style="align-items: center;margin-bottom: 5px">
<div class="block mb-3 font-semibold fonts">寰呭姙浜嬮」</div>
<div class="flex text-[12px]">
<div
@@ -10,23 +10,24 @@
>
娴佺▼寰呭姙
</div>
- <!-- <div
- :class="{ active: currentTab === 'progress' }"
+ <div
+ :class="{ active: currentTab === 'schedule' }"
class="tab"
- @click="switchTab('progress')"
+ @click="switchTab('schedule')"
>
杩涘害寰呭姙
- </div> -->
+ </div>
</div>
</div>
<el-table
+ v-loading="tableLoading"
:data="tableData"
:header-cell-style="{
background: '#F5F7FC',
color: '#454B5E',
fontSize: '12px'
}"
- height="280"
+ min-height="280"
max-height="280"
>
<el-table-column
@@ -37,6 +38,7 @@
:min-width="column.minWidth"
:prop="column.prop"
:show-overflow-tooltip="true"
+ :formatter="column.formatter"
>
</el-table-column>
@@ -44,108 +46,222 @@
align="center"
fixed="right"
label="鎿嶄綔"
- min-width="150"
+ min-width="90"
>
- <template #default="scope">
+ <template slot-scope="scope">
<el-button
- plain
size="small"
- type="primary"
+ type="text"
@click="handleDetail(scope.row)"
>
鏌ョ湅</el-button
>
<el-button
- plain
size="small"
- type="primary"
+ type="text"
@click="handleUpdate(scope.row)"
>
- 澶勭疆</el-button
+ 澶勭悊</el-button
>
</template>
</el-table-column>
</el-table>
- <pagination
- v-show="total >= 0"
+ <div style="position: absolute; bottom: 0px;width: 100%;">
+ <div style="width: 100%;display: flex;flex-direction: row-reverse;align-items: center">
+ <pagination
+ style="width: 100%"
+ 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 { getTodo } from '@/api/message';
+import { getProjectProcessTodo, getDetailByProcessInsId } from "@/api/projectProcess/projectProcess.js";
+import { getProjectPlanToDoList } from "@/api/projectPlan";
export default {
data() {
return {
+ tableLoading: false,
currentTab: "process",
total: 0,
queryParams: {
- pageNum: 1,
- pageSize: 10
+ currentPage: 1,
+ pageSize: 4,
},
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' }
- ]
- }
+ currentTableHeaders: [],
+ processTableHeaders: [
+ { label: "娴佺▼鐜妭", prop: "taskName", minWidth: 150, align: "left" },
+ {
+ label: "鐢宠椤圭洰",
+ prop: "projectName",
+ minWidth: 150,
+ align: "left",
+ },
+ {
+ label: "澶勭悊浜�",
+ prop: "handlerName",
+ minWidth: 100,
+ align: "left",
+ formatter: (row) => {
+ if (row.handlerType === 'USER') {
+ return row.handlerName.join('銆�')
+ } else if (row.handlerType === 'DEPT') {
+ return row.handlerUnitName.join('銆�')
+ } else if (row.handlerType === 'ROLE') {
+ return row.handlerUnitName.join('銆�')
+ }
+ }
+ },
+ { 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: [],
- countExceptionProjectData: {},
+ calculation: Array,
+ countExceptionProjectData: Object,
},
created() {
+ this.currentTab = "process";
+ this.currentTableHeaders = this.processTableHeaders;
this.getList();
},
methods: {
+ pageChange(data) {
+ this.queryParams.currentPage = data.page
+ this.getList()
+ },
async getList() {
- const resp = await getTodo(this.queryParams);
- if (resp.code === 200) {
- this.total.value = resp.total;
- this.tableData.value = resp.rows;
+ var resp;
+ 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 {
+ resp = await getProjectPlanToDoList(this.queryParams);
+ if (resp.code === 200) {
+ this.total = resp.total;
+ this.tableData = resp.data;
+ this.tableLoading = false
+ }
}
},
- handleDetail(row) {
- console.log(111);
- this.$router.push({
- path: '/projectManage/nodeDetails',
- query: {
- taskId: row.id,
- id: row.businessKey,
- disabled: 'true'
+ async handleDetail(row) {
+ if (this.currentTab == "process") {
+ 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,
+ processInsId: row.processInsId,
+ deployId: row.deployId,
+ processName: row.processName
+ }
+ })
}
- });
+ } else {
+ row.id = row.planId;
+ this.$router.push({
+ path: "/projectManage/progressRecord",
+ query: {
+ data: row,
+ },
+ });
+ }
},
- handleUpdate(row) {
- this.$router.push({
- path: '/projectManage/nodeDetails',
- query: {
- taskId: row.id,
- id: row.businessKey
+ async handleUpdate(row) {
+ if (this.currentTab == "process") {
+ 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,
+ processInsId: row.processInsId,
+ deployId: row.deployId,
+ processName: row.processName
+ }
+ })
}
- });
- console.log(111);
+ } 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;
+ padding: 6px;
border: 1px solid #dbdeea;
cursor: pointer;
width: 72px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
}
.active {
@@ -170,8 +286,7 @@
}
::v-deep .el-pagination .btn-prev .el-icon,
- ::v-deep .el-pagination .btn-next .el-icon
-{
+::v-deep .el-pagination .btn-next .el-icon {
display: inline;
}
.flex {
@@ -179,5 +294,4 @@
justify-content: space-between;
font-size: 12px;
}
-
</style>
--
Gitblit v1.8.0