djfDjSh.vue 9.11 KB
<!--
 * @Description  :审核信息表单组件
 * @Autor        : miaofang
 * @LastEditTime : 2023-05-17 13:28:52
-->
<template>
  <div class="auditInfo itemForm">
    <el-form :model="form" ref="formList" label-width="110px" :key="key">
      <div v-for="(item, index) in form.auditInfo" :key="index" class="auditInfo-item">
        <p class="auditInfo-item-name">审核信息{{ index + 1 }}</p>

        <div class="auditInfo-item-list">
          <el-row class="auditInfo-item-input">
            <el-col :span="8">
              <el-form-item :prop="'auditInfo.' + index + '.YSDM'" :rules="rules.YSDM">
                <span slot="label">
                  要素代码: <br />
                  <p class="label-detail">(YSDM)</p>
                </span>
                <el-input :disabled="$store.state.business.Edit" v-model="form.auditInfo[index].YSDM"></el-input>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item :prop="'auditInfo.' + index + '.YWH'" :rules="rules.YWH">
                <span slot="label">
                  业务号: <br />
                  <p class="label-detail">(YWH)</p>
                </span>
                <el-input :disabled="$store.state.business.Edit" v-model="form.auditInfo[index].YWH"></el-input>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item :prop="'auditInfo.' + index + '.JDMC'" :rules="rules.JDMC">
                <span slot="label">
                  节点名称: <br />
                  <p class="label-detail">(JDMC)</p>
                </span>
                <el-input :disabled="$store.state.business.Edit" v-model="form.auditInfo[index].JDMC"></el-input>
              </el-form-item>
            </el-col>
          </el-row>

          <el-row class="auditInfo-item-input">
            <el-col :span="24">
              <el-form-item :prop="'auditInfo.' + index + '.SHYJ'" :rules="rules.SHYJ">
                <span slot="label">
                  审核意见: <br />
                  <p class="label-detail">(SHYJ)</p>
                </span>
                <el-input :disabled="$store.state.business.Edit" v-model="form.auditInfo[index].SHYJ" type="textarea"
                  :rows="2"></el-input>
              </el-form-item>
            </el-col>

          </el-row>

          <el-row class="auditInfo-item-input">
            <el-col :span="8">
              <el-form-item :prop="'auditInfo.' + index + '.SHRYXM'" :rules="rules.SHRYXM">
                <span slot="label">
                  审核人员姓名: <br />
                  <p class="label-detail">(SHRYXM)</p>
                </span>
                <el-input :disabled="$store.state.business.Edit" v-model="form.auditInfo[index].SHRYXM"></el-input>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item :prop="'auditInfo.' + index + '.SHKSSJ'" :rules="rules.SHKSSJ">
                <span slot="label">
                  审核开始时间: <br />
                  <p class="label-detail">(SHKSSJ)</p>
                </span>
                <el-date-picker :disabled="$store.state.business.Edit" type="datetime" clearable
                  v-model="form.auditInfo[index].SHKSSJ" value-format="yyyy-MM-dd HH:mm:ss"
                  :picker-options="item.traceStart" @change="changeTraceStart(item)"></el-date-picker>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item :prop="'auditInfo.' + index + '.SHJSSJ'" :rules="rules.SHJSSJ">
                <span slot="label">
                  审核结束时间: <br />
                  <p class="label-detail">(SHJSSJ)</p>
                </span>
                <el-date-picker :disabled="$store.state.business.Edit" type="datetime" clearable
                  v-model="form.auditInfo[index].SHJSSJ" :picker-options="item.traceEnd" @change="changeTraceEnd(item)"
                  value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
              </el-form-item>
            </el-col>
          </el-row>

          <el-row class="auditInfo-item-input">
            <el-col :span="8">
              <el-form-item :prop="'auditInfo.' + index + '.SXH'" :rules="{ ...rules.SXH, ...typeNum }">
                <span slot="label">
                  顺序号: <br />
                  <p class="label-detail">(SXH)</p>
                </span>
                <el-input-number controls-position="right" :disabled="$store.state.business.Edit"
                  v-model.number="form.auditInfo[index].SXH" title="" type="number"
                  v-only-number="{ max: 9999, min: 0, precision: 0 }"></el-input-number>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item :prop="'auditInfo.' + index + '.CZJG'" :rules="rules.SHKSSJ">
                <span slot="label">
                  操作结果: <br />
                  <p class="label-detail">(CZJG)</p>
                </span>
                <el-select :disabled="$store.state.business.Edit" v-model="form.auditInfo[index].CZJG">
                  <el-option v-for="item in dicData['A37']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item :prop="'auditInfo.' + index + '.QXDM'" :rules="rules.QXDM">
                <span slot="label">
                  区县代码: <br />
                  <p class="label-detail">(QXDM)</p>
                </span>
                <el-input :disabled="$store.state.business.Edit" v-model="form.auditInfo[index].QXDM"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="8">
              <el-form-item :prop="'auditInfo.' + index + '.BZ'" :rules="rules.BZ">
                <span slot="label">
                  区县代码: <br />
                  <p class="label-detail">(BZ)</p>
                </span>
                <el-input :disabled="$store.state.business.Edit" v-model="form.auditInfo[index].BZ"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
        </div>
      </div>
    </el-form>
    <message-tips ref="msg" />
  </div>
</template>
<script>
  import djfDjSh from "@/api/djfDjSh";
  import ruleMixin from "@/mixins/ruleMixin.js";
  // 审核信息
  export default {
    mixins: [ruleMixin],
    props: {
      bsmSjsb: {
        type: String,
        default: "",
      },
      bsmYwsjb: {
        type: String,
        default: "",
      },
    },
    data () {
      return {
        form: {
          auditInfo: [
            {
              YSDM: "",
              YWH: "",
              JDMC: "",
              SHYJ: "",
              SHRYXM: "",
              SHKSSJ: "",
              traceStart: {},
              SHJSSJ: "",
              traceEnd: {},
              SXH: "",
              CZJG: "",
              QXDM: "",
              BZ: "",
            },
          ],
        },
      };
    },
    methods: {
      changeTraceEnd (item) {
        if (item.SHJSSJ !== null) {
          //当前值为空 也会进行判断 所以条件最好不要非空验证
          item.traceStart = {
            disabledDate: (time) => {
              return time.getTime() > new Date(item.SHJSSJ).getTime(); //大于结束时间的不选
            },
          };
        } else {
          item.traceStart = {};
        }
      },
      //跟踪API结束时间限制开始时间
      changeTraceStart (item) {
        if (item.SHKSSJ !== null) {
          //当前值为空 也会进行判断 所以条件最好不要非空验证
          item.traceEnd = {
            disabledDate: (time) => {
              return time.getTime() < new Date(item.SHKSSJ).getTime(); //小于开始时间的不选
            },
          };
        } else {
          item.traceEnd = {};
        }
      },
      async featchData () {
        try {
          let { result: res } = await djfDjSh.getDjfDjShById(this.bsmSjsb);
          this.form.auditInfo = res;
          //this.featchRule()
        } catch (error) {
          this.$refs.msg.messageShow();
        }
      },
      handleUpdateForm () {
        return new Promise(async (resolve) => {
          try {
            let res = await djfDjSh.updateDjfDjSh(this.form.auditInfo);
            // this.$refs['formList'].resetFields();
            resolve(res.code);
          } catch (error) {
            this.$refs.msg.messageShow();
          }
        });
      },
    },
  };
</script>
<style scoped lang="scss">
  @import "./css/itemForm.scss";

  .auditInfo-item {
    display: flex;
    height: 100%;
    margin-bottom: 15px;
    margin-right: 5px;

    &-name {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 20px;
      padding: 10px 20px;
      line-height: 28px;
      border: 1px solid #ccc;
      margin-right: 15px;
      border-radius: 3px;
    }

    &-list {
      width: 100%;
      flex: 1;
      display: flex;
      justify-content: center;
      flex-direction: column;
    }
  }
</style>