From 54fce333aae7d6f596616a6eb5e65c27c28a9994 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期三, 21 八月 2024 12:39:26 +0800 Subject: [PATCH] # --- pages/basics/pakin.vue | 310 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 249 insertions(+), 61 deletions(-) diff --git a/pages/basics/pakin.vue b/pages/basics/pakin.vue index 06f3bb5..dfdf8d4 100644 --- a/pages/basics/pakin.vue +++ b/pages/basics/pakin.vue @@ -8,13 +8,39 @@ </view> <view class="square-content"> <view class="content-input"> - <input v-model="barcode" type="text" placeholder="鎵爜 / 杈撳叆" maxlength="10" - :focus="barcodeFocus" @input="barcodeInput"> + <input v-model="barcode" type="text" placeholder="鎵爜 / 杈撳叆" + :focus="barcodeFocus" @input="checkedBarcode()" placeholder-style="line-height: 85rpx;"> <uni-icons type="closeempty" size="20" color="#dadada" @click="removeBarcode()"></uni-icons> </view> </view> </view> + <view class="square-1"> + <view class="square-title"> + <view class="title-sign"><view class="sign"></view></view> + <view class="title-text"><text>鏄惁鍐荤粨</text></view> + <radio-group @change="isFrozen"> + <label> + <radio :checked="ck1" style="margin-left: 100rpx;"/><text>鏄�</text> + </label> + <label> + <radio :checked="ck2" style="margin-left: 50rpx;"/><text>鍚�</text> + </label> + </radio-group> + <!-- <radio :value="yes" style="margin-left: 100rpx;">鏄�</radio> + <radio :value="no" style="margin-left: 50rpx;">鍚�</radio> --> + </view> + </view> + <view class="square-1"> + <view class="square-title" style="display: flex;align-items: center;"> + <view class="title-sign"><view class="sign"></view></view> + <view class="title-text" style="flex: 1;"><text>鍟嗗搧绫诲瀷</text></view> + <view style=""> + <uni-combox style="width: 150px;margin-right: 10px;" :candidates="matTypes" placeholder="璇烽�夋嫨鍟嗗搧绫诲瀷" + v-model="matType"></uni-combox> + </view> + </view> + </view> <view class="square-2"> <view class="square-title"> @@ -24,7 +50,7 @@ <view class="square-content"> <view class="content-input-btn"> <input v-model="matnr" type="text" placeholder="鎵爜 / 杈撳叆" @input="findMat()" - :focus="focus"> + :focus="focus" placeholder-style="line-height: 85rpx;"> <uni-icons type="closeempty" size="20" color="#dadada" @click="removeMatnr()"></uni-icons> </view> <view class="content-btn"> @@ -52,12 +78,21 @@ <!-- <view> <checkbox :value="item.id+''" :checked="item.checked" style="display: block;" /> </view> --> - <view class="matnr"><text style="width: 400rpx;">缂栫爜锛歿{item.matnr}}</text></view> + <table> + <tr><td>缂栧彿锛�</td><td>{{item.matnr}}</td></tr> + </table> <view><text style="width: 400rpx;">鍝佸悕锛歿{item.maktx}}</text></view> + <view><text style="width: 400rpx;">瑙勬牸锛歿{item.specs}}</text></view> + <view><text style="width: 400rpx;">鍏ュ簱鍖哄煙锛歿{item.matType$}}</text></view> <view><text style="width: 400rpx;">鎵瑰彿锛歿{item.batch}}</text></view> + <view><text style="width: 400rpx;">瀹㈡埛淇℃伅锛歿{item.owner}}</text></view> <view> - <text style="width: 400rpx;">鏁伴噺锛歿{item.anfme}}</text> + <text style="width: 400rpx;">澶囨敞锛歿{item.memo}}</text> + <text style="width: 400rpx;margin-left: 100rpx">鏁伴噺锛歿{item.anfme}}</text> </view> + <!-- <view> + <text style="width: 400rpx;">鏁伴噺锛歿{item.anfme}}</text> + </view> --> </view> <view class="data-list-right"> <label><uni-icons type="compose" size="20" color="#a5a5a5" @click="revise(item,index)"></uni-icons></label> @@ -84,21 +119,30 @@ <button class="cu-btn bg-blue " @click="comb()">缁勬墭</button> </label> </view> - <!-- 寮圭獥 --> <!-- 淇敼鏁伴噺 --> - <uni-popup ref="revise" background-color="#fff" @change="change"> - <view class="revise-box"> + <uni-popup ref="revise" > + <view class="revise-box "> <view class="revise-box-top"> <view class="color-block-blue"></view> - <text class="title">缁勬墭鏁伴噺</text> + <text class="title">淇敼</text> </view> - <view class="text-box"> - <text>鍙粍鏁伴噺锛歿{enableQty}}</text> + <view class="" style="position: relative;left: 50px;margin-bottom: 20px;"> + <text style="display: inline-block;float: left;width: 50px;">鎵瑰彿锛�</text> + <input type="text" style="width: 100px;border-bottom: 1px solid #9e9e9e;" v-model="batch"> + </view> + <view class="" style="position: relative;left: 50px;margin-bottom: 20px;"> + <text style="display: inline-block;float: left;width: 50px;">澶囨敞锛�</text> + <input type="text" style="width: 100px;border-bottom: 1px solid #9e9e9e;" v-model="memo"> + </view> + <view class="" style="position: relative;left: 50px;margin-bottom: 20px;"> + <text style="display: inline-block;float: left;width: 50px;">瀹㈡埛锛�</text> + <input type="text" style="width: 100px;border-bottom: 1px solid #9e9e9e;" v-model="cstmr"> </view> <view class="changeBox"> <view class="num-box"> - <uni-number-box v-model="count" :min="minCount" :max="maxCount" color="#747474" @change="changeValue"/> + <text style="display: inline-block;float: left;width: 50px;">鏁伴噺锛�</text> + <uni-number-box :value="count" :max="9999999" color="#747474" @change="changeValue"/> </view> </view> <view class="revise-box-buttom"> @@ -113,9 +157,11 @@ <script> import permision from "@/common/permission.js" +import loginVue from "../login/login.vue"; export default { data() { return { + commonUrl:null, barcode: '', barcodeFocus:true, focus:false, @@ -133,6 +179,16 @@ check:false, checkText:'鍏ㄩ��', checkedData:[], + batch:'', + memo: '', + cstmr: '', + ck1: false, + ck2: true, + frozen: 0, + owner: '', + matType: '', + matTypes: ['鍗曞搧鐗╂枡','楂橀娣峰悎鐗╂枡','浣庨娣峰悎鐗╂枡'], + matTypeId: 0, } }, onShow() { @@ -146,30 +202,70 @@ this.baseIP = UIP; const UPORT = uni.getStorageSync('UPORT'); this.basePORT = UPORT + const PROJ = uni.getStorageSync('UPROJ'); + this.baseUrl = PROJ + this.getUrl() }, methods: { + // 鑾峰彇url + getUrl() { + this.commonUrl = this.baseHttp + this.baseIP + ':' +this.basePORT + "/" +this.baseUrl + }, + // 妫�鏌ユ潯鐮� + checkedBarcode() { + let that = this + uni.request({ + url: that.commonUrl + '/mobile/barcode/auth', + data: { + barcode: that.barcode, + }, + header: { + 'token':uni.getStorageSync('token') + }, + success(result) { + var res = result.data + if (res.code === 500) { + that.barcodeFocuss() + uni.showToast({title: res.msg, icon: "none", position: 'top'}); + } else if(res.code === 200) { + that.barcodeInput() + } + } + }) + }, + // 鍐荤粨 + isFrozen() { + var temp = this.ck1 + this.ck1 = this.ck2 + this.ck2 = temp + this.frozen = this.ck1 + if (this.frozen == true) { + this.frozen = 1 + } else { + this.frozen = 0 + } + }, // barcode input 浜嬩欢 barcodeInput() { - var len = this.barcode.length - if (len != 8) { - uni.showToast({title: '鎵樼洏鐮佹湁璇閲嶈瘯', icon: "none", position: 'top'}); - this.barcodeFocuss() - return; - } - if (len == 8) { + // 涓嶈缃畾鏃跺櫒 浼氬嚭鐜版壂鍏ョ殑瀛楃涓蹭笉鍏� + setTimeout(()=>{ + var len = this.barcode.length + if (len != 8) { + uni.showToast({title: '鎵樼洏鐮佹湁璇閲嶈瘯', icon: "none", position: 'top'}); + this.barcodeFocuss() + return; + } this.focuss() - } + },200) }, // 鎵樼洏鐮佹湁璇噸缃� barcodeFocuss() { - // #ifdef APP let that = this; that.barcodeFocus = false; setTimeout(()=>{ that.barcode = ''; that.barcodeFocus = true; }, 100); - // #endif }, // 鍟嗗搧鍏夋爣娓呯┖閲嶇疆 focuss() { @@ -185,6 +281,9 @@ resst() { this.matList = [] this.barcode = '' + this.matnr = '' + this.matType = '' + this.matTypeId = 0 this.barcodeFocuss() uni.vibrateShort(); }, @@ -204,14 +303,9 @@ this.focus = true; }); }, - remove() { - // this.matList.splice(index,1) - for (var i = 0; i < this.matList.length; i++) { - if (this.matList[i].checked == true) { - this.matList.splice(i,1) - } - } - this.checkList(); + // 鍒楄〃鍒犻櫎鎸夐挳 + remove(item,index) { + this.matList.splice(index,1) uni.vibrateShort(); }, comb() { @@ -225,11 +319,28 @@ uni.showToast({title: '璇锋坊鍔犲晢鍝佸垪琛�', icon: "none", position: 'top'}); return; } + for (var i = 0; i < that.matList.length; i++) { + if (that.matList[i].anfme == 0 || that.matList[i].anfme == '') { + uni.showToast({title: that.matList[i].matnr + '缁勬墭鏁伴噺涓嶈兘涓�0', icon: "none", position: 'top'}); + return; + } + } + // 瀹㈡埛淇℃伅涓枃杞暟瀛� + for (let k in that.matList) { + for (let t in that.owner) { + if (that.matList[k].owner == that.owner[t].owner) { + that.matList[k].owner = that.owner[t].id + } + } + } + this.getMatTypeIn(this.matType) uni.showLoading(); uni.request({ - url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/mobile/comb/auth', + url: that.commonUrl + '/mobile/comb/auth', data: JSON.stringify({ + frozen: that.frozen, barcode: that.barcode, + matTypeIn: that.matTypeId, combMats: that.matList }), method: 'POST', @@ -240,6 +351,9 @@ uni.hideLoading(); var res = result.data if (res.code === 200) { + const innerAudioContext = uni.createInnerAudioContext(); + innerAudioContext.src = '/static/music/pakinOk.mp3'; + innerAudioContext.play() that.resst(); uni.showToast({ title: res.msg, @@ -254,10 +368,32 @@ }); }, 1000); } else { + for (let k in that.matList) { + for (let t in that.owner) { + if (that.matList[k].owner == that.owner[t].id) { + that.matList[k].owner = that.owner[t].owner + } + } + } uni.showToast({title: res.msg, icon: "none",position: 'top'}) } } }); + }, + getMatTypeIn(type) { + switch (type) { + case '鍗曞搧鐗╂枡': + this.matTypeId = 1 + break; + case '楂橀娣峰悎鐗╂枡': + this.matTypeId = 2 + break; + case '浣庨娣峰悎鐗╂枡': + this.matTypeId = 3 + break; + default: + this.matType = 0 + } }, selectMat() { let that = this @@ -273,7 +409,7 @@ }, success: function(res) { // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹� 鍚戝彟澶栦竴涓〉闈紶閫掑�肩殑 - res.eventChannel.emit('acceptDataFromOpenerPage', {baseIP:that.baseIP, basePORT:that.basePORT }) + res.eventChannel.emit('commonUrl', {commonUrl:that.commonUrl }) }, }); @@ -282,7 +418,7 @@ findMat() { let that = this uni.request({ - url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/mat/auth', + url: that.commonUrl + '/mat/auth', data: { matnr:that.matnr }, @@ -295,20 +431,33 @@ if (res.code === 200 && res.data) { that.matData = res.data that.matnr = '' + that.matData['batch'] = '' uni.navigateTo({ url: "matQuery", events: { // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹� matList: function(data) { - that.matList.push(data.data) - console.log(that.matList) + that.checkMat(data.data) + }, + owner: function(data) { + that.owner = data.data }, }, success: function(res) { // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹� res.eventChannel.emit('matData', { data: that.matData }) + res.eventChannel.emit('url', { data: that.commonUrl }) }, }); + } else if (res.code == 403) { + uni.showToast({title: res.msg, icon: "none", position: 'top'}) + setTimeout(() => { + uni.reLaunch({ + url: '../login/login' + }); + }, 1000); + } else { + uni.showToast({title: res.msg, icon: "none",position: 'top'}) } } @@ -316,8 +465,30 @@ }, + // 娣诲姞鍟嗗搧 + addMat(mat) { + this.matList.unshift(mat) + }, + checkMat(mat) { + var len = this.matList.length + var add = true + var date = new Date() + var today = date.getFullYear() + '/' + (date.getMonth()+1) + '/' + date.getDate() + for (var i = 0; i < len; i++) { + if (mat.matnr == this.matList[i].matnr) { + this.matList[i].anfme += mat.anfme + this.$forceUpdate() // 寮哄埗鍒锋柊 + add = false + } + } + if (add) { + if(mat.batch === '' || mat.batch === null) { + // mat.batch = today + } + this.matList.unshift(mat) + } + }, change(e) { - console.log('褰撳墠妯″紡锛�' + e.type + ',鐘舵�侊細' + e.show); }, toggle(type) { this.type = type @@ -346,13 +517,10 @@ uni.vibrateShort(); }, revise(item,index) { - var maxCount = this.matList[index].maxCount - if (maxCount == undefined ) { - this.matList[index]["maxCount"] = item.enableQty - } - this.enableQty = item.enableQty - this.count = this.minCount - this.maxCount = item.maxCount + this.count = this.matList[index].anfme + this.batch = this.matList[index].batch + this.memo = this.matList[index].memo + this.cstmr = this.matList[index].cstmr this.rowNum = index this.eject() }, @@ -361,12 +529,16 @@ // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦� uni-popup 缁勪欢涓婄粦瀹� type灞炴�� this.$refs.revise.open(type) }, - changeValue() { - + changeValue(value) { + this.count = value }, confirm() { this.matList[this.rowNum].anfme = this.count + this.matList[this.rowNum].batch = this.batch + this.matList[this.rowNum].memo = this.memo + this.matList[this.rowNum].cstmr = this.cstmr this.$refs.revise.close() + this.$forceUpdate() // 寮哄埗鍒锋柊 }, // 鍒楄〃鍙嶉�� reChecked() { @@ -411,14 +583,6 @@ } uni.vibrateShort(); }, - // 妫�楠屽垪琛ㄩ暱搴� 绛変簬0 鏄剧ず鍏ㄩ�� - checkList() { - if (this.matList.length == 0) { - this.check = false - this.checkText = "鍏ㄩ��" - return; - } - } } } </script> @@ -426,7 +590,29 @@ <style> /* @import "../../colorui/main.css"; @import "../../colorui/icon.css"; */ - + .revise-box { + position: relative; + width: 500rpx; + height: 570rpx; + border-radius: 25px; + background-color: #fff; + border-radius: 20rpx; + } + .revise-box-top { + width: 400rpx; + height: 120rpx; + border-radius: 25px; + } + .changeBox { + width: 400rpx; + height: 100rpx; + } + .num-box { + margin-left: 100rpx; + } + .revise-box-buttom{ + margin-left: 190rpx; + } .pak-seach-box { background-color: #FFFFFF; margin: 15rpx 15rpx 0rpx 15rpx; @@ -523,15 +709,16 @@ } .data-list { border-bottom: 1px solid #d8d8d8; - height: 180rpx; + min-height: 320rpx; margin: 15rpx; border-radius: 20rpx; + display: flex; } .data-list:first-child { margin-top: 20rpx; } .data-list:last-child { - margin-bottom: 120rpx; + margin-bottom: 180rpx; } /* .data-list-left { display: inline-block; @@ -542,11 +729,12 @@ line-height: 180rpx; } */ .data-list-left { - display: inline-block; - float: left; margin-left: 6%; - height: 180rpx; + min-height: 320rpx; color: #676767; + width: 500rpx; + color: #676767; + max-width: 450rpx; } .matnr { padding-top: 10rpx; @@ -554,8 +742,8 @@ .data-list-right { display: inline-block; float: right; - height: 180rpx; - line-height: 180rpx; + min-height: 290rpx; + line-height: 290rpx; } /* display: inline-block; float: right; -- Gitblit v1.9.1