|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <view> | 
|---|
|  |  |  | <view> | 
|---|
|  |  |  | {{locNo}} | 
|---|
|  |  |  | <view class="code"> | 
|---|
|  |  |  | <uni-search-bar  v-model="searchValue1" | 
|---|
|  |  |  | maxlength="500" ancel="cancel" @confirm="searchValueInput1()" @clear="clearVal" placeholder="输入 / 扫描 货架码"> | 
|---|
|  |  |  | </uni-search-bar> | 
|---|
|  |  |  | <view style="display: flex;padding: 10rpx 20rpx;"> | 
|---|
|  |  |  | <view class="dropdown"> | 
|---|
|  |  |  | <input type="text" style="flex: 1;" v-model="row1"  placeholder="排" placeholder-style="font-size:10px" @confirm="getLocMastList('')"> | 
|---|
|  |  |  | <uni-icons type="close" color="#c1c1c1" style="margin-left: 10rpx;" @click="clear('row1')"></uni-icons> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="dropdown"> | 
|---|
|  |  |  | <input type="text" style="flex: 1;" v-model="bay1"   placeholder="列" placeholder-style="font-size:10px" @confirm="getLocMastList('')"> | 
|---|
|  |  |  | <uni-icons type="close" color="#c1c1c1" style="margin-left: 10rpx;" @click="clear('bay1')"></uni-icons> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="dropdown"> | 
|---|
|  |  |  | <input type="text" style="flex: 1;" v-model="lev1"  placeholder="层" placeholder-style="font-size:10px" @confirm="getLocMastList('')"> | 
|---|
|  |  |  | <uni-icons type="close" color="#c1c1c1" style="margin-left: 10rpx;" @click="clear('lev1')"></uni-icons> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="dropdown"> | 
|---|
|  |  |  | <input type="text" style="flex: 1;" v-model="floor"  placeholder="楼层" placeholder-style="font-size:10px" @confirm="getLocMastList('')"> | 
|---|
|  |  |  | <uni-icons type="close" color="#c1c1c1" style="margin-left: 10rpx;" @click="clear('floor')"></uni-icons> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view style="display: flex;"> | 
|---|
|  |  |  | <view class="dropdown" @click="toggleDropdown()"> | 
|---|
|  |  |  | <input type="text" style="flex: 1;" v-model="containerType"  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 selects" @click="selected(option)">{{option}}</view> | 
|---|
|  |  |  | </scroll-view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <view class="list list-font-color" :class="locMast.color" v-for="(locMast,index) in dataList" :key="index"> | 
|---|
|  |  |  | <view class="list-left"> | 
|---|
|  |  |  | <view class="detl-threeCode">{{locMast.locNo}}</view> | 
|---|
|  |  |  | <view>库位状态:{{locMast.locSts$}}</view> | 
|---|
|  |  |  | <view>库位类型:{{locMast.locType1$}}</view> | 
|---|
|  |  |  | <view>货架码:{{locMast.barcode}}</view> | 
|---|
|  |  |  | <view style="display: flex;"> | 
|---|
|  |  |  | <view style="flex:1">排:<text style="font-size: 22px;font-weight: bold;">{{locMast.row1}}</text></view> | 
|---|
|  |  |  | <view style="flex:1">列:<text style="font-size: 22px;font-weight: bold;">{{locMast.bay1}}</text></view> | 
|---|
|  |  |  | <view style="flex:1">层:<text style="font-size: 22px;font-weight: bold;">{{locMast.lev1}}</text></view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="dropdown" @click="toggleDropdown()"> | 
|---|
|  |  |  | <input type="text" style="flex: 1;" v-model="containerType"  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 selects" @click="selected(option)">{{option}}</view> | 
|---|
|  |  |  | </scroll-view> | 
|---|
|  |  |  | <view class="list-right" @click="goToLocDetl(locMast)"> | 
|---|
|  |  |  | <uni-icons type="right" size="25"  color="#fff"></uni-icons> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="dropdown" @click="toggleDropdown()"> | 
|---|
|  |  |  | <input type="text" style="flex: 1;" v-model="containerType"  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 selects" @click="selected(option)">{{option}}</view> | 
|---|
|  |  |  | </scroll-view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- 弹窗 --> | 
|---|
|  |  |  | <view> | 
|---|
|  |  |  | <uni-popup ref="check" 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="checkClose">取消</view> | 
|---|
|  |  |  | <view class="btn-right" @click="checkConfirm()">确认</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </uni-popup> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | locNo: '123123' | 
|---|
|  |  |  | searchValue1: '', | 
|---|
|  |  |  | baseUrl: '', | 
|---|
|  |  |  | token: '', | 
|---|
|  |  |  | barcode: '', | 
|---|
|  |  |  | locNo: '123123', | 
|---|
|  |  |  | row1: '', | 
|---|
|  |  |  | bay1: '', | 
|---|
|  |  |  | lev1: '', | 
|---|
|  |  |  | floor: '', | 
|---|
|  |  |  | dataList: [], | 
|---|
|  |  |  | item: '' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | onShow() { | 
|---|
|  |  |  | this.baseUrl = uni.getStorageSync('baseUrl'); | 
|---|
|  |  |  | this.token = uni.getStorageSync('token'); | 
|---|
|  |  |  | if (uni.getStorageSync('lev1')) { | 
|---|
|  |  |  | // this.lev1 = uni.getStorageSync('lev1'); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.lev1 = '' | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.getLocMastList() | 
|---|
|  |  |  | this.barcode = '' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | clear(e) { | 
|---|
|  |  |  | switch (e) { | 
|---|
|  |  |  | case 'row1': | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | this.row1 = '' | 
|---|
|  |  |  | this.getLocMastList('') | 
|---|
|  |  |  | }, 100); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 'bay1': | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | this.bay1 = '' | 
|---|
|  |  |  | this.getLocMastList('') | 
|---|
|  |  |  | }, 100); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 'lev1': | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | this.lev1 = '' | 
|---|
|  |  |  | this.getLocMastList('') | 
|---|
|  |  |  | }, 100); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 'floor': | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | this.floor = '' | 
|---|
|  |  |  | this.getLocMastList('') | 
|---|
|  |  |  | }, 100); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | clearVal() { | 
|---|
|  |  |  | this.getLocMastList('') | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | searchValueInput1() { | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | this.row1 = '' | 
|---|
|  |  |  | this.bay1 = '' | 
|---|
|  |  |  | this.lev1 = '' | 
|---|
|  |  |  | this.floor = '' | 
|---|
|  |  |  | this.getLocMastList(this.searchValue1) | 
|---|
|  |  |  | }, 100); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getLocMastList(barcode) { | 
|---|
|  |  |  | let _this = this | 
|---|
|  |  |  | // uni.setStorageSync('lev1', this.lev1); | 
|---|
|  |  |  | this.dataList = [] | 
|---|
|  |  |  | uni.request({ | 
|---|
|  |  |  | url: `${_this.baseUrl}/agv/locMast/list/auth`, | 
|---|
|  |  |  | header: {'token': uni.getStorageSync('token')}, | 
|---|
|  |  |  | data: { | 
|---|
|  |  |  | curr: 1, | 
|---|
|  |  |  | limit: 100, | 
|---|
|  |  |  | row1: _this.row1, | 
|---|
|  |  |  | bay1: _this.bay1, | 
|---|
|  |  |  | lev1: _this.lev1, | 
|---|
|  |  |  | floor: _this.floor, | 
|---|
|  |  |  | barcode: barcode | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | method: 'GET', | 
|---|
|  |  |  | success(res) { | 
|---|
|  |  |  | res = res.data | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | for (let k of res.data.records) { | 
|---|
|  |  |  | if (k.locSts == 'F') { | 
|---|
|  |  |  | k['color'] = 'locSts-F' | 
|---|
|  |  |  | } else if (k.locSts == 'D') { | 
|---|
|  |  |  | k['color'] = 'locSts-D' | 
|---|
|  |  |  | } else if (k.locSts == 'O') { | 
|---|
|  |  |  | k['color'] = 'locSts-O' | 
|---|
|  |  |  | } else if (k.locSts == 'R') { | 
|---|
|  |  |  | k['color'] = 'locSts-R' | 
|---|
|  |  |  | } else if (k.locSts == 'S') { | 
|---|
|  |  |  | k['color'] = 'locSts-S' | 
|---|
|  |  |  | } else if (k.locSts == 'X') { | 
|---|
|  |  |  | k['color'] = 'locSts-X' | 
|---|
|  |  |  | } else if (k.locSts == 'Q') { | 
|---|
|  |  |  | k['color'] = 'locSts-Q' | 
|---|
|  |  |  | } else if (k.locSts == 'P') { | 
|---|
|  |  |  | k['color'] = 'locSts-P' | 
|---|
|  |  |  | } else if (k.locSts == 'X') { | 
|---|
|  |  |  | k['color'] = 'locSts-X' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | _this.dataList = res.data.records | 
|---|
|  |  |  | } 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(e) { | 
|---|
|  |  |  | this.locNo = e.locNo | 
|---|
|  |  |  | this.item = e | 
|---|
|  |  |  | if (e.locSts == 'S' || e.locSts == 'R') { | 
|---|
|  |  |  | uni.showToast({ title: '当前库位在作业', icon: "error", position: 'top' }) | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.$refs.check.open() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | checkClose() { | 
|---|
|  |  |  | this.$refs.check.close() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | checkConfirm() { | 
|---|
|  |  |  | let _this = this | 
|---|
|  |  |  | let param = { | 
|---|
|  |  |  | barcode : _this.barcode, | 
|---|
|  |  |  | locNo : _this.locNo, | 
|---|
|  |  |  | item: _this.item | 
|---|
|  |  |  | } | 
|---|
|  |  |  | uni.navigateTo({ | 
|---|
|  |  |  | url: "./locDetl", | 
|---|
|  |  |  | success: function(res) { | 
|---|
|  |  |  | _this.$refs.check.close() | 
|---|
|  |  |  | // 通过eventChannel向被打开页面传送数据   向另外一个页面传递值的 | 
|---|
|  |  |  | res.eventChannel.emit('item', { | 
|---|
|  |  |  | item: param | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | events: { | 
|---|
|  |  |  | // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据  另外一个页面传过来的 | 
|---|
|  |  |  | acceptDataFromOpenedPage: function(data) { | 
|---|
|  |  |  | _this.$refs.check.close() | 
|---|
|  |  |  | _this.getLocMastList() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <style> | 
|---|
|  |  |  | @import url('../../../static/css/common/order.css'); | 
|---|
|  |  |  | .detl-threeCode { | 
|---|
|  |  |  | font-size: 28px; | 
|---|
|  |  |  | font-weight: bold; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .list-font-color { | 
|---|
|  |  |  | color: #fff; | 
|---|
|  |  |  | /* background-color: #2299ff; */ | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .dropdown { | 
|---|
|  |  |  | border: 1px solid #a7a7a7; | 
|---|
|  |  |  | border-radius: 8rpx; | 
|---|
|  |  |  | margin: 2px; | 
|---|
|  |  |  | padding: 6px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | .dropdown:last-child { | 
|---|
|  |  |  | margin-right: 2px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .locSts-F { | 
|---|
|  |  |  | background-color: #d82f2f; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .locSts-D { | 
|---|
|  |  |  | background-color: #daad25; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .locSts-O { | 
|---|
|  |  |  | background-color: #55aaff; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .locSts-R { | 
|---|
|  |  |  | background-color: #aaaaff; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .locSts-S { | 
|---|
|  |  |  | background-color: #d86d66; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .locSts-P { | 
|---|
|  |  |  | background-color: #ffaa00; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .locSts-Q { | 
|---|
|  |  |  | background-color: #47a301; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .locSts-X { | 
|---|
|  |  |  | background-color: #767676; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .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; | 
|---|
|  |  |  | height: 80rpx; | 
|---|
|  |  |  | line-height: 80rpx; | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|