| | |
| | | <template> |
| | | <win-md :title="`${setting.title}预警设置`" @close="close" :width="'800px'"> |
| | | <win-md :title="`${setting.title}预警设置`" @close="close" :width="'800px'" :loading="loading"> |
| | | <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="入库仓库" prop="baseWarehouseId"> |
| | | <el-form-item label="预警仓库" prop="baseWarehouseId"> |
| | | <el-select |
| | | v-model="formData.baseWarehouseId" |
| | | placeholder="请选择" |
| | | placeholder="请选择预警仓库" |
| | | style="width: 100%" |
| | | :disabled="type == 'edit'" |
| | | > |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="物品分类" prop="baseCategoryIds"> |
| | | <el-form-item label="物品分类" prop="baseCategoryId"> |
| | | <el-cascader |
| | | v-model="formData.baseCategoryIds" |
| | | v-model="formData.baseCategoryId" |
| | | :options="categoryOptions" |
| | | :props="{ value: 'id' }" |
| | | :props="{ value: 'id',emitPath: false }" |
| | | :show-all-levels="false" |
| | | filterable |
| | | clearable |
| | | @change="categoryChange" |
| | | style="width: 100%" |
| | | :disabled="type == 'edit'" |
| | |
| | | <el-form-item label="物品名称" prop="baseGoodsTemplateId"> |
| | | <el-select |
| | | :value="formData.baseGoodsTemplateId" |
| | | placeholder="请先择物品分类" |
| | | :placeholder="formData.baseCategoryId?'请选择物品':'请先选择物品分类'" |
| | | filterable |
| | | clearable |
| | | :disabled="!formData.baseCategoryId || type == 'edit'" |
| | | @change="goodsTemplateChange" |
| | | style="width: 100%" |
| | |
| | | <el-select |
| | | v-model="formData.modelsIds" |
| | | multiple |
| | | clearable |
| | | :disabled="!formData.baseGoodsTemplateId || type == 'edit'" |
| | | placeholder="请先择物品名称" |
| | | :placeholder="formData.baseCategoryId?'请选择规格型号':'请先选择物品名称'" |
| | | @change="modelChange" |
| | | @remove-tag="modelRemoveTag" |
| | | @clear="modelRemoveTag(-1)" |
| | | style="width: 100%" |
| | | > |
| | | <el-option v-for="item in modelsOptions" :key="item.id" :label="item.modelName" :value="item.id" /> |
| | |
| | | props: { |
| | | setting: { |
| | | type: Object, |
| | | default: () => {}, |
| | | default: () => { |
| | | }, |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | loading: true, |
| | | type: '', |
| | | warehouses: [], // 入库仓库列表 |
| | | agencyOptions: [], // 调拨机构 |
| | |
| | | models: [], |
| | | }, |
| | | rules: { |
| | | baseCategoryIds: [{ required: true, message: '请选择', trigger: 'blur' }], |
| | | baseGoodsTemplateId: [{ required: true, message: '请选择', trigger: 'blur' }], |
| | | modelsIds: [{ required: true, message: '请选择', trigger: 'blur' }], |
| | | baseWarehouseId: [{required: true, message: '请选择预警仓库', trigger: 'change'}], |
| | | baseCategoryId: [{required: true, message: '请选择物品分类', trigger: 'change'}], |
| | | baseGoodsTemplateId: [{required: true, message: '请选择物品', trigger: 'change'}], |
| | | modelsIds: [{required: true, message: '请选择规格型号', trigger: 'change'}], |
| | | lowerLimit: [ |
| | | { required: true, message: '请输入', trigger: 'blur' }, |
| | | { type: 'number', message: '请输入数字值', trigger: 'blur' }, |
| | |
| | | }, |
| | | methods: { |
| | | async init() { |
| | | await this.getWarehouseList(); |
| | | await this.getCategoryTree(); |
| | | if (this.setting.id) { |
| | | this.type = 'edit'; |
| | | const detail = await warningConfigGetById({ id: this.setting.id }); |
| | | await this.getCategoryTree(); |
| | | this.formData = Object.assign({}, detail); |
| | | // 分类反显 |
| | | let res = await queryGoodsModelInfo({ baseGoodsModelsId: this.formData.baseGoodsModelsId }); |
| | |
| | | this.getgoodsModel(this.formData.baseGoodsTemplateId); |
| | | this.formData.modelsIds = [this.formData.baseGoodsModelsId]; |
| | | this.getWarehouseList(); |
| | | } else { |
| | | this.getWarehouseList(); |
| | | this.getCategoryTree(); |
| | | } |
| | | this.loading = false |
| | | }, |
| | | // 获取入库仓库列表 |
| | | getWarehouseList() { |
| | |
| | | |
| | | // 物品分类选择 |
| | | categoryChange(e) { |
| | | if (!e) return; |
| | | this.goodsTemplatelOptions = []; |
| | | this.modelsOptions = []; |
| | | this.formData.baseGoodsTemplateId = ''; |
| | | this.formData.modelsIds = []; |
| | | this.formData.models = []; |
| | | |
| | | this.formData.baseCategoryId = e[e.length - 1]; |
| | | // 根据选中分类请求物品名称列表 |
| | | this.getgoodsTemplate(this.formData.baseCategoryId); |
| | | this.getgoodsTemplate(e); |
| | | }, |
| | | |
| | | // 物品名称列表选择 |
| | | goodsTemplateChange(e) { |
| | | this.formData.modelsIds = []; |
| | | this.formData.models = []; |
| | | |
| | | this.formData.baseGoodsTemplateId = e; |
| | | // 根据选中物品名称id获取规格型号列表 |
| | | this.getgoodsModel(e); |
| | |
| | | |
| | | // 规格型号移除 |
| | | modelRemoveTag(e) { |
| | | if (e === -1) { |
| | | this.formData.models = [] |
| | | return |
| | | } |
| | | let delIndex = this.formData.models.findIndex((v) => v.baseGoodsModelsId == e); |
| | | this.formData.models.splice(delIndex, 1); |
| | | }, |
| | | |
| | | getEditInfo(id) {}, |
| | | getEditInfo(id) { |
| | | }, |
| | | close() { |
| | | this.$emit('close'); |
| | | }, |
| | | save() { |
| | | this.$refs.ruleForm.validate((valid) => { |
| | | if (valid) { |
| | | if (this.loading) return |
| | | this.loading = true; |
| | | if (this.setting.id) { |
| | | // 编辑接口 |
| | | const params = { |
| | |
| | | upperLimit: this.formData.upperLimit, |
| | | }; |
| | | warningConfigUpd(params).then((res) => { |
| | | this.loading = false; |
| | | this.$message.success('保存成功!'); |
| | | this.close(); |
| | | this.$emit('search'); |
| | | }).catch((err) => { |
| | | this.loading = false; |
| | | this.$message.error('保存失败'); |
| | | }); |
| | | } else { |
| | | const params = { |
| | |
| | | modelConfigStr: JSON.stringify(this.formData.models), |
| | | }; |
| | | warningConfigAdd(params).then((res) => { |
| | | this.loading = false; |
| | | this.$message.success('保存成功!'); |
| | | this.close(); |
| | | this.$emit('search'); |
| | | }).catch((err) => { |
| | | this.loading = false; |
| | | this.$message.error('保存失败'); |
| | | }); |
| | | } |
| | | } else { |