From 722736f9a56cf64b615e37ed1722dd430ad90d2d Mon Sep 17 00:00:00 2001 From: whycq <123456> Date: 星期三, 26 十月 2022 08:48:31 +0800 Subject: [PATCH] # --- pages/basics/pakin.vue | 307 +++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 238 insertions(+), 69 deletions(-) diff --git a/pages/basics/pakin.vue b/pages/basics/pakin.vue index 5f62d7d..c79978c 100644 --- a/pages/basics/pakin.vue +++ b/pages/basics/pakin.vue @@ -8,8 +8,8 @@ </view> <view class="square-content"> <view class="content-input"> - <input v-model="barcode" type="text" placeholder="鎵爜 / 杈撳叆" maxlength="8" - :focus="barcodeFocus" @focus="focuss"> + <input v-model="barcode" type="text" placeholder="鎵爜 / 杈撳叆" placeholder-style="margin-top:10px" maxlength="10" + :focus="barcodeFocus" @confirm="barcodeInput()"> <uni-icons type="closeempty" size="20" color="#dadada" @click="removeBarcode()"></uni-icons> </view> </view> @@ -22,14 +22,14 @@ <view class="title-text"><text>妫�绱㈠晢鍝�</text></view> </view> <view class="square-content"> - <view class="content-input-btn"> + <view class="content-input"> <input v-model="matnr" type="text" placeholder="鎵爜 / 杈撳叆" @input="findMat()" - :focus="focus" @focus="focuss"> + :focus="focus" placeholder-style="margin-top:9px"> <uni-icons type="closeempty" size="20" color="#dadada" @click="removeMatnr()"></uni-icons> </view> - <view class="content-btn"> + <!-- <view class="content-btn"> <button class="cu-btn bg-blue pda-btn" @click="selectMat()">+鎻愬彇</button> - </view> + </view> --> </view> </view> @@ -38,8 +38,10 @@ <view class="square-title"> <view class="title-sign"><view class="sign"></view></view> <view class="title-text"><text>鍟嗗搧鍒楄〃</text></view> + <!-- <label v-show="matList.length != 0" style="float: right;margin-right: 20px;margin-top: 13px;"><uni-icons type="trash" size="25" color="#a5a5a5" @click="remove()"></uni-icons></label> --> </view> </view> + <view class="square-none" v-show="matList.length === 0"> <view class="v-show">鏆傛棤鏇村鏁版嵁...</view> </view> @@ -47,41 +49,57 @@ <checkbox-group @change="checkbox"> <view v-for="(item,index) in matList" :key="index" class="data-list bg-false" :class="'bg-'+item.checked" > <view class="data-list-left"> - <view class="matnr"><text style="width: 400rpx;">缂栫爜锛歿{item.matnr}}</text></view> - <view><text style="width: 400rpx;">鍝佸悕锛歿{item.maktx}}</text></view> - <view><text style="width: 400rpx;">鎵瑰彿锛歿{item.batch}}</text></view> + <!-- <view> + <checkbox :value="item.id+''" :checked="item.checked" style="display: block;" /> + </view> --> + <view class="matnr"><text style="width: 400rpx;">缂栫爜锛歿{item.matNo}}</text></view> + <view><text style="width: 400rpx;">鍝佸悕锛歿{item.matName}}</text></view> + <view><text style="width: 400rpx;">瑙勬牸锛歿{item.str2}}</text></view> <view> - <text style="width: 400rpx;">鏁伴噺锛歿{item.anfme}}</text> + <text style="width: 400rpx;">鏁伴噺锛歿{item.count}}</text> </view> </view> <view class="data-list-right"> - <label><uni-icons type="compose" size="20" color="#a5a5a5" @click="revise(item,index)"></uni-icons></label> + <label><uni-icons type="compose" size="20" color="#a5a5a5" @click="revise(index)"></uni-icons></label> <label><uni-icons type="trash" size="25" color="#a5a5a5" @click="remove(item,index)"></uni-icons></label> </view> </view> </checkbox-group> </scroll-view> + + + <!-- 搴曢儴鎸夐挳 --> <view class="footer flex justify-around"> - <view> - <button class="cu-btn lg" @click="resst()">閲嶇疆</button> - </view> - <view> - <button class="cu-btn lg pakin-btn bg-blue" @click="comb()">缁勬墭</button> - </view> + <!-- <label class="label-btn" style="width: 170rpx;"> + <checkbox :checked="check" @click="allChecked()">{{checkText}}</checkbox> + </label> + <label class="label-btn" style="width: 100rpx;"> + <text @click="reChecked()">鍙嶉��</text> + </label> --> + + <label class="label-btn" style="width: 150rpx;"> + <button class="cu-btn" @click="resst()">閲嶇疆</button> + </label> + <label class="label-btn"> + <button class="cu-btn bg-blue " @click="comb()">缁勬墭</button> + </label> </view> + + <!-- 寮圭獥 --> <!-- 淇敼鏁伴噺 --> - <uni-popup ref="revise" background-color="#fff" @change="change"> + + <uni-popup ref="revise" background-color="#fff"> <view class="revise-box"> <view class="revise-box-top"> <view class="color-block-blue"></view> <text class="title">缁勬墭鏁伴噺</text> </view> <view class="text-box"> - <text>鍙粍鏁伴噺锛歿{enableQty}}</text> + <text>纭缁勬墭鏁伴噺</text> </view> <view class="changeBox"> <view class="num-box"> - <uni-number-box v-model="count" :min="minCount" :max="maxCount" color="#747474" @change="changeValue"/> + <uni-number-box :value="count" :max="999999999" color="#747474" @change="changeValue" /> </view> </view> <view class="revise-box-buttom"> @@ -89,7 +107,6 @@ <button class="cu-btn bg-blue" @click="confirm()">纭</button> </view> </view> - </view> </uni-popup> </view> @@ -111,10 +128,20 @@ result: '', enableQty:'', count:'', + counts:'', minCount:0, maxCount:'', rowNum:'', + check:false, + checkText:'鍏ㄩ��', + checkedData:[], } + }, + onShow() { + setTimeout(()=>{ + // this.focuss() + }, 100); + }, mounted(){ const UIP = uni.getStorageSync('UIP'); @@ -123,12 +150,40 @@ this.basePORT = UPORT }, methods: { + // barcode input 浜嬩欢 + barcodeInput() { + // 涓嶈缃畾鏃跺櫒 浼氬嚭鐜版壂鍏ョ殑瀛楃涓蹭笉鍏� + setTimeout(()=>{ + var len = this.barcode.length + if (len != 8) { + uni.showToast({title: '鎵樼洏鐮佹湁璇閲嶈瘯', icon: "none", position: 'top'}); + this.barcodeFocuss() + return; + } + if (len == 8) { + this.focuss() + } + },100) + + }, + // 鎵樼洏鐮佹湁璇噸缃� + barcodeFocuss() { + // #ifdef APP + let that = this; + that.barcodeFocus = false; + setTimeout(()=>{ + that.barcode = ''; + that.barcodeFocus = true; + }, 100); + // #endif + }, + // 鍟嗗搧鍏夋爣娓呯┖閲嶇疆 focuss() { // #ifdef APP let that = this; that.focus = false; setTimeout(()=>{ - that.matnrId = ''; + that.matnr = ''; that.focus = true; }, 100); // #endif @@ -136,7 +191,7 @@ resst() { this.matList = [] this.barcode = '' - this.matnr = '' + this.barcodeFocuss() uni.vibrateShort(); }, removeBarcode() { @@ -157,6 +212,7 @@ }, remove(item,index) { this.matList.splice(index,1) + this.checkList(); uni.vibrateShort(); }, comb() { @@ -215,20 +271,21 @@ that.matnr = data.data that.findMat(that.matnr) }, - }, - success: function(res) { + }, + success: function(res) { // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹� 鍚戝彟澶栦竴涓〉闈紶閫掑�肩殑 - res.eventChannel.emit('acceptDataFromOpenerPage', {baseIP:that.baseIP, basePORT:that.basePORT }) - } + res.eventChannel.emit('matData', {baseIP:that.baseIP, basePORT:that.basePORT }) + }, + }); that.matnr = '' }, findMat() { let that = this uni.request({ - url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/mat/auth', + url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/matCode/auth', data: { - matnr:that.matnr + id:that.matnr }, header: { 'token':uni.getStorageSync('token') @@ -238,26 +295,45 @@ let res = result.data if (res.code === 200 && res.data) { that.matData = res.data + that.matnr = '' uni.navigateTo({ url: "matQuery", events: { // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹� matList: function(data) { - that.matList.push(data.data) - console.log(that.matList) - }, - }, - success: function(res) { - // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹� - res.eventChannel.emit('matData', { data: that.matData }) - } + that.checkMat(data.data) + // that.matList.push(data.data) + }, + }, + success: function(res) { + // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹� + res.eventChannel.emit('matData', { data: that.matData }) + }, }); } } }); + }, - + // 娣诲姞鍟嗗搧 + addMat(mat) { + this.matList.unshift(mat) + }, + checkMat(mat) { + var len = this.matList.length + var add = true + for (var i = 0; i < len; i++) { + if (mat.matNo === this.matList[i].matNo) { + this.matList[i].count += mat.count + this.$forceUpdate() // 寮哄埗鍒锋柊 + add = false + } + } + if (add) { + this.matList.unshift(mat) + } + }, change(e) { console.log('褰撳墠妯″紡锛�' + e.type + ',鐘舵�侊細' + e.show); }, @@ -267,18 +343,61 @@ this.$refs.goodsSearch.open(type) }, checkbox: function (e) { - var items = this.data, - values = e.detail.value; - for (var i = 0, lenI = items.length; i < lenI; ++i) { - const item = items[i] - item.id = item.id + '' - if(values.indexOf(item.id) >= 0){ - this.$set(item,'checked',true) + // var items = this.matList, + // values = e.detail.value; + // for (var i = 0, lenI = items.length; i < lenI; ++i) { + // const item = items[i] + // item.id = item.id + '' + // if(values.indexOf(item.id) >= 0){ + // this.$set(item,'checked',true) + // }else{ + // this.$set(item,'checked',false) + // } + // } + // if (values.length == items.length) { + // this.check = true + // this.checkText = "鍙栨秷鍏ㄩ��" + // } else { + // this.check = false + // this.checkText = "鍏ㄩ��" + // } + // uni.vibrateShort(); + }, + revise(index) { + this.rowNum = index + this.count = this.matList[this.rowNum].count + this.$refs.revise.open() + + }, + changeCount(e) { + + }, + changeValue(value) { + this.count = value + }, + // 纭缁勬墭鏁伴噺 + confirm() { + this.matList[this.rowNum].count = this.count + this.$refs.revise.close() + this.$forceUpdate() // 寮哄埗鍒锋柊 + }, + // 鍒楄〃鍙嶉�� + reChecked() { + if (this.matList.length == 0) { + return; + } + var checkArr = [] + for (var i = 0; i < this.matList.length;i++) { + if (this.matList[i].checked == true) { + this.$set(this.matList[i],'checked',false) }else{ - this.$set(item,'checked',false) + this.$set(this.matList[i],'checked',true) + } + if (this.matList[i].checked == true) { + checkArr.push(this.matList[i].checked) } } - if (values.length == items.length) { + if (checkArr.length == this.matList.length) { this.check = true this.checkText = "鍙栨秷鍏ㄩ��" } else { @@ -287,29 +406,32 @@ } 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.rowNum = index - this.eject() - }, - eject(type) { - this.type = type - // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦� uni-popup 缁勪欢涓婄粦瀹� type灞炴�� - this.$refs.revise.open(type) - }, - changeValue() { + // 鍒楄〃鍏ㄩ�� + allChecked(e){ + if (this.check == true) { + for (var i = 0; i < this.matList.length;i++) { + this.$set(this.matList[i],'checked',false) + } + this.check = false + this.checkText = "鍏ㄩ��" + } else { + for (var i = 0; i < this.matList.length;i++) { + this.$set(this.matList[i],'checked',true) + } + this.check = true + this.checkText = "鍙栨秷鍏ㄩ��" + } + uni.vibrateShort(); }, - confirm() { - this.matList[this.rowNum].anfme = this.count - this.$refs.revise.close() - }, + // 妫�楠屽垪琛ㄩ暱搴� 绛変簬0 鏄剧ず鍏ㄩ�� + checkList() { + if (this.matList.length == 0) { + this.check = false + this.checkText = "鍏ㄩ��" + return; + } + } } } </script> @@ -417,12 +539,13 @@ height: 180rpx; margin: 15rpx; border-radius: 20rpx; + font-size: 12px; } .data-list:first-child { margin-top: 20rpx; } .data-list:last-child { - margin-bottom: 120rpx; + margin-bottom: 170rpx; } /* .data-list-left { display: inline-block; @@ -459,4 +582,50 @@ width: 80rpx; height: 180rpx; } + .revise-box { + width: 500rpx; + height: 500rpx; + } + .revise-box-top { + width: 100%; + height: 100rpx; + background-color: #fff; + padding: 10rpx; + } + .changeBox { + width: 100%; + height: 100rpx; + line-height: 120rpx; + text-align: center; + background-color: #FFF; + margin-top: 20rpx; + border-bottom: 1px solid #e3e3e3; + } + .text-box { + width: 100%; + height: 100rpx; + line-height: 120rpx; + text-align: center; + /* padding-left: 120rpx; */ + background-color: #FFF; + margin-top: 20rpx; + border-bottom: 1px solid #e3e3e3; + } + .changeBox .num-box { + display: inline-block; + /* float: left; */ + } + .changeBox button { + float: left; + } + .revise-box-buttom { + position: absolute; + width: 100%; + height: 100rpx; + line-height: 100rpx; + background-color: #FFFFFF; + bottom: 0; + text-align: center; + } + </style> \ No newline at end of file -- Gitblit v1.9.1