luohairen
2024-12-10 bd63da40b4f5a5130bbb73fc654e7aaa25cacce6
src/views/projectProcess/detail/index.vue
@@ -1,103 +1,104 @@
<template>
  <div class="app-container" v-loading.fullscreen.lock="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">项目代码:{{detailData.projectCode}}</div>
        <div class="project-info-item">
          <div style="color: black">
            <div>中预资金</div>
            <div>市重点项目</div>
  <div class="app-container">
    <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">项目代码:{{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}">全部事项<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(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}">督办事项(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
        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 > queryParams.pageSize"
        @size-change="getList"
        @current-change="getList"
        :current-page.sync="queryParams.currentPage"
        :page-sizes="[5, 10, 20]"
        :page-size="100"
        layout="sizes, prev, pager, next"
        :total="total">
      </el-pagination>
      <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(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}">督办事项(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="promoterUnitName"
            label="发起单位"
          >
          </el-table-column>
          <el-table-column
            prop="promoterName"
            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
          @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>
@@ -142,7 +143,9 @@
        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
          console.log(this.$store.state.user.deptId, "部门id", row.handlerUnitId)
          return this.$store.state.user.deptId === row.handlerUnitId
          // return this.$store.state.user.name === '市发展改革委' || this.$store.state.user.name === '市住建局'
        } else if (row.handlerType === "ROLE") {
          return this.$auth.hasRole(row.handlerUnitName)
        }
@@ -151,47 +154,46 @@
      }
    },
    goToDo(row) {
      // TODO 这里的判断条件根据实际情况设置
      // let params = {
      //   processDefId: row.processDefId,
      //   taskId: row.taskId
      // }
      // getTaskIsAuditing(params).then(res => {
      //
      // })
      // if (this.showHandle(row)) {
        console.log("zhe")
      // 查询该任务是否配置了需要审批
      let params = {
        processDefId: row.processDefId,
        taskId: row.taskId
      }
      getTaskIsAuditing(params).then(res => {
        this.$router.push({
          path: '/flowable/task/myProcess/send/index',
          query: {
            deployId: row.deployId,
            procDefId: row.processDefId,
            processName: row.taskName,
            taskId: row.taskId
            taskId: row.taskId,
            showAuditing: res.data,
            goBackParams: this.queryParams
          }
        })
      // } 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.processInsId,
          deployId: row.deployId,
          taskId: row.taskId
          taskId: row.taskId,
          goBackParams: this.queryParams
        }})
    },
    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 => {