From 36fc4fa64ba5a7fd9f23b33c94c918d4b3ca70e3 Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期三, 24 八月 2022 12:17:37 +0800 Subject: [PATCH] Merge branch 'jkwms' of http://47.97.1.152:5880/r/~whycq/wms-app into jkwms --- pages/basics/pakin.vue | 531 +++++++++++++++++++++++++++++++--------------------------- 1 files changed, 283 insertions(+), 248 deletions(-) diff --git a/pages/basics/pakin.vue b/pages/basics/pakin.vue index 52dd1c4..7a5ff5a 100644 --- a/pages/basics/pakin.vue +++ b/pages/basics/pakin.vue @@ -1,181 +1,255 @@ <template> - <view> - <scroll-view scroll-y> - <view class="pak-seach-box"> + <view > + <scroll-view scroll-y catch:touchmove="touchmove"> + <view class="square-2"> + <view class="square-title"> + <view class="title-sign"><view class="sign"></view></view> + <view class="title-text"><text>鎵樼洏鏉$爜</text></view> + </view> + <view class="square-content"> + <view class="content-input"> + <input v-model="barcode" type="text" placeholder="鎵爜 / 杈撳叆" maxlength="8" + :focus="barcodeFocus" @focus="focuss"> + <uni-icons type="closeempty" size="20" color="#dadada" @click="removeBarcode()"></uni-icons> + </view> + </view> + </view> + + <!-- <view class="pak-seach-box"> <view class="box-top"> <view class="color-block-blue"></view> <text class="title">鎵樼洏鏉$爜</text> </view> <view class="box-buttom"> - <input type="text" placeholder="鎵爜 / 杈撳叆"> + <input v-model="barcode" type="text" placeholder="鎵爜 / 杈撳叆" maxlength="8"> + <view class="search-icon"> + <uni-icons type="closeempty" size="20" color="#a5a5a5" @click="removeBarcode()"></uni-icons> + </view> + </view> + </view> --> + + <view class="square-2"> + <view class="square-title"> + <view class="title-sign"><view class="sign"></view></view> + <view class="title-text"><text>妫�绱㈠晢鍝�</text></view> + </view> + <view class="square-content"> + <view class="content-input-btn"> + <input v-model="matnr" type="text" placeholder="鎵爜 / 杈撳叆" @input="findMat()" + :focus="focus" @focus="focuss"> + <uni-icons type="closeempty" size="20" color="#dadada" @click="removeMatnr()"></uni-icons> + </view> + <view class="content-btn"> + <button class="cu-btn bg-blue pda-btn" @click="selectMat()">+鎻愬彇</button> + </view> </view> </view> - <view class="pak-seach-box"> + + <!-- <view class="pak-seach-box"> <view class="box-top"> <view class="color-block-blue"></view> <text class="title">妫�绱㈠晢鍝�</text> </view> <view class="box-buttom"> - <input type="text" placeholder="鎵爜 / 杈撳叆"> - <button class="cu-btn bg-blue" @click="pickEject()">+鎻愬彇</button> + <input v-model="matnr" type="text" placeholder="鎵爜 / 杈撳叆" @input="findMat()"> + <view class="search-icon"> + <uni-icons type="closeempty" size="20" color="#a5a5a5" @click="removeMatnr()"></uni-icons> + </view> + </view> + <button class="cu-btn bg-blue" @click="selectMat()">+鎻愬彇</button> + </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> </view> </view> - <view class="pak-data-box"> + <view class="square-none" v-show="matList.length === 0"> + <view class="v-show">鏆傛棤鏇村鏁版嵁...</view> + </view> + + <!-- <view class="pak-data-box"> <view class="box-top"> <view class="color-block-blue"></view> <text class="title">鍟嗗搧鍒楄〃</text> </view> - <checkbox-group @change="checkbox"> - <label v-for="(item,index) in data" :key="index" class="data-list bg-false" :class="'bg-'+item.checked" > - <view class="demo-list-left"> - <checkbox :value="item.id+''" :checked="item.checked" style="display: block;" /> - </view> - <view class="demo-list-right"> - <!-- <view><text style="font-weight: bold;">搴忓彿锛歿{index+1}}</text></view> --> - <view class="order-ditel"><text class="index">No.{{index+1}}</text><text class="orderNo">{{item.orderNo}}</text></view> - <view><text style="width: 400rpx;">鍟嗗搧缂栫爜锛歿{item.matnr}}</text></view> - <view> - <text>搴斿叆鏁伴噺锛歿{item.anfme}}</text> - <text>鍟嗗搧鍚嶇О锛歿{item.maktx}}</text> - </view> - <view> - <text>宸插叆鏁伴噺锛歿{item.inQty}}</text> - <text style="width: auto;">璁㈠崟鐘舵�侊細</text><text :class="state$"> {{item.state$}}</text> - </view> - </view> - </label> - </checkbox-group> </view> - + <view class="pak-data-box" v-show="matList.length === 0"> + <view style="text-align: center;">鏆傛棤鏇村鏁版嵁</view> + </view> --> + <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">{{item.barcode}}</view> + </view> + <view class="data-list-right"> + <uni-icons type="trash" size="25" color="#a5a5a5" @click="remove(item,index)"></uni-icons> + </view> + </view> + </checkbox-group> </scroll-view> <view class="footer flex justify-around"> <view> - <button class="cu-btn">閲嶇疆</button> + <button class="cu-btn lg" @click="resst()">閲嶇疆</button> </view> <view> - <button class="cu-btn pakin-btn bg-blue">缁勬墭</button> - </view> - <view> - <button class="cu-btn bg-blue" @click="searchEject()"><text class="button-text">灞呬腑</text></button> - </view> - </view> - <!-- 寮瑰嚭灞� --> - <view> - <!-- 鍟嗗搧妫�绱㈠脊绐� --> - <view class="search-box" :class="'search-box-' + searchBox"> - <view class="goodsSearch"> - <view class="head"> - <view class="color-block-blue"></view> - <view class="head-title">鎻愬彇鍟嗗搧</view> - <view class="head-icon"> - <uni-icons type="closeempty" size="25" @click="searchEject()"></uni-icons> - </view> - </view> - <view class="container"> - <view class="text-box"> - <view><text>鍟嗗搧缂栫爜</text></view> - <view><text>1111</text></view> - </view> - <view class="text-box"> - <view><text>鍟嗗搧鍚嶇О</text></view> - <view></view> - </view> - <view class="text-box"> - <view><text>瑙勬牸</text></view> - <view></view> - </view> - <view class="text-box"> - <view><text>鎵瑰彿</text></view> - <view></view> - </view> - <view class="text-box"> - <view><text>鏁伴噺</text></view> - <view></view> - </view> - <view class="foot flex justify-center"> - <label for=""> - <button class="cu-btn bg-blue">鎻愬彇</button> - </label> - </view> - </view> - </view> - </view> - - </view> - <view> - <!-- 鎻愬彇寮圭獥 --> - <view class="pick-box" :class="'pick-box-' + pick"> - <view class="goodsSearch"> - <view class="head"> - <view class="color-block-blue"></view> - <view class="head-title">鎻愬彇鍟嗗搧</view> - <view class="head-icon"> - <uni-icons type="closeempty" size="25" @click="pickEject()"></uni-icons> - </view> - </view> - <view class="container"> - <view class="text-box"> - <view><text>鍟嗗搧缂栫爜</text></view> - <view><text>6666</text></view> - </view> - <view class="text-box"> - <view><text>鍟嗗搧鍚嶇О</text></view> - <view></view> - </view> - <view class="text-box"> - <view><text>瑙勬牸</text></view> - <view></view> - </view> - <view class="text-box"> - <view><text>鎵瑰彿</text></view> - <view></view> - </view> - <view class="text-box"> - <view><text>鏁伴噺</text></view> - <view></view> - </view> - - <view class="foot flex justify-center"> - <label for=""> - <button class="cu-btn bg-blue">鎻愬彇</button> - </label> - </view> - </view> - </view> + <button class="cu-btn lg pakin-btn bg-blue" @click="comb()">缁勬墭</button> </view> </view> </view> </template> <script> + import permision from "@/common/permission.js" export default { data() { return { + barcode: '', + barcodeFocus:true, + focus:false, type: 'center', searchBox: 'hide', pick:'hide', - data:[ - {matnr:'123456',anfme:'1',maktx:'鏄剧ず鍣�',inQty:'2022鎵�'} - ] + matnr:'', + matList:[], + result: '' } }, + mounted(){ + const UIP = uni.getStorageSync('UIP'); + this.baseIP = UIP; + const UPORT = uni.getStorageSync('UPORT'); + this.basePORT = UPORT + }, methods: { - searchEject() { - if (this.searchBox == 'show') { - this.searchBox = 'hide' - } else { - this.searchBox = 'show' - } + focuss() { + uni.hideKeyboard() + }, + resst() { + this.matList = [] + this.barcode = '' + this.matnr = '' uni.vibrateShort(); }, - pickEject() { - if (this.pick == 'show') { - this.pick = 'hide' - } else { - this.pick = 'show' - } + removeBarcode() { + this.barcode = '' + uni.vibrateShort(); + this.barcodeFocus = false; + this.$nextTick(function() { + this.barcodeFocus = true; + }); + }, + removeMatnr() { + this.matnr = '' + uni.vibrateShort(); + this.focus = false; + this.$nextTick(function() { + this.focus = true; + }); + }, + remove(item,index) { + this.matList.splice(index,1) uni.vibrateShort(); }, + comb() { + uni.vibrateShort(); + let that = this; + if (that.barcode === '') { + uni.showToast({title: '璇锋壂鎻忔墭鐩樻潯鐮�', icon: "none", position: 'top'}); + return; + } + if (that.matList.length === 0) { + uni.showToast({title: '璇锋坊鍔犲晢鍝佸垪琛�', icon: "none", position: 'top'}); + return; + } + uni.showLoading(); + uni.request({ + url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + '/mobile/comb/auth', + data: JSON.stringify({ + barcode: that.barcode, + combMats: that.matList + }), + method: 'POST', + header: { + 'token':uni.getStorageSync('token') + }, + success(result) { + uni.showLoading(); + var res = result.data + if (res.code === 200) { + uni.showToast({ + title: res.msg, + position: 'bottom', + duration: 1000 + }); + } 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'}) + } + } + }); + }, + selectMat() { + let that = this + uni.vibrateShort(); + uni.showLoading(); + uni.navigateTo({ + url: "matSelect", + events: { + // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹� + acceptDataFromOpenedPage: function(data) { + that.matnr = data.data + that.findMat(that.matnr) + }, + }, + success: function(res) { + // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹� + res.eventChannel.emit('acceptDataFromOpenerPage', {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', + data: { + matnr:that.matnr + }, + header: { + 'token':uni.getStorageSync('token') + }, + success(result) { + uni.vibrateShort(); + let res = result.data + if (res.code === 200 && res.data) { + that.matData = res.data + uni.navigateTo({ + url: "matQuery", + events: { + // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹� + matList: function(data) { + that.matList.push(data.data) + }, + }, + success: function(res) { + // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹� + res.eventChannel.emit('matData', { data: that.matData }) + } + }); + } + + } + }); + }, + change(e) { console.log('褰撳墠妯″紡锛�' + e.type + ',鐘舵�侊細' + e.show); }, @@ -184,11 +258,35 @@ // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦� uni-popup 缁勪欢涓婄粦瀹� type灞炴�� 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) + }else{ + this.$set(item,'checked',false) + } + } + if (values.length == items.length) { + this.check = true + this.checkText = "鍙栨秷鍏ㄩ��" + } else { + this.check = false + this.checkText = "鍏ㄩ��" + } + uni.vibrateShort(); + }, } } </script> <style> + /* @import "../../colorui/main.css"; + @import "../../colorui/icon.css"; */ + .pak-seach-box { background-color: #FFFFFF; margin: 15rpx 15rpx 0rpx 15rpx; @@ -221,11 +319,26 @@ margin-top: 10rpx; } .box-buttom { - display: block; - width: 720rpx; - height: 80rpx; + display: inline-block; + background-color: #ededed; + width: 65%; + height: 60rpx; + border-radius: 20rpx; + margin: 15rpx 15rpx 0rpx 15rpx; } - .pak-seach-box input { + .box-buttom input { + width: 75%; + float: left; + margin: 8rpx 10rpx 0rpx 25rpx; + } + .box-buttom .search-icon{ + width: 60rpx; + height: 60rpx; + float: right; + margin-top: 5rpx; + margin-right: 10rpx; + } + /* .pak-seach-box input { background-color: #ededed; border: 1rpx solid #d8d8d8; display: inline-block; @@ -236,13 +349,13 @@ line-height: 60rpx; margin: 15rpx 15rpx 0rpx 15rpx; padding-left: 20rpx; - } + } */ .pak-seach-box button { background-color: #1E9FFF; color: #ffffff; display: inline-block; float: right; - width: 150rpx; + width: 180rpx; height: 60rpx; margin: 15rpx 15rpx 0rpx 15rpx; line-height: 60rpx; @@ -251,17 +364,22 @@ background-color: #1E9FFF; } .pak-data-box { - background-color: #FFFFFF; + background-color: #F1F1F1; margin: 15rpx 15rpx 0rpx 15rpx; width: 96%; - height: 800rpx; + height: 70rpx; border-radius: 20rpx; } + .pak-data-box .box-top { + background-color: #FFFFFF; + height: 70rpx; + border-radius: 20rpx 20rpx 20rpx 20rpx; + } .bg-false { - background-color: #ebebeb; + background-color: #FFFFFF; } .bg-true { - background-color: #FFFFFF; + background-color: #ebebeb; } .data-list { border-bottom: 1px solid #d8d8d8; @@ -270,117 +388,34 @@ border-radius: 20rpx; } .data-list:first-child { - margin-top: 120rpx; + margin-top: 20rpx; } .data-list:last-child { margin-bottom: 120rpx; } - /* 閬僵灞� */ - .search-box-show { - display: block; - } - .search-box-hide { - display: none; - } - .pick-box-show { - display: block; - } - .pick-box-hide { - display: none; - } - .pick-box { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0,0,0,0.6); - z-index: 90; - } - .search-box { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0,0,0,0.6); - z-index: 90; - } - .goodsSearch { - background-color: #FFFFFF; - display: block; - position: absolute; - top: 10%; - left: 20rpx; - width: 720rpx; - height: 80%; - border-radius: 21rpx; - z-index: 100; - } - .head { - background-color: #FFFFFF; - position: relative; - width: 100%; - height: 100rpx; - border-radius: 20rpx 20rpx 0 0 ; - } - .head .color-block-blue { - margin: 36rpx 5rpx 0 30rpx; - } - .head-title { + /* .data-list-left { display: inline-block; float: left; - font-size: 40rpx; - font-weight: 700; - margin-top: 25rpx; - margin-left: 20rpx; + text-align: center; + width: 100rpx; + height: 180rpx; + line-height: 180rpx; + } */ + .data-list-left { + display: inline-block; + float: left; + margin-left: 6%; + height: 180rpx; + color: #676767; } - .head-icon { + .matnr { + padding-top: 10rpx; + } + .data-list-right { display: inline-block; float: right; - margin-top: 25rpx; - margin-right: 20rpx; + height: 180rpx; + line-height: 180rpx; + margin-right: 10%; } - .container { - width: 100%; - height: 92%; - position: absolute; - background-color: #F1F1F1; - border-radius: 0 0 20rpx 20rpx; - } - - .text-box { - background-color: #FFFFFF; - position: ; - height: 100rpx; - line-height: 100rpx; - margin-left: 2%; - margin-top: 20rpx; - width: 96%; - border-radius: 20rpx; - } - .text-box:first-child { - margin-top: 20rpx; - } - .text-box view{ - text-align: end; - display: inline-block; - width: 288rpx; - padding-right: 20rpx; - } - .text-box view:last-child { - text-align: start; - padding-left: 20rpx; - } - .foot { - width: 95.7%; - height: 100rpx; - line-height: 100rpx; - background-color: rgba(255,255,255,1); - position: fixed; - bottom: 7.2%; - border-top: 1px solid #d8d8d8; - border-radius: 0 0 20rpx 20rpx ; - z-index: 1; - } -</style> +</style> \ No newline at end of file -- Gitblit v1.9.1