From fe618973c04544c0bd169c2c4436ff5807b756f1 Mon Sep 17 00:00:00 2001 From: haoyahui <2032914783@qq.com> Date: 星期一, 20 十一月 2023 17:52:31 +0800 Subject: [PATCH] 库存预警设置,盘点删除 --- admin-web/src/views/stock/ledger/inventoryAlert/edit.vue | 144 +++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 131 insertions(+), 13 deletions(-) diff --git a/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue b/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue index c700a5d..93fcd42 100644 --- a/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue +++ b/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue @@ -1,35 +1,56 @@ <template> - <win-md :title="setting.title" @close="close" :width="'800px'"> + <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="鐗╁搧鍒嗙被" prop="code"> - <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%" /> + <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="鐗╁搧鍚嶇О" prop="name"> - <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%" /> + <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-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%" /> + <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="baseGoodsModelsId" label="淇濆簳搴撳瓨" align="center"> + <el-table-column prop="bdcount" label="淇濆簳搴撳瓨" align="center"> <template slot-scope="scope"> - <el-input v-model="scope.row.baseGoodsModelsId"></el-input> + <el-input v-model="scope.row.bdcount"></el-input> </template> </el-table-column> - <el-table-column prop="baseGoodsModelsId" label="灏侀《搴撳瓨" align="center"> + <el-table-column prop="count" label="灏侀《搴撳瓨" align="center"> <template slot-scope="scope"> - <el-input v-model="scope.row.baseGoodsModelsId"></el-input> + <el-input v-model="scope.row.count"></el-input> </template> </el-table-column> </el-table> @@ -45,6 +66,12 @@ 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 }, @@ -56,14 +83,15 @@ }, data() { return { - checkAll: false, - checkedList: [], + agencyOptions: [], // 璋冩嫧鏈烘瀯 + categoryOptions: [], // 鐗╁搧鍒嗙被鍒楄〃 + modelList: [], //鍨嬪彿鍒楄〃 formData: { baseCategoryIds: '', // 鍒嗙被缂栧彿鏁扮粍 baseCategoryId: '', // 鍒嗙被缂栧彿 baseGoodsTemplateId: '', // 鐗╁搧妯$増缂栧彿 modelsIds: [], //瑙勬牸鍨嬪彿 - models:[] + models: [], }, modelsItem: { baseGoodsModelsId: '', // 瑙勬牸鍨嬪彿缂栧彿 @@ -81,8 +109,98 @@ 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'); -- Gitblit v1.9.1