| | |
| | | <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">项目代码:{{detailData.projectCode}}</div> |
| | | <div class="project-info-item"> |
| | | <div style="color: black"> |
| | |
| | | </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}">代办事项<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> |
| | |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="processName" |
| | | label="流程名称" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="promoterUnitName" |
| | | label="发起单位" |
| | | > |
| | |
| | | > |
| | | </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="任务状态" |
| | | > |
| | |
| | | } from "@/api/projectProcess/projectProcess"; |
| | | |
| | | export default { |
| | | name: "index", |
| | | name: "Detail", |
| | | data() { |
| | | return { |
| | | loading: false, |
| | |
| | | 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 |
| | |
| | | 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 |
| | | showAuditing: res.data, |
| | | goBackParams: this.queryParams |
| | | } |
| | | }) |
| | | }) |
| | |
| | | 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 |
| | | taskId: row.taskId, |
| | | goBackParams: this.queryParams |
| | | }}) |
| | | }, |
| | | 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 |
| | | }) |
| | | }, |
| | | // 查询详情 |
| | |
| | | }) |
| | | }, |
| | | changeTab(id, event) { |
| | | this.tableLoading = true |
| | | let beforeId = this.selectTabId |
| | | this.selectTabId = id |
| | | this.queryParams.taskType = event |
| | | if (beforeId !== id) { |
| | | this.getList() |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |