From 2096ac6f7379d75001b610c2de1fa380abd09519 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期二, 12 十二月 2023 16:13:44 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- admin-web/src/views/stock/scrap/itemScrapping/edit.vue | 62 +++++++++++++++++++------------ 1 files changed, 38 insertions(+), 24 deletions(-) diff --git a/admin-web/src/views/stock/scrap/itemScrapping/edit.vue b/admin-web/src/views/stock/scrap/itemScrapping/edit.vue index 98b1f00..3f020cd 100644 --- a/admin-web/src/views/stock/scrap/itemScrapping/edit.vue +++ b/admin-web/src/views/stock/scrap/itemScrapping/edit.vue @@ -1,6 +1,6 @@ <template> <win-md class="stock-edit" :title="`${setting.title}鎶ュ簾`" @close="close" :width="'800px'"> - <el-form class="form" ref="ruleForm" :model="formData" :rules="rules" label-width="120px"> + <el-form v-loading="loading" class="form" ref="ruleForm" :model="formData" :rules="rules" label-width="120px"> <div class="main-w"> <el-row :gutter="24" class="headerHeight"> <el-col :span="12"> @@ -26,6 +26,7 @@ <el-form-item label="鎶ュ簾鏃堕棿" prop="dealTime"> <el-date-picker v-model="formData.dealTime" + clearable type="datetime" value="yyyy-MM-dd HH:mm:ss" value-format="yyyyMMddHHmmss" @@ -48,17 +49,20 @@ <el-col :span="12"> <el-form-item label="鐗╁搧鍒嗙被" - :prop="`scrappedGoodsInfo[${goodsIndex}].baseCategoryIds`" + :prop="`scrappedGoodsInfo.${goodsIndex}.baseCategoryId`" :rules="{ required: true, - message: '璇烽�夋嫨', + message: '璇烽�夋嫨鐗╁搧鍒嗙被', trigger: 'change', }" > <el-cascader - v-model="goodsItem.baseCategoryIds" + v-model="goodsItem.baseCategoryId" :options="categoryOptions" - :props="{ value: 'id' }" + :props="{ value: 'id',emitPath: false }" + :show-all-levels="false" + filterable + clearable @change="categoryChange($event, goodsIndex)" style="width: 100%" ></el-cascader> @@ -67,13 +71,14 @@ <el-col :span="12"> <el-form-item label="鐗╁搧鍚嶇О" - :prop="`scrappedGoodsInfo[${goodsIndex}].baseGoodsTemplateId`" + :prop="`scrappedGoodsInfo.${goodsIndex}.baseGoodsTemplateId`" :rules="rules.baseGoodsTemplateId" > <el-select v-model="goodsItem.baseGoodsTemplateId" - placeholder="璇峰厛鎷╃墿鍝佸垎绫�" + :placeholder="goodsItem.baseCategoryId?'璇烽�夋嫨鐗╁搧':'璇峰厛閫夋嫨鐗╁搧鍒嗙被'" filterable + clearable :disabled="!goodsItem.baseCategoryId" style="width: 100%" @change="goodsTemplateChange($event, goodsIndex)" @@ -95,17 +100,19 @@ :prop="`scrappedGoodsInfo[${goodsIndex}].modelsIds`" :rules="{ required: true, - message: '璇烽�夋嫨', + message: '璇烽�夋嫨瑙勬牸鍨嬪彿', trigger: 'change', }" > <el-select v-model="goodsItem.modelsIds" multiple - placeholder="璇峰厛鎷╃墿鍝佸悕绉�" - :disabled="!goodsItem.baseCategoryId" + clearable + :placeholder="goodsItem.baseGoodsTemplateId?'璇烽�夋嫨瑙勬牸鍨嬪彿':'璇峰厛閫夋嫨鐗╁搧鍚嶇О'" + :disabled="!goodsItem.baseGoodsTemplateId" @change="modelChange($event, goodsIndex)" @remove-tag="modelRemoveTag($event, goodsIndex)" + @clear="modelRemoveTag(-1, goodsIndex)" style="width: 100%" > <el-option @@ -186,6 +193,7 @@ import {getUploadUrl} from '@/utils/base'; import {mapGetters} from 'vuex'; import {getDicts} from '@/api/system/dict/data'; +import * as DateFormatter from "@/utils/DateFormatter"; export default { components: { MyButton, winMd, upload }, @@ -209,7 +217,7 @@ callback(); }; return { - loading: false, + loading: true, fileList: [], warehouses: [], // 鎶ュ簾浠撳簱鍒楄〃 categoryOptions: [], // 鐗╁搧鍒嗙被鍒楄〃 @@ -217,7 +225,7 @@ formData: { uploadFiles: '', warehouseId: '', // 鎶ュ簾浠撳簱id - dealTime: '', // 鎶ュ簾鏃堕棿 + dealTime: DateFormatter.formatDate(new Date(), 'yyyyMMddhhmmss'), // 鎶ュ簾鏃堕棿 scrappedGoodsInfo: [], }, goodsItem: { @@ -236,8 +244,8 @@ dealTime: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }], buyType: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }], uploadFiles: [{ required: true, message: '璇蜂笂浼�', trigger: 'change' }], - baseCategoryIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }], - baseGoodsTemplateId: [{ validator: checkGoodsTemplateId, trigger: ['blur', 'change'] }], + baseCategoryId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }], + baseGoodsTemplateId: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' },{ validator: checkGoodsTemplateId, trigger: ['blur', 'change'] }], modelsIds: [{ required: true, message: '璇烽�夋嫨', trigger: 'change' }], }, @@ -249,7 +257,6 @@ uploadUrl: getUploadUrl(), // 涓婁紶璺緞 multiple: true, // 鏄惁鏀寔鎵归噺涓婁紶 disabled: false, // 鏄惁绂佺敤 - type: 'picture', // text/picture }, }; }, @@ -261,9 +268,7 @@ }, methods: { async init() { - this.getWarehouseList(); - this.getgoodsTemplate(); - this.getgoodsModel(); + await this.getWarehouseList(); await this.getCategoryTree(); this.formData.scrappedGoodsInfo.push(JSON.parse(JSON.stringify(this.goodsItem))); this.formData.operatorId = this.userInfo.id; @@ -271,6 +276,9 @@ this.formData.agencyId = this.userInfo.tenantId; this.formData.agencyName = this.userInfo.tenantName; this.formData.warehouseType = 0; + this.getgoodsTemplate(); + this.getgoodsModel(); + this.loading = false getDicts('SCRAP_REASON').then((res) => { this.scrapReasonOptions = res; }); @@ -282,8 +290,8 @@ }, // 鑾峰彇鎶ュ簾浠撳簱鍒楄〃 - getWarehouseList() { - selectTenantWarehouse({ agencyId: this.userInfo.tenantId }) + async getWarehouseList() { + await selectTenantWarehouse({ agencyId: this.userInfo.tenantId }) .then((res) => { this.warehouses = res; if (this.warehouses.length && !this.formData.warehouseId) { @@ -309,7 +317,7 @@ // 鑾峰彇鐗╁搧鍚嶇О鍒楄〃 getgoodsTemplate(id, index) { - goodsTemplate({ categoryId: id || '' }).then((res) => { + goodsTemplate({ agencyId: this.userInfo.tenantId, categoryId: id || '' }).then((res) => { if (index || index == 0) { this.$set(this.formData.scrappedGoodsInfo[index], 'goodsOptions', res); } else { @@ -355,10 +363,8 @@ this.formData.scrappedGoodsInfo[index].modelsOptions = []; this.formData.scrappedGoodsInfo[index].modelsIds = []; this.formData.scrappedGoodsInfo[index].scrappedGoodsList = []; - - this.formData.scrappedGoodsInfo[index].baseCategoryId = e[e.length - 1]; // 鏍规嵁閫変腑鍒嗙被璇锋眰鐗╁搧鍚嶇О鍒楄〃 - this.getgoodsTemplate(e[e.length - 1], index); + this.getgoodsTemplate(e, index); }, // 鐗╁搧鍚嶇О鍒楄〃 @@ -394,6 +400,10 @@ // 瑙勬牸鍨嬪彿绉婚櫎 modelRemoveTag(e, index) { + if(e===-1){ + this.formData.scrappedGoodsInfo[index].scrappedGoodsList = [] + return + } let arr = this.formData.scrappedGoodsInfo[index].scrappedGoodsList; let delIndex = arr.findIndex((v) => v.baseGoodsModelsId == e); this.formData.scrappedGoodsInfo[index].scrappedGoodsList.splice(delIndex, 1); @@ -419,13 +429,17 @@ handleSubmit() { this.$refs['ruleForm'].validate((valid) => { if (valid) { + if (this.loading) return + this.loading = true; scrappedAdd(this.formData) .then((res) => { + this.loading = false; this.$message.success('淇濆瓨鎴愬姛锛�'); this.close(); this.$emit('search'); }) .catch((err) => { + this.loading = false; console.log('create err', err); this.$message.error('淇濆瓨澶辫触'); }); -- Gitblit v1.9.1