From d111b3ab62e3a10053d3f339497e03e62459148e Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期一, 21 七月 2025 13:51:53 +0800 Subject: [PATCH] # --- pages/check/checkOrderItem.vue | 322 +++++++++++++++++++++++++++++++++++----------------- 1 files changed, 215 insertions(+), 107 deletions(-) diff --git a/pages/check/checkOrderItem.vue b/pages/check/checkOrderItem.vue index 1607c2f..4398c7e 100644 --- a/pages/check/checkOrderItem.vue +++ b/pages/check/checkOrderItem.vue @@ -2,97 +2,168 @@ <view class="has-foot"> <form> <view class="cu-form-group" v-show="!isconfirm"> - <view class="title">宸紓鍗曞彿</view> - <text class="text-black ">{{check.orderCode}}</text> + <view class="title">鐩樼偣鍗曞彿锛�<text class="text-black ">{{check.orderCode}}</text></view> + <text class='cuIcon-add text-blue' @click="returnPage"></text> </view> <view class="cu-form-group" v-show="!isconfirm"> <view class="title">瀹瑰櫒鍙�</view> - <input placeholder="璇锋壂鎻忓鍣ㄥ彿" v-model="barcode" focus></input> + <input placeholder="璇锋壂鎻忓鍣ㄥ彿" v-model="barcode" focus></input> <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text> <text class='cuIcon-search text-blue' @click="search"></text> </view> + <view class="cu-form-group" v-show="isconfirm"> + <view class="title">鐗╂枡鐮�</view> + <input placeholder="璇锋壂鎻忕墿鏂欑爜" v-model="matnr" focus></input> + <text class='cuIcon-close text-gray margin-right-xs' v-show="matnr!==''" @click="clearCode"></text> + <text class='cuIcon-search text-blue' @click="addMatnr" v-show="matnr!==''"></text> + </view> </form> - - <view class="cu-list det menu sm-border padding"> - <block v-for="(item, index) in list"> - <view class="cu-list det menu "> - - - <view class="cu-bar bg-white solid-bottom margin-top-sm"> - <view class="action"> - <view class="index"> - {{index+1}} - </view> - </view> - <view class="content2"> - <text class="text-gray"><text class="text-black ">{{item.exceStatus$}}</text></text> - </view> - </view> - - <view class="cu-item"> - <view class="content"> - <text class="text-gray">鐗╂枡缂栫爜:<text class="text-black ">{{item.matnrCode}}</text></text> - </view> - </view> - <view class="cu-item"> - <view class="content"> - <text class="text-gray">鐗╂枡鍚嶇О:<text class="text-black ">{{item.maktx}}</text></text> - </view> - </view> - <view class="cu-item" v-if="check.checkType === 0"> - <view class="content"> - <text class="text-gray">搴撳瓨鏁�:<text class="text-black ">{{item.anfme}}</text></text> - </view> - </view> - <view class="cu-item"> - <view class="content"> - <view class="cu-form-group padding-lr-0"> - <view class="title text-blue"><text - class="text-red text-xl vertical-middle"></text>瀹炵洏鏁�:</view> - <uni-number-box style="width: 70%;" :max="max" v-model="item.checkQty" - :step='1' ></uni-number-box> - </view> - </view> - </view> - <view class="cu-item"> - <view class="content"> - <view class="cu-form-group padding-lr-0"> - <text class=" text-blue">澶囨敞:</text> - <input placeholder="璇疯緭鍏ュ娉�" v-model="item.memo" ></input> - </view> - </view> - </view> - <view class="cu-item" v-if="item.checkQty !== item.anfme && check.checkType === 0"> - <view class="content"> - <view class="cu-form-group padding-lr-0"> - <view class=" text-blue" >宸紓鍘熷洜</view> - <view style="width: 80%;"> - <uni-data-select style="min-width: 90%; max-width: 90%;" v-model="item.reason" :localdata="reasons" - placement="top"></uni-data-select> + <block v-for="(item, index) in list" v-if="!isconfirm"> + <view class="cu-list det menu "> + <view class="cu-bar bg-white solid-bottom margin-top-sm"> + <view class="action"> + <view class="index"> + {{index+1}} </view> </view> - </view> + <view class="content2"> + <text class="text-gray"><text class="text-black ">{{item.exceStatus$}}</text></text> + </view> + </view> + <view class="cu-item"> + <view class="content"> + <text class="text-gray">鐗╂枡缂栫爜:<text class="text-black ">{{item.matnrCode}}</text></text> + </view> + </view> + <view class="cu-item"> + <view class="content"> + <text class="text-gray">鐗╂枡鍚嶇О:<text class="text-black ">{{item.maktx}}</text></text> + </view> + </view> + <view class="cu-item"> + <view class="content"> + <text class="text-gray">鎵规:<text class="text-black ">{{item.batch}}</text></text> + </view> + </view> + <view class="cu-item" v-if="check.checkType === 0"> + <view class="content"> + <text class="text-gray">搴撳瓨鏁�:<text class="text-black ">{{item.anfme}}</text></text> + </view> + </view> + <view class="cu-item"> + <view class="content"> + <view class="cu-form-group padding-lr-0"> + <view class="title text-blue"><text class="text-red text-xl vertical-middle"></text>瀹炵洏鏁�: + </view> + <uni-number-box style="width: 70%;" :max="max" v-model="item.checkQty" + :step='1'></uni-number-box> + </view> + </view> + </view> + <view class="cu-item"> + <view class="content"> + <view class="cu-form-group padding-lr-0"> + <text class=" text-blue">澶囨敞:</text> + <input placeholder="璇疯緭鍏ュ娉�" v-model="item.memo"></input> + </view> + </view> + </view> + <view class="cu-item" v-if="item.checkQty !== item.anfme && check.checkType === 0"> + <view class="content"> + <view class="cu-form-group padding-lr-0"> + <view class=" text-blue">宸紓鍘熷洜</view> + <view style="width: 80%;"> + <uni-data-select style="min-width: 90%; max-width: 90%;" v-model="item.reason" + :localdata="reasons" placement="top"></uni-data-select> + </view> + </view> + </view> + </view> </view> - + </block> + + <block v-for="(item, index) in matnrList"> + <view class="cu-list det menu "> + <view class="cu-bar bg-white solid-bottom margin-top-sm"> + <view class="action"> + <view class="index"> + {{index+1}} + </view> + </view> + <view class="action"> + <text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text> + </view> + </view> + <view class="cu-item"> + <view class="content"> + <text class="text-gray">鐗╂枡缂栫爜:<text class="text-black ">{{item.matnrCode}}</text></text> + </view> + </view> + <view class="cu-item"> + <view class="content"> + <text class="text-gray">鐗╂枡鍚嶇О:<text class="text-black ">{{item.maktx}}</text></text> + </view> + </view> + <view class="cu-item" v-if="check.checkType === 0"> + <view class="content"> + <text class="text-gray">搴撳瓨鏁�:<text class="text-black ">{{item.anfme}}</text></text> + </view> + </view> + <view class="cu-item"> + <view class="content"> + <view class="cu-form-group padding-lr-0"> + <text class=" text-blue">鎵规:</text> + <input placeholder="璇疯緭鍏ユ壒娆�" v-model="item.batch"></input> + </view> + </view> + </view> + <view class="cu-item"> + <view class="content"> + <view class="cu-form-group padding-lr-0"> + <view class="title text-blue"><text class="text-red text-xl vertical-middle"></text>瀹炵洏鏁�: + </view> + <uni-number-box style="width: 70%;" :max="max" v-model="item.checkQty" + :step='1'></uni-number-box> + </view> + </view> + </view> + <view class="cu-item"> + <view class="content"> + <view class="cu-form-group padding-lr-0"> + <text class=" text-blue">澶囨敞:</text> + <input placeholder="璇疯緭鍏ュ娉�" v-model="item.memo"></input> + </view> + </view> + </view> + <view class="cu-item" v-if="item.checkQty !== item.anfme && check.checkType === 0"> + <view class="content"> + <view class="cu-form-group padding-lr-0"> + <view class=" text-blue">宸紓鍘熷洜</view> + <view style="width: 80%;"> + <uni-data-select style="min-width: 90%; max-width: 90%;" v-model="item.reason" + :localdata="reasons" placement="top"></uni-data-select> + </view> + </view> + </view> + </view> </view> - - - </block> </view> - - - <view class="cu-bar btn-group foot" v-show="!isconfirm"> <button class="cu-btn text-blue line-blue shadow" @click="clear">娓呯┖</button> <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="complete">鎻愪氦</button> </view> - + <view class="cu-bar btn-group foot" v-show="isconfirm"> + <button class="cu-btn text-blue line-blue shadow" @click="returnPage">杩斿洖</button> + <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="sureAdd">纭畾娣诲姞</button> + </view> + + </view> </template> @@ -110,19 +181,21 @@ export default { data() { return { - check:'', - list: [], + check: '', + list: [], isconfirm: false, - barcode:'', + barcode: '', max: 99999999, - repeatClick:false, - reasons:[] - + repeatClick: false, + reasons: [], + matnr: '', + matnrList:[] + } }, - computed: { - - + computed: { + + }, mounted() { this.getReasons() @@ -130,20 +203,53 @@ onLoad() { let that = this const eventChannel = this.getOpenerEventChannel(); - + eventChannel.on('checkItem', function(data) { that.check = data.data - + }) - + }, methods: { + sureAdd(){ + if(this.matnrList.length === 0){ + uni.showToast({ + title: "璇锋坊鍔犵墿鏂欐槑缁�", + icon: "none", + position: 'top' + }) + return ; + } + this.list.push(...this.matnrList) + this.matnrList = [] + this.isconfirm = !this.isconfirm + }, + remove(index) { + this.matnrList.splice(index, 1); + }, + async addMatnr() { + const { + code, + data, + msg + } = await request('/selectAddMatnr', { + matnr:this.matnr + }) + if (code === 200) { + this.matnrList.push(data) + this.matnr = '' + } + }, + returnPage() { + this.matnrList = [] + this.isconfirm = !this.isconfirm + }, async getReasons() { const { code, data, msg - } = await request('/getCheckDiffReasonList', {},'get') + } = await request('/getCheckDiffReasonList', {}, 'get') if (code === 200) { this.reasons = data.map(item => ({ value: item.id, @@ -156,7 +262,8 @@ this.list = [] }, clearCode() { - this.barcode = '' + this.barcode = '' + this.matnr = '' }, async search() { this.list = [] @@ -167,67 +274,66 @@ code, data, msg - } = await request('/getCheckTaskItemList',{ - barcode:this.barcode, + } = await request('/getCheckTaskItemList', { + barcode: this.barcode, checkCode: this.check.orderCode - } - ) - if (code === 200) { - if (Object.keys(data).length === 0){ + }) + if (code === 200) { + if (Object.keys(data).length === 0) { uni.showToast({ title: "璇ユ爣绛炬湭鏌ヨ鍒版暟鎹�", icon: "none", position: 'top' }) } - for(var i=0;i<data.length;i++){ - data[i].checkQty = data[i].anfme + for (var i = 0; i < data.length; i++) { + data[i].checkQty = data[i].anfme } - this.list=data - - }else if(code == 401){ + this.list = data + + } else if (code == 401) { setTimeout(() => { uni.removeStorageSync('token'); uni.reLaunch({ url: "/pages/login/login" }); }, 1000); - }else { + } else { uni.showToast({ title: msg, icon: "none", position: 'top' }) } - - + + }, async complete() { - + let that = this - if(that.barcode === '' || that.barcode === null){ + if (that.barcode === '' || that.barcode === null) { uni.showToast({ title: "瀹瑰櫒鍙蜂负绌�", icon: "error", }) - return ; + return; } - if(that.list === [] || that.list.length === 0){ + if (that.list === [] || that.list.length === 0) { uni.showToast({ title: "浠诲姟鏄庣粏涓虹┖", icon: "error", }) - return ; + return; } this.repeatClick = true const { code, data, msg - } = await request('/saveCheckDiff',{ - container:that.barcode, + } = await request('/saveCheckDiff', { + container: that.barcode, checkId: that.check.id, - checkDiffItems:that.list + checkDiffItems: that.list }) if (code === 200) { uni.showToast({ @@ -272,7 +378,8 @@ min-height: 80upx; align-items: center; } - .content2 { + + .content2 { /* background-color: coral; */ width: 100%; display: flex; @@ -282,7 +389,8 @@ margin-right: 10px; color: #0081ff; } - .noMargin{ + + .noMargin { margin-top: 0px; padding: 5px; } -- Gitblit v1.9.1