From b9a558bb6bc37770932af1cc2d04fbf108e096db Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期四, 05 六月 2025 16:30:43 +0800 Subject: [PATCH] 123 --- pages/basics/order - beifen.vue | 862 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 862 insertions(+), 0 deletions(-) diff --git a/pages/basics/order - beifen.vue b/pages/basics/order - beifen.vue new file mode 100644 index 0000000..978fb83 --- /dev/null +++ b/pages/basics/order - beifen.vue @@ -0,0 +1,862 @@ +<template> + <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="10" :focus="barcodeFocus" + @input="barcodeInput" placeholder-style="line-height: 85rpx;"> + <uni-icons type="closeempty" size="20" color="#dadada" @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"> + <input v-model="orderNo" type="text" disabled="true" + placeholder-style="line-height: 85rpx;"> + <uni-icons type="closeempty" size="20" color="#dadada" @click="removeOrder()"></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"> + <input v-model="tiaoma" type="text" placeholder="鎵爜 / 杈撳叆" @input="findTiaoMa()" :focus="tmfocus" + placeholder-style="line-height: 85rpx;"> + <uni-icons type="closeempty" size="20" color="#dadada" @click="removeTm()"></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> + <view v-show="matList.length != 0" class="lable"> + <!-- <label class="label-btn" style="width: 170rpx;line-height: 95rpx;" > + <checkbox :checked="check" @click="allChecked()">{{checkText}}</checkbox> + </label> --> + <!-- <label class="label-btn" > + <text @click="reChecked()">鍙嶉��</text> + </label> + <label > + <uni-icons type="trash" size="25" color="#a5a5a5" @click="remove()"></uni-icons> + </label> --> + </view> + </view> + + </view> + <view class="square-none" v-show="matList.length === 0"> + <view class="v-show">鏆傛棤鏇村鏁版嵁...</view> + </view> + + <checkbox-group @change="checkbox"> + <view v-for="(item,index) in matList" :key="index" class="data-list bg-false" + :class="'bg-'+item.checked"> + <label class="left-check-box"> + <checkbox :value="item.id+''" :checked="true" style="display: block;" /> + </label> + <view class="data-list-left"> + <view class="matnr"><text style="width: 700rpx;">鍝佸彿锛歿{item.matnr}}</text></view> + <view><text style="width: 700rpx;">鍝佸悕锛歿{item.maktx}}</text></view> + <view><text style="width: 700rpx;">鎵瑰彿锛歿{item.batch}}</text></view> + <view> + <text style="width: 700rpx;">鎬绘暟閲忥細{{item.enableQty}}</text> + </view> + <view> + <text style="width: 700rpx;">缁勬墭鏁伴噺锛歿{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> + <!-- list涓垹闄ら敭 --> + <!-- <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"> + <!-- 搴曢儴鍏ㄩ�� 鍙嶉�夋寜閽� --> + <!-- <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> + + <view> + <!-- 淇敼鏁伴噺 --> + <uni-popup ref="revise" background-color="#fff" @change="change"> + <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> + </view> + <view class="changeBox flex justify-around"> + <view class="num-box"> + <uni-number-box v-model="count" :min="minCount" :max="maxCount" color="#747474" + @change="changeValue" /> + </view> + <button class="cu-btn" @click="changeMax">max</button> + </view> + <view class="revise-box-buttom"> + <view> + <button class="cu-btn bg-blue" @click="confirm()">纭</button> + </view> + </view> + + </view> + </uni-popup> + </view> + </view> +</template> + +<script> + import permision from "@/common/permission.js" + export default { + data() { + return { + commonUrl: null, + barcode: '', + barcodeFocus: true, + tmfocus: false, + focus: false, + type: 'center', + searchBox: 'hide', + pick: 'hide', + order: null, + orderNo: null, + tiaoma: null, + tiaomas: [], + matList: [], + result: '', + count: '', + minCount: 0, + maxCount: '', + rowNum: '', + enableQty: '', + check: false, + checkText: '鍏ㄩ��', + checkedData: [], + } + }, + mounted() { + const UIP = uni.getStorageSync('UIP'); + 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 + }, + // barcode input 浜嬩欢 + barcodeInput() { + var len = this.barcode.length + if (len != 8) { + uni.showToast({ + title: '鎵樼洏鐮佹湁璇閲嶈瘯', + icon: "none", + position: 'top' + }); + this.barcodeFocuss() + return; + } + if (len == 8) { + this.focuss() + } + }, + // 鎵樼洏鐮佹湁璇噸缃� + 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.focus = true; + }, 100); + // #endif + }, + resst() { + this.matList = [] + this.barcode = '' + this.order = '' + this.barcodeFocuss() + uni.vibrateShort(); + }, + removeBarcode() { + this.barcode = '' + uni.vibrateShort(); + this.barcodeFocus = false; + this.$nextTick(function() { + this.barcodeFocus = true; + }); + }, + removeOrder() { + this.order = '' + uni.vibrateShort(); + this.focus = false; + this.$nextTick(function() { + this.focus = true; + }); + }, + removeTm() { + this.tiaoma = '' + uni.vibrateShort(); + this.tmfocus = false; + this.$nextTick(function() { + this.focus = true; + }); + }, + eject(type) { + this.type = type + // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦� uni-popup 缁勪欢涓婄粦瀹� type灞炴�� + this.$refs.revise.open(type) + }, + initAnfme() { + for (var i = 0; i < this.matList.length; i++) { + this.matList[i].anfme = 0 + } + uni.hideLoading(); + }, + 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() + }, + changeMax() { + this.count = this.enableQty + }, + changeValue() { + + }, + remove() { + console.log(this.matList.filter(item => item.checked !== true)) + this.matList = this.matList.filter(item => item.checked !== true) + + // this.matList.splice(i,1) + + // for (var i = 0; i < this.matList.length; i++) { + // if (this.matList[i].checked == true) { + + // } + // } + this.checkList(); + uni.vibrateShort(); + }, + // 鍒楄〃涓垹闄� + // remove(item,index) { + // this.matList.splice(index,1) + // uni.vibrateShort(); + // }, + confirm() { + this.matList[this.rowNum].anfme = this.count + this.$refs.revise.close() + }, + comb() { + uni.vibrateShort(); + let that = this; + if (!that.orderNo) { + uni.showToast({ + title: '璇锋壂鎻忓崟鎹彿', + icon: "none", + position: 'top' + }); + return; + } + if (!that.barcode) { + uni.showToast({ + title: '璇锋壂鎻忔墭鐩樻潯鐮�', + icon: "none", + position: 'top' + }); + return; + } + if (that.barcode.length !== 8) { + uni.showToast({ + title: '鎵樼洏鐮佸繀椤讳负8浣�', + icon: "none", + position: 'top' + }); + return; + } + let mats = that.matList.filter(mat => mat.anfme > 0); + if (mats.length === 0) { + uni.showToast({ + title: '璇锋坊鍔犲晢鍝佸垪琛�', + icon: "none", + position: 'top' + }); + return; + } + // for (var i = 0; i < mats.length; i++) { + // if (that.matList[i].anfme === 0) { + // uni.showToast({title: '鍟嗗搧缁勬墭鏁伴噺涓�0涓嶈兘缁勬墭', icon: "none", position: 'top'}); + // return; + // } + // } + uni.showLoading(); + uni.request({ + url: that.commonUrl + '/mobile/comb/auth', + data: JSON.stringify({ + orderNo: that.orderNo, + barcode: that.barcode, + combMats: mats + }), + 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: 'top', + duration: 1000 + }); + that.resst() + } 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' + }) + } + } + }); + }, + findOrder() { + console.info("!23") + console.info(that.orderNo) + let that = this + uni.request({ + url: that.commonUrl + '/mobile/order/search/orderNo/auth', + data: { + orderNo: that.orderNo + }, + header: { + 'token': uni.getStorageSync('token') + }, + success(result) { + console.log("result锛�"); + console.log(result) + let res = result.data + if (res.code === 200 && res.data) { + uni.showLoading(); + that.orderNo = that.order + // that.matList = res.data.map(item => ({ + // ...item, + // combMats: typeof item.combMats === 'string' ? + // JSON.parse(item.combMats) : item.combMats // 纭繚瀵硅薄缁撴瀯[1,2](@ref) + // })); + that.matList = res.data.combMats + that.initAnfme(); + + console.log("that.matList锛�"); + console.log(that.matList) + + } 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' + }) + } + } + }); + }, + findTiaoMa() { + let that = this + + uni.request({ + url: that.commonUrl + '/mobile/mat/search/auth', + data: { + matnr: that.tiaoma + }, + header: { + 'token': uni.getStorageSync('token') + }, + success(result) { + console.log("result锛�"); + console.log(result) + let res = result.data + if (res.code === 200 && res.data) { + console.info("!234345454") + console.info(res.data.orderNo) + if (!that.orderNo){ + that.orderNo = res.data.orderNo + } + if (that.orderNo == res.data.orderNo){ + that.findOrder() + that.checkMat(res.data) + }else if (that.orderNo){ + if (that.orderNo != res.data.orderNo){ + uni.showToast({ + title: '涓嶅悓鍗曟嵁涓嶈兘娣峰悎缁勬墭', + icon: "none", + position: 'top' + }); + } + } + //this.tiaomas.unshift(that.tiaoma) + } 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' + }) + } + } + }); + }, + checkMat(mat) { + var len = this.matList.length + var add = true + for (var i = 0; i < len; i++) { + if (mat.matnr == this.matList[i].matnr) { + if (mat.batch) { + if (mat.batch == this.matList[i].batch) { + this.matList[i].times += 1 + var num = Number(this.matList[i].anfme) + Number(mat.anfme); + var num2 = this.matList[i].enableQty ? this.matList[i].enableQty : 0 + if (num <= num2) { + this.matList[i].anfme += mat.anfme + this.$forceUpdate() // 寮哄埗鍒锋柊 + add = false + } else { + uni.showToast({ + title: '缁勬墭鏁伴噺瓒呰繃璁㈠崟鏁伴噺', + icon: "none", + position: 'top' + }) + } + } + } else { + var num = Number(this.matList[i].anfme) + Number(mat.anfme); + var num2 = this.matList[i].enableQty ? this.matList[i].enableQty : 0 + if (num <= num2) { + this.matList[i].times += 1 + this.matList[i].anfme += mat.anfme + this.$forceUpdate() // 寮哄埗鍒锋柊 + add = false + } else { + uni.showToast({ + title: '缁勬墭鏁伴噺瓒呰繃璁㈠崟鏁伴噺', + icon: "none", + position: 'top' + }) + } + } + + } + } + this.tiaoma = '' + uni.vibrateShort(); + this.focus = false; + this.$nextTick(function() { + this.focus = true; + }); + }, + change(e) { + // console.log('褰撳墠妯″紡锛�' + e.type + ',鐘舵�侊細' + e.show); + }, + toggle(type) { + this.type = type + // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦� uni-popup 缁勪欢涓婄粦瀹� type灞炴�� + this.$refs.goodsSearch.open(type) + }, + // 鍒楄〃閫夋嫨 + checkbox: function(e) { + 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(); + }, + // 鍒楄〃鍙嶉�� + 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(this.matList[i], 'checked', true) + } + if (this.matList[i].checked == true) { + checkArr.push(this.matList[i].checked) + } + } + if (checkArr.length == this.matList.length) { + this.check = true + this.checkText = "鍙栨秷鍏ㄩ��" + } else { + this.check = false + this.checkText = "鍏ㄩ��" + } + uni.vibrateShort(); + }, + // 鍒楄〃鍏ㄩ�� + 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(); + }, + // 妫�楠屽垪琛ㄩ暱搴� 绛変簬0 鏄剧ず鍏ㄩ�� + checkList() { + if (this.matList.length == 0) { + this.check = false + this.checkText = "鍏ㄩ��" + return; + } + } + } + } +</script> + +<style> + /* @import "../../colorui/main.css"; + @import "../../colorui/icon.css"; */ + .square-1 .lable { + display: inline-block; + float: right; + height: 100%; + width: 400rpx; + } + + .square-1 .lable label { + display: inline-block; + float: left; + height: 100%; + width: 90rpx; + line-height: 100rpx; + } + + .pak-seach-box { + background-color: #FFFFFF; + margin: 15rpx 15rpx 0rpx 15rpx; + width: 96%; + height: 150rpx; + border-radius: 20rpx; + } + + .box-top { + display: block; + height: 60rpx; + width: 720rpx; + } + + .color-block-blue { + background-color: #1E9FFF; + display: inline-block; + float: left; + margin: 15rpx 15rpx 0 15rpx; + width: 12rpx; + height: 40rpx; + border: 5rpx solid #1E9FFF; + border-radius: 20rpx; + } + + .title { + display: inline-block; + float: left; + font-size: 34rpx; + font-weight: 700; + height: 50rpx; + line-height: 50rpx; + margin-top: 10rpx; + } + + .box-buttom { + display: inline-block; + background-color: #ededed; + width: 96%; + height: 60rpx; + border-radius: 20rpx; + margin: 15rpx 15rpx 0rpx 15rpx; + } + + .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 button { + background-color: #1E9FFF; + color: #ffffff; + display: inline-block; + float: right; + width: 150rpx; + height: 60rpx; + margin: 15rpx 15rpx 0rpx 15rpx; + line-height: 60rpx; + } + + .pakin-btn { + background-color: #1E9FFF; + } + + .pak-data-box { + background-color: #F1F1F1; + margin: 15rpx 15rpx 0rpx 15rpx; + width: 96%; + 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: #FFFFFF; + } + + .bg-true { + background-color: #ebebeb; + } + + .data-list { + border-bottom: 1px solid #d8d8d8; + height: 210rpx; + margin: 15rpx auto auto auto; + border-radius: 20rpx; + } + + .data-list:first-child { + margin-top: 20rpx; + } + + .data-list:last-child { + margin-bottom: 160rpx; + } + + /* .data-list-left { + display: inline-block; + float: left; + text-align: center; + width: 100rpx; + height: 180rpx; + line-height: 180rpx; + } */ + .left-check-box { + display: inline-block; + /* background-color: #1E9FFF; */ + float: left; + height: 100%; + width: 100rpx; + text-align: center; + line-height: 170rpx; + } + + .data-list-left { + /* background-color: #ffff7f; */ + display: inline-block; + float: left; + height: 180rpx; + width: 500rpx; + color: #676767; + } + + .matnr { + padding-top: 10rpx; + } + + .data-list-right { + /* background-color: #55ffff; */ + display: inline-block; + float: right; + width: 100rpx; + height: 180rpx; + line-height: 180rpx; + } + + .data-list-right label { + display: inline-block; + float: left; + width: 100rpx; + 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