<template>
|
<view>
|
<view class="code">
|
<!-- <uni-search-bar :focus="matFocus" v-model="matnr" @input="matInput()" ma
|
maxlength="500" ancel="cancel" @clear="clear" placeholder="输入 / 扫描商品">
|
</uni-search-bar> -->
|
<view class="code-title">
|
<view></view>
|
<view>商品列表</view>
|
<view @click="allChecked">{{allCheckBtnTitle}}</view>
|
</view>
|
</view>
|
<view class="list" v-for="(item,i) in dataList">
|
<view class="list-left">
|
<view>编号:{{item.matnr}}</view>
|
<view>名称:{{item.maktx}}</view>
|
<view>规格:{{item.specs}}</view>
|
<view>批号:{{item.batch}}</view>
|
<view class="list-anfme">数量:{{item.anfme}}</view>
|
<view class="list-qty-1" v-if="item.anfme > item.qty">作业数量:{{item.qty}}</view>
|
<view class="list-qty-2" v-if="item.anfme <= item.qty">作业数量:{{item.qty}}</view>
|
<view class="card-id">{{i + 1}}</view>
|
<view>货位:{{item.locNo}}</view>
|
<view style="display: flex;">出库站:
|
<view class="dropdown" >
|
<input type="text" style="width: 270rpx;" v-model="item.agvStaNo" placeholder="请选择出库站">
|
<uni-icons :type="item.isOpen ? 'top' : 'bottom'" color="#c1c1c1" style="margin-left: 10rpx;"></uni-icons>
|
<scroll-view scroll-y="ture" class="dropdown-content" v-if="item.isOpen">
|
<view class="dropdown-item" v-for="option in item.agvStaNos" @click="selected(option,item)">{{option}}</view>
|
</scroll-view>
|
</view>
|
</view>
|
</view>
|
<view class="list-right" @click="checkboxChange(item)">
|
<label >
|
<checkbox :value="item.orderNo" :checked="item.checked" color="" :disabled="item.anfme <= item.qty" style="transform:scale(0.7)" /><text></text>
|
</label>
|
</view>
|
</view>
|
<view style="height: 100rpx;"></view>
|
|
<!-- 底部操作按钮 -->
|
<view class="buttom">
|
<button size="mini" @click="reset('warn')">稍后处理</button>
|
<button size="mini" type="primary" @click="combConfirm('warn')">立即出库</button>
|
</view>
|
|
|
</view>
|
</template>
|
|
<script>
|
export default {
|
data() {
|
return {
|
baseUrl: '',
|
token: '',
|
orderId: '',
|
matFocus: true,
|
matnr: '',
|
checck: true,
|
dataList: [],
|
oldDataList: [],
|
newDataList: [],
|
allCheck: false,
|
allCheckBtnTitle: '全选',
|
orderType: 'out',
|
ids: [],
|
isOpen: false,
|
selects: [
|
{value: "CS-101-001-01@1"},
|
{value: "CS-101-001-02@1"},
|
{value: "CS-101-001-03@1"},
|
{value: "CS-101-002-01@1"},
|
{value: "CS-101-002-02@1"},
|
{value: "CS-101-002-03@1"},
|
]
|
}
|
},
|
onLoad() {
|
let that = 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('mats', function(data) {
|
console.log(data);
|
for (let item of data.mats) {
|
that.ids.push(item.id)
|
}
|
that.getPakoutList(that.ids)
|
})
|
},
|
onShow() {
|
if (this.dataList.length > 0) {
|
this.oldDataList = [...this.dataList]
|
}
|
},
|
methods: {
|
toggleDropdown(item) {
|
item.isOpen = !item.isOpen;
|
},
|
selected(option,item) {
|
item.agvStaNo = option
|
},
|
// 订单明细
|
getPakoutList(ids) {
|
let _this = this
|
uni.request({
|
url: `${_this.baseUrl}/out/pakout/preview/auth`,
|
header: {'token': uni.getStorageSync('token')},
|
data: ids,
|
method: 'POST',
|
success(res) {
|
res = res.data
|
if (res.code === 200) {
|
for (let k of res.data) {
|
k['isOpen'] = false
|
}
|
_this.dataList = res.data
|
_this.oldDataList = [..._this.dataList]
|
}
|
}
|
})
|
},
|
matInput() {
|
let count = 0
|
let sign = 0
|
if (this.oldDataList.length > 0) {
|
this.dataList = [...this.oldDataList]
|
}
|
this.newDataList = []
|
for (let k in this.dataList) {
|
if (!this.dataList[k].matnr.includes(this.matnr)) {
|
count++;
|
} else {
|
this.newDataList.push(this.dataList[k])
|
}
|
}
|
if (this.matnr != '') {
|
for (let j in this.dataList) {
|
if (!this.dataList[j].maktx.includes(this.matnr)) {
|
} else {
|
for (let i in this.newDataList) {
|
if (this.newDataList[i].matnr == this.dataList[j].matnr) {
|
sign++
|
}
|
}
|
if (sign == 0) {
|
this.newDataList.push(this.dataList[j])
|
}
|
}
|
}
|
}
|
this.dataList = this.newDataList
|
},
|
checkboxChange(e) {
|
let items = this.dataList,
|
values = e.orderNo;
|
if (e.checked) {
|
this.$set(e,'checked',false)
|
} else {
|
if (e.anfme == e.qty) {
|
this.$set(e,'checked',false)
|
} else {
|
this.$set(e,'checked',true)
|
}
|
|
}
|
},
|
allChecked() {
|
if (this.allCheck) {
|
this.allCheck = false
|
this.allCheckBtnTitle = '全选'
|
} else {
|
this.allCheck = true
|
this.allCheckBtnTitle = '取消'
|
}
|
for (let item of this.dataList) {
|
if (this.allCheck) {
|
if (item.anfme == item.qty) {
|
this.$set(item,'checked',false)
|
} else {
|
this.$set(item,'checked',true)
|
}
|
} else {
|
this.$set(item,'checked',false)
|
}
|
}
|
},
|
clear() {
|
this.matnr = ''
|
this.dataList = [...this.oldDataList]
|
},
|
combConfirm(type) {
|
let _this = this
|
let combList = []
|
for (let k of _this.dataList) {
|
if (k.checked) {
|
if (k.agvStaNo == null) {
|
uni.showToast({ title: `${k.locNo}当前货位没有选择出库站`, icon: "error", position: 'top'})
|
return
|
} else {
|
combList.push(k)
|
}
|
}
|
}
|
if (combList.length == 0) {
|
uni.showToast({ title: '请选择出库商品', icon: "error", position: 'top'})
|
return
|
}
|
uni.request({
|
url: `${_this.baseUrl}/out/pakout/auth`,
|
header: {'token': uni.getStorageSync('token')},
|
data: combList,
|
method: 'POST',
|
success(res) {
|
res = res.data
|
console.log(res);
|
if (res.code === 200) {
|
uni.showToast({ title: '出库成功', icon: "success", position: 'top'})
|
setTimeout(()=> {
|
uni.navigateBack({
|
delta: 2
|
});
|
},700)
|
}
|
}
|
})
|
},
|
combConfirm2(type) {
|
let _this = this
|
let combList = []
|
for (let k of _this.dataList) {
|
if (k.checked) {
|
combList.push(k)
|
}
|
}
|
if (combList.length == 0) {
|
uni.showToast({ title: '请选择出库商品', icon: "error", position: 'top'})
|
return
|
}
|
uni.navigateTo({
|
url: "../AGV/AGVPakin2",
|
success: function(res) {
|
// 通过eventChannel向被打开页面传送数据 向另外一个页面传递值的
|
res.eventChannel.emit('mats', {
|
mats: combList
|
})
|
},
|
});
|
},
|
// 稍后处理
|
reset() {
|
setTimeout(()=> {
|
uni.navigateBack({
|
delta: 2
|
});
|
},700)
|
}
|
}
|
}
|
</script>
|
|
<style>
|
@import url('../../../static/css/common/order.css');
|
.list-anfme {
|
color: #0082ff;
|
font-weight: bold;
|
}
|
.list-qty-1 {
|
color: #33ba43;
|
font-weight: bold;
|
}
|
.list-qty-2 {
|
color: #e2231a;
|
font-weight: bold;
|
}
|
</style>
|