|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <view> | 
|---|
|  |  |  | <view>当前库位号:{{locNo}}</view> | 
|---|
|  |  |  | <view>当前货架码:{{barcode}}</view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <view> | 
|---|
|  |  |  | <view>实际库存</view> | 
|---|
|  |  |  | <view>库位号{{containerDetl.locNo}}</view> | 
|---|
|  |  |  | <view>货架码{{containerDetl.barcode}}</view> | 
|---|
|  |  |  | <view>库存品类{{containerDetl.count}}</view> | 
|---|
|  |  |  | <view style="padding: 16rpx 32rpx;font-size: 20px;font-weight: bold;"> | 
|---|
|  |  |  | <view>当前库位号:{{locNo}}</view> | 
|---|
|  |  |  | <view>当前货架码:{{barcode}}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view v-if="locDetlShow"> | 
|---|
|  |  |  | <view>数据库存</view> | 
|---|
|  |  |  | <view>库位号{{locDetl.locNo}}</view> | 
|---|
|  |  |  | <view>货架码{{locDetl.barcode}}</view> | 
|---|
|  |  |  | <view>库存品类{{locDetl.count}}</view> | 
|---|
|  |  |  | <view class="list locSts-O"> | 
|---|
|  |  |  | <view class="list-left"> | 
|---|
|  |  |  | <view>实际库存</view> | 
|---|
|  |  |  | <view>库位号:{{containerDetl.locNo}}</view> | 
|---|
|  |  |  | <view>货架码:{{containerDetl.barcode}}</view> | 
|---|
|  |  |  | <view>库存品类:{{containerDetl.count}}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="list-right" @click="goToLocDetl(containerDetl)"> | 
|---|
|  |  |  | <uni-icons type="right" size="25"  color="#fff"></uni-icons> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <view class="list locSts-D" v-if="locDetlShow"> | 
|---|
|  |  |  | <view class="list-left"> | 
|---|
|  |  |  | <view>数据库存</view> | 
|---|
|  |  |  | <view>库位号:{{locDetl.locNo}}</view> | 
|---|
|  |  |  | <view>货架码:{{locDetl.barcode}}</view> | 
|---|
|  |  |  | <view>库存品类:{{locDetl.count}}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="list-right" @click="goToLocDetl(locDetl)"> | 
|---|
|  |  |  | <uni-icons type="right" size="25"  color="#fff"></uni-icons> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- 弹窗 --> | 
|---|
|  |  |  | <view> | 
|---|
|  |  |  | <uni-popup ref="chageDetl" type="dialog"> | 
|---|
|  |  |  | <view class="popup"> | 
|---|
|  |  |  | <!-- 标题 --> | 
|---|
|  |  |  | <view class="title">修改库位状态</view> | 
|---|
|  |  |  | <view class="popup-item"> | 
|---|
|  |  |  | <view class="dropdown" @click="toggleDropdown()"> | 
|---|
|  |  |  | <input type="text" style="width: 270rpx;" v-model="locSts" placeholder="更改为"> | 
|---|
|  |  |  | <uni-icons :type="isOpen ? 'top' : 'bottom'" color="#c1c1c1" style="margin-left: 10rpx;"></uni-icons> | 
|---|
|  |  |  | <scroll-view scroll-y="ture" class="dropdown-content" v-if="isOpen"> | 
|---|
|  |  |  | <view class="dropdown-item" v-for="option in locStss" @click="selected(option)">{{option.title}}</view> | 
|---|
|  |  |  | </scroll-view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="btn"> | 
|---|
|  |  |  | <button class="btn-left" @click="changeClose()">取消</button> | 
|---|
|  |  |  | <button class="btn-right" @click="changeCount()" :disabled="changeDis">修改</button> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </uni-popup> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- 底部操作按钮 --> | 
|---|
|  |  |  | <view class="buttom"> | 
|---|
|  |  |  | <button size="mini" type="primary" @click="agvStart('warn')">纠正库位</button> | 
|---|
|  |  |  | <button size="mini" type="primary" @click="changeSts('warn')">更改库位状态</button> | 
|---|
|  |  |  | <button size="mini" type="primary" @click="changeStart('warn')" :disabled="changeStartDis">纠正库位</button> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | 
|---|
|  |  |  | containerDetl: { | 
|---|
|  |  |  | locNo: '', | 
|---|
|  |  |  | barcode: '', | 
|---|
|  |  |  | count: '' | 
|---|
|  |  |  | count: '', | 
|---|
|  |  |  | data: [] | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | locDetl: { | 
|---|
|  |  |  | locNo: '', | 
|---|
|  |  |  | barcode: '', | 
|---|
|  |  |  | count: '' | 
|---|
|  |  |  | count: '', | 
|---|
|  |  |  | data: [] | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | dataList: [], | 
|---|
|  |  |  | locDetlShow: false | 
|---|
|  |  |  | locDetlShow: true, | 
|---|
|  |  |  | isOpen: false, | 
|---|
|  |  |  | locSts: '', | 
|---|
|  |  |  | locSts2: '', | 
|---|
|  |  |  | locStss: [ | 
|---|
|  |  |  | {title: 'F.在库',val: 'F'}, | 
|---|
|  |  |  | {title: 'D.空桶/空栈板',val: 'D'}, | 
|---|
|  |  |  | {title: 'O.空库位',val: 'O'}, | 
|---|
|  |  |  | {title: 'X.禁用',val: 'X'}, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | sourceLoc: '', | 
|---|
|  |  |  | changeDis: false, | 
|---|
|  |  |  | changeStartDis: false | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | onShow() { | 
|---|
|  |  |  | 
|---|
|  |  |  | eventChannel.on('item', function(data) { | 
|---|
|  |  |  | console.log(data); | 
|---|
|  |  |  | _this.locNo = data.item.locNo | 
|---|
|  |  |  | _this.barcode = data.item.barcode | 
|---|
|  |  |  | _this.sourceLoc = data.item.item | 
|---|
|  |  |  | console.log(_this.sourceLoc); | 
|---|
|  |  |  | _this.getLocDetl(data.item.locNo,data.item.barcode) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 
|---|
|  |  |  | let param = {locNo:locNo,containerCode: barcode} | 
|---|
|  |  |  | uni.request({ | 
|---|
|  |  |  | url: `${_this.baseUrl}/agvMobile/check/detl/v1`, | 
|---|
|  |  |  | header: {'token': uni.getStorageSync('token')}, | 
|---|
|  |  |  | data: param, | 
|---|
|  |  |  | method: 'POST', | 
|---|
|  |  |  | success(res) { | 
|---|
|  |  |  | res = res.data | 
|---|
|  |  |  | console.log(res); | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | _this.dataList = res.data.containerCode | 
|---|
|  |  |  | if (res.data.containerCode[0].locNo) { | 
|---|
|  |  |  | _this.containerDetl.locNo = res.data.containerCode[0].locNo | 
|---|
|  |  |  | _this.containerDetl.barcode = res.data.containerCode[0].suppCode | 
|---|
|  |  |  | _this.containerDetl.count = res.data.containerCode.length | 
|---|
|  |  |  | if (res.data.containerCode.length > 0) { | 
|---|
|  |  |  | _this.dataList = res.data.containerCode | 
|---|
|  |  |  | if (res.data.containerCode[0].locNo) { | 
|---|
|  |  |  | _this.containerDetl.locNo = res.data.containerCode[0].locNo | 
|---|
|  |  |  | _this.containerDetl.barcode = res.data.containerCode[0].suppCode | 
|---|
|  |  |  | _this.containerDetl.count = res.data.containerCode.length | 
|---|
|  |  |  | _this.containerDetl.data = res.data.containerCode | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (res.data.locNo.length > 0) { | 
|---|
|  |  |  | if (res.data.containerCode[0].locNo == res.data.locNo[0].locNo | 
|---|
|  |  |  | && res.data.containerCode[0].suppCode == res.data.locNo[0].suppCode) { | 
|---|
|  |  |  | _this.locDetlShow = false | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | _this.locDetl.locNo = res.data.locNo[0].locNo | 
|---|
|  |  |  | _this.locDetl.barcode = res.data.locNo[0].suppCode | 
|---|
|  |  |  | _this.locDetl.count = res.data.locNo.length | 
|---|
|  |  |  | _this.locDetl.data = res.data.locNo | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } 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' }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | goToLocDetl(item) { | 
|---|
|  |  |  | let _this = this | 
|---|
|  |  |  | if (item.data.length <= 0) { | 
|---|
|  |  |  | uni.showToast({ title: '没有库存', icon: "error", position: 'top' }) | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | uni.navigateTo({ | 
|---|
|  |  |  | url: "./locDetlList", | 
|---|
|  |  |  | success: function(res) { | 
|---|
|  |  |  | // 通过eventChannel向被打开页面传送数据   向另外一个页面传递值的 | 
|---|
|  |  |  | res.eventChannel.emit('item', { | 
|---|
|  |  |  | item: item | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | events: { | 
|---|
|  |  |  | // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据  另外一个页面传过来的 | 
|---|
|  |  |  | acceptDataFromOpenedPage: function(data) { | 
|---|
|  |  |  | _this.getLocDetl(_this.locNo,_this.barcode) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | toggleDropdown() { | 
|---|
|  |  |  | this.isOpen = !this.isOpen; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | changeSts() { | 
|---|
|  |  |  | this.$refs.chageDetl.open() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | selected(option) { | 
|---|
|  |  |  | this.locSts = option.title | 
|---|
|  |  |  | this.locSts2 = option.val | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | changeClose() { | 
|---|
|  |  |  | this.$refs.chageDetl.close() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | changeCount() { | 
|---|
|  |  |  | let _this = this | 
|---|
|  |  |  | _this.sourceLoc.locSts = this.locSts2 | 
|---|
|  |  |  | let barcode = _this.barcode | 
|---|
|  |  |  | if (this.locSts2 == 'O') { | 
|---|
|  |  |  | barcode = '' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | let param = { | 
|---|
|  |  |  | locNo: _this.sourceLoc.locNo, | 
|---|
|  |  |  | locSts: _this.sourceLoc.locSts, | 
|---|
|  |  |  | barcode: _this.barcode, | 
|---|
|  |  |  | row1: _this.sourceLoc.row1, | 
|---|
|  |  |  | bay1: _this.sourceLoc.bay1, | 
|---|
|  |  |  | lev1: _this.sourceLoc.lev1, | 
|---|
|  |  |  | floor: _this.sourceLoc.floor | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Object.keys(_this.sourceLoc).forEach(function(key){ | 
|---|
|  |  |  | if (_this.sourceLoc[key] == null) { | 
|---|
|  |  |  | _this.sourceLoc[key] = '' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | _this.changeDis = true | 
|---|
|  |  |  | uni.request({ | 
|---|
|  |  |  | url: `${_this.baseUrl}/agv/locMast/update/auth`, | 
|---|
|  |  |  | header: { | 
|---|
|  |  |  | 'token': uni.getStorageSync('token'), | 
|---|
|  |  |  | 'content-type': 'application/x-www-form-urlencoded' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | data: param, | 
|---|
|  |  |  | method: 'POST', | 
|---|
|  |  |  | success(res) { | 
|---|
|  |  |  | res = res.data | 
|---|
|  |  |  | _this.changeDis = false | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "success", position: 'top' }) | 
|---|
|  |  |  | _this.$refs.chageDetl.close() | 
|---|
|  |  |  | setTimeout(()=> { | 
|---|
|  |  |  | uni.navigateBack() | 
|---|
|  |  |  | },1000) | 
|---|
|  |  |  | } 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) { | 
|---|
|  |  |  | _this.changeDis = false | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | changeStart() { | 
|---|
|  |  |  | let _this = this | 
|---|
|  |  |  | _this.changeStartDis = true | 
|---|
|  |  |  | let param = {locNo:_this.locNo,containerCode: _this.barcode} | 
|---|
|  |  |  | uni.request({ | 
|---|
|  |  |  | url: `${_this.baseUrl}/agvMobile/update/detl/v1`, | 
|---|
|  |  |  | header: { 'token': uni.getStorageSync('token')}, | 
|---|
|  |  |  | data: param, | 
|---|
|  |  |  | method: 'POST', | 
|---|
|  |  |  | success(res) { | 
|---|
|  |  |  | res = res.data | 
|---|
|  |  |  | _this.changeStartDis = false | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | uni.showToast({ title: res.msg, icon: "success", position: 'top' }) | 
|---|
|  |  |  | _this.$refs.chageDetl.close() | 
|---|
|  |  |  | setTimeout(()=> { | 
|---|
|  |  |  | uni.navigateBack() | 
|---|
|  |  |  | },1000) | 
|---|
|  |  |  | } 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) { | 
|---|
|  |  |  | _this.changeStartDis = false | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <style> | 
|---|
|  |  |  | @import url('../../../static/css/common/order.css'); | 
|---|
|  |  |  | .locSts-D { | 
|---|
|  |  |  | color: #FFF; | 
|---|
|  |  |  | background-color: #daad25; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .locSts-O { | 
|---|
|  |  |  | color: #FFF; | 
|---|
|  |  |  | background-color: #55aaff; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .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: #e2231a; | 
|---|
|  |  |  | border-right: 1px solid #DCDFE6; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .btn-right { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | justify-content: center; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | color: #409EFF; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|