From e563871312e934fedf153c4b83ca5ba3b147c36c Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期五, 17 一月 2025 11:47:42 +0800 Subject: [PATCH] 流程推进详情,办理按钮的权限判断完善,转办传递项目id、流程实例id --- src/views/projectProcess/detail/index.vue | 93 ++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 76 insertions(+), 17 deletions(-) diff --git a/src/views/projectProcess/detail/index.vue b/src/views/projectProcess/detail/index.vue index 37167c0..2929716 100644 --- a/src/views/projectProcess/detail/index.vue +++ b/src/views/projectProcess/detail/index.vue @@ -6,7 +6,7 @@ <h2>椤圭洰鍚嶇О锛歿{detailData.projectName}}</h2> </div> <div class="project-info"> - <div class="project-info-item"></div> + <div class="project-info-item">娴佺▼鍚嶇О锛歿{queryParams.processName}}</div> <div class="project-info-item">椤圭洰浠g爜锛歿{detailData.projectCode}}</div> <div class="project-info-item"> <div style="color: black"> @@ -18,7 +18,7 @@ </div> <div class="search-warp"> <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(2, 'todo')" :class="{'item-warm': true, 'all-color': true, 'active': 2 === selectTabId}">寰呭姙浜嬮」<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> @@ -48,11 +48,6 @@ > </el-table-column> <el-table-column - prop="processName" - label="娴佺▼鍚嶇О" - > - </el-table-column> - <el-table-column prop="promoterUnitName" label="鍙戣捣鍗曚綅" > @@ -63,16 +58,36 @@ > </el-table-column> <el-table-column + align="center" + prop="handlerType" + label="澶勭悊鏂圭被鍨�" + > + <template slot-scope="scope"> + <el-tag v-if="scope.row.handlerType === 'USER'">浜哄憳璐﹀彿</el-tag> + <el-tag type="success" v-else-if="scope.row.handlerType === 'DEPT'">鍗曚綅</el-tag> + <el-tag type="info" v-else-if="scope.row.handlerType === 'ROLE'">瑙掕壊</el-tag> + </template> + </el-table-column> + <el-table-column prop="handlerUnitName" label="澶勭悊鍗曚綅" + :formatter="unitFormatter" + > + </el-table-column> + <el-table-column + prop="handlerName" + label="鍊欓�夊鐞嗕汉" + :formatter="candidateFormatter" > </el-table-column> <el-table-column prop="handlerName" label="瀹為檯澶勭悊浜�" + :formatter="finalFinishedFormatter" > </el-table-column> <el-table-column + align="center" prop="taskStatus" label="浠诲姟鐘舵��" > @@ -111,7 +126,7 @@ } from "@/api/projectProcess/projectProcess"; export default { - name: "index", + name: "Detail", data() { return { loading: false, @@ -127,27 +142,63 @@ currentPage: 1, projectId: null, processDefId: null, + processName: '' // 娴佺▼鍚嶇О } } }, mounted() { - this.queryParams.projectId = this.$route.query.projectId - this.queryParams.processDefId = this.$route.query.processDefId + console.log(this.$route.query, "鍙傛暟") + let params = JSON.parse(sessionStorage.getItem("projectProDetail")) + console.log(params, "鍙傛暟") + if (!params || ! params.projectId) { + this.queryParams.projectId = this.$route.query.projectId + this.queryParams.processDefId = this.$route.query.processDefId + this.queryParams.processName = this.$route.query.processName + sessionStorage.setItem("projectProDetail", JSON.stringify(this.queryParams)) + } else { + this.queryParams = params + } this.loading = true this.getProjectProcessInfo() }, methods: { + unitFormatter(row) { + if (row.handlerType === 'USER') { + return null; + } else if (row.handlerType === 'DEPT') { + return row.handlerUnitName.join("銆�") + } else if (row.handlerType === 'ROLE') { + return row.handlerUnitName.join('銆�') + } + }, + candidateFormatter(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('銆�') + } + }, + finalFinishedFormatter(row) { + // 涓嶆槸宸插畬鎴愮殑鐘舵�佹病鏈夊疄闄呭鐞嗕汉锛屽凡瀹屾垚鐨勭姸鎬佸彧鏈変竴涓汉 + if (row.taskStatus !== '宸插畬鎴�') { + return null + } else { + return row.actualHandlerUserName + } + }, showHandle(row) { - console.log(this.$store.state.user, "鐢ㄦ埛淇℃伅") if (row.taskStatus === '寰呭姙') { if (row.handlerType === "USER") { - return this.$store.state.user.id === row.handlerId + console.log(row.handlerId.indexOf(this.$store.state.user.id) !== -1, "鎴戞槸涓嶆槸") + return row.handlerId.indexOf(this.$store.state.user.id) !== -1 } else if (row.handlerType === "DEPT") { console.log(this.$store.state.user.deptId, "閮ㄩ棬id", row.handlerUnitId) - return this.$store.state.user.deptId === row.handlerUnitId + return row.handlerUnitId.indexOf(this.$store.state.user.deptId) !== -1 // return this.$store.state.user.name === '甯傚彂灞曟敼闈╁' || this.$store.state.user.name === '甯備綇寤哄眬' } else if (row.handlerType === "ROLE") { - return this.$auth.hasRole(row.handlerUnitName) + return row.handlerUnitId.some(roleId => this.$store.state.user.roleIds.indexOf(roleId) !== -1) } } else { return false @@ -160,12 +211,16 @@ taskId: row.taskId } getTaskIsAuditing(params).then(res => { + console.log("row",row) this.$router.push({ path: '/flowable/task/myProcess/send/index', query: { deployId: row.deployId, procDefId: row.processDefId, + procInsId: row.processInsId, processName: row.taskName, + flowName: this.queryParams.processName, + projectName: this.detailData.projectName, taskId: row.taskId, showAuditing: res.data, goBackParams: this.queryParams @@ -176,6 +231,8 @@ goToProcessDetail(row) { this.$router.push({ path: '/flowable/task/myProcess/detail/index', query: { + projectName: this.detailData.projectName, + flowName: this.queryParams.processName, procInsId: row.processInsId, deployId: row.deployId, taskId: row.taskId, @@ -184,22 +241,26 @@ }, search() { this.queryParams.currentPage = 1; + this.tableLoading = true this.getList() }, sizeChange(pageSize) { + this.tableLoading = true this.queryParams.pageSize = pageSize; this.getList() }, pageChange(pageNum) { + this.tableLoading = true this.queryParams.currentPage = pageNum; this.getList() }, getList() { + this.tableLoading = true // 鑾峰彇浠诲姟鍒楄〃 getProjectProcessDetailTaskList(this.queryParams).then(res => { + this.tableLoading =false this.taskList = res.data this.total = res.total - this.tableLoading =false }) }, // 鏌ヨ璇︽儏 @@ -212,14 +273,12 @@ }) }, 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