xiangpei
2024-12-13 8b1de8b87d81cb5c4b3c207e10195f392ed330cc
任务驳回功能基础实现
6个文件已修改
72 ■■■■ 已修改文件
src/api/projectProcess/projectProcess.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/definition/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/task/finished/detail/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/task/myProcess/detail/index.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/task/myProcess/send/index.vue 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectProcess/detail/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/projectProcess/projectProcess.js
@@ -69,3 +69,12 @@
  })
}
// 驳回
export function rejectTask(data) {
  return request({
    url: '/project-process/detail/task/reject',
    method: 'post',
    data: data
  })
}
src/views/flowable/definition/index.vue
@@ -62,7 +62,7 @@
      <el-table-column label="流程编号" align="center" prop="deploymentId" :show-overflow-tooltip="true"/>
      <el-table-column label="流程标识" align="center" prop="flowKey" :show-overflow-tooltip="true" />
      <el-table-column label="流程分类" align="center" prop="category" />
      <el-table-column label="流程名称" align="center" width="120" :show-overflow-tooltip="true">
      <el-table-column label="流程名称" align="center" width="200" :show-overflow-tooltip="true">
        <template slot-scope="scope">
          <el-button type="text" @click="handleReadImage(scope.row.deploymentId)">
            <span>{{ scope.row.name }}</span>
src/views/flowable/task/finished/detail/index.vue
@@ -23,7 +23,7 @@
                  :icon="setIcon(item.finishTime)"
                  :color="setColor(item.finishTime)"
                >
                  <p style="font-weight: 700">{{item.taskName}}</p>
                  <p style="font-weight: 700">{{item.taskName}}<span v-if="item.comment.type === '3'" style="color: red">(执行了驳回)</span></p>
                  <el-card :body-style="{ padding: '10px' }">
                    <el-descriptions class="margin-top" :column="1" size="small" border>
                      <el-descriptions-item v-if="item.assigneeName" label-class-name="my-label">
src/views/flowable/task/myProcess/detail/index.vue
@@ -2,7 +2,7 @@
  <div class="app-container">
    <el-card class="box-card" >
      <div slot="header" class="clearfix">
        <span class="el-icon-document">已完成任务</span>
        <span class="el-icon-document">任务详情</span>
        <el-button style="float: right;" size="mini" type="danger" @click="goBack">关闭</el-button>
      </div>
      <el-tabs  tab-position="top" v-model="activeName" @tab-click="handleClick">
@@ -27,7 +27,7 @@
                  :icon="setIcon(item.finishTime)"
                  :color="setColor(item.finishTime)"
                >
                  <p style="font-weight: 700">{{item.taskName}}</p>
                  <p style="font-weight: 700">{{item.taskName}}<span v-if="item.comment && item.comment.type === '3'" style="color: red">(执行了驳回)</span></p>
                  <el-card :body-style="{ padding: '10px' }">
                    <el-descriptions class="margin-top" :column="1" size="small" border>
                      <el-descriptions-item v-if="item.assigneeName" label-class-name="my-label">
@@ -191,7 +191,10 @@
    goBack() {
      this.$router.push({
        path: '/projectFlow/detail',
        query: this.goBackParams
        query: {
          projectId: this.goBackParams.projectId,
          processDefId: this.goBackParams.processDefId
        }
      })
    },
  }
src/views/flowable/task/myProcess/send/index.vue
@@ -12,7 +12,7 @@
          <el-col :span="16" :offset="4" v-if="formDataList && formDataList.length > 0">
            <div v-for="(formDataObj, index) in formDataList" :key="index" class="form-warp" style="position: relative">
              <div v-if="!formDataObj.current" style="position: absolute; top: 2px; right: 2px">
                <el-button type="danger" disabled>驳回(功能开发中)</el-button>
                <el-button type="danger" @click="openRejectTask(formDataObj.beforeNodeDefId)">驳回</el-button>
              </div>
              <div v-if="formDataObj.current" style="margin-bottom: 15px;color: #409eff">当前阶段:<span style="color: red">{{formDataObj.beforeNodeName}}</span></div>
              <div v-else style="margin-bottom: 15px;color: #409eff">前置阶段:<span style="color: #d5904b">{{formDataObj.beforeNodeName}}</span></div>
@@ -43,6 +43,28 @@
        </span>
      </el-dialog>
    </el-card>
    <el-dialog
      :title="`驳回:` + rejectForm.projectName"
      :visible.sync="rejectShow"
      width="950px"
      :destroy-on-close="true"
      :close-on-click-modal="false"
      >
      <div>
        <el-input
          type="textarea"
          :rows="3"
          placeholder="审核建议"
          v-model="rejectForm.auditOpinion">
        </el-input>
      </div>
      <div>
        <el-button type="danger" size="small" @click="rejectTask">驳回</el-button>
      </div>
    </el-dialog>
  </div>
</template>
@@ -54,6 +76,7 @@
import {getNextFlowNodeByStart} from "@/api/flowable/todo";
import FlowUser from '@/components/flow/User'
import FlowRole from '@/components/flow/Role'
import {rejectTask} from "@/api/projectProcess/projectProcess";
export default {
  name: "Record",
@@ -65,6 +88,7 @@
  props: {},
  data() {
    return {
      rejectShow: false,
      goBackParams: {},
      formDataList: [],  // 表单列表
      taskId: '',
@@ -91,7 +115,12 @@
      checkValues: null, // 选中任务接收人员数据
      formData: {}, // 填写的表单数据,
      multiInstanceVars: '', // 会签节点
      formJson: {} // 表单json
      formJson: {}, // 表单json
      rejectForm: {
        auditOpinion: '', // 审核意见
        taskId: '',
        rejectedTaskDefKey: ''  // 被驳回的任务key
      }
    };
  },
  mounted() {
@@ -105,6 +134,17 @@
    this.getFlowFormData(this.taskId);
  },
  methods: {
    rejectTask() {
      rejectTask(this.rejectForm).then(res => {
        this.rejectShow = false
        this.$message.success("驳回成功")
      })
    },
    openRejectTask(rejectedTaskDefKey) {
      this.rejectForm.rejectedTaskDefKey = rejectedTaskDefKey;
      this.rejectForm.taskId = this.taskId;
      this.rejectShow = true
    },
    handleClick(tab, event) {
      if (tab.name === '2'){
        flowXmlAndNode({deployId:this.deployId}).then(res => {
@@ -159,7 +199,10 @@
    goBack() {
      this.$router.push({
        path: '/projectFlow/detail',
        query: this.goBackParams
        query: {
          projectId: this.goBackParams.projectId,
          processDefId: this.goBackParams.processDefId
        }
      })
    },
    /** 申请流程表单数据提交 */
src/views/projectProcess/detail/index.vue
@@ -131,6 +131,7 @@
    }
  },
  mounted() {
    console.log(this.$route.query, "参数")
    this.queryParams.projectId = this.$route.query.projectId
    this.queryParams.processDefId = this.$route.query.processDefId
    this.loading = true