pages.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/order/orderDetlListLoc.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/order/pickOrderList2.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/order/zlOrderPakin.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/pakin/WarehouseOutParallelBoard.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/pakin/pakin.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
pages.json
@@ -359,6 +359,15 @@ } } ,{ "path" : "pages/order/pickOrderList2", "style" : { "navigationBarTitleText": "关联订单", "enablePullDownRefresh": false } } ], "globalStyle": { "navigationBarTextStyle": "black", pages/order/orderDetlListLoc.vue
@@ -1,5 +1,19 @@ <template> <view> <view class="code"> <view style="display: flex;align-items: center;"> <view style="flex: 1;"> <uni-search-bar v-model="searchValue" maxlength="500" ancel="cancel" @confirm="getOrderNoList(locNo)" @clear="clear" placeholder="输入 / 扫描"> </uni-search-bar> </view> </view> <view class="code-title"> <view></view> <view style="width: 100%;text-align: center;margin: 16rpx 0;">总数量:- {{menuList.length}} -</view> </view> </view> <view class="card" v-for="item in menuList" @click="chose(item)"> <view class="item">库位号:{{item.locNo}}</view> <view class="item">物料编码:{{item.matnr}}</view> @@ -7,6 +21,7 @@ <!-- <view class="item">批  次:{{item.batch}}</view> --> <view class="item">明细数量:{{item.anfme}}</view> </view> <view style="height: 50rpx;"></view> </view> </template> @@ -17,7 +32,8 @@ baseUrl: '', token: '', menuList: [], orderNo: '' orderNo: '', searchValue: '' } }, onLoad() { @@ -37,15 +53,33 @@ }, methods: { clear() { this.searchValue = '' this.getOrderNoList(this.locNo) }, getOrderNoList(locNo) { let that = this uni.request({ url: this.baseUrl + '/locDetl/forlocNo/auth/v1', data: { locNo: that.locNo }, data: { locNo: that.locNo, matnr: that.searchValue }, header: { 'token': uni.getStorageSync('token') }, success(res) { res = res.data that.menuList = res.data that.menuList = [] if (res.code == 200) { that.menuList = res.data // uni.showToast({ title: res.msg, icon: "success", position: 'top' }) } 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' }) } } }) }, @@ -75,6 +109,13 @@ </script> <style> .code { background-color: #d9d9d9; z-index: 99; position: sticky; top: 0rpx; left: 0; } .card { margin: 20rpx; padding: 30rpx; pages/order/pickOrderList2.vue
New file @@ -0,0 +1,153 @@ <template> <view> <view class="code"> <view style="display: flex;align-items: center;"> <view style="width: 70rpx;padding-left: 20rpx;">{{searchType}}</view> <view style="flex: 1;margin-left: -8rpx;"> <uni-search-bar v-model="searchValue" maxlength="500" ancel="cancel" @confirm="getMatList()" @clear="clear" placeholder="输入 / 扫描"> </uni-search-bar> </view> </view> <view class="code-title"> <view></view> <view style="width: 100%;text-align: center;margin: 16rpx 0;">{{searchValue}} 总数量:- {{total}} -</view> </view> </view> <view class="order__list" v-for="(orderDetl,index) in dataList" :key="index"> <view class="order__list__left"> <view>No:{{index + 1}}</view> <view>订单号:{{orderDetl.orderNo}}</view> <view>料号:{{orderDetl.matnr}}</view> <view>批号:{{orderDetl.batch}}</view> <view>可用数量:{{orderDetl.count}}</view> </view> <view class="order__list__right" @click="addItem(orderDetl)"> <uni-icons type="folder-add" size="25" color="#fff"></uni-icons> </view> </view> <view style="height: 100rpx;width: 100%;text-align: center;line-height: 100rpx;">- 已经到底了 -</view> </view> </template> <script> export default { data() { return { baseUrl: '', token: '', storeId: 0, store: '', total: 0, searchType: '订单', searchValue: '', dataList: [], selectedList: [], matnr: '' } }, onShow() { let _this = this 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 = '新昌仓' } const eventChannel = this.getOpenerEventChannel(); eventChannel.on('item', function(data) { _this.matnr = data.item.matnr }) this.getMatList() }, methods: { back() { uni.navigateBack({}) }, set(e) { var ck = this.dataList[e].checked this.dataList[e].checked = ck ? false : true }, getMatList() { let that = this let searchParam = { orderNo: that.searchValue, matnr: that.matnr, } console.log(searchParam); uni.request({ url: that.baseUrl + '/mobile/outBound/mat/list', header: { 'token': uni.getStorageSync('token') }, data: searchParam, method: 'GET', success(res) { res = res.data; if (res.code === 200) { that.total = res.data.length const result1 = res.data.filter(obj1 => !that.selectedList.some(obj2 => obj1.matnr === obj2.matnr && obj1.orderNo === obj2.orderNo) ); that.dataList = result1 that.total = result1.length } else if (res.code == 403) { uni.showToast({ title: res.msg, icon: "error", position: 'center' }) setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000); } else { uni.showToast({ title: res.msg, icon: "error", position: 'center' }) } } }) }, addItem(mat) { this.getOpenerEventChannel().emit('sMat', {data: mat}); uni.navigateBack({ }) } } } </script> <style> @import url('../../static/css/wms.css/wms.css'); .code { background-color: #d9d9d9; z-index: 99; position: sticky; top: 0rpx; left: 0; } .code-title { display: flex; } .order__list { margin: 20rpx; font-size: 14px; background-color: #fff; border-radius: 20rpx; border: 1px solid #eeeeee; display: flex; position: relative; background-color: #3eb689; color: #FFF; } .order__list__left { flex: 1; padding: 20rpx; position: relative; } .order__list__right { width: 70rpx; border-left: 1px solid #eeeeee; display: flex; align-items: center; justify-content: center; } </style> pages/order/zlOrderPakin.vue
@@ -196,8 +196,8 @@ bomCode: '', bomCodeFocus: true, maxAn: 0, ck1: true, ck2: false, ck1: false, ck2: true, fullPlt: 'N', decrees_a: { locNo: '', pages/pakin/WarehouseOutParallelBoard.vue
@@ -2,71 +2,43 @@ <view> <view class="code"> <view class="item"> <view class="item" style="width: 50%;"> <view class="code-decs" style="width: 100%;">库位号:{{item.locNo}}</view> <view class="item" style="width: 100%;"> <view class="code-decs" style="width: 50%;">库位号: {{item.locNo}}</view> <view class="code-decs" style="width: 50%;">库存可出数量: {{item.anfme}}</view> </view> </view> <view class="item"> <view class="item" style="width: 90%;"> <view class="code-decs" style="width: 100%;">物料:{{item.matnr}}</view> <view class="code-decs" style="width: 70%;">物料: {{item.matnr}}</view> <button size="mini" type="primary" @click="getOrder">出库订单</button> </view> </view> <view class="item"> <view class="code-decs">订单号:</view> <input type="text" placeholder=" 扫码 / 输入" v-model="orderNo" :focus="barcodeFocus" @input="barcodeInput()"> </view> </view> <view class="mat-list-title"> <view style="width: 200rpx;"></view> <view style="-webkit-flex: 1;flex: 1;">商品列表</view> <view style="-webkit-flex: 1;flex: 1;">出库订单</view> <view style="width: 200rpx;"></view> </view> <scroll-view> <checkbox-group class="list" v-for="(item,i) in dataList" :key="i" @change="checkboxChange"> <!-- <view class="aside"> <checkbox :value="item.matnr" :checked="item.checked" @click="set(i)"/> </view> --> <view class="list-left" style="margin: 0;"> <view class="list-left-item"> <view class="desc">No:</view> <view class="left-item">{{i + 1}}</view> <view class="desc">No:{{i + 1}}</view> </view> <view class="list-left-item"> <view class="desc">订单号:</view> <view class="left-item"> <uni-tag :text="item.orderNo" type="primary"></uni-tag> </view> <view class="desc">订单号:{{item.orderNo}}</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 class="desc">料号:{{item.matnr}}</view> </view> <view class="list-left-item"> <view class="desc">名称:</view> <view class="left-item">{{item.maktx}}</view> <view class="desc">批号:{{item.batch}}</view> </view> <view class="list-left-item"> <view class="desc">规格:</view> <view class="left-item">{{item.specs}}</view> <view class="desc">可用数量:{{item.count}}</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 class="list-left-item" > <view class="desc">数量:{{item.anfme}}</view> </view> </view> <view class="list-right"> @@ -105,7 +77,7 @@ <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" <uni-number-box :value="count" :step='1' :max="mastCount" color="#747474" @change="changeValue" /> </view> </view> @@ -182,7 +154,9 @@ orderNoList: [], orderNo: '', item:'', locNo:'' locNo:'', mastCount: '', mastAnfme: 0 } }, onLoad() { @@ -190,7 +164,7 @@ // const eventChannel = this.$scope.eventChannel; // 兼容APP-NVUE const eventChannel = this.getOpenerEventChannel(); eventChannel.on('item', function(data) { // console.log(data.item); that.mastAnfme = data.item.anfme that.item = data.item }) @@ -201,6 +175,23 @@ this.getOrderNoList() }, methods: { getOrder() { let _this = this uni.navigateTo({ url: '../order/pickOrderList2', success(res) { res.eventChannel.emit('item', { item: _this.item }) }, events: { sMat: function(data) { data.data['anfme'] = data.data.useCount _this.dataList.push(data.data) } } }) }, set(e) { var ck = this.dataList[e].checked this.dataList[e].checked = ck ? false:true @@ -312,66 +303,6 @@ this.matFocus = true; }, 100); }, // 搜索物料 findMat() { let that = this var matnr = that.matnr.split(";") that.order = matnr[0] that.matnr = matnr[1] 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'] = '' result.data.batch = matnr[2] 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' }) } } }); }, checkMat(mat) { mat['orderNo'] = this.order var len = this.dataList.length @@ -420,28 +351,25 @@ comb() { uni.vibrateShort(); let that = this; if (that.orderNo === '') { 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; } var useAnfme = 0 for (let order of that.dataList) { useAnfme = useAnfme + order.anfme } if (useAnfme > that.mastAnfme) { this.messageText = "出库数量已超最大库存数量" this.messageToggle('error') return; } uni.request({ url: that.baseUrl + '/mobile/pda/WarehouseOut/v1', data: JSON.stringify({ locno: that.item.locNo, orderNo: that.dataList[0].orderNo, combMats: that.dataList }), method: 'POST', @@ -495,6 +423,7 @@ this.batch = this.dataList[i].batch this.weight = this.dataList[i].weight this.rowNum = i this.mastCount = this.dataList[i].anfme this.eject() }, eject(type) { @@ -560,7 +489,7 @@ } .list:first-child { margin-top: 360rpx; margin-top: 260rpx; } .list:last-child { @@ -578,7 +507,7 @@ .code { width: 100%; position: fixed; min-height: 200rpx; min-height: 140rpx; background-color: #FFF; z-index: 10; } @@ -619,7 +548,7 @@ width: 100%; background-color: white; position: fixed; margin-top: 200rpx; margin-top: 140rpx; z-index: 9; /* border-top: 1px solid #DCDFE6; */ text-align: center; pages/pakin/pakin.vue
@@ -189,8 +189,8 @@ matFocus: false, matData: '', removeNum: 0, ck1: true, ck2: false, ck1: false, ck2: true, fullPlt: 'N', } },