| | |
| | | } |
| | | }, |
| | | { |
| | | "path" : "pages/order/callEmptyTray", |
| | | "style" : |
| | | { |
| | | "navigationStyle": "custom" |
| | | } |
| | | }, |
| | | { |
| | | "path" : "pages/order/trayReturn", |
| | | "style" : |
| | | { |
| | | "navigationStyle": "custom" |
| | | } |
| | | }, |
| | | { |
| | | "path" : "pages/order/orderPickConfirm", |
| | | "style" : |
| | | { |
| | |
| | | store: '', |
| | | elements: [], |
| | | elements2: [ |
| | | { |
| | | title: '组托入库', |
| | | name: 'pakin', |
| | | color: 'cyan', |
| | | cuIcon: 'pullup', |
| | | url: '/pakin/pakin' |
| | | }, |
| | | // { |
| | | // title: '组托入库', |
| | | // name: 'pakin', |
| | | // color: 'cyan', |
| | | // cuIcon: 'pullup', |
| | | // url: '/pakin/pakin' |
| | | // }, |
| | | { |
| | | title: '订单组托', |
| | | name: 'orderComb', |
| | | color: 'olive', |
| | | cuIcon: 'pulldown', |
| | | url: '/order/orderComb' |
| | | }, |
| | | { |
| | | title: '呼叫空托', |
| | | name: 'callEmptyTray', |
| | | color: 'orange', |
| | | cuIcon: 'pullup', |
| | | url: '/order/callEmptyTray' |
| | | }, |
| | | { |
| | | title: '托盘回库', |
| | | name: 'trayReturn', |
| | | color: 'yellow', |
| | | cuIcon: 'pullup', |
| | | url: '/order/trayReturn' |
| | | }, |
| | | // { |
| | | // title: '平库组托', |
| | |
| | | // cuIcon: 'pullup', |
| | | // url: '/pakin/putOn' |
| | | // }, |
| | | { |
| | | title: '平库上架', |
| | | name: 'WarehouseIn', |
| | | color: 'purple', |
| | | cuIcon: 'text', |
| | | url: '/pakin/WarehouseIn' |
| | | }, |
| | | { |
| | | title: '平库下架', |
| | | name: 'orderPutOn', |
| | | color: 'yellow', |
| | | cuIcon: 'pullup', |
| | | url: '/warehouse/orderList' |
| | | }, |
| | | // { |
| | | // title: '平库上架', |
| | | // name: 'WarehouseIn', |
| | | // color: 'purple', |
| | | // cuIcon: 'text', |
| | | // url: '/pakin/WarehouseIn' |
| | | // }, |
| | | // { |
| | | // title: '平库下架', |
| | | // name: 'orderPutOn', |
| | | // color: 'yellow', |
| | | // cuIcon: 'pullup', |
| | | // url: '/warehouse/orderList' |
| | | // }, |
| | | // , |
| | | // { |
| | | // title: '并板入库', |
| New file |
| | |
| | | <template> |
| | | <view class="container"> |
| | | <uni-nav-bar left-icon="left" title="呼叫空料框出库" @clickLeft="back" :fixed="true" :border="false" /> |
| | | |
| | | <!-- 输入区 --> |
| | | <view class="code"> |
| | | <!-- 目标站点 --> |
| | | <view class="item full-item"> |
| | | <view class="code-decs">目标站点:</view> |
| | | <input type="text" placeholder="扫码 / 输入" v-model="staNo" class="full-input" /> |
| | | </view> |
| | | |
| | | <!-- 托盘类型 --> |
| | | <view class="item full-item"> |
| | | <view class="code-decs">托盘类型:</view> |
| | | <radio-group @change="onLocTypeChange" class="full-radio"> |
| | | <label class="radio"> |
| | | <radio value="1" :checked="locType === '1'" />窄 |
| | | </label> |
| | | <label class="radio"> |
| | | <radio value="2" :checked="locType === '2'" />宽 |
| | | </label> |
| | | </radio-group> |
| | | </view> |
| | | |
| | | <!-- 数量 --> |
| | | <view class="item full-item"> |
| | | <view class="code-decs">数量:</view> |
| | | <view class="count-box full-count"> |
| | | <button class="count-btn" @click="decreaseCount">-</button> |
| | | <input type="number" v-model.number="count" min="1" class="count-input" /> |
| | | <button class="count-btn" @click="increaseCount">+</button> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 底部按钮 --> |
| | | <view class="buttom"> |
| | | <button size="mini" @click="reset">重置</button> |
| | | <button size="mini" type="primary" @click="submitCall">提交</button> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | baseUrl: '', |
| | | token: '', |
| | | staNo: '', |
| | | locType: '1', // 默认窄 |
| | | count: 1 |
| | | } |
| | | }, |
| | | onShow() { |
| | | this.baseUrl = uni.getStorageSync('baseUrl') |
| | | this.token = uni.getStorageSync('token') |
| | | }, |
| | | methods: { |
| | | back() { |
| | | uni.navigateBack() |
| | | }, |
| | | onLocTypeChange(e) { |
| | | this.locType = e.detail.value |
| | | }, |
| | | increaseCount() { |
| | | this.count++ |
| | | }, |
| | | decreaseCount() { |
| | | if (this.count > 1) this.count-- |
| | | }, |
| | | reset() { |
| | | this.staNo = '' |
| | | this.locType = '1' |
| | | this.count = 1 |
| | | }, |
| | | submitCall() { |
| | | if (!this.staNo) { |
| | | uni.showToast({ |
| | | title: '请输入目标站点', |
| | | icon: 'none' |
| | | }) |
| | | return |
| | | } |
| | | uni.request({ |
| | | url: this.baseUrl + '/mobile/callEmptyBinOutBound', |
| | | method: 'POST', |
| | | header: { |
| | | token: this.token, |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | data: { |
| | | staNo: this.staNo, |
| | | locType: this.locType, |
| | | count: this.count |
| | | }, |
| | | success: res => { |
| | | res = res.data |
| | | if (res.code === 200) { |
| | | uni.showToast({ |
| | | title: '呼叫成功', |
| | | icon: 'success' |
| | | }) |
| | | this.reset() |
| | | } else { |
| | | uni.showToast({ |
| | | title: res.msg || '呼叫失败', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style> |
| | | @import url('../../static/css/wms.css/wms.css'); |
| | | |
| | | .container { |
| | | height: 100vh; |
| | | display: flex; |
| | | flex-direction: column; |
| | | /* justify-content: space-between; */ |
| | | } |
| | | |
| | | /* 底部按钮 */ |
| | | .buttom { |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: space-around; |
| | | padding: 20rpx 0; |
| | | } |
| | | |
| | | /* 输入行 */ |
| | | .full-item { |
| | | height: 100rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | padding: 0 20rpx; |
| | | } |
| | | |
| | | /* 左侧文字固定宽度 */ |
| | | .code-decs { |
| | | width: 200rpx; |
| | | /* 可根据实际调节 */ |
| | | font-size: 36rpx; |
| | | color: #303133; |
| | | } |
| | | |
| | | /* 右侧控件占剩余空间 */ |
| | | .full-input, |
| | | .full-radio, |
| | | .full-count { |
| | | flex: 1; |
| | | } |
| | | |
| | | /* 输入框 */ |
| | | .full-input { |
| | | height: 80rpx; |
| | | line-height: 80rpx; |
| | | font-size: 36rpx; |
| | | padding: 0 20rpx; |
| | | border-radius: 12rpx; |
| | | border: 1px solid #dcdcdc; |
| | | } |
| | | |
| | | /* 单选按钮 */ |
| | | .full-radio { |
| | | display: flex; |
| | | justify-content: flex-start; |
| | | } |
| | | |
| | | .radio { |
| | | padding: 20rpx 40rpx; |
| | | border: 1px solid #dcdcdc; |
| | | border-radius: 16rpx; |
| | | margin-right: 20rpx; |
| | | font-size: 36rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | |
| | | /* 数量 */ |
| | | .count-box { |
| | | display: flex; |
| | | align-items: center; |
| | | border-radius: 12rpx; |
| | | overflow: hidden; |
| | | border: 1px solid #dcdcdc; |
| | | } |
| | | |
| | | .count-btn { |
| | | width: 100rpx; |
| | | height: 80rpx; |
| | | line-height: 80rpx; |
| | | font-size: 40rpx; |
| | | background-color: #f5f5f5; |
| | | text-align: center; |
| | | border: none; |
| | | } |
| | | |
| | | .count-input { |
| | | width: 120rpx; |
| | | height: 80rpx; |
| | | line-height: 80rpx; |
| | | font-size: 36rpx; |
| | | text-align: center; |
| | | border: none; |
| | | outline: none; |
| | | } |
| | | </style> |
| | |
| | | getOrderDet() { |
| | | let that = this |
| | | uni.request({ |
| | | url: that.baseUrl + '/order/list/orderNo', |
| | | url: that.baseUrl + '/order/pakin/order/list/orderNo', |
| | | data: {orderNo: that.orderNo} , |
| | | method: 'GET', |
| | | success(res) { |
| | |
| | | getOrderNoList() { |
| | | let that = this |
| | | uni.request({ |
| | | url: this.baseUrl + '/order/comb/list/all', |
| | | url: this.baseUrl + '/order/pakin/order/nav/list/auth', |
| | | header: { |
| | | 'token': uni.getStorageSync('token') |
| | | }, |
| | |
| | | getOrderNoList() { |
| | | let that = this |
| | | uni.request({ |
| | | url: this.baseUrl + '/order/comb/list/all', |
| | | url: this.baseUrl + '/order/pakin/order/nav/list/auth', |
| | | header: { |
| | | 'token': uni.getStorageSync('token') |
| | | }, |
| New file |
| | |
| | | <template> |
| | | <view> |
| | | <uni-nav-bar |
| | | left-icon="left" |
| | | title="托盘回库" |
| | | @clickLeft="back" |
| | | :fixed="true" |
| | | :border="false" |
| | | /> |
| | | |
| | | <!-- 输入区 --> |
| | | <view class="code"> |
| | | <!-- 起始站点 --> |
| | | <view class="item"> |
| | | <view class="code-decs">起始站点:</view> |
| | | <input |
| | | type="text" |
| | | placeholder="扫码 / 输入" |
| | | v-model="site" |
| | | :focus="siteFocus" |
| | | @confirm="siteConfirm" |
| | | /> |
| | | </view> |
| | | |
| | | <!-- 托盘条码 --> |
| | | <view class="item"> |
| | | <view class="code-decs">托盘条码:</view> |
| | | <input |
| | | type="text" |
| | | placeholder="扫码 / 输入" |
| | | v-model="barcode" |
| | | :focus="barcodeFocus" |
| | | /> |
| | | </view> |
| | | |
| | | <!-- 托盘状态 --> |
| | | <view class="item"> |
| | | <view class="code-decs">托盘状态:</view> |
| | | <radio-group @change="onEmptyFlagChange"> |
| | | <label class="radio"> |
| | | <radio value="1" :checked="emptyFlag === '1'" /> 有货 |
| | | </label> |
| | | <label class="radio"> |
| | | <radio value="2" :checked="emptyFlag === '2'" /> 空托 |
| | | </label> |
| | | </radio-group> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 底部按钮 --> |
| | | <view class="buttom"> |
| | | <button size="mini" @click="reset">重置</button> |
| | | <button size="mini" type="primary" @click="confirmCall">确认</button> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | baseUrl: '', |
| | | token: '', |
| | | |
| | | site: '', |
| | | barcode: '', |
| | | emptyFlag: '1', // 默认有货 |
| | | |
| | | siteFocus: true, // 默认聚焦 site |
| | | barcodeFocus: false |
| | | } |
| | | }, |
| | | |
| | | onShow() { |
| | | this.baseUrl = uni.getStorageSync('baseUrl') |
| | | this.token = uni.getStorageSync('token') |
| | | }, |
| | | |
| | | methods: { |
| | | back() { |
| | | uni.navigateBack() |
| | | }, |
| | | |
| | | // 扫完 site 自动跳到 barcode |
| | | siteConfirm() { |
| | | if (!this.site) return |
| | | |
| | | this.siteFocus = false |
| | | this.$nextTick(() => { |
| | | this.barcodeFocus = true |
| | | }) |
| | | }, |
| | | |
| | | onEmptyFlagChange(e) { |
| | | this.emptyFlag = e.detail.value |
| | | }, |
| | | |
| | | confirmCall() { |
| | | if (!this.site) { |
| | | uni.showToast({ title: '请输入起始站点', icon: 'none' }) |
| | | return |
| | | } |
| | | if (!this.barcode) { |
| | | uni.showToast({ title: '请扫描托盘条码', icon: 'none' }) |
| | | return |
| | | } |
| | | |
| | | uni.request({ |
| | | url: this.baseUrl + '/mobile/callEmptyBinInBound', |
| | | method: 'POST', |
| | | header: { |
| | | token: this.token, |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | data: { |
| | | site: this.site, |
| | | barcode: this.barcode, |
| | | emptyFlag: this.emptyFlag |
| | | }, |
| | | success: res => { |
| | | res = res.data |
| | | if (res.code === 200) { |
| | | uni.showToast({ title: '回库呼叫成功', icon: 'success' }) |
| | | this.reset() |
| | | } else { |
| | | uni.showToast({ title: res.msg || '回库失败', icon: 'none' }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | reset() { |
| | | this.site = '' |
| | | this.barcode = '' |
| | | this.emptyFlag = '1' |
| | | |
| | | // 重置焦点 |
| | | this.barcodeFocus = false |
| | | this.$nextTick(() => { |
| | | this.siteFocus = true |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | @import url('../../static/css/wms.css/wms.css'); |
| | | |
| | | /* 输入区整体 */ |
| | | .code { |
| | | width: 100%; |
| | | background-color: #fff; |
| | | padding-top: 0; /* 解决“目标站点上方大空白” */ |
| | | } |
| | | |
| | | /* 每一行 */ |
| | | .item { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 120rpx; /* 行高拉开 */ |
| | | padding: 0 24rpx; |
| | | border-bottom: 1px solid #ebeef5; |
| | | } |
| | | |
| | | /* 左侧文字 */ |
| | | .code-decs { |
| | | width: 220rpx; /* 左右严格对齐关键 */ |
| | | font-size: 38rpx; |
| | | font-weight: 500; |
| | | color: #303133; |
| | | } |
| | | |
| | | /* 输入框统一 */ |
| | | .item input { |
| | | flex: 1; |
| | | height: 80rpx; |
| | | line-height: 80rpx; |
| | | font-size: 38rpx; |
| | | padding: 0 20rpx; |
| | | border: 1px solid #dcdfe6; |
| | | border-radius: 10rpx; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | /* 单选框区域 */ |
| | | radio-group { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | /* 单选项 */ |
| | | .radio { |
| | | margin-right: 40rpx; |
| | | font-size: 36rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | /* radio 本体放大一点(PDA 好点) */ |
| | | .radio radio { |
| | | transform: scale(1.2); |
| | | margin-right: 10rpx; |
| | | } |
| | | |
| | | /* 底部按钮 */ |
| | | .buttom { |
| | | position: fixed; |
| | | bottom: 20rpx; |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: space-around; |
| | | } |
| | | |
| | | </style> |