xiangpei
2025-03-11 84a14c24edf92f7072e50b51ee37143d658ecfd4
src/views/projectProcess/detail/index.vue
@@ -19,11 +19,11 @@
      <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(3, 'todo')" :class="{'item-warm': true, 'current-color': true, 'active': 3 === selectTabId}">当前环节</div>
        <div @click="changeTab(3, 'wait')" :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}">按时完成<span v-if="detailData && detailData.statistics">({{detailData.statistics.timelyFinishedTaskNum}})</span></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(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}">督办事项(0)</div>
      </div>
      <div style="display: flex;justify-content: center;align-items: center;margin-top: 20px; position: relative">
@@ -73,45 +73,6 @@
            :formatter="candidateFormatter"
          >
          </el-table-column>
<!--          <el-table-column-->
<!--            prop="promoterUnitName"-->
<!--            label="发起单位"-->
<!--          >-->
<!--          </el-table-column>-->
<!--          <el-table-column-->
<!--            prop="promoterName"-->
<!--            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"
@@ -329,7 +290,7 @@
      this.superviseForm.content ='';
      this.superviseForm.taskId = row.taskId;
      this.superviseForm.projectId = this.$route.query.projectId;
      this.superviseForm.processInsId = row.taskId;
      this.superviseForm.processInsId = row.processInsId;
      this.superviseForm.superviseType = "SUPERVISE";
      this.superviseForm.receiverType = row.handlerType;
      if (row.handlerType === 'USER') {
@@ -415,14 +376,11 @@
      }
    },
    showHandle(row) {
      if (row.taskStatus === '待办' || row.taskStatus === '挂起') {
      if (row.taskStatus === '待办' || row.taskStatus === '挂起' || row.taskStatus === '容缺') {
        if (row.handlerType === "USER") {
          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 row.handlerUnitId.indexOf(this.$store.state.user.deptId) !== -1
          // return this.$store.state.user.name === '市发展改革委' || this.$store.state.user.name === '市住建局'
          return row.handlerUnitId.indexOf(this.$store.state.user.deptId) !== -1 || row.handlerUnitId.some(id => this.$store.state.user.childDeptIds.indexOf(id) !== -1)
        } else if (row.handlerType === "ROLE") {
          return row.handlerUnitId.some(roleId => this.$store.state.user.roleIds.indexOf(roleId) !== -1)
        }
@@ -431,13 +389,7 @@
      }
    },
    goToDo(row) {
      // 查询该任务是否配置了需要审批
      let params = {
        processDefId: row.processDefId,
        taskId: row.taskId
      }
      getTaskIsAuditing(params).then(res => {
        console.log("row",row)
      if (row.taskStatus === '容缺') {
        this.$router.push({
          path: '/flowable/task/myProcess/send/index',
          query: {
@@ -448,12 +400,38 @@
            flowName: this.queryParams.processName,
            projectName: this.detailData.projectName,
            taskId: row.taskId,
            showAuditing: res.data,
            showAuditing: false,
            projectId: this.queryParams.projectId,
            isWait: true,
            goBackParams: this.queryParams
          }
        })
      })
      } else {
        // 查询该任务是否配置了需要审批
        let params = {
          processDefId: row.processDefId,
          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,
              projectId: this.queryParams.projectId,
              isWait: false,
              goBackParams: this.queryParams
            }
          })
        })
      }
    },
    goToProcessDetail(row) {
      this.$router.push({ path: '/flowable/task/myProcess/detail/index',
@@ -491,9 +469,19 @@
        this.total = res.total
      })
    },
    isProject(id) {
      const numericPattern = /^\d+(\.\d+)?$/;
      return numericPattern.test(id)
    },
    // 查询详情
    getProjectProcessInfo() {
      getProjectProcessDetail(this.queryParams.projectId, this.queryParams.processDefId).then(res => {
      const projectType = this.isProject(this.queryParams.projectId) ? "PROJECT" : "ENGINEERING"
      const param = {
        projectId: this.queryParams.projectId,
        processDefId: this.queryParams.processDefId,
        projectType: projectType
      }
      getProjectProcessDetail(param).then(res => {
        this.detailData = res.data
        this.taskList = res.taskList
        this.total = res.total