th.vue 3.19 KB
<template>
  <dialogBox title="退回" @submitForm="submitForm" saveButton="确认退回" width="80%" @closeDialog="closeDialog"
    v-model="value">
    <div class="from-clues">
      <!-- 表单部分 -->
      <div class="from-clues-header">
        <el-form ref="queryForm" label-width="120px">
          <div>
            <lb-table :column="columns" border :heightNum="390" :pagination="false" heightNumSetting :data="tableData">
            </lb-table>
            <el-form-item label="退回意见:">
              <el-input class="textArea" type="textarea" v-model="outstepopinion"></el-input>
            </el-form-item>
          </div>
        </el-form>
      </div>
    </div>
  </dialogBox>
</template>

<script>
import { getTaskBackNode, sendBackTask } from "@/api/fqsq.js"
export default {
  components: {
  },
  props: {
    value: { type: Boolean, default: false },
    queryForm: { type: Object },
    taskId: { type: String },
    bsmBusiness: { type: String }
  },
  data () {
    const columns = [
      {
        label: "",
        width: "36px",
        render: (h, scope) => {
          return (
            <div class="orgColumn">
              <el-radio v-model={this.radioVal} label={scope.row.taskid} onChange={() => {
                this.radioClick(scope.row);
              }}>
                {" "}
                &ensp;
              </el-radio>
            </div>
          );
        },
      },
      {
        prop: "activityName",
        label: "退回环节名称",
      },
      {
        prop: "assignee",
        label: "办理人",
      },
    ];
    return {
      columns,
      radioVal: "",
      outstepopinion: "",
      tableData: [],
      list: {
        bsmSlsq: "",
        backNodeList: [],
      },
      sumbitList: {},
      activityId: "",
    }
  },
  mounted () {
    if (this.$route.query.bsmSlsq) {
      this.list.bsmSlsq = this.$route.query.bsmSlsq
    }
  },
  methods: {
    tablelistFn () {
      getTaskBackNode({ bsmBusiness: this.bsmBusiness }).then(res => {
        if (res.code === 200) {
          this.tableData = res.result
        }
      })
    },
    radioClick (scope) {
      this.activityId = scope.activityId
      this.sumbitList = scope

    },
    submitForm () {
      if (this.activityId == undefined) {
        this.$message.error('请至少选择一条数据');
        return
      }
      this.list.backNodeList.push({
        id: this.taskId,
        taskid: this.activityId,
        processInstanceId: this.sumbitList.processInstanceId,
        bsmBusiness: this.bsmBusiness,
        outstepopinion: this.outstepopinion
      })
      sendBackTask(this.list).then(res => {
        if (res.code === 200) {
          this.$message.success('退回成功')
          setTimeout(() => {
            window.opener = null;
            window.open("about:blank", "_self");
            window.close();
            this.$emit('input', false)
          }, 1000);

        } else {
          this.$message.error(res.message)
        }
      })
    },
    closeDialog () {
      this.$emit("input", false);
    },

  }
}
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";

.textArea {
  /deep/.el-textarea__inner {
    min-height: 90px !important;
  }
}
</style>