From ba1a2f73f9ce33d175bea4060d217b9f7a08eeed Mon Sep 17 00:00:00 2001 From: hyingbo <1363390067@qq.com> Date: 星期四, 31 七月 2025 16:55:42 +0800 Subject: [PATCH] 工具报损-添加报损数量校验规则 --- src/views/tms/lossBound/modules/LossboundModal.vue | 89 +++++++++++++++++++++++++++++--------------- 1 files changed, 58 insertions(+), 31 deletions(-) diff --git a/src/views/tms/lossBound/modules/LossboundModal.vue b/src/views/tms/lossBound/modules/LossboundModal.vue index 3942e81..7db180f 100644 --- a/src/views/tms/lossBound/modules/LossboundModal.vue +++ b/src/views/tms/lossBound/modules/LossboundModal.vue @@ -89,7 +89,7 @@ <a-row> <a-col :span="12"> <a-form-model-item label="鎶ユ崯鍘熷洜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="lossReason"> - <a-textarea :disabled="disableSubmit" v-model="model.lossReason" rows="4" placeholder="璇疯緭鍏ュ娉�" /> + <a-textarea :disabled="disableSubmit" v-model="model.lossReason" rows="4" placeholder="璇疯緭鍏ユ姤鎹熷師鍥�" /> </a-form-model-item> </a-col> </a-row> @@ -113,9 +113,20 @@ @change="handleTableChange"> <template v-for="col in columns" :slot="col.dataIndex" slot-scope="text, record, index"> - <a-input-number :disabled="disableSubmit" :value="text" v-if="col.dataIndex == 'lossNumber'" :min="0" - :max="99999" - @change="(e) => handleChange(e, record.key, col, index)" style="width: 100%;" /> + <div v-if="col.dataIndex == 'lossNumber'"> + <a-input-number + :disabled="disableSubmit" + :value="text" + :min="0" + :max="99999" + @change="(e) => handleChange(e, record.key, col, index)" + style="width: 100%;" + /> + <div v-if="record.lossNumberError" style="color: #f5222d; font-size: 12px; margin-top: 4px;"> + {{ record.lossNumberMsg }} + </div> + </div> + <a-textarea v-if="col.dataIndex == 'lossReason'" :disabled="disableSubmit" @@ -193,10 +204,10 @@ width: 50 }, { - title: '鍒�鍏风紪鍙�', - dataIndex: 'toolCode', + title: '鍒�鍏风紪鐮�', + dataIndex: 'toolId', align: 'center', - width: 150 + width: 200 }, { @@ -205,7 +216,22 @@ align: 'center', width: 150 }, + { + title: '鎶ユ崯鍘熷洜', + width: 150, + dataIndex: 'lossReason', + align: 'center', + scopedSlots: { customRender: 'lossReason' } + }, + { + title: '鎶ユ崯鏁伴噺', + dataIndex: 'lossNumber', + align: 'center', + width: 150, + scopedSlots: { customRender: 'lossNumber' }, + key: 'lossNumber' + }, { title: '涓枃鍚嶇О', dataIndex: 'chineseName', @@ -245,21 +271,7 @@ dataIndex: 'goodsShelvesId', align: 'center' }, - { - title: '鎶ユ崯鍘熷洜', - width: 150, - dataIndex: 'lossReason', - align: 'center', - scopedSlots: { customRender: 'lossReason' } - }, - { - title: '鎶ユ崯鏁伴噺', - dataIndex: 'lossNumber', - align: 'center', - width: 150, - scopedSlots: { customRender: 'lossNumber' } - }, { title: '澶囨敞', @@ -304,8 +316,8 @@ this.$bus.$on('selectionRows', (data) => { for (let i = 0; i < data.length; i++) { this.dataSource.push({ - toolId: data[i].id, - toolCode: data[i].toolCode, + toolCode:data[i].toolCode, + toolId:data[i].toolId, classifyId: data[i].classifyId, applicationType: data[i].applicationType_dictText, chineseName: data[i].chineseName, @@ -314,8 +326,10 @@ supplierId: data[i].supplierId, goodsShelvesId: data[i].positionCode, toolMaterial: data[i].toolMaterial, - partMaterial: data[i].partMaterial - + partMaterial: data[i].partMaterial, + lossNumber: null, // 鍒濆鍖栨姤鎹熸暟閲� + lossNumberError: false, // 鏍¢獙鐘舵�� + lossNumberMsg: '' // 閿欒淇℃伅 }) } this.ipagination.total = this.dataSource.length @@ -332,13 +346,15 @@ const target = temp.filter(item => key === item.key)[index] if (target) { target[column.dataIndex] = value - this.dataSource = temp - if (column.dataIndex === 'lossNumber') { - target[column.dataIndex] = value - } - if (column.dataIndex === 'lossReason') { - target[column.dataIndex] = value + if (column.dataIndex === 'lossNumber') { + if (value === null || value === undefined || value <= 0) { + target.lossNumberError = true + target.lossNumberMsg = '鎶ユ崯鏁伴噺涓嶈兘涓虹┖涓斿繀椤诲ぇ浜�0' + } else { + target.lossNumberError = false + target.lossNumberMsg = '' + } } this.dataSource = temp } @@ -398,6 +414,17 @@ // 瑙﹀彂琛ㄥ崟楠岃瘉 this.$refs.form.validate(valid => { if (valid) { + let isTableValid = true + this.dataSource.forEach((row, index) => { + this.handleChange(row.lossNumber, row.key, { dataIndex: 'lossNumber' }, index) + if (row.lossNumberError) { + isTableValid = false + } + }) + + if (!isTableValid) { + return false + } this.model.toolsLossBoundDetailList = this.dataSource that.confirmLoading = true let httpurl = '' -- Gitblit v1.9.3