<template>
|
<win-md :title="`${setting.title}预警设置`" @close="close" :width="'800px'">
|
<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="物品分类">
|
<el-cascader
|
v-model="formData.baseCategoryIds"
|
:options="categoryOptions"
|
:props="{ value: 'id' }"
|
style="width: 100%"
|
></el-cascader>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="物品名称">
|
<el-select
|
:value="formData.baseGoodsTemplateId"
|
placeholder="请先择物品分类"
|
filterable
|
style="width: 100%"
|
>
|
<el-option v-for="item in goodsTemplatelAll" :key="item.id" :label="item.goodsName" :value="item.id" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row :gutter="24">
|
<el-col :span="12">
|
<el-form-item label="规格型号">
|
<el-select
|
v-model="formData.modelsIds"
|
multiple
|
placeholder="请先择物品名称"
|
@change="modelChange($event)"
|
@remove-tag="modelRemoveTag($event)"
|
style="width: 100%"
|
>
|
<el-option v-for="item in goodsModelAll" :key="item.id" :label="item.modelName" :value="item.id" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-table :data="formData.models" :stripe="true">
|
<el-table-column prop="baseGoodsModelsId" label="规格型号" align="center"> </el-table-column>
|
<el-table-column prop="bdcount" label="保底库存" align="center">
|
<template slot-scope="scope">
|
<el-input v-model="scope.row.bdcount"></el-input>
|
</template>
|
</el-table-column>
|
<el-table-column prop="count" label="封顶库存" align="center">
|
<template slot-scope="scope">
|
<el-input v-model="scope.row.count"></el-input>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-form>
|
<div slot="footer" align="center" class="dialog-footer">
|
<my-button name="取消" site="form" @click="close" />
|
<my-button name="保存" site="form" @click="save" />
|
</div>
|
</win-md>
|
</template>
|
|
<script>
|
import winMd from '@/components/win/win-md';
|
import myButton from '@/components/myButton/myButton';
|
import * as finsystenant from '@/api/baseSetting/finsystenant';
|
import {
|
getCategorySelectTree,
|
goodsModel,
|
warehouseSelectNumber,
|
goodsTemplate,
|
} from '@/api/baseSetting/finsystenant';
|
|
export default {
|
components: { winMd, myButton },
|
props: {
|
setting: {
|
type: Object,
|
default: () => {},
|
},
|
},
|
data() {
|
return {
|
agencyOptions: [], // 调拨机构
|
categoryOptions: [], // 物品分类列表
|
modelList: [], //型号列表
|
formData: {
|
baseCategoryIds: '', // 分类编号数组
|
baseCategoryId: '', // 分类编号
|
baseGoodsTemplateId: '', // 物品模版编号
|
modelsIds: [], //规格型号
|
models: [],
|
},
|
modelsItem: {
|
baseGoodsModelsId: '', // 规格型号编号
|
worehouseCount: 0,
|
counts: 0, // 操作数量
|
},
|
rules: {
|
code: [{ required: true, message: '请输入机构编号', trigger: 'blur' }],
|
name: [{ required: true, message: '请输入机构名称', trigger: 'blur' }],
|
status: [{ required: true, message: '请选择状态', trigger: 'blur' }],
|
},
|
};
|
},
|
created() {
|
if (this.setting.info) {
|
this.formData = Object.assign({}, JSON.parse(this.setting.info));
|
}
|
this.init();
|
},
|
methods: {
|
async init() {
|
this.getCategoryTree();
|
this.getgoodsTemplate();
|
this.getgoodsModel();
|
},
|
|
async getCategoryTree() {
|
// 获取物品分类列表
|
const treeRes = await getCategorySelectTree();
|
this.categoryOptions = this.removeEmptyChildren(treeRes);
|
console.log('categoryOptions', this.categoryOptions);
|
},
|
|
// 获取物品名称列表
|
getgoodsTemplate(id) {
|
goodsTemplate({ categoryId: id || '', agencyId: this.formData.outAgencyId }).then((res) => {
|
this.goodsTemplatelAll = res;
|
});
|
},
|
|
// 规格型号
|
getgoodsModel(id) {
|
goodsModel({ goodsTemplatesId: id || '' }).then((res) => {
|
this.goodsModelAll = res;
|
});
|
},
|
|
// 物品分类选择
|
categoryChange(e) {
|
this.formData.goodsOptions = [];
|
this.formData.baseGoodsTemplateId = '';
|
this.formData.goodsTemplateName = '';
|
this.formData.modelsOptions = [];
|
this.formData.modelsIds = [];
|
this.formData.models = [];
|
|
this.formData.transferGoods.baseCategoryId = e[e.length - 1];
|
// 根据选中分类请求物品名称列表
|
this.getgoodsTemplate(e[e.length - 1]);
|
},
|
|
// 物品名称列表选择
|
goodsTemplateChange(e, index) {
|
let temp = this.formData.transferGoods.find((v) => v.baseGoodsTemplateId == e);
|
if (temp) {
|
this.$message.warning('已选过此物品');
|
return;
|
} else {
|
this.formData.transferGoods[index].baseGoodsTemplateId = e;
|
}
|
this.formData.transferGoods[index].modelsOptions = [];
|
this.formData.transferGoods[index].modelsIds = [];
|
this.formData.transferGoods[index].models = [];
|
|
this.formData.transferGoods[index].goodsTemplateName = this.getGoodsTemplateName(e);
|
// 根据选中物品名称id获取规格型号列表
|
this.getgoodsModel(e, index);
|
},
|
|
removeEmptyChildren(arr) {
|
arr.forEach((item) => {
|
if (!item.children || !item.children.length) {
|
delete item.children;
|
} else {
|
this.removeEmptyChildren(item.children);
|
}
|
});
|
return arr;
|
},
|
|
// 规格型号选择
|
modelChange(e) {
|
let arr = [...this.formData.models];
|
let str = JSON.stringify(arr);
|
e.forEach((item) => {
|
if (str.indexOf(item) == -1) {
|
arr.push({ baseGoodsModelsId: item, bdcount: null,count:null });
|
}
|
});
|
this.formData.models = arr;
|
},
|
|
// 规格型号移除
|
modelRemoveTag(e) {
|
let arr = this.formData.models;
|
let delIndex = arr.findIndex((v) => v.baseGoodsModelsId == e);
|
this.formData.models.splice(delIndex, 1);
|
},
|
|
getEditInfo(id) {},
|
close() {
|
this.$emit('close');
|
},
|
save() {
|
this.$refs.ruleForm.validate((valid) => {
|
if (valid) {
|
const params = Object.assign({}, this.formData);
|
if (this.setting.id) {
|
// 编辑接口
|
finsystenant.edit(params).then((res) => {
|
if (res) {
|
this.$message.success('保存成功!');
|
this.close();
|
this.$emit('search');
|
} else {
|
this.$message.error('保存失败');
|
}
|
});
|
} else {
|
params.orgId = this.setting.orgId;
|
finsystenant.add(params).then((res) => {
|
if (res) {
|
this.$message.success('保存成功!');
|
this.close();
|
this.$emit('search');
|
} else {
|
this.$message.error('保存失败');
|
}
|
});
|
}
|
} else {
|
this.$message.error('校验未通过,请检查。');
|
}
|
});
|
},
|
},
|
};
|
</script>
|