receivingInfo.vue 9.3 KB
<template>
  <div class="receivingInfo itemForm">
    <el-form :model="form" :rules="rules" ref="formList" label-width="112px" :key="key">
      <div v-for="(item, index) in form.receivingInfo" :key="index" class="receivingInfo-item">
        <p class="receivingInfo-item-name">收件信息{{ index + 1 }}</p>

        <div class="receivingInfo-item-list">
          <el-row class="receivingInfo-item-input">
            <el-col :span="8">
              <el-form-item :prop="'receivingInfo.' + 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.receivingInfo[index].YSDM"
                  placeholder="要素代码"></el-input>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item :prop="'receivingInfo.' + 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.receivingInfo[index].YWH"
                  placeholder="业务号"></el-input>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item :prop="'receivingInfo.' + index + '.SJSJ'" :rules="rules.SJSJ">
                <span slot="label">
                  收件时间: <br />
                  <p class="label-detail">(SJSJ)</p>
                </span>
                <el-date-picker :disabled="$store.state.business.Edit" placeholder="收件时间" type="datetime" clearable
                  v-model="form.receivingInfo[index].SJSJ" value-format="yyyy-MM-dd HH:mm:ss">
                </el-date-picker>
              </el-form-item>
            </el-col>
          </el-row>

          <el-row class="receivingInfo-item-input">
            <el-col :span="8">
              <el-form-item class="borderTopNone" :prop="'receivingInfo.' + index + '.SJLX'" :rules="rules.SJLX">
                <span slot="label">
                  收件类型: <br />
                  <p class="label-detail">(SJLX)</p>
                </span>
                <el-select :disabled="$store.state.business.Edit" v-model="form.receivingInfo[index].SJLX"
                  placeholder="请选择">
                  <el-option v-for="item in dicData['A40']" :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 class="borderTopNone" :prop="'receivingInfo.' + index + '.SJMC'" :rules="rules.SJMC">
                <span slot="label">
                  收件名称: <br />
                  <p class="label-detail">(SJMC)</p>
                </span>
                <el-input :disabled="$store.state.business.Edit" v-model="form.receivingInfo[index].SJMC"
                  placeholder="收件名称"></el-input>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item class="borderTopNone" :prop="'receivingInfo.' + index + '.SJSL'"
                :rules="{ ...rules.SJSL, ...typeNum }">
                <span slot="label">
                  收件数量: <br />
                  <p class="label-detail">(SJSL)</p>
                </span>
                <el-input :disabled="$store.state.business.Edit" v-only-number="{ max: 9999, min: 0, precision: 0 }"
                  type="number" v-model.number="form.receivingInfo[index].SJSL" placeholder="收件数量"></el-input>
              </el-form-item>
            </el-col>
          </el-row>

          <el-row class="receivingInfo-item-input">
            <el-col :span="8">
              <el-form-item :prop="'receivingInfo.' + index + '.SFSJSY'" :rules="rules.SFSJSY">
                <span slot="label">
                  是否收缴收验: <br />
                  <p class="label-detail">(SFSJSY)</p>
                </span>
                <el-select :disabled="$store.state.business.Edit" v-model="form.receivingInfo[index].SFSJSY"
                  placeholder="请选择">
                  <el-option v-for="item in dicData['A6']" :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="'receivingInfo.' + index + '.SFEWSJ'" :rules="rules.SFEWSJ">
                <span slot="label">
                  是否额外收件: <br />
                  <p class="label-detail">(SFEWSJ)</p>
                </span>
                <el-select :disabled="$store.state.business.Edit" v-model="form.receivingInfo[index].SFEWSJ"
                  placeholder="请选择">
                  <el-option v-for="item in dicData['A6']" :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="'receivingInfo.' + index + '.SFBCSJ'" :rules="rules.SFBCSJ">
                <span slot="label">
                  是否补充收件: <br />
                  <p class="label-detail">(SFBCSJ)</p>
                </span>
                <el-select :disabled="$store.state.business.Edit" v-model="form.receivingInfo[index].SFBCSJ"
                  placeholder="请选择">
                  <el-option v-for="item in dicData['A6']" :key="item.DCODE" :label="item.DNAME" :value="item.DCODE">
                  </el-option>
                </el-select>
              </el-form-item>
            </el-col>
          </el-row>

          <el-row class="receivingInfo-item-input">
            <el-col :span="8">
              <el-form-item :prop="'receivingInfo.' + index + '.YS'" :rules="{ ...rules.YS, ...typeNum }">
                <span slot="label">
                  页数: <br />
                  <p class="label-detail">(YS)</p>
                </span>
                <el-input :disabled="$store.state.business.Edit" v-only-number="{ max: 99999, min: 1, precision: 0 }"
                  type="number" v-model.number="form.receivingInfo[index].YS" placeholder="页数"></el-input>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item :prop="'receivingInfo.' + 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.receivingInfo[index].BZ"
                  placeholder="备注"></el-input>
              </el-form-item>
            </el-col>

            <el-col :span="8">
              <el-form-item :prop="'receivingInfo.' + 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.receivingInfo[index].QXDM"
                  placeholder="区县代码"></el-input>
              </el-form-item>
            </el-col>
          </el-row>
        </div>
      </div>
    </el-form>
    <message-tips ref="msg" />
  </div>
</template>
<script>
import business from '@/api/business'
import ruleMixin from '@/mixins/ruleMixin.js'
// 登记收件信息
export default {
  mixins: [ruleMixin],
  props: {
    bsmSjsb: {
      type: String,
      default: ''
    },
    bsmYwsjb: {
      type: String,
      default: ''
    }
  },
  data () {
    return {
      form: {
        receivingInfo: [
          {
            YSDM: '',
            YWH: '',
            SJSJ: '',
            SJLX: '',
            SJMC: '',
            SJSL: '',
            SFSJSY: '',
            SFEWSJ: '',
            SFBCSJ: '',
            YS: '',
            BZ: '',
            QXDM: ''
          }
        ]
      }
    }
  },
  methods: {
    async featchData () {
      try {
        let { result: res } = await business.getDjfDjSjById(this.bsmSjsb)
        this.form.receivingInfo = res
        //this.featchRule()
      } catch (error) {
        this.$refs.msg.messageShow()
      }
    },
    handleUpdateForm () {
      return new Promise(async (resolve) => {
        try {
          let res = await business.updateDjfDjSj(this.form.receivingInfo)
          // this.$refs['formList'].resetFields();
          resolve(res.code)
        } catch (error) {
          this.$refs.msg.messageShow()
        }
      })
    }
  }
}
</script>
<style scoped lang="scss">
@import "./css/itemForm.scss";

.receivingInfo-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>