|  |  |  | 
|---|
|  |  |  | <!-- 工作档 --> | 
|---|
|  |  |  | <view class="wrkMast" v-if="wrkMast"> | 
|---|
|  |  |  | <view class="wrkMast-wrkNo"> | 
|---|
|  |  |  | <view style="flex:3">工作号: {{wrkMast.wrkNo}}</view> | 
|---|
|  |  |  | <view style="flex:2;text-align: right;">{{wrkMast.ioTitle}}</view> | 
|---|
|  |  |  | <view style="flex:5">工作号: {{wrkMast.wrkNo}}</view> | 
|---|
|  |  |  | <view style="flex:3;text-align: right;">{{wrkMast.ioTitle}}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view>工作类型: {{wrkMast.ioType$}}</view> | 
|---|
|  |  |  | <view>工作状态: {{wrkMast.wrkSts$}}</view> | 
|---|
|  |  |  | <view>源库位: {{wrkMast.sourceLocNo}}</view> | 
|---|
|  |  |  | <view>货架码: {{wrkMast.barcode}}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- 明细 --> | 
|---|
|  |  |  | 
|---|
|  |  |  | <view>商品编码:{{wrkDetl.matnr}}</view> | 
|---|
|  |  |  | <view>销售订单号:{{wrkDetl.threeCode ? wrkDetl.threeCode : ' --'}}</view> | 
|---|
|  |  |  | <view>自由项:{{wrkDetl.deadTime ? wrkDetl.deadTime : ' --'}}</view> | 
|---|
|  |  |  | <view>数量:{{wrkDetl.anfme}}</view> | 
|---|
|  |  |  | <view>出库数量:{{wrkDetl.anfme}}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- 弹窗 --> | 
|---|
|  |  |  | <view> | 
|---|
|  |  |  | <uni-popup ref="doContainerMoveOut" 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="btn"> | 
|---|
|  |  |  | <view class="btn-left" @click="containerMoveOutClose">取消</view> | 
|---|
|  |  |  | <view class="btn-right" @click="containerMoveOut()">确认出库</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </uni-popup> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- 弹窗 --> | 
|---|
|  |  |  | <view> | 
|---|
|  |  |  | <uni-popup ref="doContainerMoveOut2" 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="btn"> | 
|---|
|  |  |  | <view class="btn-left" @click="containerMoveOutClose">取消</view> | 
|---|
|  |  |  | <view class="btn-right" @click="containerMoveOut2()">确认离场</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </uni-popup> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- 弹窗 --> | 
|---|
|  |  |  | <view> | 
|---|
|  |  |  | <uni-popup ref="doPickIn" 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="btn"> | 
|---|
|  |  |  | <view class="btn-left" @click="pickInClose">取消</view> | 
|---|
|  |  |  | <view class="btn-right" @click="pickIn()">入库</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </uni-popup> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- 弹窗 --> | 
|---|
|  |  |  | <view> | 
|---|
|  |  |  | <uni-popup ref="emptyOut" type="dialog"> | 
|---|
|  |  |  | <view class="popup"> | 
|---|
|  |  |  | <!-- 标题 --> | 
|---|
|  |  |  | 
|---|
|  |  |  | <view class="buttom"> | 
|---|
|  |  |  | <button size="mini" type="primary" @click="emptyPakin()" v-if="btnType == 'emptyPakin'">空板入库</button> | 
|---|
|  |  |  | <button size="mini" type="primary" @click="emptyOut()" v-if="btnType == 'emptyPakin'">呼叫空板</button> | 
|---|
|  |  |  | <button size="mini" type="primary" @click="containerMoveOut()" v-if="btnType == 'out' && station.locSts == 'F'">确认出库</button> | 
|---|
|  |  |  | <button size="mini" type="primary" @click="pickIn()" v-if="btnType == 'pick' && station.locSts == 'F'">已拣料回库</button> | 
|---|
|  |  |  | <button size="mini" type="primary" @click="startPakin()" v-if="btnType == 'start' && station.locSts == 'F'">启动入库</button> | 
|---|
|  |  |  | <button size="mini" type="primary" @click="doContainerMoveOut2()" v-if="btnType == 'out'">货架离场</button> | 
|---|
|  |  |  | <button size="mini" type="primary" @click="doContainerMoveOut()" v-if="btnType == 'out'">确认出库</button> | 
|---|
|  |  |  | <button size="mini" type="primary" @click="doPickIn()" v-if="btnType == 'pick'">已拣料回库</button> | 
|---|
|  |  |  | <button size="mini" type="primary" @click="doPickIn2()" v-if="btnType == 'pick'">再次拣料</button> | 
|---|
|  |  |  | <button size="mini" type="primary" @click="startPakin()" v-if="btnType == 'start'">启动入库</button> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | baseUrl: '', | 
|---|
|  |  |  | token: '', | 
|---|
|  |  |  | station: null, | 
|---|
|  |  |  | reload: { | 
|---|
|  |  |  | loading: false, | 
|---|
|  |  |  | 
|---|
|  |  |  | success(res) { | 
|---|
|  |  |  | res = res.data | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (res.data.records[0].locSts == 'O') { | 
|---|
|  |  |  | _this.btnType = 'emptyPakin' | 
|---|
|  |  |  | } else if (res.data.records[0].locSts == 'F') { | 
|---|
|  |  |  | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | _this.btnType = 'working' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // if (res.data.records[0].locSts == 'O') { | 
|---|
|  |  |  | //    res.data.records[0].locSts$ = '没有货架' | 
|---|
|  |  |  | // } else if (res.data.records[0].locSts == 'F') { | 
|---|
|  |  |  | //    res.data.records[0].locSts$ = '货架在库' | 
|---|
|  |  |  | // } else if (res.data.records[0].locSts == 'S') { | 
|---|
|  |  |  | //    res.data.records[0].locSts$ = '货架进入中' | 
|---|
|  |  |  | // } else if (res.data.records[0].locSts == 'R') { | 
|---|
|  |  |  | //    res.data.records[0].locSts$ = '货架离开中' | 
|---|
|  |  |  | // } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | setTimeout(()=>{ | 
|---|
|  |  |  | for  (let k of res.data.records) { | 
|---|
|  |  |  | 
|---|
|  |  |  | _this.reload.loadingText = '更新状态' | 
|---|
|  |  |  | _this.getContainerType() | 
|---|
|  |  |  | },500) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | _this.getWrkMast(res.data.records[0].barcode) | 
|---|
|  |  |  | uni.showToast({ title: '更新成功!', icon: "none", position: 'top' }) | 
|---|
|  |  |  | } else if (res.code == 403) { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000); | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | _this.reloadStation() | 
|---|
|  |  |  | } else if (res.code == 403) { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000); | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | uni.showToast({ title: '启动入库', 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); | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | method: 'POST', | 
|---|
|  |  |  | header: { 'token': uni.getStorageSync('token') }, | 
|---|
|  |  |  | success(res) { | 
|---|
|  |  |  | var res = result.data | 
|---|
|  |  |  | var res = res.data | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | setTimeout(()=> { | 
|---|
|  |  |  | _this.containerType = '' | 
|---|
|  |  |  | 
|---|
|  |  |  | uni.showToast({ title: '呼叫成功', 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); | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | _this.selects = res.data | 
|---|
|  |  |  | } else if (res.code == 403) { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000); | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else if (res.code == 403) { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000); | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | _this.wrkDetls = res.data.records | 
|---|
|  |  |  | } else if (res.code == 403) { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000); | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | _this.btnType = 'start' | 
|---|
|  |  |  | } else if (res.code == 403) { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000); | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 全板出库 确认出库 | 
|---|
|  |  |  | doContainerMoveOut() { | 
|---|
|  |  |  | this.$refs.doContainerMoveOut.open() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | containerMoveOutClose() { | 
|---|
|  |  |  | this.$refs.doContainerMoveOut.close() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | containerMoveOut() { | 
|---|
|  |  |  | let _this = this | 
|---|
|  |  |  | let devNo = {devNo:[this.station.devNo]} | 
|---|
|  |  |  | let devNo = {devNo:[this.station.devNo],barcode: _this.barcode} | 
|---|
|  |  |  | uni.request({ | 
|---|
|  |  |  | url: `${_this.baseUrl}/agv/basDevp/visualized/container/moveOut`, | 
|---|
|  |  |  | data: JSON.stringify(devNo), | 
|---|
|  |  |  | 
|---|
|  |  |  | success(res) { | 
|---|
|  |  |  | res = res.data | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | _this.$refs.doContainerMoveOut.close() | 
|---|
|  |  |  | setTimeout(()=> { | 
|---|
|  |  |  | _this.barcode = '' | 
|---|
|  |  |  | _this.reloadStation() | 
|---|
|  |  |  | 
|---|
|  |  |  | uni.showToast({ title: '确认完成', 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); | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 全板出库 容器离场 | 
|---|
|  |  |  | doContainerMoveOut2() { | 
|---|
|  |  |  | this.$refs.doContainerMoveOut2.open() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | containerMoveOutClose() { | 
|---|
|  |  |  | this.$refs.doContainerMoveOut2.close() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | containerMoveOut2() { | 
|---|
|  |  |  | let _this = this | 
|---|
|  |  |  | let devNo = {devNo:[this.station.devNo],barcode: _this.barcode} | 
|---|
|  |  |  | uni.request({ | 
|---|
|  |  |  | url: `${_this.baseUrl}/agv/basDevp/visualized/container/moveOut2`, | 
|---|
|  |  |  | data: JSON.stringify(devNo), | 
|---|
|  |  |  | method: 'POST', | 
|---|
|  |  |  | success(res) { | 
|---|
|  |  |  | res = res.data | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | _this.$refs.doContainerMoveOut2.close() | 
|---|
|  |  |  | setTimeout(()=> { | 
|---|
|  |  |  | _this.barcode = '' | 
|---|
|  |  |  | _this.reloadStation() | 
|---|
|  |  |  | },1000) | 
|---|
|  |  |  | uni.showToast({ title: '离场完成', 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' }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 再次拣料 | 
|---|
|  |  |  | doPickIn2() { | 
|---|
|  |  |  | let _this = this | 
|---|
|  |  |  | let item = this.wrkMast | 
|---|
|  |  |  | uni.navigateTo({ | 
|---|
|  |  |  | url: './pickAgain', | 
|---|
|  |  |  | success(res) { | 
|---|
|  |  |  | res.eventChannel.emit('item', { | 
|---|
|  |  |  | item: item, | 
|---|
|  |  |  | wrkDetls: _this.wrkDetls, | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | events: { | 
|---|
|  |  |  | acceptDataFromOpenedPage: function(data) { | 
|---|
|  |  |  | _this.reloadStation() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 拣料出库 确认后回库 | 
|---|
|  |  |  | doPickIn() { | 
|---|
|  |  |  | this.$refs.doPickIn.open() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | pickInClose() { | 
|---|
|  |  |  | this.$refs.doPickIn.close() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | pickIn() { | 
|---|
|  |  |  | let _this = this | 
|---|
|  |  |  | uni.request({ | 
|---|
|  |  |  | url: `${_this.baseUrl}/agv/basDevp/visualized/container/pickIn`, | 
|---|
|  |  |  | data: {devNo: _this.station.devNo}, | 
|---|
|  |  |  | data: {devNo: _this.station.devNo,barcode: _this.barcode}, | 
|---|
|  |  |  | method: 'POST', | 
|---|
|  |  |  | success(res) { | 
|---|
|  |  |  | res = res.data | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | _this.$refs.doPickIn.close() | 
|---|
|  |  |  | _this.barcode = '' | 
|---|
|  |  |  | _this.reloadStation() | 
|---|
|  |  |  | } else if (res.code == 403) { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000); | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | uni.showToast({ title: '启动入库', 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); | 
|---|
|  |  |  | setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "error", position: 'top' }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | padding: 24rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .wrkMast-wrkNo { | 
|---|
|  |  |  | font-size: 32px; | 
|---|
|  |  |  | font-size: 30px; | 
|---|
|  |  |  | font-weight: bold; | 
|---|
|  |  |  | padding: 24rpx 0; | 
|---|
|  |  |  | display: flex; | 
|---|