| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="预警仓库" prop="baseWarehouseId"> |
| | | <el-select |
| | | v-model="formData.baseWarehouseId" |
| | | placeholder="请选择预警仓库" |
| | | style="width: 100%" |
| | | :disabled="type == 'edit'" |
| | | v-model="formData.baseWarehouseId" |
| | | placeholder="请选择预警仓库" |
| | | style="width: 100%" |
| | | :disabled="type == 'edit'" |
| | | > |
| | | <el-option v-for="item in warehouses" :key="item.id" :label="item.warehouseName" :value="item.id"/> |
| | | </el-select> |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="物品分类" prop="baseCategoryId"> |
| | | <el-cascader |
| | | v-model="formData.baseCategoryId" |
| | | :options="categoryOptions" |
| | | :props="{ value: 'id',emitPath: false }" |
| | | :show-all-levels="false" |
| | | filterable |
| | | clearable |
| | | @change="categoryChange" |
| | | style="width: 100%" |
| | | :disabled="type == 'edit'" |
| | | v-model="formData.baseCategoryId" |
| | | :options="categoryOptions" |
| | | :props="{ value: 'id',emitPath: false }" |
| | | :show-all-levels="false" |
| | | filterable |
| | | clearable |
| | | @change="categoryChange" |
| | | style="width: 100%" |
| | | :disabled="type == 'edit'" |
| | | ></el-cascader> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="物品名称" prop="baseGoodsTemplateId"> |
| | | <el-select |
| | | :value="formData.baseGoodsTemplateId" |
| | | :placeholder="formData.baseCategoryId?'请选择物品':'请先选择物品分类'" |
| | | filterable |
| | | clearable |
| | | :disabled="!formData.baseCategoryId || type == 'edit'" |
| | | @change="goodsTemplateChange" |
| | | style="width: 100%" |
| | | :value="formData.baseGoodsTemplateId" |
| | | :placeholder="formData.baseCategoryId?'请选择物品':'请先选择物品分类'" |
| | | filterable |
| | | clearable |
| | | :disabled="!formData.baseCategoryId || type == 'edit'" |
| | | @change="goodsTemplateChange" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="item in goodsTemplatelOptions" |
| | | :key="item.id" |
| | | :label="item.goodsName" |
| | | :value="item.id" |
| | | v-for="item in goodsTemplatelOptions" |
| | | :key="item.id" |
| | | :label="item.goodsName" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="规格型号" prop="modelsIds"> |
| | | <el-select |
| | | v-model="formData.modelsIds" |
| | | multiple |
| | | clearable |
| | | :disabled="!formData.baseGoodsTemplateId || type == 'edit'" |
| | | :placeholder="formData.baseCategoryId?'请选择规格型号':'请先选择物品名称'" |
| | | @change="modelChange" |
| | | @remove-tag="modelRemoveTag" |
| | | @clear="modelRemoveTag(-1)" |
| | | style="width: 100%" |
| | | v-model="formData.modelsIds" |
| | | multiple |
| | | clearable |
| | | :disabled="!formData.baseGoodsTemplateId || type == 'edit'" |
| | | :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"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row v-if="type == 'edit'"> |
| | | <el-row v-if="type === 'edit'"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="保底库存" prop="lowerLimit"> |
| | | <el-input placeholder="请输入" v-model.number="formData.lowerLimit"></el-input> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table v-if="type != 'edit'" :data="formData.models" :stripe="true"> |
| | | <el-table v-else :data="formData.models" :stripe="true"> |
| | | <el-table-column prop="baseGoodsModelsId" label="规格型号" align="center"> |
| | | <template slot-scope="scope"> |
| | | {{ getGoodsModelsName(scope.row.baseGoodsModelsId) }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="lowerLimit" label="保底库存" align="center"> |
| | | <template slot-scope="scope"> |
| | | <template slot-scope="{row,$index}"> |
| | | <el-form-item |
| | | v-if="scope.row.lowerLimit || scope.row.upperLimit" |
| | | label-width="0" |
| | | :prop="`models[${scope.$index}].lowerLimit`" |
| | | :rules="rules.lowerLimit" |
| | | label-width="0" |
| | | :prop="`models.${$index}.lowerLimit`" |
| | | :rules="[ |
| | | {validator: checkCounts,type: 1, lowerLimit: row.lowerLimit,upperLimit: row.upperLimit, trigger: ['blur', 'change']} |
| | | ]" |
| | | > |
| | | <el-input v-model.number="scope.row.lowerLimit"></el-input> |
| | | <el-input v-model.number="row.lowerLimit"></el-input> |
| | | </el-form-item> |
| | | <el-input v-else v-model.number="scope.row.lowerLimit" style="margin-bottom: 18px;"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="upperLimit" label="封顶库存" align="center"> |
| | | <template slot-scope="scope"> |
| | | <template slot-scope="{row,$index}"> |
| | | <el-form-item |
| | | v-if="scope.row.lowerLimit || scope.row.upperLimit" |
| | | label-width="0" |
| | | :prop="`models[${scope.$index}].upperLimit`" |
| | | :rules="rules.upperLimit" |
| | | label-width="0" |
| | | :prop="`models.${$index}.upperLimit`" |
| | | :rules="[ |
| | | {validator: checkCounts,type: 2, lowerLimit: row.lowerLimit,upperLimit: row.upperLimit, trigger: ['blur', 'change']} |
| | | ]" |
| | | > |
| | | <el-input v-model.number="scope.row.upperLimit"></el-input> |
| | | <el-input v-model.number="row.upperLimit"></el-input> |
| | | </el-form-item> |
| | | <el-input v-else v-model.number="scope.row.upperLimit" style="margin-bottom: 18px;"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | checkCounts: (rule, value, callback) => { |
| | | let val = rule.type === 1 ? rule.lowerLimit : rule.upperLimit |
| | | if (!val) { |
| | | return callback(new Error(rule.type === 1 ? '请输入保底数量' : '请输入封顶数量')); |
| | | } |
| | | if (!Number.isInteger(val)) { |
| | | return callback(new Error('请输入数字值')); |
| | | } |
| | | if (val < 1) { |
| | | return callback(new Error('数字值必须大于0')); |
| | | } |
| | | if (rule.lowerLimit && rule.upperLimit && rule.lowerLimit >= rule.upperLimit) { |
| | | return callback(new Error(rule.type === 1 ? '保底库存必须小于封顶库存' : '封顶库存必须大于保底库存')); |
| | | } |
| | | callback(); |
| | | }, |
| | | loading: true, |
| | | type: '', |
| | | warehouses: [], // 入库仓库列表 |
| | |
| | | if (this.setting.id) { |
| | | this.type = 'edit'; |
| | | const detail = await warningConfigGetById({id: this.setting.id}); |
| | | this.formData = Object.assign({}, detail); |
| | | // 分类反显 |
| | | let res = await queryGoodsModelInfo({baseGoodsModelsId: this.formData.baseGoodsModelsId}); |
| | | this.formData.baseCategoryId = res[0].categoryId; |
| | | this.formData.baseCategoryIds = findParentIds(this.categoryOptions, this.formData.baseCategoryId); |
| | | let res = await queryGoodsModelInfo({baseGoodsModelsId: detail.baseGoodsModelsId}); |
| | | detail.baseCategoryId = res[0].categoryId |
| | | // 物品名称反显 |
| | | this.getgoodsTemplate(this.formData.baseCategoryId); |
| | | this.getgoodsTemplate(detail.baseCategoryId); |
| | | // 规格型号反显 |
| | | this.getgoodsModel(this.formData.baseGoodsTemplateId); |
| | | this.formData.modelsIds = [this.formData.baseGoodsModelsId]; |
| | | this.getgoodsModel(detail.baseGoodsTemplateId); |
| | | this.formData = Object.assign({}, detail); |
| | | this.formData.modelsIds = [detail.baseGoodsModelsId]; |
| | | this.getWarehouseList(); |
| | | } |
| | | this.loading = false |
| | |
| | | // 获取入库仓库列表 |
| | | getWarehouseList() { |
| | | selectTenantWarehouse({agencyId: this.userInfo.tenantId}) |
| | | .then((res) => { |
| | | this.warehouses = res; |
| | | if (this.warehouses.length && !this.formData.baseWarehouseId) { |
| | | // 默认选中第一个仓库 |
| | | this.formData.baseWarehouseId = this.warehouses[0].id; |
| | | } |
| | | }) |
| | | .catch((err) => { |
| | | console.log('err', err); |
| | | }); |
| | | .then((res) => { |
| | | this.warehouses = res; |
| | | if (this.warehouses.length && !this.formData.baseWarehouseId) { |
| | | // 默认选中第一个仓库 |
| | | this.formData.baseWarehouseId = this.warehouses[0].id; |
| | | } |
| | | }) |
| | | .catch((err) => { |
| | | console.log('err', err); |
| | | }); |
| | | }, |
| | | |
| | | getCategoryTree() { |