<template>
|
<view>
|
<view class="container" v-for="(item,i) in tree" :key="i">
|
<view :class="item.key">
|
<view class="title" >
|
<view style="width: 50%;">{{item.title}}</view>
|
<view @click="switchbtn(item)">
|
<uni-icons type="top" v-show="item.switch"></uni-icons>
|
<uni-icons type="bottom" v-show="!item.switch"></uni-icons>
|
</view>
|
</view>
|
<view class="name" v-show="item.key == 'user_id'" @click="back()">
|
<view>{{item.title}}</view>
|
</view>
|
<view class="sub1" v-for="sub in item.children" style="margin-left: 1em;" v-show="item.switch">
|
<view :class="sub.key" class="title sub-title" >
|
<view @click="chose(sub)">{{sub.title}}</view>
|
<view @click="switchbtn(sub)">
|
<uni-icons type="top" v-show="sub.switch"></uni-icons>
|
<uni-icons type="bottom" v-show="!sub.switch"></uni-icons>
|
</view>
|
</view>
|
|
<view :class="sub.key" class="name" v-show="sub.key == 'user_id'" @click="back()">
|
<view>{{sub.title}}</view>
|
</view>
|
|
<view class="sub2" v-for="it in sub.children" style="margin-left: 1em;" v-show="sub.switch">
|
<!-- <view :class="it.key" class="title sub-title" >{{it.title}}</view> -->
|
<view :class="it.key" class="locarea name" @click="chose(it)">
|
<view>{{it.title}}</view>
|
</view>
|
</view>
|
</view>
|
</view>
|
</view>
|
|
<view class="pick-list" v-show="pickData != ''">
|
<view class="list-item">
|
<text class="list-title">订单号:</text><text class="val-text">{{pickData.docNum ? pickData.docNum : '--'}}</text>
|
</view>
|
<view class="list-item">
|
<text>库位号:</text><text>{{pickData.locNo}}</text>
|
</view>
|
<view class="list-item">
|
<text>托盘码:</text><text>{{pickData.zpallet ? pickData.zpallet : '--'}}</text>
|
</view>
|
<view class="list-item">
|
<text>料箱码:</text><text>{{pickData.containerCode ? pickData.containerCode : '--'}}</text>
|
</view>
|
<view class="list-item">
|
<text>销售行号:</text><text>{{pickData.csocode ? pickData.csocode : '--'}}</text>
|
</view>
|
<view class="list-item">
|
<text>订单行号:</text><text>{{pickData.isoseg ? pickData.isoseg : '--'}}</text>
|
</view>
|
<view class="list-item">
|
<text>物料号:</text><text>{{pickData.matnr ? pickData.matnr : '--'}}</text>
|
</view>
|
<view class="list-item">
|
<text>物料名称:</text><text>{{pickData.maktx}}</text>
|
</view>
|
<view class="list-item">
|
<text>状态:</text><text>{{pickData.status$}}</text>
|
</view>
|
<view class="list-item">
|
<text>数量:</text><text class="val-num">{{pickData.anfme}}</text>
|
</view>
|
</view>
|
|
<view style="height: 100rpx;"></view>
|
|
<view class="z-floor" v-show="pickData != ''">
|
<button size="mini" type="primary" @click="picked()">拣货</button>
|
</view>
|
|
<view>
|
<!-- 提示信息弹窗 -->
|
<uni-popup ref="message" type="message">
|
<uni-popup-message :type="msgType1" :message="messageText" :duration="2000"></uni-popup-message>
|
</uni-popup>
|
</view>
|
</view>
|
</template>
|
|
<script>
|
export default {
|
data() {
|
return {
|
tree: [],
|
pickList: [],
|
pickData: '',
|
index: 1,
|
len: 5,
|
msgType1: 'success',
|
msgType: 'success',
|
messageText: '',
|
}
|
},
|
onShow() {
|
this.baseUrl = uni.getStorageSync('baseUrl');
|
this.token = uni.getStorageSync('token');
|
this.getNodeTree()
|
},
|
methods: {
|
getNodeTree() {
|
let _this = this
|
uni.request({
|
url: `${_this.baseUrl}/node/tree/auth`,
|
header: {'token': uni.getStorageSync('token')},
|
method: 'POST',
|
success(res) {
|
this.tree = []
|
res = res.data
|
// console.log(res.data[0].children);
|
if (res.data[0].children[0]) {
|
for (let k of res.data[0].children) {
|
// console.log(k);
|
if (k.children && k.children.length > 0) {
|
for (let i of k.children) {
|
i['switch'] = true
|
// console.log(i);
|
}
|
}
|
// console.log(k);
|
k['switch'] = true
|
_this.tree.push(k)
|
}
|
// console.log(_this.tree);
|
} else {
|
this.tree.push(res.data[0])
|
}
|
}
|
})
|
},
|
async getUserTree() {
|
let res = await user.getUserTree()
|
if (res.code === 200) {
|
this.tree = []
|
// console.log(res.data[0]);
|
if (res.data[0].children) {
|
for (let k of res.data[0].children) {
|
|
if (k.children && k.children.length > 0) {
|
for (let i of k.children) {
|
i['switch'] = true
|
// console.log(i);
|
}
|
}
|
// console.log(k);
|
k['switch'] = true
|
this.tree.push(k)
|
}
|
} else {
|
this.tree.push(res.data[0])
|
}
|
} else if (res.code === 403) {
|
this.backLogin(res)
|
}
|
console.log(this.tree);
|
},
|
switchbtn(item) {
|
// console.log(item);
|
item.switch = item.switch ? false : true
|
},
|
open(e) {
|
// console.log('open', e)
|
},
|
close(e) {
|
// console.log('close', e)
|
},
|
change(e) {
|
// console.log('change', e)
|
},
|
backLogin(res) {
|
uni.showToast({title: res.msg, icon: "none", position: 'top'})
|
setTimeout(() => {
|
uni.reLaunch({
|
url: '../login/login'
|
});
|
}, 1000);
|
},
|
back() {
|
uni.$emit('isRefresh', 1)
|
uni.navigateBack({
|
|
})
|
},
|
chose(data) {
|
let that = this
|
uni.request({
|
url: `${that.baseUrl}/node/order/pakout`,
|
header: {'token': uni.getStorageSync('token')},
|
data: {locType: data.title},
|
success(res) {
|
// console.log(res);
|
res = res.data
|
if (res.code === 200 && res.data.length > 0) {
|
that.pickList = res.data
|
that.len = res.data.length
|
that.pickData = res.data[0]
|
that.index = 1
|
} else if (res.data.length == 0) {
|
that.getNodeTree()
|
}
|
}
|
})
|
this.tree = []
|
},
|
picked() {
|
let that = this
|
// console.log(that.len);
|
// console.log(that.index);
|
if (that.len < that.index) {
|
that.pickData = ''
|
that.index = 1
|
that.getNodeTree()
|
return
|
} else {
|
that.pickData.orderNo = that.pickData.docNum
|
uni.request({
|
url: `${that.baseUrl}/mobile/node/pakout`,
|
header: {'token': uni.getStorageSync('token')},
|
data: that.pickData,
|
method: 'POST'
|
}).then((res)=>{
|
res = res.data
|
// console.log(res);
|
if (res.code === 200) {
|
if (that.index == that.len) {
|
that.pickData = ''
|
that.index = 1
|
that.getNodeTree()
|
} else {
|
that.index++
|
that.pickData = that.pickList[that.index]
|
}
|
that.messageText = "拣货成功"
|
that.messageToggle('success')
|
}
|
})
|
|
}
|
},
|
messageToggle(type) {
|
this.msgType1 = type
|
this.$refs.message.open()
|
},
|
|
}
|
}
|
</script>
|
|
<style>
|
.container {
|
margin: 16rpx;
|
min-height: 35rpx;
|
background-color: #FFF;
|
padding: 16rpx;
|
}
|
.box1 {
|
background-color: aqua;
|
}
|
.title {
|
box-shadow: -3px 0px 0px #55aaff;
|
padding-left: 5px;
|
font-size: 15px;
|
font-weight: 700;
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
}
|
.sub-title {
|
margin: 32rpx 0;
|
box-shadow: -3px 0px 0px #55aa7f;
|
}
|
.name {
|
padding: 16rpx;
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
}
|
.locarea:active {
|
background-color: #55aa7f;
|
}
|
.pick-list {
|
margin: 8px;
|
background-color: #FFF;
|
min-height: 70rpx;
|
border-radius: 20rpx;
|
}
|
.list-item {
|
min-height: 70rpx;
|
display: flex;
|
align-items: center;
|
padding-left: 32rpx;
|
}
|
.list-item:first-child {
|
padding-top: 8rpx;
|
}
|
.list-item:last-child {
|
padding-bottom: 8rpx;
|
}
|
.z-floor {
|
position: fixed;
|
bottom: 0;
|
left: 0;
|
height: 100rpx;
|
width: 100%;
|
background-color: #FFF;
|
display: flex;
|
align-items: center;
|
|
}
|
.list-title {
|
vertical-align: text-bottom;
|
}
|
.val-text {
|
background-color: #00aeec;
|
padding: 2px 4px;
|
border-radius: 4px;
|
color: #FFF;
|
}
|
.val-num {
|
font-weight: 900;
|
color: #d19a66;
|
font-size: 16px;
|
}
|
</style>
|