Files
赵正易 cd75143f27 1231
2024-04-20 11:14:41 +08:00

288 lines
6.7 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="content">
<view class="title-box">
<!-- <span class="title-text">盘点</span> -->
<view class="warehoseInfo-box">
<view class="row">
<span class="col">标签数量</span>
<span class="col">{{ packageInfo.goodsNumLogic }}</span>
</view>
<view class="row">
<span class="col">实际数量</span>
<span class="col"><input class="changeInput" type="number" v-model="packageInfo.goodsNumAction" /></span>
</view>
<!-- <view class="row">
<span class="col">已扫货物数{{ quantityTotal }}</span>
<span class="col">已扫箱数{{ newMaterialList.length }}</span>
</view> -->
<view>
<view v-if="searchType === 2" class="color2 aciton-box">操作指示-请扫货物码</view>
<!-- 扫描操作 -->
<view class="pda-search-box">
<PdaScanInput @getInfo="handleGetInfo" :type="searchType" :hasFocus="false"></PdaScanInput>
</view>
</view>
</view>
</view>
<!-- 货物列表 -->
<view class="scroll-view-box">
<view class="scroll-view-title">盘点清单</view>
<packageCard v-if="newMaterialList.length > 0" :packageInfo="newMaterialList[newMaterialList.length - 1]"></packageCard>
</view>
<!-- 底部按钮 -->
<view class="button-box">
<button style="width: 40%" type="default" @click="clear">清空</button>
<button style="width: 40%" type="default" @click="handlerSubmit">盘点</button>
</view>
</view>
</template>
<script>
import materialItem from '@/components/material-item/material-item.vue';
import packageCard from '@/components/package-card/package-card.vue';
import * as WarehoseApi from '@/api/warehouse/warehose.js';
import * as GoodsNowApi from '@/api/warehouse/wmGoodsNowProduction.js';
// 盘点
export default {
components: {
materialItem,
packageCard
},
data() {
return {
loading: false,
// 双击判定
touchNum: 0,
clearData: {},
// 货物信息
packageInfo: {
// id
id: '',
// 工单号
workoderID: '',
// 批次号(工单号+箱号+班组)
patchCode: '',
// 零件号
partNumner: '',
// 标签数量
goodsNumLogic: 0,
// 盘点数量(实际)
goodsNumAction: 0,
// 描述
productionDescribe: '',
// 出厂日期/生产日期
productionTime: '',
// 此箱数量
quantity: 0
},
// 新录入货物信息
newMaterialList: [],
// 1-仓库扫码 2-货物扫码 3-出货单扫码
searchType: 2
};
},
watch: {},
created() {
this.init();
},
computed: {
quantityTotal() {
let num = 0;
for (let index = 0; index < this.newMaterialList.length; index++) {
let _num = parseInt(this.newMaterialList[index].quantity);
_num = _num || 0;
num += _num * 1;
}
return num;
}
},
methods: {
init() {
// 需要展示的参数:【零件号[物料号](35233201041) 描述(鲨鱼鳍) 箱号+班组(BNW240312023_18B1) 数量 时间 】
// 初始化,并且清空数据
this.clearData.packageInfo = JSON.parse(JSON.stringify(this.packageInfo));
this.clearData.newMaterialList = JSON.parse(JSON.stringify(this.newMaterialList));
this.searchType = 2;
},
clear() {
this.packageInfo = JSON.parse(JSON.stringify(this.clearData.packageInfo));
this.newMaterialList = JSON.parse(JSON.stringify(this.clearData.newMaterialList));
this.searchType = 2;
},
// 扫码信息录入
handleGetInfo(data, type) {
if (type === 2) {
// 此时扫描的是箱号
if (this.newMaterialList.length > 1) {
uni.showModal({
title: '提示',
content: '盘点仅支持单个货物盘点',
showCancel: false,
confirmText: '确定'
});
return;
}
const checkData = {
originalCode: data.originalCode
};
// 是否在库
WarehoseApi.isExistedWarehouse(checkData).then((res) => {
if (res.code !== 200 || !res.data) {
uni.showModal({
title: '提示',
content: '货物异常或未入库!',
showCancel: false,
confirmText: '确定'
});
return;
}
this.newMaterialList.push(data);
const searchInfoData = {
patchCode: data.patchCode
};
// 获取成品库内信息
WarehoseApi.getInfoByPatchCode(searchInfoData).then((res) => {
if (res.code === 200) {
this.packageInfo = res.data;
} else {
uni.showModal({
title: '提示',
content: '货物数据异常',
showCancel: false,
confirmText: '确定'
});
return;
}
});
});
}
},
// 点击盘点
handlerSubmit() {
uni.showModal({
title: '操作',
content: '是否确认此修改',
showCancel: true,
cancelText: '取消',
confirmText: '盘点完成',
success: (res) => {
if (res.confirm) {
//TODO 修改实际库存
let data = {
id: this.packageInfo.id,
goodsNumAction: this.packageInfo.goodsNumAction
};
GoodsNowApi.updateWmGoodsNowProduction(data).then((res) => {
if (res.code === 200) {
uni.showModal({
title: '提示',
content: '盘点已完成',
showCancel: false,
confirmText: '确认'
});
this.clear();
} else {
uni.showToast({
icon: 'error',
title: '盘点失败!'
});
}
});
}
}
});
}
}
};
</script>
<style scoped>
.title-box {
margin-top: 54px;
margin-bottom: 20px;
height: 60px;
font-size: 26px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.warehoseInfo-box {
font-size: 20px;
width: 94%;
margin: 0 auto;
padding-left: 10px;
padding-right: 10px;
background-color: aliceblue;
border-radius: 10px;
display: flex;
flex-direction: column;
}
.warehoseInfo-box .row {
display: flex;
flex-direction: row;
}
.warehoseInfo-box .row .col {
width: 50%;
}
.aciton-box {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.color1 {
color: yellowgreen;
}
.color2 {
color: orange;
}
.pda-search-box {
margin-bottom: 5px;
}
.list-box {
width: 100%;
}
.scroll-view-title {
font-size: 24px;
display: flex;
align-items: center;
justify-content: center;
}
.scroll-view-box {
width: 94%;
margin: 0 auto;
margin-top: 50px;
height: 360px;
padding: 10px;
background-color: rgba(179, 179, 179, 0.7);
border-radius: 5px;
}
.scroll-view-last {
width: 100%;
height: 60px;
font-size: 20px;
color: rgba(0, 9, 0, 0.7);
display: flex;
flex-direction: column;
justify-content: center;
margin-top: 10px;
padding-left: 10px;
padding-right: 10px;
border-radius: 10px;
background-color: white;
}
.button-box {
width: 80%;
margin: 10px auto;
display: flex;
flex-direction: row;
}
.changeInput {
font-size: 20px;
background-color: gainsboro;
border:1px solid grey;
}
</style>