From b0d5edcb0445d654154ba3baf8110886b8543d61 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期五, 06 十二月 2024 14:05:54 +0800 Subject: [PATCH] bug修改 --- src/views/projectProcess/detail/index.vue | 289 +++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 177 insertions(+), 112 deletions(-) diff --git a/src/views/projectProcess/detail/index.vue b/src/views/projectProcess/detail/index.vue index 1b1b5f0..c3415ed 100644 --- a/src/views/projectProcess/detail/index.vue +++ b/src/views/projectProcess/detail/index.vue @@ -1,172 +1,237 @@ <template> <div class="app-container"> - <div class="top"> - <div class="project-title"> - <h2>椤圭洰鍚嶇О锛歿{detailData.projectName}}</h2> - </div> - <div class="project-info"> - <div class="project-info-item"></div> - <div class="project-info-item">椤圭洰浠g爜锛歿{detailData.projectCode}}</div> - <div class="project-info-item"> - <div style="color: black"> - <div>涓璧勯噾</div> - <div>甯傞噸鐐归」鐩�</div> + <div v-loading="loading"> + <div class="top"> + <div class="project-title"> + <h2>椤圭洰鍚嶇О锛歿{detailData.projectName}}</h2> + </div> + <div class="project-info"> + <div class="project-info-item"></div> + <div class="project-info-item">椤圭洰浠g爜锛歿{detailData.projectCode}}</div> + <div class="project-info-item"> + <div style="color: black"> + <div>涓璧勯噾</div> + <div>甯傞噸鐐归」鐩�</div> + </div> </div> </div> </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(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> - <div @click="changeTab(8, 'urge')" :class="{'item-warm': true, 'urge-color': true, 'active': 8 === selectTabId}">鐫e姙浜嬮」锛�0锛�</div> - </div> - <div style="display: flex;justify-content: center;align-items: center;margin-top: 20px"> - <el-form :inline="true" :model="queryParams" class="demo-form-inline"> - <el-form-item label="浠诲姟鍚嶇О"> - <el-input v-model="queryParams.taskName" placeholder="浠诲姟鍚嶇О"></el-input> - </el-form-item> - <el-form-item> - <el-button type="primary" @click="getList">鏌ヨ</el-button> - </el-form-item> - </el-form> - </div> - <div class="table"> - <el-table - :data="taskList" - border - style="width: 100%"> - <el-table-column - prop="taskName" - label="浠诲姟鍚嶇О" - > - </el-table-column> - <el-table-column - prop="procDefName" - label="娴佺▼鍚嶇О" - > - </el-table-column> - <el-table-column - prop="startUserName" - label="鍙戣捣浜�" - > - </el-table-column> - <el-table-column - prop="startDeptName" - label="鍙戣捣鍗曚綅" - > - </el-table-column> - <el-table-column - prop="assigneeDeptName" - label="澶勭悊鍗曚綅" - > - </el-table-column> - <el-table-column - prop="assigneeName" - label="瀹為檯澶勭悊浜�" - > - </el-table-column> - <el-table-column - fixed="right" - 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> - </template> - </el-table-column> - </el-table> - <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(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> + <div @click="changeTab(8, 'urge')" :class="{'item-warm': true, 'urge-color': true, 'active': 8 === selectTabId}">鐫e姙浜嬮」锛�0锛�</div> + </div> + <div style="display: flex;justify-content: center;align-items: center;margin-top: 20px"> + <el-form :inline="true" :model="queryParams" class="demo-form-inline"> + <el-form-item label="浠诲姟鍚嶇О"> + <el-input v-model="queryParams.taskName" placeholder="浠诲姟鍚嶇О"></el-input> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="search">鏌ヨ</el-button> + </el-form-item> + </el-form> + </div> + <div class="table"> + <el-table + v-loading="tableLoading" + :data="taskList" + border + style="width: 100%"> + <el-table-column + prop="taskName" + label="浠诲姟鍚嶇О" + > + </el-table-column> + <el-table-column + prop="processName" + label="娴佺▼鍚嶇О" + > + </el-table-column> + <el-table-column + prop="promoterName" + label="鍙戣捣浜�" + > + </el-table-column> + <el-table-column + prop="promoterUnitName" + label="鍙戣捣鍗曚綅" + > + </el-table-column> + <el-table-column + prop="handlerUnitName" + label="澶勭悊鍗曚綅" + > + </el-table-column> + <el-table-column + prop="handlerName" + label="瀹為檯澶勭悊浜�" + > + </el-table-column> + <el-table-column + prop="taskStatus" + label="浠诲姟鐘舵��" + > + </el-table-column> + <el-table-column + fixed="right" + label="鎿嶄綔" + width="100"> + <template slot-scope="scope"> + <el-button v-if="scope.row.taskStatus !== '鏈紑濮�'" @click="goToProcessDetail(scope.row)" type="text" size="small">鏌ョ湅</el-button> + <el-button v-if="showHandle(scope.row)" @click="goToDo(scope.row)" type="text" size="small">鍔炵悊</el-button> + </template> + </el-table-column> + </el-table> + </div> + <div class="table" style="margin-top: 15px"> <el-pagination - v-if="total > pageSize" - :page-size="pageSize" - :current-page="pageNum" - :total="total" - layout="total, prev, pager, next" - @current-change="getList" - ></el-pagination> + @size-change="sizeChange" + @current-change="pageChange" + :current-page.sync="queryParams.currentPage" + :page-sizes="[5, 10, 20]" + :page-size="100" + layout="sizes, prev, pager, next" + :total="total"> + </el-pagination> </div> </div> </div> </template> <script> -import {getProjectProcessDetail} from "@/api/projectProcess/projectProcess"; +import { + getProjectProcessDetail, + getProjectProcessDetailTaskList, + getTaskIsAuditing +} 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: { + showHandle(row) { + console.log(this.$store.state.user, "鐢ㄦ埛淇℃伅") + if (row.taskStatus === '寰呭姙') { + if (row.handlerType === "USER") { + return this.$store.state.user.id === row.handlerId + } else if (row.handlerType === "DEPT") { + // return this.$store.state.user.id === row.handlerId + return this.$store.state.user.name === '甯傚彂灞曟敼闈╁' || this.$store.state.user.name === '甯備綇寤哄眬' + } else if (row.handlerType === "ROLE") { + return this.$auth.hasRole(row.handlerUnitName) + } + } else { + return false + } + }, goToDo(row) { // TODO 杩欓噷鐨勫垽鏂潯浠舵牴鎹疄闄呮儏鍐佃缃� - if (this.$auth.hasRole('admin')) { + // let params = { + // processDefId: row.processDefId, + // taskId: row.taskId + // } + // getTaskIsAuditing(params).then(res => { + // + // }) + // if (this.showHandle(row)) { console.log("zhe") - this.$router.push({ - path: '/flowable/task/todo/detail/index', - query: { - taskName: row.procDefName, - startUser: row.startUserName, - deployId: row.deployId, - taskId: row.taskId, - procInsId: row.procInsId, - executionId: row.executionId - } - }) - } else { this.$router.push({ path: '/flowable/task/myProcess/send/index', query: { deployId: row.deployId, - procDefId: row.procDefId, - processName: row.procDefName, + procDefId: row.processDefId, + processName: row.taskName, taskId: row.taskId } }) - } + // } else { + // this.$router.push({ + // path: '/flowable/task/todo/detail/index', + // query: { + // taskName: row.taskName, + // startUser: row.promoterName, + // deployId: row.deployId, + // taskId: row.taskId, + // procInsId: row.processInsId, + // executionId: row.executionId + // } + // }) + // } }, goToProcessDetail(row) { this.$router.push({ path: '/flowable/task/myProcess/detail/index', query: { - procInsId: row.procInsId, + procInsId: row.processInsId, deployId: row.deployId, taskId: row.taskId }}) }, + search() { + this.queryParams.currentPage = 1; + this.getList() + }, + sizeChange(pageSize) { + this.queryParams.pageSize = pageSize; + this.getList() + }, + pageChange(pageNum) { + this.queryParams.currentPage = pageNum; + this.getList() + }, 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.total = res.total + 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