<template>
|
<view>
|
<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="请输入排" @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="请输入列" @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="请输入层" @confirm="getLocMastList('')">
|
<uni-icons type="close" color="#c1c1c1" style="margin-left: 10rpx;" @click="clear('lev1')"></uni-icons>
|
</view>
|
</view>
|
</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="list-right" @click="goToLocDetl(locMast)">
|
<uni-icons type="right" size="25" color="#fff"></uni-icons>
|
</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">
|
<uni-combox :candidates="floorList" placeholder="请选择目标楼层" v-model="floor"></uni-combox>
|
</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>
|
</template>
|
|
<script>
|
export default {
|
data() {
|
return {
|
searchValue1: '',
|
baseUrl: '',
|
token: '',
|
barcode: '',
|
locNo: '123123',
|
row1: '',
|
bay1: '',
|
lev1: '',
|
dataList: [],
|
item: '',
|
floorList: ['1F','2F','3F'],
|
floor: '',
|
locMast: null
|
}
|
},
|
onShow() {
|
this.baseUrl = uni.getStorageSync('baseUrl');
|
this.token = uni.getStorageSync('token');
|
if (uni.getStorageSync('lev1')) {
|
this.lev1 = uni.getStorageSync('lev1');
|
} else {
|
this.lev1 = 2
|
}
|
this.getLocMastList()
|
},
|
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;
|
}
|
},
|
clearVal() {
|
this.getLocMastList('')
|
},
|
searchValueInput1() {
|
setTimeout(() => {
|
this.row1 = ''
|
this.bay1 = ''
|
this.lev1 = ''
|
this.getLocMastList(this.searchValue1)
|
}, 100);
|
},
|
getLocMastList(barcode) {
|
let _this = this
|
uni.setStorageSync('lev1', this.lev1);
|
uni.request({
|
url: `${_this.baseUrl}/agv/locMast/list/auth`,
|
header: {'token': uni.getStorageSync('token')},
|
data: {
|
curr: 1,
|
limit: 50,
|
row1: _this.row1,
|
bay1: _this.bay1,
|
floor: _this.lev1,
|
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
|
}
|
if (e.locSts == 'O') {
|
uni.showToast({ title: '当前库位为空库位', icon: "error", position: 'top' })
|
return
|
}
|
this.locMast = e
|
this.$refs.check.open()
|
},
|
checkClose() {
|
this.$refs.check.close()
|
},
|
checkConfirm() {
|
let _this = this
|
uni.request({
|
url: `${_this.baseUrl}/agvMobile/hand/control/locMove`,
|
header: {'token': uni.getStorageSync('token'),
|
},
|
data: JSON.stringify({
|
locNo: this.locMast.locNo,
|
floor: _this.floor
|
}),
|
method: 'POST',
|
success(res) {
|
res = res.data
|
if (res.code === 200) {
|
uni.showToast({ title: res.msg, icon: "error", position: 'top' })
|
_this.$refs.check.close()
|
_this.getLocMastList()
|
} 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' })
|
}
|
}
|
})
|
}
|
|
}
|
}
|
</script>
|
|
<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:first-child {
|
margin-left: 2px;
|
}
|
.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; */
|
margin-top: 30rpx;
|
margin-bottom: 60rpx;
|
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>
|