2
<template>
  <div class="form">
    <el-form v-for="(form,index) in formList" :ref="'formData'+index" :key="index" :model="form" inline>

      <el-row>
   
        <el-form-item label="库房级别:" prop="leval" :rules="[
          { validator: ((rule, value, callback) => { validateLeval(rule, value, callback,index) }), trigger: 'blur' }
        ]"
        >
          <el-select v-model="form.leval" class="width-380" placeholder="请选择库房级别" clearable>
            <el-option v-for="item in departs" :key="item.id" :label="item.name" :value="item.id" />
          </el-select>
        </el-form-item>
      </el-row>

 
    </el-form>
    <el-row>
      <el-button type="primary" @click="submitForm">提交</el-button>
      <el-button @click="this.$router.back()">返回</el-button>
    </el-row>
  </div>
</template>
<script>
import * as deliverApi from '@/api/pape-rule/deliver-rules'
export default {

  data () {
    var validateLeval = (rule, value, callback, index) => {
      if (this.formList[index].warahouseDetail && !value) {
        callback(new Error('选择送货到库时,请选择库房级别'))
      } else {
        callback()
      }
    }
    return {
      formList: [],


      formArr: [],
      resultArr: [], // 接受验证返回结果数组
      departs: [
        { name: '校级', id: 1 },
        { name: '院级', id: 2 }
      ],
      validateLeval

    }
  },
  computed: {
    dialogShow: {
      get () {
        return this.dialogVisible
      },
      set (val) {
        this.$emit('update:dialogVisible', val)
      }
    }
  },

  created () {
    this.getDetail()
    // this.getCampusData()
    this.getCategoryData()
  },
  methods: {
    getDetail() {
      deliverApi.getDetail()
        .then(res => {
          this.formList = res
        })
    },
    // 获取校区信息
    getCampusData () {
      deliverApi.getCampus()
        .then(res => {
          const campusData = res
          if (campusData.length) {
            campusData.forEach((item, index) => {
              this.formList.push({
                campus: item.campus, // 校区
                leval: null,
                warahouseDetail: null, // 送货到库明细list
                personDetail: null // 送货到人明细list
              })
            })
          }
        })
    },
    // 获取品类数据
    getCategoryData () {
      deliverApi.getCategoryInfo()
        .then(res => {
          this.categoryData = res
        })
    },
    refForm(formName) {
      const that = this
      const result = new Promise((resolve, reject) => {
        that.$refs[formName][0].validate((valid) => {
          if (valid) {
            resolve()
          }
        })
      })
      that.resultArr.push(result)
    },
    submitForm () {
      const that = this
      this.formList.forEach((item, index) => {
        const refName = 'formData' + index
        this.refForm(refName)
      })

      Promise.all(this.resultArr).then(function () {
        deliverApi.saveRule(that.formList)
          .then(res => {
            that.$message.success('保存成功')
          })
      })
    }
  }
}
</script>

<style lang="scss" scoped>
@include public-form-layout;
.campus {
  /deep/ .el-form-item__label {
    color:#3783F2;
  }
}
</style>

`


生如夏花
9 声望0 粉丝