shikeying
2023-04-03 d8887d36d08e3a0a5068763c8460b0b4f16e87ee
src/views/activiti/task/index.vue
@@ -1,14 +1,13 @@
<template>
  <div class="app-container">
    <el-table v-loading="loading" :data="tastList">
      <!--      <el-table-column label="流程ID" align="center" prop="id"/>-->
      <el-table-column label="流程名称" align="center" prop="instanceName"/>
      <el-table-column label="任务节点名称" align="center" prop="name"/>
      <el-table-column label="任务状态" align="center" prop="status"/>
      <el-table-column label="办理人" align="center" prop="assignee"/>
      <el-table-column label="创建时间" align="center" prop="createdDate"/>
      <el-table-column label="流程名称" align="center" prop="title"/>
      <el-table-column label="任务节点名称" align="center" prop="taskName"/>
      <el-table-column label="任务状态" align="center" prop=""/>
      <el-table-column label="办理人" align="center" prop="userId"/>
      <el-table-column label="创建时间" align="center" prop="createTime"/>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
@@ -16,7 +15,7 @@
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="examineAndApprove (scope.row)"
            @click="showTodoDetail(scope.row)"
            v-hasPermi="['wf:task:**']"
          >审批
          </el-button>
@@ -34,30 +33,40 @@
    <!-- 审批对话框 -->
    <el-dialog :title="title" :visible.sync="open" v-if="open" width="500px" append-to-body>
      <leaveHistoryForm :businessKey="businessKey" v-if="'leave'==definitionKey"/>
<!--      <leaveHistoryForm :businessKey="businessKey" v-if="'leave'==definitionKey"/>-->
      <el-form :model="form" ref="form" label-width="100px" class="demo-dynamic">
        <el-form-item
          v-for="(domain, index) in form.formData"
          :label="domain.controlLable"
          :key="index"
        >
          <el-radio-group v-model="domain.controlValue" v-if="'radio'==domain.controlType">
            <el-radio v-for="(defaults,indexd) in domain.controlDefault.split('--__--')"
                      :label=indexd
                      :key="indexd"
                      >{{defaults}}
            </el-radio>
          </el-radio-group>
          <el-input type="textarea" v-model="domain.controlValue" v-if="'textarea'==domain.controlType"
          ></el-input>
        <el-form-item label="流程名称">
          <el-input v-model="todoTask.title"/>
        </el-form-item>
        <el-form-item label="任务名称">
          <el-input v-model="todoTask.taskName"/>
        </el-form-item>
        <el-form-item label="业务主键" prop="businessKey">
<!--          <el-input v-model="todoTask.businessKey"/>-->
          <el-input v-model="form.businessKey"/>
        </el-form-item>
        <el-form-item label="流程标识" prop="processDefinitionKey">
<!--          <el-input v-model="todoTask.processDefinitionKey"/>-->
          <el-input v-model="form.processDefinitionKey"/>
        </el-form-item>
        <el-form-item label="任务ID" prop="taskInstanceId">
<!--          <el-input v-model="todoTask.id"/>-->
          <el-input v-model="form.taskInstanceId"/>
        </el-form-item>
        <el-form-item label="审批选项" prop="approveResult">
          <el-radio-group v-model="form.approveResult">
            <el-radio value="yes">同意</el-radio>
            <el-radio value="no">退回</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item label="审批意见" prop="approveSummary">
          <el-input v-model="form.approveSummary" placeholder="输入审批意见" maxlength="90" />
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
        <el-button type="primary" @click="submitForm">转 发</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>
@@ -65,19 +74,19 @@
</template>
<script>
  import {listTask, formDataShow, formDataSave} from "@/api/activiti/task";
  import leaveHistoryForm from "@/views/workflow/leave/leaveHistoryForm";
  import {listTask, todoDetail, transmission, formDataShow, formDataSave} from "@/api/activiti/task";
  // import leaveHistoryForm from "@/views/workflow/leave/leaveHistoryForm";
  export default {
    name: "Leave",
    components: {leaveHistoryForm},
    components: {},
    data() {
      return {
        id:'',
        definitionKey: '',
        businessKey: '',
        // 当前待办任务详细(点击的详情),2023-04-03
        todoTask: undefined,
        // 遮罩层
        loading: true,
        // 选中数组
@@ -103,7 +112,13 @@
        },
        // 表单参数
        form: {
          formData:[]
          businessKey: undefined,
          processDefinitionKey: undefined,
          assignee: undefined,
          taskInstanceId: undefined,
          approveResult: undefined,
          approveSummary: '',
          approveTime: undefined
        },
        // 表单校验
        rules: {}
@@ -130,59 +145,40 @@
      },
      // 表单重置
      reset() {
        this.definitionKey = '',
          this.businessKey = '',
          this.form = {
            formData:[],
          };
        this.definitionKey = '';
        this.businessKey = '';
        this.form = {};
        this.resetForm("form");
      },
      /** 审批按钮操作 */
      examineAndApprove(row) {
        console.log(row)
      showTodoDetail(row) {
        console.log(row);
        this.reset();
        this.definitionKey = row.definitionKey;
        this.businessKey = row.businessKey;
        this.id=row.id;
        formDataShow(row.id).then(response => {
        todoDetail(row).then(response => {
          // FormProperty_3qipis2--__!!radio--__!!审批意见--__!!i--__!!同意--__--不同意
          // FormProperty_0lffpcm--__!!textarea--__!!批注--__!!f--__!!null
          let datas = response.data;
          let formData = []
          for (let i = 0; i < datas.length; i++) {
            let strings = datas[i].split('--__!!')
            let controlValue = null
            let controlDefault = null
            switch (strings[1]) {
              case 'radio':
                controlValue = 0;
                controlDefault = strings[4]
                break;
              // default:
            }
            formData.push({
              controlId: strings[0],
              controlType: strings[1],
              controlLable: strings[2],
              controlIsParam: strings[3],
              controlValue: controlValue,
              controlDefault: controlDefault
            })
          }
          this.form.formData = formData;
          this.todoTask = response.data;
          this.form.businessKey = this.todoTask.businessKey;
          this.form.taskInstanceId = this.todoTask.id;
          this.form.processDefinitionKey = this.todoTask.processDefinitionKey;
          // this.form.formData = formData;
          this.open = true;
          this.title = "审批";
        });
      },
      /** 提交按钮 */
      submitForm() {
        formDataSave(this.id,this.form.formData).then(response => {
        transmission(this.form).then(response => {
          this.$modal.msgSuccess("审批成功");
          this.open = false;
          this.getList();
        });
      },
      }
    }
  };
</script>