<template>
|
<view>
|
<uni-segmented-control :current="current" :values="items" @clickItem="onClickItem">
|
</uni-segmented-control>
|
<view class="content">
|
<view v-if="current === 0" style="width: 95%;">
|
<view style="margin-top: 10px;margin-left: 20px;">
|
<u-sticky offset-top="0" zIndex="999" bgColor="#fff" style="width: 100%;">
|
<view style="background-color: #fff; padding-bottom: 20rpx;">
|
<uni-search-bar @confirm="search" v-model="searchValue"></uni-search-bar>
|
<uni-forms ref="formData" label-width="120">
|
<uni-forms-item label="出库地址" style="background-color: #fff;">
|
<uni-easyinput type="text" maxlength="25" :focus="true" v-model="outAddress"
|
placeholder="请输入出库地址" ref='midInput' />
|
</uni-forms-item>
|
</uni-forms>
|
</view>
|
</u-sticky>
|
<uni-list class="body">
|
<uni-list-item direction="column" v-for="(item,index) in stockInfo" :key="item.id">
|
<template v-slot:body>
|
<view class="uni-list-box">
|
<checkbox @click="click(item)"></checkbox>
|
<view class="uni-content">
|
<view class="uni-title-sub uni-ellipsis-2">托盘号:{{item.barcode}}</view>
|
<view class="uni-note">货位编号:{{item.locationNo}}</view>
|
<view class="uni-note">物料编码:{{item.matCode}}</view>
|
<view class="uni-note">物料名称:{{item.matName}}</view>
|
<view class="uni-note">安规:{{item.safety_regulations}}</view>
|
<view class="uni-note">数量:{{item.quantity}}</view>
|
</view>
|
</view>
|
</template>
|
</uni-list-item>
|
</uni-list>
|
<view style="background-color: #fff; padding: 20rpx,20rpx;" class="footerxy">
|
<u-sticky offset-top="80%" zIndex="999">
|
<button @click="outbound()" type="primary" size="default">出库确认</button>
|
</u-sticky>
|
</view>
|
</view>
|
</view>
|
<view v-if="current === 1" style="width: 95%;">
|
<uni-forms label-width="120" style="margin-top: 20px;margin-left: 20px;">
|
<uni-forms-item label="出库库位">
|
<uni-easyinput type="text" :focus="!focus" @input="getMatInfo" v-model="startpoint"
|
placeholder="请输入出库库位" ref='midInput' />
|
</uni-forms-item>
|
<uni-forms-item label="出库站点">
|
<uni-easyinput type="text" :focus="focus" v-model="endpoint" placeholder="请输入出库站点"
|
ref='midInput' />
|
</uni-forms-item>
|
<uni-forms-item>
|
<button @click="manualOutbound" type="primary" size="default"
|
style="margin-top: 2%;">发送任务</button>
|
</uni-forms-item>
|
</uni-forms>
|
<uni-list class="body">
|
<uni-list-item direction="column" v-for="(item,index) in matInfos" :key="index">
|
<template v-slot:body>
|
<view class="uni-list-box">
|
<view class="uni-content">
|
<view class="uni-title-sub uni-ellipsis-2">序号:{{index}}</view>
|
<view class="uni-title-sub uni-ellipsis-2">物料编号:{{item.mater_code}}</view>
|
<view class="uni-title-sub uni-ellipsis-2">物料名称:{{item.mater_name}}</view>
|
<view class="uni-title-sub uni-ellipsis-2">安规:{{item.safety}}</view>
|
<view class="uni-title-sub uni-ellipsis-2">产品条码:{{item.product_barcode}}</view>
|
</view>
|
</view>
|
</template>
|
</uni-list-item>
|
</uni-list>
|
</view>
|
|
</view>
|
<u-toast ref="uToast" />
|
</view>
|
</template>
|
|
<script>
|
export default {
|
data() {
|
return {
|
items: ['手动出库', '指定出库'],
|
current: 0,
|
stockInfo: [],
|
outItems: [],
|
outAddress: "",
|
pageNo: 1,
|
searchValue: "",
|
focus: false,
|
startpoint: "",
|
endpoint: "",
|
matInfos: [],
|
}
|
},
|
onLoad(res) {
|
this.getData();
|
},
|
onReachBottom() {
|
this.pageNo += 1;
|
this.getData();
|
},
|
methods: {
|
onClickItem(e) {
|
if (this.current !== e.currentIndex) {
|
this.current = e.currentIndex;
|
}
|
},
|
search() {
|
this.$nextTick(() => {
|
this.pageNo = 1;
|
this.getData();
|
})
|
},
|
getData() {
|
var postData = {
|
MainData: {
|
system: "KB",
|
matCode: this.searchValue
|
},
|
Extra: this.pageNo
|
}
|
this.$u.post('/api/VV_StockProduct/GetStockInfo', postData).then((res) => {
|
if (res.status) {
|
if (res.data) {
|
if (this.pageNo == 1) {
|
this.stockInfo = res.data;
|
} else {
|
this.stockInfo = this.stockInfo.concat(res.data);
|
}
|
} else {
|
this.$refs.uToast.show({
|
title: res.message,
|
});
|
}
|
} else {
|
this.stockInfo = [];
|
this.$refs.uToast.show({
|
title: res.message,
|
type: "error"
|
});
|
}
|
})
|
},
|
getMatInfo() {
|
this.$nextTick(() => {
|
if (this.startpoint != "") {
|
if (this.startpoint.length == 20) {
|
var postData = {
|
MainData: {
|
locationCode: this.startpoint
|
}
|
}
|
this.$u.post('/api/StockOperate/GetProductMatInfo', postData).then(res => {
|
if (res.status) {
|
this.matInfos = res.data;
|
this.focus = true;
|
} else {
|
this.$refs.uToast.show({
|
title: res.message,
|
type: "error"
|
});
|
return;
|
}
|
})
|
} else {
|
this.$refs.uToast.show({
|
title: "库位号扫描错误",
|
type: "error"
|
});
|
return;
|
}
|
}
|
})
|
},
|
manualOutbound() {
|
if (this.startpoint == "") {
|
this.$refs.uToast.show({
|
title: "请输入起始地址",
|
type: "error"
|
});
|
return;
|
}
|
if (this.endpoint == "") {
|
this.$refs.uToast.show({
|
title: "请输入出库地址",
|
type: "error"
|
});
|
return;
|
}
|
if (this.matInfos.length == 0) {
|
this.$refs.uToast.show({
|
title: "无库存信息",
|
type: "error"
|
});
|
return;
|
}
|
var postData = {
|
MainData: {
|
"locationCode": this.startpoint,
|
"endPoint": this.endpoint
|
},
|
}
|
this.$u.post('/api/Outbound/ProductOutboundByLocation', postData).then((res) => {
|
if (res.status) {
|
this.$refs.uToast.show({
|
title: "出库成功",
|
type: "success"
|
});
|
this.startpoint = "";
|
this.endPoint = "";
|
this.matInfos = [];
|
} else {
|
this.$refs.uToast.show({
|
title: "出库失败" + res.message,
|
type: "error"
|
});
|
}
|
})
|
},
|
outbound() {
|
if (this.outItems.length == 0) {
|
this.$refs.uToast.show({
|
title: "请选择要出库的数据",
|
type: "error"
|
});
|
return;
|
}
|
if (this.outItems.length > 1) {
|
this.$refs.uToast.show({
|
title: "请选择一条要出库的数据",
|
type: "error"
|
});
|
return;
|
}
|
if (this.outAddress == "") {
|
this.$refs.uToast.show({
|
title: "请输入出库地址",
|
type: "error"
|
});
|
return;
|
}
|
var postData = {
|
MainData: {
|
"locationCode": this.outItems[0].locationNo,
|
"endPoint": this.outAddress
|
},
|
}
|
|
this.$u.post('/api/Outbound/ProductOutboundByLocation', postData).then((res) => {
|
if (res.status) {
|
this.$refs.uToast.show({
|
title: "出库成功",
|
type: "success"
|
});
|
this.outAddress = "";
|
this.outItems = [];
|
this.stockInfo = [];
|
this.pageNo = 1;
|
this.search();
|
} else {
|
this.$refs.uToast.show({
|
title: "出库失败" + res.message,
|
type: "error"
|
});
|
}
|
})
|
},
|
click(e) {
|
if (this.outItems.find(x => x.barcode == e.barcode)) {
|
this.outItems.map((item, index) => {
|
if (item.barcode == e.barcode) {
|
this.outItems.splice(index, 1);
|
}
|
})
|
} else {
|
this.outItems.push(e);
|
}
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss">
|
@import '@/common/uni-ui.scss';
|
|
.content {
|
display: flex;
|
height: 150px;
|
}
|
|
.content-text {
|
font-size: 14px;
|
color: #666;
|
}
|
|
.footer {
|
// padding-top: 50%;
|
}
|
|
.footerxy {
|
width: 100%;
|
height: 140rpx;
|
text-align: center;
|
position: fixed;
|
/*1、【relative】相对定位;2、【absolute】绝对定位;3、【fixed】固定定位;4、【static】默认值;5、【sticky】粘性定位。*/
|
left: 0px;
|
/*定位:离页面左边0px的位置*/
|
bottom: 0px;
|
/*定位:离页面底部0px的位置*/
|
padding-top: 20rpx;
|
margin-left: 20px;
|
}
|
</style>
|