From de3d8e8e749b3a09f99575c0c966203d26115fdb Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期一, 23 九月 2024 19:57:59 +0800 Subject: [PATCH] # --- pages/home/home.vue | 7 pages/order/orderCar.vue | 295 ++++++++ static/css/order.css | 125 +++ pages/order/unFullpltList.vue | 444 +++++++++++++ pages/order/orderIn.vue | 533 +++++++++++++++ pages.json | 36 + pages/order/orderPakin4.vue | 596 +++++++++++++++++ static/css/wms.css/wms.css | 2 8 files changed, 2,037 insertions(+), 1 deletions(-) diff --git a/pages.json b/pages.json index 99639b9..c312598 100644 --- a/pages.json +++ b/pages.json @@ -238,6 +238,42 @@ "navigationBarTitleText" : "骞舵澘缁勬墭" } } + ,{ + "path" : "pages/order/orderPakin4", + "style" : + { + "navigationBarTitleText": "閿�鍞崟鍏ュ簱", + "enablePullDownRefresh": false + } + + } + ,{ + "path" : "pages/order/orderIn", + "style" : + { + "navigationBarTitleText": "閿�鍞崟鍏ュ簱", + "enablePullDownRefresh": false + } + + } + ,{ + "path" : "pages/order/orderCar", + "style" : + { + "navigationBarTitleText": "寰呯粍鎵樺垪琛�", + "enablePullDownRefresh": false + } + + } + ,{ + "path" : "pages/order/unFullpltList", + "style" : + { + "navigationBarTitleText": "鍙苟鏉�", + "enablePullDownRefresh": false + } + + } ], "globalStyle": { "navigationBarTextStyle": "black", diff --git a/pages/home/home.vue b/pages/home/home.vue index 0abd273..10c62f0 100644 --- a/pages/home/home.vue +++ b/pages/home/home.vue @@ -46,6 +46,13 @@ url: '/order/orderPakin' }, { + title: '閿�鍞崟鍏ュ簱', + name: 'orderIn', + color: 'blue', + cuIcon: 'pullup', + url: '/order/orderIn' + }, + { title: 'Bom鍏ュ簱鍗�', name: 'orderBomPakin', color: 'red', diff --git a/pages/order/orderCar.vue b/pages/order/orderCar.vue new file mode 100644 index 0000000..d3f3c11 --- /dev/null +++ b/pages/order/orderCar.vue @@ -0,0 +1,295 @@ +<template> + <view> + <view class="list list-font-color shop-car" :class="orderDetl.color" v-for="(orderDetl,index) in orderCarList" :key="index"> + <view class="list-left"> + <view class="detl-threeCode">{{orderDetl.threeCode}}</view> + <view>涓诲崟鍙凤細{{orderDetl.orderNo}}</view> + <view>缂栧彿锛歿{orderDetl.matnr}}</view> + <view>鍚嶇О锛歿{orderDetl.maktx}}</view> + <view>鎬绘暟閲忥細{{orderDetl.anfme}}</view> + <view>鍏ュ簱鏁伴噺锛歿{orderDetl.pakinQty}}</view> + </view> + <view class="list-right" @click="chageDetl(index)"> + <uni-icons type="settings" size="25" color="#fff"></uni-icons> + </view> + </view> + <!-- 鍨珮 --> + <view style="height: 120rpx;"></view> + <!-- 搴曢儴鎿嶄綔鎸夐挳 --> + <view class="buttom"> + <button size="mini" type="primary" @click="agvStart('warn')">纭缁勬墭</button> + </view> + <!-- 寮圭獥 --> + <view> + <uni-popup ref="chageDetl" type="dialog"> + <view class="popup"> + <!-- 鏍囬 --> + <view class="title">鍏ュ簱鏁伴噺</view> + <view class="popup-item"> + <uni-number-box :value="count" :step='1' :max="9999999" color="#747474" @change="changeValue" /> + </view> + <view class="btn"> + <view class="btn-left" @click="remove()">绉婚櫎鐗╂枡</view> + <view class="btn-right" @click="changeCount()">淇敼鏁伴噺</view> + </view> + </view> + </uni-popup> + </view> + <!-- 寮圭獥 --> + <view> + <uni-popup ref="agvStart" type="dialog"> + <view class="popup"> + <!-- 鏍囬 --> + <view class="title">缁勬墭</view> + <view class="popup-item"> + <view class="popup-item-left">鎵樼洏鐮�:</view> + <view class="popup-item-right"><input type="text" focus="true" v-model="barcode"></view> + </view> + + <view class="popup-item"> + <view class="popup-item-left">婊℃澘:</view> + <view class="popup-item-right" style="border: none;"> + <radio-group @change="isFullPlt"> + <label> + <radio :checked="ck1" style="transform: scale(0.7)"/><text>鏄�</text> + </label> + <label> + <radio :checked="ck2" style="margin-left: 50rpx;transform: scale(0.7);"/><text>鍚�</text> + </label> + </radio-group> + </view> + </view> + + <view class="btn"> + <button class="btn-left" @click="agvStartClose()">鍙栨秷</button> + <button class="btn-right" @click="agvStartConfirm()" :disabled="agvStartDis">缁勬墭</button> + </view> + </view> + </uni-popup> + </view> + </view> +</template> + +<script> + // todo: 璐墿杞︿紭鍖�,瀛樺偍璐墿杞﹀唴瀹�,閫�鍑洪〉闈㈠啀杩涘悗璐墿杞﹁繕鍦� + export default { + data() { + return { + orderCarList: [], + count: 0, + index: 0, + barcode: '', + agvDevp: '', + agvStartDis: false, + ck1: false, + ck2: true, + fullPlt: 'N', + } + }, + onShow() { + let _this = this + this.baseUrl = uni.getStorageSync('baseUrl'); + this.token = uni.getStorageSync('token'); + // const eventChannel = this.$scope.eventChannel; // 鍏煎APP-NVUE + const eventChannel = this.getOpenerEventChannel(); + // 鐩戝惉acceptDataFromOpenerPage浜嬩欢锛岃幏鍙栦笂涓�椤甸潰閫氳繃eventChannel浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹� + eventChannel.on('item', function(data) { + _this.orderCarList = data.item + console.log(data.item); + }) + }, + methods: { + // 鏄惁婊℃澘 + isFullPlt() { + var temp = this.ck1 + this.ck1 = this.ck2 + this.ck2 = temp + if (this.ck1) { + this.fullPlt = '1' + } else { + this.fullPlt = '0' + } + }, + chageDetl(index) { + this.index = index + this.count = this.orderCarList[index].pakinQty + this.$refs.chageDetl.open() + }, + // 淇敼鏁伴噺 + changeCount() { + if (this.count > this.orderCarList[this.index].anfme) { + uni.showToast({ title: '鏁伴噺涓嶅悎娉曪紒', icon: "none", position: 'top' }) + return + } + this.orderCarList[this.index].pakinQty = this.count + this.$forceUpdate() // 寮哄埗鍒锋柊 + this.$refs.chageDetl.close() + }, + // 绉婚櫎鐗╂枡 + remove() { + this.orderCarList.splice(this.index, 1) + this.$refs.chageDetl.close() + }, + changeValue(value) { + this.count = value + }, + agvStart() { + this.$refs.agvStart.open() + }, + agvStartClose() { + this.barcode = '' + this.agvDevp = '' + this.$refs.agvStart.close() + }, + agvStartConfirm() { + this.barcode = this.barcode.replace(/\s+/g, '') + let _this = this + if (_this.barcode === '') { + uni.showToast({ title: '鎵樼洏鐮佷负绌猴紒', icon: "error", position: 'top' }) + return; + } + if (_this.orderCarList.length === 0) { + uni.showToast({ title: '缁勬墭鍒楄〃涓虹┖锛�', icon: "error", position: 'top' }) + return; + } + for (let k of _this.orderCarList) { + if (k.pakinQty == 0) { + uni.showToast({ title: `${k.matnr}鏁伴噺涓嶈兘涓� 0 锛乣, icon: "error", position: 'top' }) + return; + } + } + let combMat = { orderNo:'', barcode: '', locNo: '', combMats: [] } + let combMats = [] + // for (let item of _this.orderCarList) { + // combMat.orderNo = item.orderNo + // combMat.barcode = _this.barcode + // combMat.locNo = _this.agvDevp + // combMat.combMats = [] + // let combM = {csocode: item.threeCode,isoseq: item.deadTime,matnr: item.matnr,batch: item.batch,anfme: item.pakinQty,maktx: item.maktx,specs: item.specs,processSts: item.processSts} + // combMat.combMats.push(combM) + // combMats.push({...combMat}) + // } + for (let detl of _this.orderCarList) { + detl.anfme = detl.pakinQty + combMats.push(detl) + } + this.comb(combMats) + + }, + comb(combMats) { + let _this = this; + this.agvStartDis = true + uni.request({ + url: _this.baseUrl + '/mobile/comb/auth3', + data: JSON.stringify({ + barcode: _this.barcode, + isFull: _this.fullPlt, + combMats: combMats + }), + method: 'POST', + header: { + 'token': uni.getStorageSync('token') + }, + success(result) { + var res = result.data + _this.agvStartDis = false + if (res.code === 200) { + _this.orderCarList = [] + _this.$refs.agvStart.close() + uni.showToast({ title: '鍚姩鎴愬姛锛�', icon: "success", position: 'top' }) + setTimeout(()=> { + _this.getOpenerEventChannel().emit('acceptDataFromOpenedPage', {data: 1}); + uni.navigateBack({}) + },1000) + } else if (res.code == 403) { + uni.showToast({ title: res.msg, icon: "error", position: 'top' }) + setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); + } else { + uni.showToast({ title: res.msg, icon: "error", position: 'top' }) + } + }, + fail(res) { + _this.agvStartDis = false + } + }); + }, + } + } +</script> + +<style> + @import url('../../static/css/order.css'); + .shop-car { + background-color: #2299ff; + color: #fff; + } + .detl-threeCode { + font-size: 28px; + font-weight: bold; + } + .popup { + width: 80vw; + min-height: 100rpx; + background-color: #FFF; + border-radius: 25rpx; + position: relative; + } + .title { + height: 100rpx; + line-height: 100rpx; + width: 100%; + color: #606266; + text-align: center; + font-size: 16px; + } + .popup-item { + height: 80rpx; + line-height: 80rpx; + display: flex; + align-items: center; + justify-content: center; + } + .popup-item-left { + width: 20vw; + padding-right: 20rpx; + text-align: right; + color: #606266; + } + .popup-item-right { + display: flex; + align-items: center; + width: 50vw; + height: 50rpx; + padding: 2px 5px; + border: 1px solid #E4E7ED; + border-radius: 5rpx; + } + .popup-item-right input{ + color: #606266; + } + .btn { + display: flex; + height: 90rpx; + margin-top: 20rpx; + border-top: 1px solid #DCDFE6; + justify-content: center; + align-items: center; + } + .btn-left { + display: flex; + flex: 1; + height: 100%; + justify-content: center; + align-items: center; + color: #e2231a; + border-right: 1px solid #DCDFE6; + } + .btn-right { + display: flex; + flex: 1; + height: 100%; + justify-content: center; + align-items: center; + color: #409EFF; + } +</style> diff --git a/pages/order/orderIn.vue b/pages/order/orderIn.vue new file mode 100644 index 0000000..50aa7a2 --- /dev/null +++ b/pages/order/orderIn.vue @@ -0,0 +1,533 @@ +<template> + <view> + <view class="search-box"> + <uni-search-bar + v-model="searchVal" + maxlength="500" + ancel="cancel" + placeholder="杈撳叆 / 鎵弿 璁㈠崟鍙�" + @confirm="search()" + @clear="clear" > + </uni-search-bar> + <view class="search-box-info"> + <view></view> + <view style="width: 100%;text-align: center;margin: 16rpx 0;">{{searchVal}} 鎬绘暟閲忥細- {{total}} -</view> + <view style="width: 100rpx;margin: 16rpx 0;" @click="filter()">绛涢��</view> + </view> + </view> + + <view class="list list-font-color" :class="orderDetl.color" v-for="(orderDetl,index) in dataList" :key="index"> + <view class="list-left"> + <view>鍗曟嵁缂栧彿锛歿{orderDetl.orderNo}}</view> + <view>閿�鍞崟鍙凤細{{orderDetl.threeCode}}</view> + <view>鍟嗗搧缂栧彿锛歿{orderDetl.matnr}}</view> + <view>鍟嗗搧鍚嶇О锛歿{orderDetl.maktx}}</view> + <view>鎵瑰彿锛歿{orderDetl.batch}}</view> + <view>缁勪欢鍙凤細{{orderDetl.bomCode}}</view> + <view>璁㈠崟鏁伴噺锛歿{orderDetl.anfme}}</view> + <view>宸蹭綔涓氭暟閲忥細{{orderDetl.qty}}</view> + </view> + <view class="list-right" @click="checkIsFull(index)"> + <uni-icons type="folder-add" size="25" color="#fff"></uni-icons> + </view> + </view> + + <view class="shop-car" @click="orderCar()"> + <view class="car-left"> + <uni-icons type="cart-filled" size="35" color="#fff"></uni-icons> + </view> + <view class="car-right"> + <text>{{orderCarList.length}}</text> + </view> + </view> + + <view style="height: 50rpx;"></view> + + + <!-- 娣诲姞鐗╂枡寮圭獥 --> + <view> + <uni-popup ref="addItem" type="dialog"> + <view class="popup"> + <!-- 鏍囬 --> + <view class="title">鍏ュ簱鏁伴噺</view> + <view class="popup-item"> + <uni-number-box :value="count" :step='1' :max="9999999" color="#747474" @change="changeValue" /> + </view> + <view class="btn"> + <view class="btn-left" @click="addClose">鍙栨秷</view> + <view class="btn-right" @click="addConfirm()">娣诲姞</view> + </view> + </view> + </uni-popup> + </view> + + <!-- 閫夋嫨骞舵澘 鎴� 鐩存帴鍏ュ簱 --> + <view> + <uni-popup ref="chose" type="dialog"> + <view class="popup"> + <!-- 鏍囬 --> + <view class="title">璀﹀憡</view> + <view class="popup-item"> + <text>褰撳墠鐗╂枡鍙苟鏉�</text> + </view> + <view class="btn"> + <view class="btn-left" @click="choseClose">鍘荤粍鎵�</view> + <view class="btn-right" @click="choseConfirm()">鍘诲苟鏉�</view> + </view> + </view> + </uni-popup> + </view> + + + <!-- 绛涢�夊脊绐� --> + <view> + <uni-popup ref="filter" type="dialog"> + <view class="filter-popup"> + <!-- 鏍囬 --> + <view class="title">绛涢��</view> + <view class="popup-item" style="background-color: #dfdfdf;"> + <view class="item-cl"> + <view>涓昏鍗曞彿锛�</view> + <input type="text" v-model="orderNo"> + </view> + </view> + <view class="popup-item" style="background-color: #dfdfdf;"> + <view class="item-cl"> + <view>鍟嗗搧缂栧彿锛�</view> + <input type="text" v-model="matnr"> + </view> + </view> + <view class="popup-item" style="background-color: #dfdfdf;"> + <view class="item-cl"> + <view>鍟嗗搧鍚嶇О锛�</view> + <input type="text" v-model="maktx"> + </view> + </view> + <view class="popup-item" style="background-color: #dfdfdf;"> + <view class="item-cl"> + <view>鍟嗗搧绉嶇被锛�</view> + <input type="text" v-model="brand"> + </view> + </view> + <view class="btn filter-btn"> + <view class="btn-left" @click="filterClose">閲嶇疆</view> + <view class="btn-right" @click="filterConfirm()">纭</view> + </view> + </view> + </uni-popup> + </view> + </view> +</template> + +<script> + export default { + data() { + return { + baseUrl: '', + token: '', + dataList: [], + orderCarList: [], + searchVal: '', + total: '', + orderNo: '', + matnr: '', + maktx: '', + brand: '', + count: 0, + index: '', + locMast: '', + detls: '', + data: { + curr: 1, + limit: 100, + three_code: '', + matnr: '', + maktx: '', + order_no: '', + brand: '' + }, + } + }, + onShow() { + this.baseUrl = uni.getStorageSync('baseUrl'); + this.token = uni.getStorageSync('token'); + this.searchVal = uni.getStorageSync('searchVal'); + this.getDataList(this.searchVal,10) + }, + methods: { + search() { + this.dataList = [] + this.data.curr = 1 + uni.setStorageSync('searchVal', this.searchVal); + if (this.searchVal.length == 0) { + this.getDataList(this.searchVal,10) + } + }, + clear() { + + }, + getDataList(threeCode,limit) { + let _this = this + uni.showLoading({}) + _this.mask = true + _this.data.three_code = threeCode + _this.data.limit = limit + uni.request({ + url: `${_this.baseUrl}/orderPakin/page/auth`, + header: {'token': uni.getStorageSync('token')}, + data: _this.data, + method: 'GET', + success(res) { + uni.hideLoading({}) + res = res.data + if (res.code === 200) { + for (let k of res.data.records) { + if (k.anfme > k.qty && k.qty == 0) { + k['color'] = 'order-sts-start' + } else if (k.anfme > k.qty && k.qty != 0) { + k['color'] = 'order-sts-working' + } else { + k['color'] = 'order-sts-end' + } + } + let list = res.data.records + _this.dataList = _this.dataList.concat(list); + _this.data.curr = _this.data.curr + 1 + _this.total = res.data.total + _this.mask = false + } else if (res.code == 403) { + uni.showToast({ title: res.msg, icon: "error", position: 'top' }) + setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); + } else { + uni.showToast({ title: res.msg, icon: "error", position: 'top' }) + } + } + }) + }, + filter() { + this.$refs.filter.open('bottom') + }, + filterConfirm() { + }, + filterClose() { + }, + // 璺宠浆鍙苟鏉� + unfullplt(locMasts,detls) { + let _this = this + uni.navigateTo({ + url: './unFullpltList', + success(res) { + res.eventChannel.emit('locMasts', { + locMasts: locMasts + }) + res.eventChannel.emit('detls', { + detls: detls + }) + }, + events: { + acceptDataFromOpenedPage: function(data) { + if (data.data == 1) { + setTimeout(()=>{ + _this.dataList = [] + _this.getDataList(_this.searchVal,10) + },200) + } + } + } + }) + }, + // 鐐瑰嚮鍓嶅線 寰呯粍鎵樺垪琛� + orderCar() { + let _this = this + if (_this.orderCarList.length === 0) { + uni.showToast({ title: '璇锋坊鍔犲叆搴撳晢鍝侊紒', icon: "none", position: 'top' }) + return + } + uni.navigateTo({ + url: './orderCar', + success(res) { + res.eventChannel.emit('item', { + item: _this.orderCarList + }) + }, + events: { + acceptDataFromOpenedPage: function(data) { + if (data.data == 1) { + _this.orderCarList = [] + _this.getOrderDetlList(uni.getStorageSync('threeCode'),10) + } + } + } + }) + }, + checkIsFull(index) { + let _this = this + let item = _this.dataList[index] + + uni.request({ + url: `${_this.baseUrl}/mobile/check/fullplt/auth`, + header: {'token': uni.getStorageSync('token')}, + data: item, + method: 'POST', + success(res) { + res = res.data + if (res.code === 200) { + _this.index = index + _this.locMast = res.data + _this.detls = item + _this.$refs.chose.open('center') + + } else if (res.code == 403) { + uni.showToast({ title: res.msg, icon: "error", position: 'top' }) + setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); + } else { + _this.addItem(index) + } + } + }) + + }, + choseClose() { + this.addItem(this.index) + this.$refs.chose.close() + }, + choseConfirm() { + this.unfullplt(this.locMast,this.detls) + this.$refs.chose.close() + }, + // 娣诲姞鍏ュ簱鍟嗗搧鑷� 寰呯粍鎵樺垪琛� + addItem(index) { + // 鍒ゆ柇娣诲姞鐨勫晢鍝佹槸鍚﹀拰宸茬粡娣诲姞鐨勯噸澶� + let dataList = this.dataList + for (let k of this.orderCarList) { + if (k.orderNo == dataList[index].orderNo + && k.threeCode == dataList[index].threeCode + && k.matnr == dataList[index].matnr + && k.bomCode == dataList[index].bomCode) { + uni.showToast({ title: '璇峰嬁閲嶅娣诲姞鍟嗗搧锛�', icon: "none", position: 'top' }) + return + } + } + this.index = index + this.$refs.addItem.open() + }, + addClose() { + this.$refs.addItem.close() + this.count = 0 + }, + addConfirm() { + if (this.count == 0) { + uni.showToast({ title: '涓轰笉蹇呰鐨勯夯鐑︼紝璇峰~鍐欐暟閲忥紒', icon: "none", position: 'top' }) + return + } + this.dataList[this.index]['used'] = true + this.dataList[this.index]['pakinQty'] = this.count + this.orderCarList.push(this.dataList[this.index]) + this.index = 0 + this.count = 0 + this.$refs.addItem.close() + }, + changeValue(value) { + this.count = value + }, + } + } +</script> + +<style> + .search-box { + background-color: #d9d9d9; + z-index: 99; + position: sticky; + top: 0rpx; + left: 0; + } + .search-box-info { + display: flex; + justify-content: space-around; + } + .city-btn { + margin-left: 10px; + color: #007aff; + font-size: 16px; + font-weight: bold; + } + + .filter-popup { + width: 100%; + height: 80vh; + background-color: #FFF; + position: relative; + border-radius: 30rpx 30rpx 0rpx 0rpx; + } + .filter-popup-item { + height: 100%; + width: 100%; + background-color: #c9cdd5; + } + .filter-popup-item-left { + width: 30%; + height: 100%; + background-color: #DCDFE6; + + } + .filter-btn { + position: absolute; + left: 0; + bottom: 0; + width: 100%; + background-color: #FFF; + } + .title { + height: 100rpx; + line-height: 100rpx; + width: 100%; + color: #606266; + text-align: center; + font-size: 16px; + } + + .popup-item { + height: 80rpx; + line-height: 80rpx; + display: flex; + align-items: center; + justify-content: center; + } + .popup-item-left { + width: 16vw; + padding-right: 20rpx; + text-align: right; + color: #606266; + } + .popup-item-right { + display: flex; + align-items: center; + width: 50vw; + height: 50rpx; + padding: 2px 5px; + border: 1px solid #E4E7ED; + border-radius: 5rpx; + } + .popup-item-right input{ + color: #606266; + } + .btn { + display: flex; + height: 90rpx; + margin-top: 20rpx; + border-top: 1px solid #DCDFE6; + justify-content: center; + align-items: center; + } + .btn-left { + display: flex; + flex: 1; + height: 100%; + justify-content: center; + align-items: center; + color: #606266; + border-right: 1px solid #DCDFE6; + } + .btn-right { + display: flex; + flex: 1; + justify-content: center; + align-items: center; + color: #409EFF; + } + .item-cl { + display: flex;align-items: center; + } + .item-cl input { + border-bottom: 1px solid #b9b9b9; + } + .list { + margin: 20rpx; + font-size: 14px; + background-color: #fff; + border-radius: 20rpx; + border: 1px solid #eeeeee; + display: flex; + position: relative; + } + .list-left { + flex: 1; + padding: 20rpx; + position: relative; + } + .list-right { + width: 70rpx; + border-left: 1px solid #eeeeee; + display: flex; + align-items: center; + justify-content: center; + } + .list-font-color { + /* color: #fff; */ + background-color: #33bb44; + } + .shop-car { + position: fixed; + left: 22rpx; + bottom: 150rpx; + background-color: #2299ff; + width: 260rpx; + height: 90rpx; + display: flex; + align-items: center; + box-shadow: 0 0 10px 5px rgba(0, 0, 0, .6); + border-radius: 10rpx; + color: #fff; + font-size: 28px; + font-weight: bold; + } + .car-left { + padding: 16rpx; + flex: 5; + } + .car-right { + flex: 4; + } + + .popup { + width: 80vw; + min-height: 100rpx; + background-color: #FFF; + border-radius: 25rpx; + position: relative; + } + .title { + height: 100rpx; + line-height: 100rpx; + width: 100%; + color: #606266; + text-align: center; + font-size: 16px; + } + .popup-item { + height: 80rpx; + line-height: 80rpx; + display: flex; + align-items: center; + justify-content: center; + } + .popup-item-left { + width: 16vw; + padding-right: 20rpx; + text-align: right; + color: #606266; + } + .popup-item-right { + display: flex; + align-items: center; + width: 50vw; + height: 50rpx; + padding: 2px 5px; + border: 1px solid #E4E7ED; + border-radius: 5rpx; + } + .popup-item-right input{ + color: #606266; + } +</style> diff --git a/pages/order/orderPakin4.vue b/pages/order/orderPakin4.vue new file mode 100644 index 0000000..4cfba22 --- /dev/null +++ b/pages/order/orderPakin4.vue @@ -0,0 +1,596 @@ +<template> + <view> + <view class="code"> + <view class="item"> + <view class="code-decs" style="width: 25vw;">鍏ュ簱鍗曞彿:</view> + <view style="flex: 1;"> + <input type="text" placeholder=" 鎵爜 / 杈撳叆" v-model="orderNo" :focus="orderNoFocus"> + </view> + <view style="height:100%;line-height:2;width:40rpx;margin-right: 20rpx;"> + <uni-icons type="clear" color="#c1c1c1" @click="clearOrderNo()"></uni-icons> + </view> + </view> + <view class="item"> + <view class="code-decs" style="width: 25vw;">閿�鍞鍗�:</view> + <view style="flex: 1;"> + <input type="text" placeholder=" 鎵爜 / 杈撳叆" v-model="threeCode" :focus="threeCodeFocus"> + </view> + <view style="height:100%;line-height:2;width:40rpx;margin-right: 20rpx;"> + <uni-icons type="clear" color="#c1c1c1" @click="clearThreeCode()"></uni-icons> + </view> + </view> + <view class="item"> + <view class="code-decs">缁勪欢鍙�:</view> + <view style="flex: 1;"> + <input type="text" placeholder=" 鎵爜 / 杈撳叆" v-model="bomCode" :focus="bomCodeFocus"> + </view> + <view style="height:100%;line-height:2;width:40rpx;margin-right: 20rpx;"> + <uni-icons type="clear" color="#c1c1c1" @click="clearBomCode()"></uni-icons> + </view> + </view> + <view class="item"> + <view class="code-decs">鎵樼洏鐮�:</view> + <input type="text" placeholder=" 鎵爜 / 杈撳叆" v-model="barcode" :focus="barcodeFocus" + @input="barcodeInput()"> + </view> + <view class="item"> + <view class="code-decs">鐗╂枡鐮�:</view> + <input type="text" placeholder=" 鎵爜 / 杈撳叆" v-model="matnr" :focus="matFocus" @input="findMat()"> + <view class="item-right"> + <button></button> + <text style="text-align: right;color: #409EFF;" @click="selectMat()">鎻愬彇+</text> + <uni-icons type="right" color="#c1c1c1"></uni-icons> + </view> + </view> + <view class="item"> + <view class="code-decs" style="width: 25vw;">鏄惁婊℃澘:</view> + <radio-group @change="isFullPlt"> + <label> + <radio :checked="ck1" style="transform: scale(0.7)"/><text>鏄�</text> + </label> + <label> + <radio :checked="ck2" style="margin-left: 50rpx;transform: scale(0.7);"/><text>鍚�</text> + </label> + </radio-group> + </view> + </view> + <view class="mat-list-title"> + 鍟嗗搧鍒楄〃 + </view> + <scroll-view> + <view class="list" v-for="(item,i) in dataList" :key="i"> + <view class="list-left"> + <view class="list-left-item"> + <view class="desc">No锛�</view> + <view class="left-item">{{i + 1}}</view> + </view> + <view class="list-left-item"> + <view class="desc">缂栫爜锛�</view> + <view class="left-item"> + <uni-tag :text="item.matnr" type="primary"></uni-tag> + </view> + </view> + <view class="list-left-item"> + <view class="desc">鍝佸悕锛�</view> + <view class="left-item">{{item.maktx}}</view> + </view> + <view class="list-left-item"> + <view class="desc">瑙勬牸锛�</view> + <view class="left-item">{{item.specs}}</view> + </view> + <view class="list-left-item"> + <view class="desc">鎵瑰彿锛�</view> + <view class="left-item"> + <uni-tag :text="item.batch" type="warning"></uni-tag> + </view> + </view> + <!-- <view class="list-left-item"> + <view class="desc">閲嶉噺锛�</view> + <view class="left-item"> + <uni-tag :text="item.weight" type="warning"></uni-tag> + </view> + </view> --> + <view class="list-left-item"> + <view class="desc">鏁伴噺锛�</view> + <view class="left-item">{{item.anfme}}</view> + </view> + </view> + <view class="list-right"> + <uni-icons type="compose" color="#9add8b" size="24" @click="revise(item,i)"></uni-icons> + <uni-icons type="trash" color="#f58a8a" size="24" @click="remove(item,i,'warn')"></uni-icons> + </view> + </view> + </scroll-view> + <!-- 搴曢儴鎿嶄綔鎸夐挳 --> + <view class="buttom"> + <button size="mini" @click="reset('warn')">閲嶇疆</button> + <button size="mini" type="primary" @click="combConfirm('warn')">缁勬墭</button> + </view> + <!-- 寮圭獥 --> + <!-- 淇敼鏁伴噺 --> + <view> + <uni-popup ref="revise" type="dialog"> + <view class="popup"> + <!-- 鏍囬 --> + <view class="title">淇敼</view> + <view class="popup-item"> + <view class="popup-item-left">缂栫爜:</view> + <view class="popup-item-right"> + <input type="text" v-model="matnr" disabled="true" + style="background-color: #f7f7f7;padding: 0;color: #d5d5d5;"> + </view> + </view> + <view class="popup-item"> + <view class="popup-item-left">鎵瑰彿:</view> + <view class="popup-item-right"><input type="text" v-model="batch"></view> + </view> + <!-- <view class="popup-item"> + <view class="popup-item-left">閲嶉噺:</view> + <view class="popup-item-right"><input type="text" v-model="weight"></view> + </view> --> + <view class="popup-item"> + <view class="popup-item-left">鏁伴噺:</view> + <view class="popup-item-right" style="border: none;justify-content: center;"> + <uni-number-box :value="count" :step='0.01' :max="9999999" color="#747474" @change="changeValue" /> + </view> + </view> + <view class="btn"> + <view class="btn-left" @click="reviseClose">鍙栨秷</view> + <view class="btn-right" @click="reviseConfirm()">淇敼</view> + </view> + </view> + </uni-popup> + </view> + <!-- 绉婚櫎纭 --> + <view> + <!-- 鎻愮ず绐楃ず渚� --> + <uni-popup ref="alertDialog" type="dialog"> + <uni-popup-dialog :type="msgType" confirmText="绉婚櫎" :title="title" :content="content" + @confirm="removeConfirm()" @close="removeClose"></uni-popup-dialog> + </uni-popup> + </view> + <view> + <!-- 鎻愮ず淇℃伅寮圭獥 --> + <uni-popup ref="message" type="message"> + <uni-popup-message :type="msgType1" :message="messageText" :duration="2000"></uni-popup-message> + </uni-popup> + </view> + <!-- 纭缁勬墭 --> + <view> + <uni-popup ref="combConfirm" type="dialog"> + <uni-popup-dialog :type="msgType" cancelText="鍙栨秷" confirmText="纭" :title="title" :content="content" + @confirm="comb" @close="combClose"></uni-popup-dialog> + </uni-popup> + </view> + <!-- 纭閲嶇疆 --> + <view> + <uni-popup ref="resetConfirm" type="dialog"> + <uni-popup-dialog :type="msgType" cancelText="鍙栨秷" confirmText="纭" :title="title" :content="content" + @confirm="resetConfirm" @close="resetClose"></uni-popup-dialog> + </uni-popup> + </view> + </view> +</template> + +<script> + export default { + data() { + return { + baseUrl: '', + token: '', + barcode: '', + orderNo: '', + threeCode: '', + bomCode: '', + dataList: [], + count: 0, + rowNum: '', + matnr: '', + batch: '', + weight: '', + msgType1: 'success', + msgType: 'success', + messageText: '', + title: '', + content: '', + orderNoFocus: true, + threeCodeFocus: false, + bomCodeFocus: false, + barcodeFocus: false, + matFocus: false, + matData: '', + removeNum: 0, + ck1: false, + ck2: true, + fullPlt: 'N', + } + }, + onLoad() { + + }, + onShow() { + this.baseUrl = uni.getStorageSync('baseUrl'); + this.token = uni.getStorageSync('token'); + }, + methods: { + // 鏄惁婊℃澘 + isFullPlt() { + var temp = this.ck1 + this.ck1 = this.ck2 + this.ck2 = temp + if (this.ck1) { + this.fullPlt = '1' + } else { + this.fullPlt = '0' + } + }, + messageToggle(type) { + this.msgType1 = type + this.$refs.message.open() + }, + clearOrderNo() { + this.orderNo = '' + let that = this; + that.orderNoFocus = false; + setTimeout(() => { + that.orderNo = ''; + that.orderNoFocus = true; + }, 100); + }, + orderNoInput() { + // 涓嶈缃畾鏃跺櫒 浼氬嚭鐜版壂鍏ョ殑瀛楃涓蹭笉鍏� + setTimeout(() => { + var len = this.orderNo.length + this.barcodeFocuss() + }, 200) + }, + // barcode input 浜嬩欢 + barcodeInput() { + // 涓嶈缃畾鏃跺櫒 浼氬嚭鐜版壂鍏ョ殑瀛楃涓蹭笉鍏� + setTimeout(() => { + var len = this.barcode.length + if (len != 8) { + uni.showToast({ + title: '鎵樼洏鐮佹湁璇閲嶈瘯', + icon: "none", + position: 'top' + }); + this.barcodeFocuss() + return; + } + this.focuss() + }, 200) + }, + // 鎵樼洏鐮佹湁璇噸缃� + barcodeFocuss() { + let that = this; + that.barcodeFocus = false; + setTimeout(() => { + that.barcode = ''; + that.barcodeFocus = true; + }, 100); + }, + // 鍟嗗搧鍏夋爣娓呯┖閲嶇疆 + focuss() { + this.focus = false; + setTimeout(() => { + this.matnr = ''; + this.matFocus = true; + }, 100); + }, + // 鎼滅储鐗╂枡 + findMat() { + let that = this + uni.request({ + url: that.baseUrl + '/mat/auth', + data: { + matnr: that.matnr + }, + header: { + 'token': uni.getStorageSync('token') + }, + success(result) { + result = result.data + if (result.code === 200 && result.data) { + that.matData = result.data + that.matnr = '' + that.matData['batch'] = '' + uni.navigateTo({ + url: "../mat/matSelected", + // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹� + success: function(res) { + res.eventChannel.emit('mat', { + data: result.data + }) + }, + // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹� + events: { + matList: function(data) { + that.checkMat(data.data) + that.focuss() + }, + }, + }); + } else if (result.code == 403) { + uni.showToast({ + title: result.msg, + icon: "none", + position: 'top' + }) + setTimeout(() => { + uni.reLaunch({ + url: '../login/login' + }); + }, 1000); + } else { + uni.showToast({ + title: result.msg, + icon: "none", + position: 'top' + }) + } + + } + }); + + }, + selectMat() { + let that = this + uni.navigateTo({ + url: "../mat/matQuery", + success: function(res) { + // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹� 鍚戝彟澶栦竴涓〉闈紶閫掑�肩殑 + res.eventChannel.emit('commonUrl', { + commonUrl: '' + }) + }, + events: { + // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹� 鍙﹀涓�涓〉闈紶杩囨潵鐨� + acceptDataFromOpenedPage: function(data) { + that.matnr = data.data + that.findMat(that.matnr) + }, + }, + + + }); + that.matnr = '' + }, + checkMat(mat) { + var len = this.dataList.length + var add = true ,sameItem = false + for (var i = 0; i < len; i++) { + if (mat.matnr == this.dataList[i].matnr) { + for (var j = 0; j < len; j++) { + if (mat.batch == this.dataList[j].batch) { + sameItem = true + } + } + // 鐩稿悓鐗╂枡 涓嶅悓鎵瑰彿 鏂板姞鍒楄〃 + if (mat.batch != this.dataList[i].batch) { + this.$forceUpdate() // 寮哄埗鍒锋柊 + if (sameItem) { + add = false + } else { + add = true + } + + } else { + // 鐩稿悓鐗╂枡鐩稿悓鎵瑰彿 鏁伴噺绱姞 + this.dataList[i].anfme += mat.anfme + this.$forceUpdate() // 寮哄埗鍒锋柊 + add = false + } + } + } + if (add) { + this.dataList.unshift(mat) + } + }, + // 淇敼鎵瑰彿 + revise(item, i) { + this.matnr = this.dataList[i].matnr + this.count = this.dataList[i].anfme + this.batch = this.dataList[i].batch + this.weight = this.dataList[i].weight + this.rowNum = i + this.eject() + }, + eject(type) { + this.type = type + this.$refs.revise.open(type) + }, + // 鍒楄〃绉婚櫎鎸夐挳 + remove(item, i, type) { + this.removeNum = i + this.msgType = type + this.title = '璀﹀憡' + this.content = '鏄惁绉婚櫎褰撳墠鍟嗗搧!' + this.$refs.alertDialog.open(i) + }, + // 纭绉婚櫎 + removeConfirm() { + this.messageText = "绉婚櫎鎴愬姛" + this.messageToggle('success') + this.dataList.splice(this.removeNum, 1) + }, + // 鍙栨秷绉婚櫎 + removeClose() { + this.$refs.alertDialog.close() + }, + reviseConfirm() { + this.dataList[this.rowNum].anfme = this.count + this.dataList[this.rowNum].batch = this.batch + this.dataList[this.rowNum].weight = this.weight + this.matnr = '' + this.messageText = "淇敼鎴愬姛" + this.messageToggle('success') + this.$refs.revise.close() + }, + reviseClose() { + this.$refs.revise.close() + }, + changeValue(value) { + this.count = value + }, + combConfirm(type) { + this.msgType = type + this.title = '璀﹀憡' + this.content = '鏄惁鐜板湪缁勬墭!' + this.$refs.combConfirm.open() + }, + combClose() { + this.$refs.combConfirm.close() + }, + comb() { + uni.vibrateShort(); + let that = this; + if (that.orderNo === '') { + this.messageText = "璇疯緭鍏ヨ鍗曟潯鐮�" + this.messageToggle('error') + return; + } + if (that.barcode === '') { + this.messageText = "璇锋壂鎻忔墭鐩樻潯鐮�" + this.messageToggle('error') + return; + } + if (that.dataList.length === 0) { + this.messageText = "璇锋坊鍔犲晢鍝佸垪琛�" + this.messageToggle('error') + return; + } + for (var i = 0; i < that.dataList.length; i++) { + if (that.dataList[i].anfme == 0 || that.dataList[i].anfme == '') { + this.messageText = that.dataList[i].matnr + '缁勬墭鏁伴噺涓嶈兘涓�0' + this.messageToggle('error') + return; + } + } + uni.request({ + url: that.baseUrl + '/mobile/comb/auth3', + data: JSON.stringify({ + orderNo: that.orderNo, + threeCode: that.threeCode, + bomCode: that.bomCode, + barcode: that.barcode, + isFull: that.fullPlt, + combMats: that.dataList + }), + method: 'POST', + header: { + 'token': uni.getStorageSync('token') + }, + success(result) { + var res = result.data + if (res.code === 200) { + that.resst(); + that.messageText = "缁勬墭鎴愬姛" + that.messageToggle('success') + const innerAudioContext = uni.createInnerAudioContext(); + innerAudioContext.src = '/static/music/pakinOk.mp3'; + innerAudioContext.play() + } else if (res.code == 403) { + that.messageText = res.msg + that.messageToggle('error') + setTimeout(() => { + uni.reLaunch({ + url: '../login/login' + }); + }, 1000); + } else { + that.messageText = res.msg + that.messageToggle('error') + } + } + }); + }, + reset(type) { + this.msgType = type + this.title = '璀﹀憡' + this.content = '鏄惁閲嶇疆!' + this.$refs.resetConfirm.open() + }, + // 纭閲嶇疆 + resetConfirm() { + this.dataList = [] + this.messageText = "閲嶇疆瀹屾垚" + this.messageToggle('success') + }, + // 鍙栨秷閲嶇疆 + resetClose() { + + }, + // 娓呯┖ + resst() { + this.orderNo = '' + this.dataList = [] + this.barcode = '' + let that = this; + that.orderNoFocus = false; + setTimeout(() => { + that.orderNo = ''; + that.orderNoFocus = true; + }, 100); + }, + } + } +</script> + +<style> + @import url('../../static/css/wms.css/wms.css'); + + .code { + width: 100%; + /* position: fixed; */ + min-height: 210rpx; + background-color: #FFF; + z-index: 10; + } + .list:first-child { + margin-top: 20rpx; + } + .item { + display: flex; + align-items: center; + height: 70rpx; + margin-left: 20rpx; + border-bottom: 1px solid #DCDFE6; + } + + .item input { + height: 50rpx; + line-height: 50rpx; + /* font-family: PingFang SC; uniapp 榛樿瀛椾綋涓嶅眳涓� */ + font-size: 36upx; + font-family: PingFang SC; + width: 55vw; + + } + + .code-decs { + width: 20vw; + font-size: 15px; + font-family: Arial, Helvetica, sans-serif; + font-weight: 700; + color: #303133; + } + + .item-right { + margin-left: auto; + margin-right: 20rpx; + } + + .mat-list-title { + height: 80rpx; + line-height: 80rpx; + width: 100%; + background-color: white; + /* position: fixed; */ + /* margin-top: 420rpx; */ + z-index: 9; + /* border-top: 1px solid #DCDFE6; */ + text-align: center; + box-shadow: 0px 10px 20px 5px rgba(0, 0, 0, 0.1); + } +</style> diff --git a/pages/order/unFullpltList.vue b/pages/order/unFullpltList.vue new file mode 100644 index 0000000..ebb6469 --- /dev/null +++ b/pages/order/unFullpltList.vue @@ -0,0 +1,444 @@ +<template> + <view> + <view class="list list-font-color shop-car" :class="orderDetl.color" v-for="(orderDetl,index) in orderCarList" :key="index"> + <view class="list-left"> + <view class="detl-threeCode">{{orderDetl.threeCode}}</view> + <view>搴撲綅鍙凤細{{orderDetl.locNo}}</view> + <view>搴撲綅鐘舵�侊細{{orderDetl.locSts}}</view> + <view>婊℃澘锛歿{orderDetl.fullPlt}}</view> + </view> + <view class="list-right" @click="chageDetl(orderDetl)"> + <uni-icons type="upload-filled" size="25" color="#fff" v-if="orderDetl.locSts == 'F'"></uni-icons> + <uni-icons type="upload-filled" size="25" color="#fff" v-if="orderDetl.locSts == 'R' || orderDetl.locSts == 'S' || orderDetl.locSts == 'Q'"></uni-icons> + <uni-icons type="download" size="25" color="#fff" v-if="orderDetl.locSts == 'P'"></uni-icons> + </view> + </view> + <!-- 鍨珮 --> + <view style="height: 120rpx;"></view> + <!-- 搴曢儴鎿嶄綔鎸夐挳 --> + <!-- <view class="buttom"> + <button size="mini" type="primary" @click="agvStart('warn')">纭缁勬墭</button> + </view> --> + <!-- 寮圭獥 --> + <view> + <uni-popup ref="chageDetl" type="dialog"> + <view class="popup"> + <!-- 鏍囬 --> + <view class="title">鍏ュ簱鏁伴噺</view> + <view class="popup-item"> + <uni-number-box :value="count" :step='1' :max="9999999" color="#747474" @change="changeValue" /> + </view> + <view class="btn"> + <view class="btn-left" @click="remove()">绉婚櫎鐗╂枡</view> + <view class="btn-right" @click="changeCount()">淇敼鏁伴噺</view> + </view> + </view> + </uni-popup> + </view> + + <!-- 寮圭獥 --> + <view> + <uni-popup ref="stapop" type="dialog"> + <view class="popup"> + <!-- 鏍囬 --> + <view class="title">绔欑偣閫夋嫨</view> + <view class="popup-item"> + <uni-combox style="height: 20px;" :candidates="staNos" placeholder="璇烽�夋嫨琛ユ枡鍑哄簱绔欑偣" v-model="staNo"></uni-combox> + </view> + <view class="btn"> + <view class="btn-left" @click="mergeOutCancel()">鍙栨秷</view> + <view class="btn-right" @click="mergeOut()">骞舵澘鍑哄簱</view> + </view> + </view> + </uni-popup> + </view> + + <!-- 寮圭獥 --> + <view> + <uni-popup ref="merge" type="dialog"> + <view class="popup"> + <!-- 鏍囬 --> + <view class="title">绔欑偣閫夋嫨</view> + <view class="popup-item"> + <view class="popup-item-left">鏁伴噺:</view> + <view class="popup-item-right" style="border: none;"> + <uni-number-box :value="anfme" :step='1' :max="maxAnfme" color="#747474" @change="changeValue2" /> + </view> + </view> + <view class="popup-item"> + <view class="popup-item-left">婊℃澘:</view> + <view class="popup-item-right" style="border: none;"> + <radio-group @change="isFullPlt"> + <label> + <radio :checked="ck1" style="transform: scale(0.7)"/><text>鏄�</text> + </label> + <label> + <radio :checked="ck2" style="margin-left: 50rpx;transform: scale(0.7);"/><text>鍚�</text> + </label> + </radio-group> + </view> + </view> + <view class="btn"> + <view class="btn-left" @click="mergeCancel()">鍙栨秷</view> + <view class="btn-right" @click="mergeConfirm()">纭骞舵澘</view> + </view> + </view> + </uni-popup> + </view> + + <!-- 寮圭獥 --> + <view> + <uni-popup ref="agvStart" type="dialog"> + <view class="popup"> + <!-- 鏍囬 --> + <view class="title">缁勬墭</view> + <view class="popup-item"> + <view class="popup-item-left">鎵樼洏鐮�:</view> + <view class="popup-item-right"><input type="text" focus="true" v-model="barcode"></view> + </view> + + <view class="popup-item"> + <view class="popup-item-left">婊℃澘:</view> + <view class="popup-item-right" style="border: none;"> + <radio-group @change="isFullPlt"> + <label> + <radio :checked="ck1" style="transform: scale(0.7)"/><text>鏄�</text> + </label> + <label> + <radio :checked="ck2" style="margin-left: 50rpx;transform: scale(0.7);"/><text>鍚�</text> + </label> + </radio-group> + </view> + </view> + + <view class="btn"> + <button class="btn-left" @click="agvStartClose()">鍙栨秷</button> + <button class="btn-right" @click="agvStartConfirm()" :disabled="agvStartDis">缁勬墭</button> + </view> + </view> + </uni-popup> + </view> + </view> +</template> + +<script> + // todo: 璐墿杞︿紭鍖�,瀛樺偍璐墿杞﹀唴瀹�,閫�鍑洪〉闈㈠啀杩涘悗璐墿杞﹁繕鍦� + export default { + data() { + return { + orderCarList: [], + count: 0, + index: 0, + barcode: '', + agvDevp: '', + agvStartDis: false, + ck1: false, + ck2: true, + fullPlt: 'N', + locNo: '', + staNo: '', + staNos: [100,200,300], + detls: '', + anfme: 0, + maxAnfme: 0 + } + }, + onShow() { + let _this = this + this.baseUrl = uni.getStorageSync('baseUrl'); + this.token = uni.getStorageSync('token'); + // const eventChannel = this.$scope.eventChannel; // 鍏煎APP-NVUE + const eventChannel = this.getOpenerEventChannel(); + // 鐩戝惉acceptDataFromOpenerPage浜嬩欢锛岃幏鍙栦笂涓�椤甸潰閫氳繃eventChannel浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹� + eventChannel.on('locMasts', function(data) { + _this.orderCarList = data.locMasts + }) + eventChannel.on('detls', function(data) { + _this.detls = data.detls + _this.maxAnfme = data.detls.anfme - data.detls.qty + }) + }, + methods: { + // 鏄惁婊℃澘 + isFullPlt() { + var temp = this.ck1 + this.ck1 = this.ck2 + this.ck2 = temp + if (this.ck1) { + this.fullPlt = '1' + } else { + this.fullPlt = '0' + } + }, + chageDetl(locMast) { + // 搴撲綅鐘舵�佷负 F 鍙嚭搴� + // 搴撲綅鐘舵�佷负 R,S,Q 涓嶅彲鎿嶄綔 + // 搴撲綅鐘舵�佷负 P 骞舵澘缁勬墭鎿嶄綔 + let _this = this + switch (locMast.locSts) { + case 'F': + this.locNo = locMast.locNo + this.$refs.stapop.open('center') + break; + case 'P': + this.locNo = locMast.locNo + this.barcode = locMast.barcode + this.$refs.merge.open('center') + break; + } + + + }, + // 骞舵澘鍑哄簱 + mergeOut() { + // 閫夋嫨鍑哄簱绔欙紝鎻愪氦鍑哄簱搴撲綅鍙� + let _this = this + uni.request({ + url: _this.baseUrl + '/mobile/merge/out/auth', + data: {locNo: _this.locNo, + staNo: _this.staNo,}, + method: 'GET', + header: { + 'token': uni.getStorageSync('token') + }, + success(result) { + var res = result.data + console.log(res); + _this.agvStartDis = false + if (res.code === 200) { + + } else if (res.code == 403) { + uni.showToast({ title: res.msg, icon: "error", position: 'top' }) + setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); + } else { + uni.showToast({ title: res.msg, icon: "error", position: 'top' }) + } + }, + fail(res) { + _this.agvStartDis = false + } + }); + }, + // 骞舵澘缁勬墭 + mergeConfirm() { + let _this = this + let combMats = [] + _this.detls['locNo'] = _this.locNo + _this.detls.anfme = _this.anfme + combMats.push(_this.detls) + uni.request({ + url: _this.baseUrl + '/mobile/merge/comb2/auth', + data: JSON.stringify({ + barcode: _this.barcode, + isFull: _this.fullPlt, + combMats: combMats + }), + method: 'POST', + header: { + 'token': uni.getStorageSync('token') + }, + success(result) { + var res = result.data + _this.agvStartDis = false + if (res.code === 200) { + _this.$refs.merge.close() + uni.showToast({ title: res.msg, icon: "success", position: 'top' }) + setTimeout(()=> { + _this.getOpenerEventChannel().emit('acceptDataFromOpenedPage', {data: 1}); + uni.navigateBack({ + delta:2 + }) + },1000) + } else if (res.code == 403) { + uni.showToast({ title: res.msg, icon: "error", position: 'top' }) + setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); + } else { + uni.showToast({ title: res.msg, icon: "error", position: 'top' }) + } + }, + fail(res) { + _this.agvStartDis = false + } + }); + }, + // 淇敼鏁伴噺 + changeCount() { + if (this.count > this.orderCarList[this.index].anfme) { + uni.showToast({ title: '鏁伴噺涓嶅悎娉曪紒', icon: "none", position: 'top' }) + return + } + this.orderCarList[this.index].pakinQty = this.count + this.$forceUpdate() // 寮哄埗鍒锋柊 + this.$refs.chageDetl.close() + }, + // 绉婚櫎鐗╂枡 + remove() { + this.orderCarList.splice(this.index, 1) + this.$refs.chageDetl.close() + }, + changeValue(value) { + this.count = value + }, + changeValue2(value) { + this.anfme = value + }, + agvStart() { + this.$refs.agvStart.open() + }, + agvStartClose() { + this.barcode = '' + this.agvDevp = '' + this.$refs.agvStart.close() + }, + agvStartConfirm() { + this.barcode = this.barcode.replace(/\s+/g, '') + let _this = this + if (_this.barcode === '') { + uni.showToast({ title: '鎵樼洏鐮佷负绌猴紒', icon: "error", position: 'top' }) + return; + } + if (_this.orderCarList.length === 0) { + uni.showToast({ title: '缁勬墭鍒楄〃涓虹┖锛�', icon: "error", position: 'top' }) + return; + } + for (let k of _this.orderCarList) { + if (k.pakinQty == 0) { + uni.showToast({ title: `${k.matnr}鏁伴噺涓嶈兘涓� 0 锛乣, icon: "error", position: 'top' }) + return; + } + } + let combMat = { orderNo:'', barcode: '', locNo: '', combMats: [] } + let combMats = [] + // for (let item of _this.orderCarList) { + // combMat.orderNo = item.orderNo + // combMat.barcode = _this.barcode + // combMat.locNo = _this.agvDevp + // combMat.combMats = [] + // let combM = {csocode: item.threeCode,isoseq: item.deadTime,matnr: item.matnr,batch: item.batch,anfme: item.pakinQty,maktx: item.maktx,specs: item.specs,processSts: item.processSts} + // combMat.combMats.push(combM) + // combMats.push({...combMat}) + // } + for (let detl of _this.orderCarList) { + detl.anfme = detl.pakinQty + combMats.push(detl) + } + this.comb(combMats) + + }, + comb(combMats) { + let _this = this; + this.agvStartDis = true + uni.request({ + url: _this.baseUrl + '/mobile/comb/auth3', + data: JSON.stringify({ + barcode: _this.barcode, + isFull: _this.fullPlt, + combMats: combMats + }), + method: 'POST', + header: { + 'token': uni.getStorageSync('token') + }, + success(result) { + var res = result.data + _this.agvStartDis = false + if (res.code === 200) { + _this.orderCarList = [] + _this.$refs.agvStart.close() + uni.showToast({ title: '鍚姩鎴愬姛锛�', icon: "success", position: 'top' }) + setTimeout(()=> { + _this.getOpenerEventChannel().emit('acceptDataFromOpenedPage', {data: 1}); + uni.navigateBack({}) + },1000) + } else if (res.code == 403) { + uni.showToast({ title: res.msg, icon: "error", position: 'top' }) + setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); + } else { + uni.showToast({ title: res.msg, icon: "error", position: 'top' }) + } + }, + fail(res) { + _this.agvStartDis = false + } + }); + }, + } + } +</script> + +<style> + @import url('../../static/css/order.css'); + .shop-car { + background-color: #2299ff; + color: #fff; + } + .detl-threeCode { + font-size: 28px; + font-weight: bold; + } + .popup { + width: 80vw; + min-height: 100rpx; + background-color: #FFF; + border-radius: 25rpx; + position: relative; + } + .title { + height: 100rpx; + line-height: 100rpx; + width: 100%; + color: #606266; + text-align: center; + font-size: 16px; + } + .popup-item { + height: 80rpx; + line-height: 80rpx; + display: flex; + align-items: center; + justify-content: center; + } + .popup-item-left { + width: 20vw; + padding-right: 20rpx; + text-align: right; + color: #606266; + } + .popup-item-right { + display: flex; + align-items: center; + width: 50vw; + height: 50rpx; + padding: 2px 5px; + border: 1px solid #E4E7ED; + border-radius: 5rpx; + } + .popup-item-right input{ + color: #606266; + } + .btn { + display: flex; + height: 90rpx; + margin-top: 20rpx; + border-top: 1px solid #DCDFE6; + justify-content: center; + align-items: center; + } + .btn-left { + display: flex; + flex: 1; + height: 100%; + justify-content: center; + align-items: center; + color: #e2231a; + border-right: 1px solid #DCDFE6; + } + .btn-right { + display: flex; + flex: 1; + height: 100%; + justify-content: center; + align-items: center; + color: #409EFF; + } +</style> diff --git a/static/css/order.css b/static/css/order.css new file mode 100644 index 0000000..e8ecb55 --- /dev/null +++ b/static/css/order.css @@ -0,0 +1,125 @@ + .container { + position: relative; + } + .code { + background-color: #d9d9d9; + z-index: 99; + position: sticky; + top: 0rpx; + left: 0; + } + .code-title { + display: flex; + justify-content: space-around; + /* height: 50rpx; */ + } + .list { + margin: 20rpx; + font-size: 14px; + background-color: #fff; + border-radius: 20rpx; + border: 1px solid #eeeeee; + display: flex; + position: relative; + } + .card-id { + position: absolute; + right: 10rpx; + top: 20rpx; + padding: 5rpx 10rpx; + line-height: 1.2; + text-align: center; + color: #eeeeee; + background-color: #30ddb2; + border-radius: 50%; + font-size: 10px; + } + .list-left { + flex: 1; + padding: 20rpx; + position: relative; + } + .list-right { + width: 70rpx; + border-left: 1px solid #eeeeee; + display: flex; + align-items: center; + justify-content: center; + } + .buttom { + width: 100%; + position: fixed; + bottom: 0; + left: 0; + display: flex; + align-items: center; + justify-content: space-between; + height: 100rpx; + background-color: #FFF; + box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.2) ; + } + .card-status-1 { + position: absolute; + right: 20rpx; + top: 30rpx; + padding: 4rpx 20rpx; + text-align: center; + font-size: 10px; + color: #f5222d; + background-color: #fff1f0; + border: 1px solid #ffa39e; + border-radius: 6rpx; + } + .card-status-2 { + position: absolute; + right: 20rpx; + top: 30rpx; + padding: 4rpx 20rpx; + text-align: center; + font-size: 10px; + color: #52c41a; + background-color: #f6ffed; + border: 1px solid #b7eb8f; + border-radius: 6rpx; + } + .card-status-4 { + position: absolute; + right: 20rpx; + top: 30rpx; + padding: 4rpx 20rpx; + text-align: center; + font-size: 10px; + color: #1890ff; + background-color: #e6f7ff; + border: 1px solid #91d5ff; + border-radius: 6rpx; + } + .dropdown { + position: relative; + display: flex; + align-items: center; + padding: 0rpx 20rpx; + border-bottom: 1px solid #d9d9d9; + } + .dropdown-content { + position: absolute; + top: calc(100% + 15rpx); + left: 0; + width: calc(100% - 20rpx); + max-height: 300rpx; + background-color: #fff; + box-shadow: 0 0px 6px rgba(0, 0, 0, 0.3); + border-radius: 8rpx; + z-index: 10; + } + .dropdown-item { + margin: 12rpx; + padding: 12rpx; + line-height: 1; + font-size: 32rpx; + color: #3a3a3a; + } + .mt-flex { + display: flex; + align-items: center; + } \ No newline at end of file diff --git a/static/css/wms.css/wms.css b/static/css/wms.css/wms.css index 452c440..5071b25 100644 --- a/static/css/wms.css/wms.css +++ b/static/css/wms.css/wms.css @@ -5,7 +5,7 @@ margin: 20rpx 20rpx; border-radius: 20rpx; box-shadow: 0px 0px 30px 0px rgba(0,0,0,0.2); - padding: 10rpx; + padding: 20rpx; } .list:first-child { margin-top: 320rpx; -- Gitblit v1.9.1