<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>
`
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。