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 | 271 ++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 201 insertions(+), 70 deletions(-) diff --git a/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue b/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue index 37b0db9..93fcd42 100644 --- a/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue +++ b/admin-web/src/views/stock/ledger/inventoryAlert/edit.vue @@ -1,111 +1,242 @@ <template> - <win-sm :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-form-item label="缂栧彿" prop="code"> - <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/> - </el-form-item> - <el-form-item label="浠撳簱鍚嶇О" prop="name"> - <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> - </el-form-item> - <el-form-item label="鍦板潃" > - <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/> - </el-form-item> - <el-form-item label="鐘舵��" prop="status"> - <el-switch - v-model="formData.status" - active-color="#0d997c" - inactive-color="#C0CCDA"> - </el-switch> - </el-form-item> + <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"/> + <my-button name="鍙栨秷" site="form" @click="close" /> + <my-button name="淇濆瓨" site="form" @click="save" /> </div> - </win-sm> + </win-md> </template> <script> -import winSm from '@/components/win/win-sm' -import myButton from '@/components/myButton/myButton' -import * as finsystenant from '@/api/baseSetting/finsystenant' +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: {winSm, myButton}, + components: { winMd, myButton }, props: { setting: { type: Object, - default: () => { - } - } + default: () => {}, + }, }, data() { return { - checkAll: false, - checkedList: [], + agencyOptions: [], // 璋冩嫧鏈烘瀯 + categoryOptions: [], // 鐗╁搧鍒嗙被鍒楄〃 + modelList: [], //鍨嬪彿鍒楄〃 formData: { - code: '', - name: '', - status: true, - summary: '', + 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'} - ] - } - } + 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)) + if (this.setting.info) { + this.formData = Object.assign({}, JSON.parse(this.setting.info)); } + this.init(); }, methods: { - getEditInfo(id){ - + 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') + this.$emit('close'); }, save() { this.$refs.ruleForm.validate((valid) => { if (valid) { - const params = Object.assign({}, this.formData) - if(this.setting.id){ + const params = Object.assign({}, this.formData); + if (this.setting.id) { // 缂栬緫鎺ュ彛 - finsystenant.edit(params).then(res => { + finsystenant.edit(params).then((res) => { if (res) { - this.$message.success('淇濆瓨鎴愬姛锛�') - this.close() - this.$emit('search') + this.$message.success('淇濆瓨鎴愬姛锛�'); + this.close(); + this.$emit('search'); } else { - this.$message.error('淇濆瓨澶辫触') + this.$message.error('淇濆瓨澶辫触'); } - }) - }else{ - params.orgId = this.setting.orgId - finsystenant.add(params).then(res => { + }); + } else { + params.orgId = this.setting.orgId; + finsystenant.add(params).then((res) => { if (res) { - this.$message.success('淇濆瓨鎴愬姛锛�') - this.close() - this.$emit('search') + this.$message.success('淇濆瓨鎴愬姛锛�'); + this.close(); + this.$emit('search'); } else { - this.$message.error('淇濆瓨澶辫触') + this.$message.error('淇濆瓨澶辫触'); } - }) + }); } } else { - this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��'); } - }) - } - } -} + }); + }, + }, +}; </script> -- Gitblit v1.9.1