Merge branch 'phyzasrs' of http://47.97.1.152:5880/r/wms_app into phyzasrs
| | |
| | | "name" : "中扬WMS", |
| | | "appid" : "__UNI__DA5854D", |
| | | "description" : "", |
| | | "versionName" : "20240428A", |
| | | "versionCode" : 103, |
| | | "versionName" : "20240514A", |
| | | "versionCode" : 106, |
| | | "transformPx" : false, |
| | | /* 5+App特有相关 */ |
| | | "app-plus" : { |
| | |
| | | "enablePullDownRefresh" : false |
| | | } |
| | | } |
| | | ,{ |
| | | "path" : "pages/phyz/bcp/bcpDbList", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "调拨库位", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | } |
| | | ,{ |
| | | "path" : "pages/phyz/orderOut/bcpOrderOutSelect", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "半成品出库单", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | } |
| | | ], |
| | | "globalStyle": { |
| | | "navigationBarTextStyle": "black", |
| | |
| | | }, |
| | | { |
| | | title: '半成品入库单', |
| | | name: 'pakin', |
| | | name: 'bcpOrder', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/phyz/bcp/bcpOrder` |
| | | }, |
| | | { |
| | | title: '半成品调拨单', |
| | | name: 'pakin', |
| | | name: 'bcpDbOrder', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/phyz/order/purchaseOrder` |
| | | url: `/phyz/bcp/bcpDbOrder` |
| | | }, |
| | | { |
| | | title: '半成品出库单', |
| | | name: 'bcpOutOrder', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/phyz/orderOut/bcpOrderOutSelect` |
| | | }, |
| | | |
| | | ], |
New file |
| | |
| | | <template> |
| | | <view> |
| | | <view class="station station-wrk" v-if="station"> |
| | | <view class="mt-flex"> |
| | | <view class="station-title" style="flex: 4;">{{station.threeCode}}</view> |
| | | <view class="station-title" style="flex: 1;"> |
| | | <button size="mini" @click="allChecked()">{{allCheckBtnTitle}}</button> |
| | | </view> |
| | | </view> |
| | | <view>调拨单号:{{station.orderNo}}</view> |
| | | <view>物料编号:{{station.matnr}}</view> |
| | | <view style="width: 100%;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;">物料名称:{{station.maktx}}</view> |
| | | <view style="display: flex;"> |
| | | <view style="flex: 2;">调拨数量:{{station.anfme}}</view> |
| | | <view style="flex: 3;">库存数量:{{station.stock}}</view> |
| | | </view> |
| | | <view style="display: flex;"> |
| | | <view style="flex: 2;">已调拨数量:{{station.qty}}</view> |
| | | <view style="flex: 3;">当前选择调拨数量:{{station.count ? station.count : 0}}</view> |
| | | </view> |
| | | </view> |
| | | <!-- 垫高 --> |
| | | <view style="height: 400rpx;text-align: center;color: #b9b9b9;"> |
| | | </view> |
| | | <view class="list list-font-color" :class="orderDetl.color" v-for="(orderDetl,index) in dataList" :key="index"> |
| | | <view class="list-left" style="display: flex;flex-direction: column;"> |
| | | <!-- 上 --> |
| | | <view> |
| | | <view class="detl-locNo">{{orderDetl.locNo}}</view> |
| | | <view class="detl-locNo">货架码:{{orderDetl.suppCode}}</view> |
| | | </view> |
| | | <!-- 中 --> |
| | | <view style="display: flex;"> |
| | | <view style="flex: 1;"> |
| | | <view>库位状态:{{orderDetl.locSts$}}</view> |
| | | <view>库存数量:{{orderDetl.anfme}}</view> |
| | | </view> |
| | | </view> |
| | | <!-- 下 --> |
| | | </view> |
| | | <view class="list-right" @click="checkboxChange(orderDetl)"> |
| | | <label > |
| | | <checkbox :value="orderDetl.orderNo" :checked="orderDetl.checked" style="transform:scale(0.7)" /><text></text> |
| | | </label> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 垫高 --> |
| | | <view style="height: 160rpx;text-align: center;color: #b9b9b9;"> |
| | | - 已经到底了 - |
| | | </view> |
| | | <!-- 选择楼层弹窗 --> |
| | | <view> |
| | | <uni-popup ref="filter" type="dialog"> |
| | | <view class="filter-popup"> |
| | | <!-- 标题 --> |
| | | <view class="title">调拨楼层</view> |
| | | <view class="popup-item" style="width: 100%;display: flex;justify-content: center;"> |
| | | <view style="margin-top: 50rpx;width: 60%;"> |
| | | <uni-combox :candidates="floorList" placeholder="请选择目标楼层" v-model="floor"></uni-combox> |
| | | </view> |
| | | </view> |
| | | <view class="btn filter-btn"> |
| | | <view class="btn-right" @click="filterConfirm()">开始调拨</view> |
| | | </view> |
| | | </view> |
| | | </uni-popup> |
| | | </view> |
| | | <!-- 底部操作按钮 --> |
| | | <view class="buttom"> |
| | | <button size="mini" @click="isAuto('unAuto')">手动</button> |
| | | <button size="mini" type="primary" @click="isAuto('auto')">自动</button> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | baseUrl: '', |
| | | token: '', |
| | | dataList: [], |
| | | dbList: [], |
| | | count: 0, |
| | | containerType: '', |
| | | isOpen: true, |
| | | option: '', |
| | | selects: [], |
| | | orderId: '', |
| | | station: '', |
| | | allCheck: false, |
| | | allCheckBtnTitle: '全选', |
| | | floorList: ['2楼','3楼'], |
| | | floor: '', |
| | | moveType: '' |
| | | } |
| | | }, |
| | | 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) { |
| | | console.log(data.item); |
| | | data.item['count'] = 0 |
| | | _this.station = data.item |
| | | _this.orderId = data.item.id |
| | | _this.getLocDetl(data.item.orderNo,data.item.threeCode,data.item.matnr,data.item.id) |
| | | }) |
| | | }, |
| | | methods: { |
| | | getLocDetl(orderNo,threeCode,matnr,id) { |
| | | let _this = this |
| | | uni.request({ |
| | | url: `${_this.baseUrl}/agvMobile/query/locDetl/v1`, |
| | | header: { 'token': uni.getStorageSync('token') }, |
| | | data: { |
| | | orderNo: orderNo, |
| | | threeCode: threeCode , |
| | | matnr: matnr, |
| | | floor: "F1" |
| | | }, |
| | | method: 'POST', |
| | | success(res) { |
| | | res = res.data |
| | | console.log(res); |
| | | if (res.code === 200) { |
| | | for (let k of res.data) { |
| | | if (k.locSts == "F") { |
| | | k['color'] = 'order-sts-start' |
| | | } else if (k.locSts != "F") { |
| | | k['color'] = 'order-sts-working' |
| | | } else { |
| | | k['color'] = 'order-sts-end' |
| | | } |
| | | k['id'] = id |
| | | } |
| | | _this.dataList = res.data |
| | | } 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' }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | pakoutPrive(item) { |
| | | let _this = this |
| | | console.log(item); |
| | | if (item.locSts != 'F') { |
| | | uni.showToast({ title: '当前库位不是在库状态!', icon: "error", position: 'top' }) |
| | | return |
| | | } |
| | | uni.navigateTo({ |
| | | url: "./orderCheck", |
| | | success: function(res) { |
| | | // 通过eventChannel向被打开页面传送数据 向另外一个页面传递值的 |
| | | res.eventChannel.emit('mat', { |
| | | mat: item, |
| | | }) |
| | | }, |
| | | events: { |
| | | // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据 另外一个页面传过来的 |
| | | acceptDataFromOpenedPage: function(data) { |
| | | // _this.matnr = data.data |
| | | }, |
| | | }, |
| | | }); |
| | | }, |
| | | pakout(item) { |
| | | let _this = this |
| | | let items = [item] |
| | | uni.request({ |
| | | url: `${_this.baseUrl}/out/pakout/auth`, |
| | | header: { 'token': uni.getStorageSync('token') }, |
| | | data: items, |
| | | method: 'POST', |
| | | success(res) { |
| | | res = res.data |
| | | console.log(res); |
| | | 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' }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | // 开启 / 关闭下拉框 |
| | | toggleDropdown() { |
| | | this.isOpen = !this.isOpen |
| | | }, |
| | | // 选择货架类型 |
| | | selected(option) { |
| | | this.containerType = option |
| | | }, |
| | | checkboxChange(e) { |
| | | console.log(e); |
| | | let items = this.dataList, |
| | | values = e.orderNo; |
| | | if (e.checked) { |
| | | this.$set(e,'checked',false) |
| | | } else { |
| | | this.$set(e,'checked',true) |
| | | } |
| | | let num = 0 |
| | | for (let k of items) { |
| | | if (k.checked) { |
| | | num++ |
| | | } |
| | | if (num == items.length) { |
| | | this.allCheck = true |
| | | this.allCheckBtnTitle = '取消' |
| | | } else { |
| | | this.allCheck = false |
| | | this.allCheckBtnTitle = '全选' |
| | | } |
| | | } |
| | | this.upDateCount() |
| | | }, |
| | | upDateCount() { |
| | | let num = 0 |
| | | for (let k of this.dataList) { |
| | | if (k.checked) { |
| | | num = num + k.anfme |
| | | } |
| | | } |
| | | this.station.count = num |
| | | }, |
| | | allChecked() { |
| | | if (this.allCheck) { |
| | | this.allCheck = false |
| | | this.allCheckBtnTitle = '全选' |
| | | } else { |
| | | this.allCheck = true |
| | | this.allCheckBtnTitle = '取消' |
| | | } |
| | | for (let item of this.dataList) { |
| | | if (this.allCheck) { |
| | | if (item.anfme == item.qty) { |
| | | this.$set(item,'checked',false) |
| | | } else { |
| | | this.$set(item,'checked',true) |
| | | } |
| | | } else { |
| | | this.$set(item,'checked',false) |
| | | } |
| | | } |
| | | this.upDateCount() |
| | | }, |
| | | isAuto(type) { |
| | | this.dbList = [] |
| | | for (let k of this.dataList) { |
| | | if (k.checked) { |
| | | this.dbList.push(k) |
| | | } |
| | | } |
| | | if (this.dbList.length == 0) { |
| | | uni.showToast({ title: '请选择调拨库位', icon: "error", position: 'top' }) |
| | | return |
| | | } |
| | | this.moveType = type |
| | | this.$refs.filter.open('bottom') |
| | | }, |
| | | filterConfirm() { |
| | | console.log(this.dbList); |
| | | if (this.floor == '') { |
| | | uni.showToast({ title: '请选择调拨楼层', icon: "error", position: 'top' }) |
| | | return |
| | | } |
| | | let _this = this |
| | | let param = {floor: this.floor,dbList: this.dbList,moveType: this.moveType} |
| | | uni.request({ |
| | | url: `${_this.baseUrl}/agvMobile/agv/v1/locMove`, |
| | | data: param, |
| | | method: 'POST', |
| | | success(res) { |
| | | console.log(res); |
| | | res = res.data |
| | | if (res.code === 200) { |
| | | uni.navigateBack({ |
| | | delta: 1 |
| | | }); |
| | | } |
| | | } |
| | | }) |
| | | this.$refs.filter.close('bottom') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | @import url('../../../static/css/common/order.css'); |
| | | |
| | | .station { |
| | | position: fixed; |
| | | top: 85rpx; |
| | | left: 0; |
| | | right: 0; |
| | | font-size: 18px; |
| | | padding: 24rpx; |
| | | z-index: 999; |
| | | } |
| | | /* #ifdef APP-PLUS */ |
| | | .station { |
| | | position: fixed; |
| | | top: 0rpx; |
| | | left: 0; |
| | | right: 0; |
| | | font-size: 18px; |
| | | padding: 24rpx; |
| | | z-index: 999; |
| | | } |
| | | /* #endif */ |
| | | .station-title { |
| | | font-size: 32px; |
| | | font-weight: bold; |
| | | /* padding: 2rpx 0; */ |
| | | } |
| | | .station-barcode { |
| | | font-size: 24px; |
| | | font-weight: bold; |
| | | padding: 24rpx 0; |
| | | } |
| | | .station-wrk { |
| | | background-color: #ff7356; |
| | | color: #fff; |
| | | } |
| | | .station-nowrk { |
| | | background-color: #3eb689; |
| | | color: #fff; |
| | | } |
| | | .list-font-color { |
| | | color: #fff; |
| | | /* background-color: #33bb44; */ |
| | | } |
| | | .order-sts-start { |
| | | background-color: #3eb689; |
| | | } |
| | | .order-sts-working { |
| | | background-color: #ff9d46; |
| | | } |
| | | .order-sts-end { |
| | | background-color: #ff7356; |
| | | } |
| | | .detl-threeCode { |
| | | font-size: 28px; |
| | | font-weight: bold; |
| | | } |
| | | .detl-locNo { |
| | | font-size: 20px; |
| | | font-weight: bold; |
| | | } |
| | | .out-btn { |
| | | background-color: #3e82ff; |
| | | height: 120rpx; |
| | | width: 120rpx; |
| | | line-height: 120rpx; |
| | | text-align: center; |
| | | border-radius: 50%; |
| | | margin-left: 20rpx; |
| | | margin-right: 20rpx; |
| | | } |
| | | .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 { |
| | | position: relative; |
| | | display: flex; |
| | | align-items: center; |
| | | font-size: 14px; |
| | | } |
| | | .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; |
| | | } |
| | | |
| | | .dropdown { |
| | | position: relative; |
| | | display: flex; |
| | | width: 93%; |
| | | align-items: center; |
| | | padding: 0rpx 20rpx; |
| | | } |
| | | .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 { |
| | | padding: 12rpx; |
| | | line-height: 1.2; |
| | | font-size: 22px; |
| | | color: #3a3a3a; |
| | | } |
| | | .filter-popup { |
| | | width: 100%; |
| | | height: 40vh; |
| | | 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; |
| | | } |
| | | |
| | | |
| | | </style> |
| | |
| | | <view>编号:{{orderDetl.matnr}}</view> |
| | | <view>名称:{{orderDetl.maktx}}</view> |
| | | <view>类型:{{orderDetl.brand}}</view> |
| | | <view>总数量:{{orderDetl.anfme}}</view> |
| | | <view>已入数量:{{orderDetl.qty}}</view> |
| | | <view>调拨总量:{{orderDetl.anfme}}</view> |
| | | <view>库存数量:{{orderDetl.stock}}</view> |
| | | <view>已完成数量:{{orderDetl.qty}}</view> |
| | | </view> |
| | | <view class="list-right" @click="addItem(index)"> |
| | | <uni-icons type="folder-add" size="25" color="#fff"></uni-icons> |
| | | <view class="list-right" @click="goToLocDetl(orderDetl)"> |
| | | <uni-icons type="right" 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: 340rpx;text-align: center;color: #b9b9b9;"> |
| | | - 已经到底了 - |
| | |
| | | onLoad() { |
| | | this.baseUrl = uni.getStorageSync('baseUrl'); |
| | | this.token = uni.getStorageSync('token'); |
| | | this.searchValue = uni.getStorageSync('threeCode'); |
| | | this.searchValue = uni.getStorageSync('bcpDbThreeCode'); |
| | | this.getOrderDetlList(this.searchValue,10) |
| | | console.log("onLoad"); |
| | | }, |
| | |
| | | _this.data.three_code = threeCode |
| | | _this.data.limit = limit |
| | | uni.request({ |
| | | url: `${_this.baseUrl}/order/bcp/detls/pakin/page/auth`, |
| | | url: `${_this.baseUrl}/order/bcpDb/detls/pakin/page/auth`, |
| | | header: {'token': uni.getStorageSync('token')}, |
| | | data: _this.data, |
| | | method: 'GET', |
| | |
| | | searchValueInput2() { |
| | | this.dataList = [] |
| | | this.data.curr = 1 |
| | | uni.setStorageSync('threeCode', this.searchValue); |
| | | uni.setStorageSync('bcpDbThreeCode', this.searchValue); |
| | | if (this.searchValue.length == 0) { |
| | | this.getOrderDetlList(this.searchValue,10) |
| | | } else { |
| | |
| | | console.log(data); |
| | | if (data.data == 1) { |
| | | _this.orderCarList = [] |
| | | _this.getOrderDetlList(uni.getStorageSync('threeCode'),10) |
| | | _this.getOrderDetlList(uni.getStorageSync('bcpDbThreeCode'),10) |
| | | } |
| | | } |
| | | } |
| | |
| | | this.data.brand = '' |
| | | this.getOrderDetlList(this.searchValue,10) |
| | | this.$refs.filter.close() |
| | | } |
| | | }, |
| | | goToLocDetl(item) { |
| | | let _this = this |
| | | uni.navigateTo({ |
| | | url: './bcpDbList', |
| | | success(res) { |
| | | res.eventChannel.emit('item', { |
| | | item: item |
| | | }) |
| | | }, |
| | | events: { |
| | | acceptDataFromOpenedPage: function(data) { |
| | | _this.getOrderDetlList(this.searchValue1,10) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | } |
| | | } |
| | |
| | | onLoad() { |
| | | this.baseUrl = uni.getStorageSync('baseUrl'); |
| | | this.token = uni.getStorageSync('token'); |
| | | this.searchValue = uni.getStorageSync('threeCode'); |
| | | this.searchValue = uni.getStorageSync('bcpThreeCode'); |
| | | this.getOrderDetlList(this.searchValue,10) |
| | | console.log("onLoad"); |
| | | }, |
| | |
| | | searchValueInput2() { |
| | | this.dataList = [] |
| | | this.data.curr = 1 |
| | | uni.setStorageSync('threeCode', this.searchValue); |
| | | uni.setStorageSync('bcpThreeCode', this.searchValue); |
| | | if (this.searchValue.length == 0) { |
| | | this.getOrderDetlList(this.searchValue,10) |
| | | } else { |
| | |
| | | console.log(data); |
| | | if (data.data == 1) { |
| | | _this.orderCarList = [] |
| | | _this.getOrderDetlList(uni.getStorageSync('threeCode'),10) |
| | | _this.getOrderDetlList(uni.getStorageSync('bcpThreeCode'),10) |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <template> |
| | | <view> |
| | | <view class="code"> |
| | | <uni-search-bar v-model="searchValue1" |
| | | maxlength="500" ancel="cancel" @confirm="searchValueInput1()" @clear="clear" placeholder="输入 / 扫描 订单号"> |
| | | </uni-search-bar> |
| | | <view class="code-title"> |
| | | <view></view> |
| | | <view style="width: 100%;text-align: center;margin: 16rpx 0;">{{searchValue1}} 总数量:- {{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 class="detl-threeCode">{{orderDetl.threeCode}}</view> |
| | | <view>主单号:{{orderDetl.orderNo}}</view> |
| | | <view>编号:{{orderDetl.matnr}}</view> |
| | | <view>名称:{{orderDetl.maktx}}</view> |
| | | <view>类型:{{orderDetl.brand}}</view> |
| | | <view>订单数量:{{orderDetl.anfme}}</view> |
| | | <view>库存数量:{{orderDetl.stock}}</view> |
| | | <view>已出数量:{{orderDetl.qty}}</view> |
| | | </view> |
| | | <view class="list-right" @click="goToLocDetl(orderDetl)"> |
| | | <uni-icons type="right" size="25" color="#fff"></uni-icons> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 垫高 --> |
| | | <view style="height: 340rpx;text-align: center;color: #b9b9b9;"> |
| | | - 已经到底了 - |
| | | </view> |
| | | |
| | | <!-- <view class="buttom"> |
| | | <view style="width: 150rpx;text-align: center;padding-left: 12rpx;"> |
| | | 名称 |
| | | </view> |
| | | <uni-search-bar v-model="searchValue2" style="width: 100%;" |
| | | maxlength="500" ancel="cancel" @confirm="searchValueInput2()" @clear="clear2" placeholder="输入 / 扫描 订单号"> |
| | | </uni-search-bar> |
| | | </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="searchValue1"> |
| | | </view> |
| | | </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: '', |
| | | searchValue1: '', |
| | | searchValue2: '', |
| | | orderNo: '', |
| | | matnr: '', |
| | | maktx: '', |
| | | brand: '', |
| | | total: '', |
| | | dataList: [], |
| | | orderCarList: [], |
| | | data: { |
| | | curr: 1, |
| | | limit: 100, |
| | | three_code: '', |
| | | matnr: '', |
| | | maktx: '', |
| | | order_no: '', |
| | | brand: '' |
| | | }, |
| | | } |
| | | }, |
| | | onReachBottom() { |
| | | this.status = 'more'; |
| | | this.getOrderDetlList(this.searchValue1,10); |
| | | }, |
| | | onShow() { |
| | | this.baseUrl = uni.getStorageSync('baseUrl'); |
| | | this.token = uni.getStorageSync('token'); |
| | | this.searchValue1 = uni.getStorageSync('threeCodeOut1'); |
| | | this.searchValue2 = uni.getStorageSync('threeCodeOut2'); |
| | | this.getOrderDetlList(this.searchValue1,10) |
| | | }, |
| | | methods: { |
| | | getOrderDetlList(threeCode,limit) { |
| | | uni.showLoading({}) |
| | | let _this = this |
| | | _this.mask = true |
| | | _this.data.three_code = threeCode |
| | | _this.data.limit = limit |
| | | uni.request({ |
| | | url: `${_this.baseUrl}/orderDetl/pakout/list/authV4`, |
| | | 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' }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | searchValueInput1() { |
| | | this.dataList = [] |
| | | this.data.curr = 1 |
| | | uni.setStorageSync('threeCodeOut1', this.searchValue1); |
| | | uni.setStorageSync('threeCodeOut2', this.searchValue2); |
| | | if (this.searchValue1.length == 0) { |
| | | this.getOrderDetlList(this.searchValue1,10) |
| | | } else { |
| | | this.getOrderDetlList(this.searchValue1,10) |
| | | } |
| | | |
| | | }, |
| | | searchValueInput2() { |
| | | uni.setStorageSync('threeCodeOut1', this.searchValue1); |
| | | uni.setStorageSync('threeCodeOut2', this.searchValue2); |
| | | if (this.searchValue1.length == 0) { |
| | | this.getOrderDetlList(this.searchValue1,10) |
| | | } else { |
| | | this.getOrderDetlList(this.searchValue1,10) |
| | | } |
| | | }, |
| | | clear() { |
| | | this.dataList = [] |
| | | this.data.curr = 1 |
| | | setTimeout(()=> { |
| | | this.getOrderDetlList(this.searchValue,10) |
| | | },300) |
| | | }, |
| | | clear2() { |
| | | setTimeout(()=> { |
| | | this.searchValue2 = '' |
| | | this.getOrderDetlList(this.searchValue1,10) |
| | | },300) |
| | | }, |
| | | goToLocDetl(item) { |
| | | let _this = this |
| | | uni.navigateTo({ |
| | | url: './orderList', |
| | | success(res) { |
| | | res.eventChannel.emit('item', { |
| | | item: item |
| | | }) |
| | | }, |
| | | events: { |
| | | acceptDataFromOpenedPage: function(data) { |
| | | _this.getOrderDetlList(this.searchValue1,10) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | // 筛选 |
| | | filter() { |
| | | this.$refs.filter.open('bottom') |
| | | }, |
| | | filterConfirm() { |
| | | this.dataList = [] |
| | | this.data.curr = 1 |
| | | this.data.maktx = this.maktx |
| | | this.data.matnr = this.matnr |
| | | this.data.order_no = this.order_no |
| | | this.data.brand = this.brand |
| | | this.getOrderDetlList(this.searchValue1,10) |
| | | this.$refs.filter.close() |
| | | }, |
| | | filterClose() { |
| | | this.dataList = [] |
| | | this.data.curr = 1 |
| | | this.data.maktx = '' |
| | | this.data.matnr = '' |
| | | this.data.order_no = '' |
| | | this.data.brand = '' |
| | | this.getOrderDetlList(this.searchValue1,10) |
| | | this.$refs.filter.close() |
| | | } |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | @import url('../../../static/css/common/order.css'); |
| | | .list-font-color { |
| | | color: #fff; |
| | | /* background-color: #33bb44; */ |
| | | } |
| | | .order-sts-start { |
| | | background-color: #3eb689; |
| | | } |
| | | .order-sts-working { |
| | | background-color: #ff9d46; |
| | | } |
| | | .order-sts-end { |
| | | background-color: #ff7356; |
| | | } |
| | | .detl-threeCode { |
| | | font-size: 28px; |
| | | font-weight: bold; |
| | | } |
| | | |
| | | .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; |
| | | } |
| | | .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; |
| | | |
| | | } |
| | | .item-btn { |
| | | width: 100%; |
| | | height: 80rpx; |
| | | line-height: 80rpx; |
| | | background-color: #c9cdd5; |
| | | text-align: center; |
| | | } |
| | | .item-btn:checked { |
| | | background-color: #606266; |
| | | } |
| | | .filter-btn { |
| | | position: absolute; |
| | | left: 0; |
| | | bottom: 0; |
| | | width: 100%; |
| | | background-color: #FFF; |
| | | } |
| | | .item-cl { |
| | | display: flex;align-items: center; |
| | | } |
| | | .item-cl input { |
| | | border-bottom: 1px solid #b9b9b9; |
| | | } |
| | | </style> |
| | |
| | | <view>名称:{{orderDetl.maktx}}</view> |
| | | <view>库存数量:{{orderDetl.anfme}}</view> |
| | | <view>订单可出数量:{{orderDetl.stock}}</view> |
| | | <view>已拣数量:{{orderDetl.pickedAnfme}}</view> |
| | | <view>拣料数量:{{orderDetl.count}}</view> |
| | | </view> |
| | | <view class="list-right" @click="addItem(index)"> |
| | |
| | | count: 0, |
| | | maxCount: 0, |
| | | wrkNo: '', |
| | | locNo: '' |
| | | locNo: '', |
| | | pickedAnfme: 0 |
| | | } |
| | | }, |
| | | onShow() { |
| | |
| | | res = res.data |
| | | console.log(res); |
| | | if (res.code === 200) { |
| | | _this.chosed(_this.pickList,res.data.records) |
| | | return |
| | | let enbleList = [], isfl; |
| | | for (let k of res.data.records) { |
| | | isfl = false; |
| | |
| | | }) |
| | | }, |
| | | // 已选拣料列表 |
| | | orderCar() { |
| | | |
| | | chosed(wrkDetls,locDetls) { |
| | | let isfl = false, enbleList = [] |
| | | for (let locDetl of locDetls) { |
| | | locDetl['color'] = 'order-sts-start' |
| | | locDetl['pickedAnfme'] = 0 |
| | | locDetl['count'] = 0 |
| | | for (let wrkDetl of wrkDetls) { |
| | | if (wrkDetl.threeCode == locDetl.threeCode && wrkDetl.matnr == locDetl.matnr) { |
| | | locDetl['pickedAnfme'] = wrkDetl.anfme |
| | | if (locDetl.stock == -1) { |
| | | locDetl.stock = 0 |
| | | } |
| | | if (wrkDetl.anfme < locDetl.anfme) { |
| | | locDetl['color'] = 'order-sts-working' |
| | | locDetl['pickedAnfme'] = wrkDetl.anfme |
| | | locDetl['count'] = 0 |
| | | } else { |
| | | locDetl['color'] = 'order-sts-end' |
| | | } |
| | | break |
| | | } |
| | | } |
| | | |
| | | } |
| | | this.dataList = locDetls |
| | | }, |
| | | // 添加入库商品至 待组托列表 |
| | | addItem(index) { |
| | |
| | | @import url('../../../static/css/common/order.css'); |
| | | |
| | | .station { |
| | | font-size: 18px; |
| | | padding: 24rpx; |
| | | font-size: 15px; |
| | | padding: 18rpx; |
| | | } |
| | | .station-title { |
| | | font-size: 32px; |
| | | font-size: 28px; |
| | | font-weight: bold; |
| | | padding: 24rpx 0; |
| | | padding: 18rpx 0; |
| | | } |
| | | .station-barcode { |
| | | font-size: 24px; |
| | |
| | | <template> |
| | | <view> |
| | | <view style="font-size: 14px;"> |
| | | <view class="code"> |
| | | <uni-search-bar :focus="searchValueFocus" v-model="searchValue" @input="searchValueInput()" |
| | | maxlength="500" ancel="cancel" @clear="clear" placeholder="输入 / 扫描 站点号"> |
| | |
| | | } |
| | | .list { |
| | | margin: 20rpx; |
| | | |
| | | font-size: 14px; |
| | | background-color: #fff; |
| | | border-radius: 20rpx; |
| | | border: 1px solid #eeeeee; |