<template>
|
<view>
|
<view>当前库位号:{{locNo}}</view>
|
<view>当前货架码:{{barcode}}</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">
|
<view class="btn-left" @click="remove()">取消</view>
|
<view class="btn-right" @click="changeCount()">修改</view>
|
</view>
|
</view>
|
</uni-popup>
|
</view>
|
|
<!-- 底部操作按钮 -->
|
<view class="buttom">
|
<button size="mini" type="primary" @click="changeSts('warn')">更改库位状态</button>
|
<button size="mini" type="primary" @click="agvStart('warn')">纠正库位</button>
|
</view>
|
</view>
|
</template>
|
|
<script>
|
export default {
|
data() {
|
return {
|
baseUrl: '',
|
token: '',
|
locNo: '',
|
barcode: '',
|
containerDetl: {
|
locNo: '',
|
barcode: '',
|
count: '',
|
data: []
|
},
|
locDetl: {
|
locNo: '',
|
barcode: '',
|
count: '',
|
data: []
|
},
|
dataList: [],
|
locDetlShow: false,
|
isOpen: false,
|
locSts: '',
|
locSts2: '',
|
locStss: [
|
{title: 'F.在库',val: 'F'},
|
{title: 'D.空桶/空栈板',val: 'D'},
|
{title: 'O.空库位',val: 'O'},
|
{title: 'X.禁用',val: 'X'},
|
],
|
sourceLoc: ''
|
}
|
},
|
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) {
|
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)
|
})
|
},
|
methods: {
|
getLocDetl(locNo,barcode) {
|
let _this = this
|
let param = {locNo:locNo,containerCode: barcode}
|
uni.request({
|
url: `${_this.baseUrl}/agvMobile/check/detl/v1`,
|
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
|
_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.locDetlShow = true
|
_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
|
}
|
|
}
|
|
|
}
|
}
|
})
|
},
|
goToLocDetl(item) {
|
let _this = this
|
uni.navigateTo({
|
url: "./locDetlList",
|
success: function(res) {
|
// 通过eventChannel向被打开页面传送数据 向另外一个页面传递值的
|
res.eventChannel.emit('item', {
|
item: item
|
})
|
},
|
events: {
|
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据 另外一个页面传过来的
|
acceptDataFromOpenedPage: function(data) {
|
_this.searchValueFocus = true
|
}
|
},
|
});
|
},
|
toggleDropdown() {
|
this.isOpen = !this.isOpen;
|
},
|
changeSts() {
|
this.$refs.chageDetl.open()
|
},
|
selected(option) {
|
this.locSts = option.title
|
this.locSts2 = option.val
|
},
|
changeCount() {
|
let _this = this
|
_this.sourceLoc.locSts = this.locSts2
|
Object.keys(_this.sourceLoc).forEach(function(key){
|
if (_this.sourceLoc[key] == null) {
|
_this.sourceLoc[key] = ''
|
}
|
})
|
uni.request({
|
url: `${_this.baseUrl}/agv/locMast/update/auth`,
|
header: {
|
'token': uni.getStorageSync('token'),
|
'content-type': 'application/x-www-form-urlencoded'
|
},
|
data: _this.sourceLoc,
|
method: 'POST',
|
success(res) {
|
res = res.data
|
}
|
})
|
}
|
}
|
}
|
</script>
|
|
<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>
|