From b2236cd6f65e6bdd53beb9bc0d2bed34aa0ed212 Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期一, 04 八月 2025 16:34:29 +0800 Subject: [PATCH] 程序加工确认表 --- src/views/tms/modules/GoodsShelvesForm.vue | 113 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 90 insertions(+), 23 deletions(-) diff --git a/src/views/tms/modules/GoodsShelvesForm.vue b/src/views/tms/modules/GoodsShelvesForm.vue index 3ef07b7..96c072f 100644 --- a/src/views/tms/modules/GoodsShelvesForm.vue +++ b/src/views/tms/modules/GoodsShelvesForm.vue @@ -20,7 +20,7 @@ </a-col> <a-col :span="12"> <a-form-model-item label="璐ф灦鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="shelfName"> - <a-input v-model="model.shelfName" placeholder="璇疯緭鍏ヨ揣鏋跺悕绉�" ></a-input> + <a-input v-model="model.shelfName" placeholder="璇疯緭鍏ヨ揣鏋跺悕绉�" :disabled="shelfNameDisabled"></a-input> </a-form-model-item> </a-col> <a-col :span="12"> @@ -38,9 +38,14 @@ <a-input v-model="model.columnNumber" placeholder="璇疯緭鍏ュ垪鏁�" ></a-input> </a-form-model-item> </a-col> + <a-col :span="12"> + <a-form-model-item label="鏍兼暟" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="cellsNum"> + <a-input v-model="model.cellsNum" placeholder="璇疯緭鍏ユ牸鏁�" ></a-input> + </a-form-model-item> + </a-col> <a-col :span="12"> <a-form-model-item label="搴撲綅鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-input :disabled="true" :value="locationCode" placeholder="璇疯緭鍏ュ簱浣嶅彿" ></a-input> + <a-input :disabled="true" v-model="model.locationCode" placeholder="璇疯緭鍏ュ簱浣嶅彿" ></a-input> </a-form-model-item> </a-col> </a-row> @@ -84,9 +89,14 @@ storey: '', arrange: '', columnNumber: '', + cellsNum:'', locationCode: '', remark: '' }, + autoLocationCode: '', // 鑷姩鎷兼帴鐨勫簱浣嶅彿 + userEditedLocationCode: false, + shelfNameDisabled: false, // 鎺у埗璐ф灦鍚嶇О鏄惁绂佺敤 + lastEchoedShelfName: '', // 淇濆瓨涓婃鍥炴樉鐨勮揣鏋跺悕绉� labelCol: { xs: { span: 24 }, sm: { span: 5 }, @@ -97,27 +107,35 @@ }, confirmLoading: false, validatorRules: { - warehouseId: [ - { required: true, message: '璇疯緭鍏ヤ粨搴撶紪鍙�!'}, - ], - locationCode: [ - { required: true, message: '璇疯緭鍏ュ簱浣嶅彿!'}, - ], - storey: [ - { required: true, message: '璇疯緭鍏ュ眰鏁�!'}, - ], shelfNumber: [ - { required: true, message: '璇疯緭鍏ヨ揣鏋跺彿!'}, + { required: true, message: '璇疯緭鍏ヨ揣鏋剁紪鍙�!'}, + { validator: this.validateShelfName } ], shelfName: [ - { required: true, message: '璇疯緭鍏ヨ揣鏋跺悕绉�!'}, + { required: true, message: '璇疯緭鍏ヨ揣鏋跺悕绉�!'}, ], + storey: [ + { required: true, message: '璇疯緭鍏ュ眰鏁�!'}, + ], + arrange: [ + { required: true, message: '璇疯緭鍏ユ帓鏁�!'}, + ], + columnNumber: [ + { required: true, message: '璇疯緭鍏ュ垪鏁�!'}, + ], + cellsNum: [ + { required: true, message: '璇疯緭鍏ユ牸鏁�!'}, + { validator: this.validateDuplicate } + ] }, url: { add: "/tms/goodsShelves/add", edit: "/tms/goodsShelves/edit", - queryById: "/tms/goodsShelves/queryById" - } + queryById: "/tms/goodsShelves/queryById", + checkShelfName:"/tms/goodsShelves/checkShelfName", + checkDuplicate:"/tms/goodsShelves/checkDuplicate" + }, + warehouseId:'' } }, computed: { @@ -125,10 +143,10 @@ return this.disabled }, //鎷兼帴搴撲綅鍙� - locationCode() { - const { shelfNumber, storey, arrange, columnNumber } = this.model; - if (shelfNumber || storey || arrange || columnNumber) { - return `${shelfNumber}${storey}${arrange}${columnNumber}`; + autoGeneratedLocationCode() { + const { shelfNumber, storey, arrange, columnNumber, cellsNum } = this.model; + if (shelfNumber || storey || arrange || columnNumber || cellsNum) { + return `${shelfNumber}${storey}${arrange}${columnNumber}${cellsNum}`; } return ''; } @@ -145,11 +163,16 @@ this.modelDefault.warehouseId = treeSelected.key this.modelDefault.warehouseNum = treeSelected.entity.warehouseId this.modelDefault.warehouseName = treeSelected.entity.warehouseName + this.modelDefault.cellsNum = '1' //鏍兼暟璁剧疆榛樿鍊�1 this.edit(this.modelDefault); }, edit (record) { this.model = Object.assign({}, record); this.visible = true; + this.shelfNameDisabled = false + // 閲嶇疆鍥炴樉鏍囪 + this.lastEchoedShelfName = '' + this.warehouseId = record.warehouseId }, submitForm () { const that = this; @@ -180,12 +203,56 @@ }) }, + //楠岃瘉 璐ф灦鍙� + validateShelfName(rule, value, callback) { + var params = { + warehouseId: this.warehouseId, + shelfNumber: value, + }; + getAction(this.url.checkShelfName,params).then((res) => { + if (res.success) { + this.shelfNameDisabled = false + // 鍙湁鍦ㄦ牎楠岄�氳繃涓斿綋鍓嶈揣鏋跺悕绉版槸涔嬪墠鍥炴樉鐨勫�兼椂鎵嶆竻绌� + // 杩欓�氬父鍙戠敓鍦ㄧ敤鎴蜂慨鏀逛簡宸插瓨鍦ㄧ殑璐ф灦缂栧彿涓轰笉瀛樺湪鐨勭紪鍙锋椂 + if (this.model.shelfName === this.lastEchoedShelfName) { + this.model.shelfName = '' + } + callback(); + } else { + //瀛樺湪璇ヨ揣鏋跺彿锛岀洿鎺ュ皢缁撴灉鍥炴樉鍒拌揣鏋跺悕绉板瓧娈靛苟绂佺敤璇ュ瓧娈� + this.model.shelfName = res.result; + this.lastEchoedShelfName = res.result; // 淇濆瓨鍥炴樉鐨勫�� + this.shelfNameDisabled = true; + callback(); + } + }) + }, + validateDuplicate(rule, value, callback) { + getAction(this.url.checkDuplicate, this.model).then(res => { + if (res.success) { + callback(); + } else { + callback(res.message); + } + }) + } }, watch: { - 'model.shelfNumber': 'updateLocationCode', - 'model.storey': 'updateLocationCode', - 'model.arrange': 'updateLocationCode', - 'model.columnNumber': 'updateLocationCode' + autoGeneratedLocationCode(newVal) { + // 鍙湁褰撶敤鎴锋病鏈夋墜鍔ㄨ緭鍏ユ椂鎵嶈嚜鍔ㄥ~鍏� + if (!this.userEditedLocationCode) { + this.model.locationCode = newVal; + } + this.autoLocationCode = newVal; + }, + 'model.locationCode'(newVal) { + // 濡傛灉鐢ㄦ埛鎵嬪姩杈撳叆锛屽垯鏍囪涓哄凡缂栬緫 + if (newVal !== this.autoLocationCode) { + this.userEditedLocationCode = true; + } else { + this.userEditedLocationCode = false; + } + } } } </script> \ No newline at end of file -- Gitblit v1.9.3