From 6c9cbdf482ce1330704dc635c510ec51a1115a9f Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期一, 18 三月 2024 16:52:29 +0800 Subject: [PATCH] # --- pages/basics/stockCheck.vue | 684 ++++++++++++++++++++++++++++++--------------------------- 1 files changed, 360 insertions(+), 324 deletions(-) diff --git a/pages/basics/stockCheck.vue b/pages/basics/stockCheck.vue index 58b8ce5..2fa1509 100644 --- a/pages/basics/stockCheck.vue +++ b/pages/basics/stockCheck.vue @@ -1,373 +1,409 @@ <template> <view> - <view class="cu-form-group margin-top"> - <view class="title">鎵樼洏鐮�</view> - <input v-model="billNo" placeholder="鎵爜 / 杈撳叆" name="input" @input="findCode()" focus> - <button v-model="matBtn" class="cu-btn bg-yellow" @click="toggle('right')"><text>+琛ュ厖</text></button> - - </view> - <view class="margin-top"> - <uni-table border stripe emptyText="鏆傛棤鏇村鏁版嵁"> - <uni-tr> - <uni-th align="center" width="80">鏁伴噺</uni-th> - <uni-th align="center" width="100">浜у搧缂栫爜</uni-th> - <uni-th align="center" width="100">浜у搧鍚嶇О</uni-th> - <uni-th align="center" width="100">浜у搧鎵瑰彿</uni-th> - <uni-th align="center" width="100">搴撲綅</uni-th> - <uni-th align="center" width="150">纭鏁伴噺</uni-th> - </uni-tr> - <uni-tr v-for="(item, index) in locDetlData" :key="index"> - <uni-td>{{item.count}}</uni-td> - <uni-td>{{item.matNo}}</uni-td> - <uni-td>{{item.matName}}</uni-td> - <uni-td>{{item.itemBatch}}</uni-td> - <uni-td>{{item.locNo}}</uni-td> - <uni-td align="center"> - <button class ="cu-btn bg-orange margin-xs" @click="conf(index,item)">淇敼</button> - <button class ="cu-btn bg-red margin-xs" @click="remove(index,item)">鍒犻櫎</button> - </uni-td> - </uni-tr> - </uni-table> - </view> - <view style="height: 200rpx;"> - <!-- 绌虹櫧灞� --> - </view> - <view class="cu-bar foot input" style="height: 130rpx;"> - <view class="flex solid-bottom padding justify-start" > - <button class="cu-btn bg-yellow main-btn margin-xs" style="width: 430rpx;" @click="check">纭� 璁�</button> - <button class="cu-btn bg-grey main-btn margin-xs" @click="reset">閲� 缃�</button> - </view> - </view> - - <scroll-view> - <uni-popup ref="popup" background-color="#fff" style="width: 500rpx;"> - <view class="popup-content" :class="{ 'popup-height': type === 'left' || type === 'right' }"> - <view class="cu-form-group margin-top"> - <text>琛ュ厖浜у搧</text> - </view> - <view class="cu-form-group margin-top"> - <text class="title">浜у搧ID</text> - <input type="text" v-model="matNo" placeholder="鎵爜 / 杈撳叆" name="input" autocomplete="off" focus @input="find()"> - </view> - <view class="cu-form-group margin-top"> - <text class="title">浜у搧鍚嶇О</text> - <input type="text" name="input" autocomplete="off" v-model="matName"> - </view> - <view class="cu-form-group margin-top"> - <text class="title">瑙勬牸鍨嬪彿</text> - <input type="text" name="input" autocomplete="off" v-model="size"> - </view> - <view class="cu-form-group margin-top"> - <text class="title">鍗曚綅</text> - <input type="text" name="input" autocomplete="off" v-model="unit"> - </view> - <view class="cu-form-group margin-top"> - <text class="title">鏁伴噺</text> - <uni-number-box :min="0" :max="999" @change="countDom" v-model="count" /> - </view> - <view class="flex solid-bottom padding justify-center"> - <button class="cu-btn bg-yellow pda-btn2" @click="confirm">鎻愬彇</button> - </view> - <view style="height: 200rpx;"> - <!-- 绌虹櫧灞� --> - </view> + <scroll-view scroll-y> + <view class="pak-seach-box"> + <view class="box-top"> + <view class="color-block-blue"></view> + <text class="title">閫夋嫨绔欏彴</text> </view> - </uni-popup> + <view> + <text class="item">鍑哄簱鍙�</text> + <view class="example-body"> + <uni-combox @input="getCheckDetl" emptyTips="鏆傛棤鏁版嵁" :candidates="staNoList" v-model="staNo" placeholder="璇烽�夋嫨"></uni-combox> + </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="barcode" type="text" placeholder="鎵爜 / 杈撳叆" maxlength="8"placeholder-style="line-height: 85rpx;"> + <uni-icons type="closeempty" size="20" color="#dadada" @click="removeBarcode" ></uni-icons> + </view> + </view> + </view> + <view class="pak-data-box"> + <view class="box-top"> + <view class="color-block-blue"></view> + <text class="title">鍟嗗搧鍒楄〃</text> + <!-- <button class="cu-btn bg-blue" @click="selectMat()">+ 娣诲姞</button> --> + </view> + </view> + <view class="pak-data-box" v-show="matList.length === 0"> + <view style="text-align: center;">鏆傛棤鏇村鏁版嵁</view> + </view> + <checkbox-group> + <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> + <text style="width: 400rpx;">鏁伴噺锛歿{item.anfme}}</text> + </view> + </view> + <view class="data-list-right"> + <label><uni-icons type="compose" size="20" color="#a5a5a5" @click="revise(item,index)"></uni-icons></label> + <label><uni-icons type="trash" size="25" color="#a5a5a5" @click="remove(item,index)"></uni-icons></label> + </view> + </view> + </checkbox-group> + <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="adjust()">纭</button> + </view> + </view> </scroll-view> <view> - <!-- 鎻愮ず淇℃伅寮圭獥 --> - <uni-popup ref="message" type="message"> - <uni-popup-message :type="msgType" :message="messageText" :duration="2000"></uni-popup-message> - </uni-popup> - </view> - <view> - <!-- 杈撳叆妗嗙ず渚� --> - <uni-popup ref="inputDialog" type="dialog"> - <uni-popup-dialog ref="inputClose" mode="input" title="浜у搧鏁伴噺" - placeholder="璇疯緭鍏ョ粍鎵樻暟閲�" @confirm="dialogInputConfirm"> - <uni-number-box :min="0" :max="999" v-model="value" /> - </uni-popup-dialog> - </uni-popup> - </view> - <!-- <view> - <view class="uni-padding-wrap uni-common-mt"> - <view class="uni-btn-v"> - <button type="default" @tap="noTitlemodalTap">鏃犳爣棰樼殑modal</button> + <!-- 淇敼鏁伴噺 --> + <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"> + <view class="num-box"> + <uni-number-box v-model="count" :min="minCount" :max="maxCount" color="#747474" @change="changeValue"/> + </view> + </view> + <view class="revise-box-buttom"> + <view> + <button class="cu-btn bg-blue" @click="confirm()">纭</button> + </view> + </view> + </view> - </view> - </view> --> + </uni-popup> + </view> </view> </template> - <script> export default { data() { return { - msgType: '', - messageText: '', - matBtn:'', - souceData:[], // 鍒濆鍖栬〃鏍兼暟鎹褰� - locDetlData:[], - matNo:'', - matName:'', - size:'', - unit:'', - count:0, - type: '', - baseIP:'', - basePORT:'', - checkList:[], - sourceList:[], - billNo:'', - matData:[], - rowNum:'', - value:'0', + commonUrl:null, + matList:[], + staNoList:[], + barcode: '', + staNo:'', + matnr:'', + enableQty:'', + count:'', + maxCount:'', + minCount:0, + rowNum:'' } }, mounted(){ - // 鑾峰彇IP绔彛 const UIP = uni.getStorageSync('UIP'); this.baseIP = UIP; const UPORT = uni.getStorageSync('UPORT'); - this.basePORT = UPORT; + this.basePORT = UPORT + const PROJ = uni.getStorageSync('UPROJ'); + this.baseUrl = PROJ + this.getUrl() + this.getOutBound(); }, methods: { - // 鎻愮ず绐楀彛 - messageToggle(type) { - this.msgType = type - this.messageText = '鎻愬彇澶辫触' - this.$refs.message.open() + // 鑾峰彇url + getUrl() { + this.commonUrl = this.baseHttp + this.baseIP + ':' +this.basePORT + "/" +this.baseUrl }, - // 鏍规嵁鎵樼洏鐮佹煡璇� - findCode() { + getOutBound() { // 鑾峰彇鍑哄簱鍙� let that = this - if (that.billNo.length === 0 || that.billNo.length !== 8) { - return - } - let barCode = that.billNo - // 璧嬪�煎墠娓呯┖琛ㄦ牸 - that.locDetlData = [] uni.request({ - url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + "/mobile/check/queryMatFromBarCode?barCode=" + barCode, + url: that.commonUrl + '/available/take/check/site', + method: 'POST', header: { - 'content-type':'application/x-www-form-urlencoded', 'token':uni.getStorageSync('token') }, - data: { - barCode: barCode - }, - method:'GET', - success(res) { - if (res.data.code === 200) { - that.locDetlData = res.data.data - if (res.data.data && res.data.data.length > 0) { - res.data.data.map(function(item){ - that.souceData.push(item) - }) - } - } else if (res.data.code === 403) { - uni.navigateBack({ - delta: 1 - }) + success(result) { + var res = result.data + if (res.code === 200) { + that.staNoList = res.data + } else if (res.code == 403) { + uni.showToast({title: res.msg, icon: "none", position: 'top'}) + setTimeout(() => { + uni.reLaunch({ + url: '../login/login' + }); + }, 1000); } else { - that.messageToggle('error') - that.messageText = res.data.msg + uni.showToast({title: res.msg, icon: "none",position: 'top'}) } + }, + }); + }, // getOutBound + getCheckDetl() { // 鑾峰彇鍑哄簱鍙h揣鐗╀俊鎭� + let that = this + uni.request({ + url: that.commonUrl + '/mobile/checkDetl/auth', + method: 'POST', + data: { + staNo:that.staNo + }, + header: { + 'token':uni.getStorageSync('token') + }, + success(result) { + var res = result.data + console.log(result) + if (res.code === 200) { + console.log(res.data) + } 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'}) + } + }, + }); + }, // getCheckDetl + selectMat() { // 閫夋嫨鍟嗗搧 + let that = this + uni.vibrateShort(); + 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 = '' + }, // selectMat + findMat() { + let that = this + uni.request({ + url: that.commonUrl + '/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 }) + } + }); + } + } - }) + }); + }, // findMat + 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() + }, + remove(item,index) { + this.matList.splice(index,1) + uni.vibrateShort(); }, - // 鐐瑰嚮琛ュ厖鐨勫脊绐� - toggle(type) { + eject(type) { this.type = type // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦� uni-popup 缁勪欢涓婄粦瀹� type灞炴�� - this.$refs.popup.open(type) + this.$refs.revise.open(type) }, - messageToggle(type) { - this.msgType = type - this.messageText = '鎻愬彇澶辫触' - this.$refs.message.open() + change(e) { + // console.log('褰撳墠妯″紡锛�' + e.type + ',鐘舵�侊細' + e.show); }, - countDom(value) { + changeValue() { }, - // 鏍规嵁浜у搧ID鏌ヨ浜у搧璇︽儏 - find(){ + confirm() { + this.matList[this.rowNum].anfme = this.count + this.$refs.revise.close() + }, + resst() { + this.matList = [] + this.staNo = '' + }, + adjust() { let that = this - let thatId = that.matNo - if(that.matNo.length===0){ - return; - } uni.request({ - url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + "/matCode/auth", - header: { - 'content-type':'application/x-www-form-urlencoded', - 'token':uni.getStorageSync('token') - }, - data: { - id:thatId - }, + url: that.commonUrl + '/adjust/auth', method: 'POST', - success(res){ - let data = res.data.data - if(res.data.code === 200){ - if(data != null){ - that.matName = data.matName - that.size = data.size - that.unit = data.unit - } - } else if (res.data.code ===403 ){ - uni.navigateBack({ - delta: 1 - }) - } else { - this.messageToggle('error') - this.messageText = res.data.msg - } - } - }) - }, - // 寮圭獥 纭琛ュ厖 - confirm(){ - let that = this - let data = { - matNo:that.matNo, - matName:that.matName, - count:that.count - } - that.addTableData(data) - - }, - // 淇敼鏁伴噺 - conf(index,item){ - this.$refs.inputDialog.open() - this.rowNum = index - if (item.count === undefined ) { - this.value = 0 - } - }, - // 淇敼鏁伴噺寮圭獥 - dialogInputConfirm(value) { - this.locDetlData[this.rowNum].count = this.value - this.messageToggle('success') - this.messageText = '淇敼鎴愬姛' - }, - // 绉婚櫎鐗╂枡 - remove(index,item){ - this.locDetlData.splice(index,1) - this.messageToggle('success') - this.messageText = '鍒犻櫎鎴愬姛' - }, - // 琛ㄦ牸娓叉煋 - addTableData(data){ - let that = this - if(data.matNo.length === 0){ - that.messageToggle('error') - that.messageText = '鎻愬彇澶辫触' - return - } - var toPush = true - for (var j = 0; j < that.locDetlData.length; j++) { - if (data.matNo === that.locDetlData[j].matNo && data.locNo === that.locDetlData[j].locNo) { - toPush = false; - } - } - if (toPush) { - var pushData = { - locNo: that.locDetlData[0] ? that.locDetlData[0].locNo : null, - matNo: data.matNo, - count: data.count, - matName: data.matName - } - that.locDetlData.push(pushData); - } - that.$refs.popup.close() - }, - // 閲嶇疆 - reset(){ - this.billNo = '' - this.locDetlData = [] - }, - check(){ - let that = this - if(that.billNo.length === 0) { - that.messageToggle('error') - that.messageText = '璇� 鎵爜 / 杈撳叆 鎵樼洏鐮�' - return - } - if(that.billNo.length < 8) { - that.messageToggle('error') - that.messageText = '鎵樼洏鐮佸繀椤讳负8浣�' - return - } - if(that.locDetlData.length > 0) { - for(var i = 0; i < that.locDetlData.length; i++){ - if (that.locDetlData[i].count === null || that.locDetlData[i].count === 0 || - that.locDetlData[i].count === undefined) { - that.messageToggle('error') - that.messageText = that.locDetlData[i].matNo + '鍟嗗搧鏁伴噺閿欒' - return - } - } - } - if (that.locDetlData.length > 0) { - that.locDetlData.map(function (item) { - that.checkList.push({ - locNo: item.locNo, - matNo: item.matNo, - checkQty: item.count, - itemBatch: item.itemBatch - }); - }); - } - if (that.souceData.length > 0) { - that.souceData.map(function (item) { - that.sourceList.push({ - locNo: item.locNo, - matNo: item.matNo, - count: item.count, - itemBatch: item.itemBatch - }); - }); - } - // this.noTitlemodalTap() - uni.request({ - url: that.baseHttp + that.baseIP + ':' +that.basePORT + that.baseUrl + "/mobile/stock/check", + data: { + combParam: that.matList + }, header: { 'token':uni.getStorageSync('token') }, - data: JSON.stringify({ - checkList: that.checkList - }), - method:'POST', - async:false, - success(res){ - if(res.data.code === 200){ - that.reset(); - that.messageToggle('success') - that.messageText = '鐩樼偣鎴愬姛' - } else if (res.data.code === 403) { - uni.navigateBack({ - delta: 1 - }) + success(result) { + var res = result.data + console.log(result) + if (res.code === 200) { + + } else if (res.code == 403) { + uni.showToast({title: res.msg, icon: "none", position: 'top'}) + setTimeout(() => { + uni.reLaunch({ + url: '../login/login' + }); + }, 1000); } else { - that.messageToggle('error') - that.messageText = res.data.msg + uni.showToast({title: res.msg, icon: "none",position: 'top'}) } - } - }) + }, + }); }, - noTitlemodalTap: function (e) { - uni.showModal({ - content: "鏄惁纭鐩樼偣", - confirmText: "鏄�", - cancelText: "鍚�" - }) - + removeBarcode() { + this.barcode = '' } - } - } + } // methods + } // exprot </script> - <style> + .pak-seach-box { + background-color: #FFFFFF; + margin: 15rpx 15rpx 0rpx 15rpx; + width: 96%; + height: 200rpx; + border-radius: 20rpx; + } + .box-top{ + display: block; + height: 80rpx; + width: 720rpx; + } + .color-block-blue { + background-color: #1E9FFF; + display: inline-block; + float: left; + margin: 30rpx 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: 80rpx; + margin-top: 10rpx; + } + .item { + text-indent: 1em; + font-size: 16px; + display: inline-block; + margin-top: 40rpx; + } + .example-body { + position: fixed; + display: inline-block; + margin-top: 3.5%; + margin-left: 5%; + width: 70%; + z-index: 999; + } -</style> + .pak-data-box { + background-color: #F1F1F1; + margin: 15rpx 15rpx 0rpx 15rpx; + width: 96%; + height: 100rpx; + border-radius: 20rpx; + line-height: 100rpx; + } + .pak-data-box>.box-top { + background-color: #FFFFFF; + height: 100rpx; + border-radius: 20rpx 20rpx 20rpx 20rpx; + } + .pak-data-box button { + background-color: #1E9FFF; + color: #ffffff; + display: inline-block; + float: right; + width: 150rpx; + height: 80rpx; + margin: 10rpx 25rpx 0rpx 0rpx; + line-height: 80rpx; + } + .bg-false { + background-color: #FFFFFF; + } + .bg-true { + background-color: #ebebeb; + } + .data-list { + border-bottom: 1px solid #d8d8d8; + height: 180rpx; + margin: 15rpx; + 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; + margin-left: 6%; + height: 180rpx; + color: #676767; + } + .matnr { + padding-top: 10rpx; + } + .data-list-right { + display: inline-block; + float: right; + width: 200rpx; + height: 180rpx; + line-height: 180rpx; + } + .data-list-right label { + display: inline-block; + float: left; + width: 100rpx; + height: 180rpx; + } +</style> \ No newline at end of file -- Gitblit v1.9.1