From 673ed0ce6809aecc7b1bdb1c8bb5f6018047105f Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期四, 05 十二月 2024 17:09:09 +0800 Subject: [PATCH] 分角色展示项目计划,实现不同角色的功能 --- src/views/projectProcess/detail/index.vue | 83 ++++++++++++++++++++++++++--------------- 1 files changed, 53 insertions(+), 30 deletions(-) diff --git a/src/views/projectProcess/detail/index.vue b/src/views/projectProcess/detail/index.vue index 1c3a5ac..a819527 100644 --- a/src/views/projectProcess/detail/index.vue +++ b/src/views/projectProcess/detail/index.vue @@ -1,5 +1,5 @@ <template> - <div class="app-container"> + <div class="app-container" v-loading.fullscreen.lock="loading"> <div class="top"> <div class="project-title"> <h2>椤圭洰鍚嶇О锛歿{detailData.projectName}}</h2> @@ -16,10 +16,10 @@ </div> </div> <div class="search-warp"> - <div @click="changeTab(1, 'all')" :class="{'item-warm': true, 'all-color': true, 'active': 1 === selectTabId}">鍏ㄩ儴浜嬮」锛坽{detailData.statistics.totalTaskNum}}锛�</div> - <div @click="changeTab(2, 'todo')" :class="{'item-warm': true, 'all-color': true, 'active': 2 === selectTabId}">浠e姙浜嬮」锛坽{detailData.statistics.todoTaskNum}}锛�</div> - <div @click="changeTab(3, 'current')" :class="{'item-warm': true, 'current-color': true, 'active': 3 === selectTabId}">褰撳墠鐜妭</div> - <div @click="changeTab(4, 'remaining')" :class="{'item-warm': true, 'remaining-color': true, 'active': 4 === selectTabId}">鍓╀綑浜嬮」锛坽{detailData.statistics.totalTaskNum}}锛�</div> + <div @click="changeTab(1, 'all')" :class="{'item-warm': true, 'all-color': true, 'active': 1 === selectTabId}">鍏ㄩ儴浜嬮」<span v-if="detailData && detailData.statistics">锛坽{detailData.statistics.totalTaskNum}}锛�</span></div> + <div @click="changeTab(2, 'todo')" :class="{'item-warm': true, 'all-color': true, 'active': 2 === selectTabId}">浠e姙浜嬮」<span v-if="detailData && detailData.statistics">锛坽{detailData.statistics.todoTaskNum}}锛�</span></div> + <div @click="changeTab(3, 'todo')" :class="{'item-warm': true, 'current-color': true, 'active': 3 === selectTabId}">褰撳墠鐜妭</div> + <div @click="changeTab(4, 'remaining')" :class="{'item-warm': true, 'remaining-color': true, 'active': 4 === selectTabId}">鍓╀綑浜嬮」<span v-if="detailData && detailData.statistics">锛坽{detailData.statistics.remainingTaskNum}}锛�</span></div> <div @click="changeTab(5, 'timely')" :class="{'item-warm': true, 'timely-color': true, 'active': 5 === selectTabId}">鎸夋椂瀹屾垚锛�0锛�</div> <div @click="changeTab(6, 'overtime')" :class="{'item-warm': true, 'overtime-color': true, 'active': 6 === selectTabId}">瓒呮椂浜嬮」锛�0锛�</div> <div @click="changeTab(7, 'willOvertime')" :class="{'item-warm': true, 'willOvertime-color': true, 'active': 7 === selectTabId}">涓存湡浜嬮」锛�0锛�</div> @@ -37,6 +37,7 @@ </div> <div class="table"> <el-table + v-loading="tableLoading" :data="taskList" border style="width: 100%"> @@ -46,28 +47,33 @@ > </el-table-column> <el-table-column - prop="procDefName" + prop="processName" label="娴佺▼鍚嶇О" > </el-table-column> <el-table-column - prop="startUserName" + prop="promoterName" label="鍙戣捣浜�" > </el-table-column> <el-table-column - prop="startDeptName" + prop="promoterUnitName" label="鍙戣捣鍗曚綅" > </el-table-column> <el-table-column - prop="assigneeDeptName" + prop="handlerUnitName" label="澶勭悊鍗曚綅" > </el-table-column> <el-table-column - prop="assigneeName" + prop="handlerName" label="瀹為檯澶勭悊浜�" + > + </el-table-column> + <el-table-column + prop="taskStatus" + label="浠诲姟鐘舵��" > </el-table-column> <el-table-column @@ -75,16 +81,16 @@ label="鎿嶄綔" width="100"> <template slot-scope="scope"> - <el-button @click="goToProcessDetail(scope.row)" type="text" size="small">鏌ョ湅</el-button> - <el-button @click="goToDo(scope.row)" type="text" size="small">鍔炵悊</el-button> + <el-button v-if="scope.row.taskStatus !== '鏈紑濮�'" @click="goToProcessDetail(scope.row)" type="text" size="small">鏌ョ湅</el-button> + <el-button v-if="scope.row.taskStatus === '寰呭姙'" @click="goToDo(scope.row)" type="text" size="small">鍔炵悊</el-button> </template> </el-table-column> </el-table> <div> <el-pagination - v-if="total > pageSize" - :page-size="pageSize" - :current-page="pageNum" + v-if="total > queryParams.pageSize" + :page-size="queryParams.pageSize" + :current-page="queryParams.currentPage" :total="total" layout="total, prev, pager, next" @current-change="getList" @@ -95,28 +101,32 @@ </template> <script> -import {getProjectProcessDetail} from "@/api/projectProcess/projectProcess"; +import {getProjectProcessDetail, getProjectProcessDetailTaskList} from "@/api/projectProcess/projectProcess"; export default { name: "index", data() { return { - projectId: null, - processId: null, + loading: false, + tableLoading: false, detailData: {}, - selectTabId: 2, taskList: [], total: 0, - pageSize: 5, - pageNum: 1, + selectTabId: 2, queryParams: { - taskName: '' + taskName: '', + taskType: 'todo', + pageSize: 5, + currentPage: 1, + projectId: null, + processDefId: null, } } }, mounted() { - this.projectId = this.$route.query.projectId - this.processId = this.$route.query.processId + this.queryParams.projectId = this.$route.query.projectId + this.queryParams.processDefId = this.$route.query.processDefId + this.loading = true this.getProjectProcessInfo() }, methods: { @@ -127,11 +137,11 @@ this.$router.push({ path: '/flowable/task/todo/detail/index', query: { - taskName: row.procDefName, - startUser: row.startUserName, + taskName: row.taskName, + startUser: row.promoterName, deployId: row.deployId, taskId: row.taskId, - procInsId: row.procInsId, + procInsId: row.processInsId, executionId: row.executionId } }) @@ -140,7 +150,7 @@ path: '/flowable/task/myProcess/send/index', query: { deployId: row.deployId, - procDefId: row.procDefId, + procDefId: row.processDefId, processName: row.taskName, taskId: row.taskId } @@ -150,23 +160,36 @@ goToProcessDetail(row) { this.$router.push({ path: '/flowable/task/myProcess/detail/index', query: { - procInsId: row.procInsId, + procInsId: row.processInsId, deployId: row.deployId, taskId: row.taskId }}) }, getList() { // 鑾峰彇浠诲姟鍒楄〃 + getProjectProcessDetailTaskList(this.queryParams).then(res => { + this.taskList = res.data + this.total = res.total + this.tableLoading =false + }) }, // 鏌ヨ璇︽儏 getProjectProcessInfo() { - getProjectProcessDetail(this.projectId, this.processId).then(res => { + getProjectProcessDetail(this.queryParams.projectId, this.queryParams.processDefId).then(res => { this.detailData = res.data this.taskList = res.taskList + this.loading = false }) }, changeTab(id, event) { + this.tableLoading = true + let beforeId = this.selectTabId this.selectTabId = id + this.queryParams.taskType = event + if (beforeId !== id) { + this.getList() + } + } } } -- Gitblit v1.8.0