New file |
| | |
| | | <template> |
| | | <view> |
| | | <view class="list list-font-color" style="background-color: #b9b9b9;" :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-threeCode">{{orderDetl.threeCode}}</view> |
| | | <view class="detl-locNo">{{orderDetl.locNo}}</view> |
| | | </view> |
| | | <!-- 中 --> |
| | | <view style="display: flex;"> |
| | | <view style="flex: 1;"> |
| | | <view>编号:{{orderDetl.matnr}}</view> |
| | | <view>名称:{{orderDetl.maktx}}</view> |
| | | <!-- <view>库位状态:{{orderDetl.locSts$}}</view> --> |
| | | <view>源出库数量:{{orderDetl.maxCount}}</view> |
| | | <view class="detl-threeCode" style="display: flex;padding: 32rpx 0;align-items: center;font-size: 24px;"> |
| | | <view>加工数量:{{orderDetl.anfme}}</view> |
| | | <view style="margin-left: 50rpx;" @click="revise(orderDetl)"> |
| | | <uni-icons type="compose" size="30" color="#fff"></uni-icons> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- <view class="out-btn" @click="pakoutPrive(orderDetl)"> |
| | | <view>出库</view> |
| | | </view> --> |
| | | </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> |
| | | <uni-popup ref="addItem" type="dialog"> |
| | | <view class="popup"> |
| | | <!-- 标题 --> |
| | | <view class="title">出库数量</view> |
| | | <view class="popup-item"> |
| | | <view> |
| | | <uni-number-box :value="data.anfme" :step='1' :min="0" :max="maxCount" color="#747474" @change="changeValue" /> |
| | | </view> |
| | | |
| | | </view> |
| | | <!-- <view class="popup-item"> |
| | | <view> |
| | | <view @click="max()" style="padding: 0rpx 16rpx;background-color: #d9d9d9;font-size: 10px;">MAX</view> |
| | | </view> |
| | | |
| | | </view> --> |
| | | <view class="btn"> |
| | | <view class="btn-left" @click="addClose">取消</view> |
| | | <view class="btn-right" @click="addConfirm()">确认</view> |
| | | </view> |
| | | </view> |
| | | </uni-popup> |
| | | </view> |
| | | |
| | | <!-- 弹窗 --> |
| | | <view> |
| | | <uni-popup ref="process" type="dialog"> |
| | | <view class="popup"> |
| | | <!-- 标题 --> |
| | | <view class="title">请输入</view> |
| | | <view class="popup-item"> |
| | | <view class="popup-item-left">货架码:</view> |
| | | <view class="popup-item-right"><input type="text" v-model="barcode"></view> |
| | | </view> |
| | | <view class="popup-item"> |
| | | <view class="popup-item-left">站点号:</view> |
| | | <view class="popup-item-right"><input type="text" v-model="devNo"></view> |
| | | </view> |
| | | <view class="btn"> |
| | | <button class="btn-left" @click="processedClose">取消</button> |
| | | <button class="btn-right" @click="processedConfirm()" :disabled="processedDis">加工完成</button> |
| | | </view> |
| | | </view> |
| | | </uni-popup> |
| | | </view> |
| | | |
| | | <!-- 底部操作按钮 --> |
| | | <view class="buttom"> |
| | | <button size="mini" type="primary" @click="processed('warn')">确认加工</button> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | baseUrl: '', |
| | | token: '', |
| | | dataList: [], |
| | | count: 0, |
| | | containerType: '', |
| | | isOpen: true, |
| | | option: '', |
| | | selects: [], |
| | | orderId: '', |
| | | data: '', |
| | | maxCount: '', |
| | | processedDis: false, |
| | | barcode: '', |
| | | devNo: '' |
| | | } |
| | | }, |
| | | 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) { |
| | | for (let k of data.item) { |
| | | k['maxCount'] = k.anfme |
| | | } |
| | | _this.dataList = require('lodash').cloneDeep(data.item) |
| | | }) |
| | | }, |
| | | methods: { |
| | | processed() { |
| | | this.$refs.process.open() |
| | | }, |
| | | processedClose() { |
| | | this.$refs.process.close() |
| | | }, |
| | | processedConfirm() { |
| | | this.processedDis = true |
| | | let that = this |
| | | uni.request({ |
| | | url: that.baseUrl + '/agvMobile/hand/control/processed', |
| | | header: {'token': uni.getStorageSync('token')}, |
| | | data: {devNo: that.devNo, barcode: that.barcode,wrkDetls:that.dataList}, |
| | | method: 'POST', |
| | | success(result) { |
| | | that.processedDis = false |
| | | var res = result.data |
| | | if (res.code === 200) { |
| | | that.$refs.process.close() |
| | | uni.showToast({ title: '操作成功', icon: "success", position: 'top' }) |
| | | setTimeout(()=> { |
| | | uni.navigateBack({ |
| | | delta:1 |
| | | }); |
| | | },700) |
| | | } 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' }) |
| | | } |
| | | }, |
| | | fail(res) { |
| | | that.processedDis = false |
| | | } |
| | | }); |
| | | }, |
| | | max() { |
| | | this.data.anfme = this.data.count |
| | | }, |
| | | addClose() { |
| | | this.$refs.addItem.close() |
| | | // this.data.anfme = 0 |
| | | }, |
| | | addConfirm() { |
| | | this.$refs.addItem.close() |
| | | }, |
| | | revise(item) { |
| | | this.data = item |
| | | this.maxCount = item.maxCount |
| | | this.$refs.addItem.open() |
| | | }, |
| | | changeValue(value) { |
| | | this.data.anfme = value |
| | | }, |
| | | pakoutPrive(item) { |
| | | console.log(item); |
| | | let _this = this |
| | | 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 |
| | | }, |
| | | } |
| | | } |
| | | </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; |
| | | } |
| | | .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 { |
| | | 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; |
| | | } |
| | | |
| | | .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; |
| | | } |
| | | </style> |
| | | |