spyj.vue 9.38 KB
<!--
 * @Description: 审批意见
 * @Autor: renchao
 * @LastEditTime: 2023-09-28 11:27:03
-->
<template>
  <div class="spyj loadingtext">
    <div class="box">
      <div class="spyj_title">
        <div class="righttitle">审批表</div>
      </div>

      <div v-for="(item, index) in tableData" :key="index">
        <el-form
          :model="tableData[index]"
          label-width="120px"
          ref="ruleFormRef'">
          <div class="spyj_form">
            <div class="item_left">
              <div class="right">{{ item.jdmc }}意见</div>
            </div>
            <div class="item_right">
              <el-row>
                <el-col :span="24">
                  <el-form-item label-width="0" class="opinion_item">
                    <el-input
                      :disabled="!ableOperation"
                      type="textarea"
                      :rows="4"
                      class="opinion"
                      placeholder="请输入审批意见"
                      v-model="item.shyj"></el-input>
                    <el-button
                      class="opinion_btn"
                      @click="commonOpinion(index)"
                      v-if="ableOperation">常用意见</el-button>
                  </el-form-item>
                </el-col>
              </el-row>
              <el-row>
                <el-col :span="16">
                  <el-form-item label="审查人">
                    <el-input
                      maxlength="20"
                      :disabled="!ableOperation"
                      v-model="item.shryxm"></el-input>
                  </el-form-item>
                </el-col>
                <el-col :span="8">
                  <el-form-item class="sjxzq" label="审核时间">
                    <el-date-picker
                      :disabled="!ableOperation"
                      v-model="item.shkssj"
                      type="date"
                      placeholder="选择日期"
                      value-format="yyyy-MM-dd HH:mm:ss"
                      format="yyyy-MM-dd">
                    </el-date-picker>
                  </el-form-item>
                </el-col>
              </el-row>
            </div>
          </div>
        </el-form>
      </div>
      <div class="submit_button" v-if="ableOperation">
        <el-button type="primary" @click="onSubmit()">保存</el-button>
      </div>
    </div>
    <!-- <el-empty v-if="isNoData" description="暂无数据"></el-empty> -->
  </div>
</template>
<script>
  import { addidea, getShList } from "@/api/djbRepair.js";
  import { mapGetters } from "vuex";
  export default {
    computed: {
      ...mapGetters(["userData", "yjsqOptions"]),
    },
    data () {
      return {
        isNoData: false,
        currentindex: 0,
        ableOperation: false,
        tableData: [{ jdmc: "初审" }, { jdmc: "复审" }, { jdmc: "核定" }],
        falg: false,
        falg1: false,
        monitor: true
      };
    },

    watch: {
      yjsqOptions: {
        handler (val) {
          if (this.monitor) {
            this.add("");
            this.monitor = false
          } else {
            this.add(val.opinion);
          }
        },
        deep: true,
        immediate: true,
      },
    },
    created () { },
    mounted () {
      this.ableOperation = this.$parent.ableOperation;
      this.getShList();
    },
    methods: {
      /**
         * @description: getShList
         * @param {*} obj
         * @author: renchao
         */
      getShList () {
        this.$startLoading();
        var formdata = {
          bsmRepair: this.$parent.bsmRepair,
        };
        getShList(formdata).then((res) => {
          this.$endLoading();
          if (res.code === 200 && res.result) {
            if (res.result.length) {
              this.tableData = res.result;
            }
          }
        });
      },
      /**
       * @description: judgment
       * @param {*} obj
       * @author: renchao
       */
      judgment (obj) { },
      /**
       * @description: onSubmit
       * @author: renchao
       */
      onSubmit () {
        if (
          this.tableData[2].shyj == null ||
          this.tableData[2].shryxm == null ||
          this.tableData[2].shkssj == null ||
          this.tableData[2].shyj == "" ||
          this.tableData[2].shryxm == "" ||
          this.tableData[2].shkssj == ""
        ) {
          this.falg = false;
          this.$message.error("请完善核定意见信息填写");
        } else {
          this.falg = true;
          if (this.tableData[0].shyj != null && this.tableData[0].shyj != "" ||
            this.tableData[0].shryxm != null && this.tableData[0].shryxm != "" ||
            this.tableData[0].shkssj != null && this.tableData[0].shkssj != "") {
            if (
              this.tableData[0].shyj == null ||
              this.tableData[0].shyj == "" ||
              this.tableData[0].shryxm == null ||
              this.tableData[0].shryxm == "" ||
              this.tableData[0].shkssj == null ||
              this.tableData[0].shkssj == ""
            ) {
              this.$message.error("请完善初审意见信息填写");
              this.falg = false;
            } else {
              this.falg = true;
            }
          } else {
            this.falg = true;
          }
          if (this.tableData[1].shyj != null && this.tableData[1].shyj != "" ||
            this.tableData[1].shryxm != null && this.tableData[1].shryxm != "" ||
            this.tableData[1].shkssj != null && this.tableData[1].shkssj != "") {
            if (
              this.tableData[1].shyj == null ||
              this.tableData[1].shyj == "" ||
              this.tableData[1].shryxm == null ||
              this.tableData[1].shryxm == "" ||
              this.tableData[1].shkssj == null ||
              this.tableData[1].shkssj == ""
            ) {
              this.$message.error("请完善复审意见信息填写");
              this.falg1 = false;
            } else {
              this.falg1 = true;
            }
          } else {
            this.falg1 = true;
          }
        }

        if (this.falg && this.falg1) {
          this.tableData.forEach((item, index) => {
            item["bsmBusiness"] = this.$parent.bsmRepair;
          }),
            addidea(this.tableData).then((res) => {
              if (res.code === 200) {
                this.$message.success("保存成功");
                this.refresh += 1;
              } else {
                this.$message.error(res.message);
              }
            });
        } else {
          return false;
        }
      },
      //打开常用意见列表弹窗
      /**
       * @description: 打开常用意见列表弹窗
       * @param {*} index
       * @author: renchao
       */
      commonOpinion (index) {
        this.currentindex = index;
        this.$popupDialog(
          "常用意见",
          "workflow/components/dialog/commonOpinion",
          {},
          "70%",
          true
        );
      },
      /**
       * @description: add
       * @param {*} val
       * @author: renchao
       */
      add (val) {
        if (val != "") {
          this.$set(this.tableData[this.currentindex], "shyj", val);
        }
      },
    },
  };
</script>
<style scoped lang="scss">
  @import "~@/styles/mixin.scss";

  .spyj {
    width: 100%;
    height: 100%;
    background-color: #f5f5f5;
    .box {
      overflow-x: auto;
      width: 100%;
      height: 95%;
      background: #fff;
      text-align: center;
      padding: 4px;
      overflow-y: scroll;
      padding-top: 20px;
      padding: 20px 40px;
      .spyj_title {
        width: 100%;
        height: 80px;
        border: 1px solid $borderColor;
        background-color: #eceef2;
        display: flex;
      }
      .leftadd {
        width: 3%;
        height: 100%;
        display: flex;
        font-size: 14px;
        text-indent: 20px;
        align-items: center;
        border: 1px solid $borderColor;
      }
      .righttitle {
        width: 80%;
        height: 100%;
        line-height: 80px;
        border: 1px solid $borderColor;
        margin: auto;
        font-size: 22px;
        font-weight: 400;
      }
    }

    /deep/.el-form-item {
      margin-bottom: 0;
    }

    .bottom10 {
      margin-bottom: 15px;
    }

    .spyj_form {
      display: flex;
      border: 1px solid $borderColor;

      .item_left {
        width: 150px;
        background-color: #f8f8fa;
        color: #606266;
        display: flex;
        font-size: 14px;
        text-indent: 50px;
        align-items: center;
        border-right: 1px solid $borderColor;
      }

      .item_right {
        flex: 1;
        width: 100%;

        /deep/.el-form-item__label {
          background-color: #f8f8fa;
        }
        /deep/.el-form-item__content {
          display: block;
          text-align: left;
        }
        .opinion_item {
          /deep/.el-form-item__error {
            margin-top: -16px !important;
            left: 3px;
          }

          border-bottom: 1px solid $borderColor;
        }

        .opinion {
          position: relative;
          font-size: 14px;

          /deep/.el-textarea__inner {
            border: none;
          }
        }

        .opinion_btn {
          position: absolute;
          right: 15px;
          bottom: 10px;
        }
      }
    }

    .submit_button {
      text-align: center;
      margin: 15px 0;
    }

    .el-date-editor.el-input {
      width: 100%;
    }
  }
</style>