|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <view> | 
|---|
|  |  |  | <!-- ----------------------------------------------程序标题栏----------------------------------------------------------- --> | 
|---|
|  |  |  | <view class="status_bar"> | 
|---|
|  |  |  | <!-- 这里是状态栏 --> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <uni-nav-bar left-icon="left" background-color="#f8f8f8" title="组托入库" @clickLeft="back"  :fixed="true" | 
|---|
|  |  |  | :border="false" rightWidth="160rpx" leftWidth="160rpx" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <block slot="right"> | 
|---|
|  |  |  | <view class="city"> | 
|---|
|  |  |  | <view> | 
|---|
|  |  |  | <text class="uni-nav-bar-text">{{store}}</text> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </block> | 
|---|
|  |  |  | </uni-nav-bar> | 
|---|
|  |  |  | <!-- ----------------------------------------------程序标题栏----------------------------------------------------------- --> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- ----------------------------------------------  输入框  ----------------------------------------------------------- --> | 
|---|
|  |  |  | <view class="code"> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="code-decs">托盘码:</view> | 
|---|
|  |  |  | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="code-decs">物料码:</view> | 
|---|
|  |  |  | <input type="text" placeholder=" 扫码 / 输入" v-model="matnr" :focus="matFocus" @input="findMat()"> | 
|---|
|  |  |  | <input type="text" style="width: 350rpx;" placeholder=" 扫码 / 输入" v-model="matnr" :focus="matFocus" @input="findMat()"> | 
|---|
|  |  |  | <uni-icons type="close" color="#c1c1c1" @click="clearMatnr"></uni-icons> | 
|---|
|  |  |  | <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" /><text>是</text> | 
|---|
|  |  |  | </label> | 
|---|
|  |  |  | <label> | 
|---|
|  |  |  | <radio :checked="ck2" style="margin-left: 50rpx;"/><text>否</text> | 
|---|
|  |  |  | </label> | 
|---|
|  |  |  | </radio-group> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <!-- ----------------------------------------------  输入框  ----------------------------------------------------------- --> | 
|---|
|  |  |  | <view class="mat-list-title"> | 
|---|
|  |  |  | 商品列表 | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | 
|---|
|  |  |  | <uni-tag :text="item.batch" type="warning"></uni-tag> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="list-left-item"> | 
|---|
|  |  |  | <!-- <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> --> | 
|---|
|  |  |  | <view class="list-left-item"> | 
|---|
|  |  |  | <view class="desc">数量:</view> | 
|---|
|  |  |  | <view class="left-item">{{item.anfme}}</view> | 
|---|
|  |  |  | 
|---|
|  |  |  | style="background-color: #f7f7f7;padding: 0;color: #d5d5d5;"> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <!-- <view class="popup-item"> | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | <!-- <view class="popup-item"> | 
|---|
|  |  |  | <view class="popup-item-left">重量:</view> | 
|---|
|  |  |  | <view class="popup-item-right"><input type="text" v-model="weight"></view> | 
|---|
|  |  |  | </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" /> | 
|---|
|  |  |  | <uni-number-box :value="count" :step='1' :max="9999999" color="#747474" @change="changeValue" /> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="btn"> | 
|---|
|  |  |  | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | baseUrl: '', | 
|---|
|  |  |  | token: '', | 
|---|
|  |  |  | storeId: 0, | 
|---|
|  |  |  | store: '', | 
|---|
|  |  |  | barcode: '', | 
|---|
|  |  |  | dataList: [], | 
|---|
|  |  |  | count: 0, | 
|---|
|  |  |  | 
|---|
|  |  |  | matFocus: false, | 
|---|
|  |  |  | matData: '', | 
|---|
|  |  |  | removeNum: 0, | 
|---|
|  |  |  | ck1: false, | 
|---|
|  |  |  | ck2: true, | 
|---|
|  |  |  | fullPlt: 'N', | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | onLoad() { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.dataList = uni.getStorageSync('pakinDataList') | 
|---|
|  |  |  | if (this.dataList === '') { | 
|---|
|  |  |  | this.dataList = [] | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | onShow() { | 
|---|
|  |  |  | this.baseUrl = uni.getStorageSync('baseUrl'); | 
|---|
|  |  |  | this.token = uni.getStorageSync('token'); | 
|---|
|  |  |  | this.storeId = uni.getStorageSync('store') | 
|---|
|  |  |  | if (this.storeId == 1) { | 
|---|
|  |  |  | this.store = '宁波仓' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (this.storeId == 2) { | 
|---|
|  |  |  | this.store = '新昌仓' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | back() { uni.navigateBack({}) }, | 
|---|
|  |  |  | // 是否满板 | 
|---|
|  |  |  | isFullPlt() { | 
|---|
|  |  |  | var temp = this.ck1 | 
|---|
|  |  |  | this.ck1 = this.ck2 | 
|---|
|  |  |  | this.ck2 = temp | 
|---|
|  |  |  | if (this.ck1) { | 
|---|
|  |  |  | this.fullPlt = 'Y' | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.fullPlt = 'N' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | clearMatnr() { | 
|---|
|  |  |  | // this.matnr = '' | 
|---|
|  |  |  | this.focuss() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | messageToggle(type) { | 
|---|
|  |  |  | this.msgType1 = type | 
|---|
|  |  |  | this.$refs.message.open() | 
|---|
|  |  |  | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | var len = this.barcode.length | 
|---|
|  |  |  | if (len != 8) { | 
|---|
|  |  |  | uni.showToast({ | 
|---|
|  |  |  | title: '托盘码有误请重试', | 
|---|
|  |  |  | icon: "none", | 
|---|
|  |  |  | position: 'top' | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | uni.showToast({ title: '托盘码有误请重试', icon: "none", position: 'top' }); | 
|---|
|  |  |  | this.barcodeFocuss() | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 商品光标清空重置 | 
|---|
|  |  |  | focuss() { | 
|---|
|  |  |  | this.focus = false; | 
|---|
|  |  |  | this.matFocus = false; | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | this.matnr = ''; | 
|---|
|  |  |  | this.matFocus = true; | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } else if (res.code == 403) { | 
|---|
|  |  |  | uni.showToast({ | 
|---|
|  |  |  | title: res.msg, | 
|---|
|  |  |  | icon: "none", | 
|---|
|  |  |  | position: 'top' | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } 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: res.msg, | 
|---|
|  |  |  | icon: "none", | 
|---|
|  |  |  | position: 'top' | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | uni.showToast({ title: result.msg, icon: "none", position: 'top' }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if (add) { | 
|---|
|  |  |  | this.dataList.unshift(mat) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | uni.setStorageSync('pakinDataList', this.dataList); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 修改批号 | 
|---|
|  |  |  | revise(item, i) { | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 确认移除 | 
|---|
|  |  |  | removeConfirm() { | 
|---|
|  |  |  | this.messageText = "移除成功" | 
|---|
|  |  |  | this.messageToggle('success') | 
|---|
|  |  |  | this.dataList.splice(this.removeNum, 1) | 
|---|
|  |  |  | uni.showToast({ title: '移除成功', icon: "error", position: 'top' }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 取消移除 | 
|---|
|  |  |  | removeClose() { | 
|---|
|  |  |  | 
|---|
|  |  |  | this.dataList[this.rowNum].batch = this.batch | 
|---|
|  |  |  | this.dataList[this.rowNum].weight = this.weight | 
|---|
|  |  |  | this.matnr = '' | 
|---|
|  |  |  | this.messageText = "修改成功" | 
|---|
|  |  |  | this.messageToggle('success') | 
|---|
|  |  |  | uni.showToast({ title: '移除成功', icon: "success", position: 'top' }); | 
|---|
|  |  |  | this.$refs.revise.close() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | reviseClose() { | 
|---|
|  |  |  | 
|---|
|  |  |  | uni.vibrateShort(); | 
|---|
|  |  |  | let that = this; | 
|---|
|  |  |  | if (that.barcode === '') { | 
|---|
|  |  |  | this.messageText = "请扫描托盘条码" | 
|---|
|  |  |  | this.messageToggle('error') | 
|---|
|  |  |  | uni.showToast({ title: '请扫描托盘条码', icon: "error", position: 'top' }); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (that.dataList.length === 0) { | 
|---|
|  |  |  | this.messageText = "请添加商品列表" | 
|---|
|  |  |  | this.messageToggle('error') | 
|---|
|  |  |  | uni.showToast({ title: '请添加商品列表', icon: "error", position: 'top' }); | 
|---|
|  |  |  | 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') | 
|---|
|  |  |  | uni.showToast({ title: that.dataList[i].matnr + '组托数量不能为0', icon: "error", position: 'top' }); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | uni.request({ | 
|---|
|  |  |  | url: that.baseUrl + '/mobile/comb/auth', | 
|---|
|  |  |  | data: JSON.stringify({ | 
|---|
|  |  |  | owner: that.store, | 
|---|
|  |  |  | fullPlt: that.fullPlt, | 
|---|
|  |  |  | barcode: that.barcode, | 
|---|
|  |  |  | combMats: that.dataList | 
|---|
|  |  |  | }), | 
|---|
|  |  |  | 
|---|
|  |  |  | that.resst(); | 
|---|
|  |  |  | that.messageText = "组托成功" | 
|---|
|  |  |  | that.messageToggle('success') | 
|---|
|  |  |  | const innerAudioContext = uni.createInnerAudioContext(); | 
|---|
|  |  |  | innerAudioContext.src = '/static/music/pakinOk.mp3'; | 
|---|
|  |  |  | innerAudioContext.play() | 
|---|
|  |  |  | that.dataList = [] | 
|---|
|  |  |  | uni.setStorageSync('pakinDataList', that.dataList); | 
|---|
|  |  |  | } else if (res.code == 403) { | 
|---|
|  |  |  | that.messageText = res.msg | 
|---|
|  |  |  | that.messageToggle('error') | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }); | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | uni.reLaunch({ | 
|---|
|  |  |  | url: '../login/login' | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | uni.reLaunch({ url: '../login/login' }); | 
|---|
|  |  |  | }, 1000); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | that.messageText = res.msg | 
|---|
|  |  |  | that.messageToggle('error') | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | 
|---|
|  |  |  | <style> | 
|---|
|  |  |  | @import url('../../static/css/wms.css/wms.css'); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .list:first-child { | 
|---|
|  |  |  | margin-top: 320rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .code { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | position: fixed; | 
|---|
|  |  |  | min-height: 200rpx; | 
|---|
|  |  |  | min-height: 210rpx; | 
|---|
|  |  |  | background-color: #FFF; | 
|---|
|  |  |  | z-index: 10; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | .item { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | height: 100rpx; | 
|---|
|  |  |  | height: 70rpx; | 
|---|
|  |  |  | margin-left: 20rpx; | 
|---|
|  |  |  | border-bottom: 1px solid #DCDFE6; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | z-index: 9; | 
|---|
|  |  |  | /* border-top: 1px solid #DCDFE6; */ | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | box-shadow: 0px 0px 30px 0px rgba(0, 0, 0, 0.5); | 
|---|
|  |  |  | box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|