<template>
|
<view>
|
<view class="nav_item form-container">
|
<form :modelValue="scanFormData">
|
<view class="form-group">
|
<label class="form-label">工单单号:</label>
|
<superwei-combox :candidates="filteredOptions" placeholder="请选择工单单号"
|
v-model="scanFormData.daa001"
|
@select="onDaa001Change"
|
class="picker form-input"
|
style="border: none;"></superwei-combox>
|
</view>
|
<view class="form-group">
|
<label class="form-label">产品型号:</label>
|
<input class="form-input" disabled="true" type="text" v-model="scanFormData.itemModel"/>
|
</view>
|
<view class="form-group">
|
<label class="form-label">物料条码:</label>
|
<input class="form-input" placeholder="请扫描物料条码" type="text"
|
v-model="scanFormData.barcode"/>
|
</view>
|
<view class="form-group">
|
<label class="form-label">条码数量:</label>
|
<input class="form-input" disabled="true" type="text" v-model="scanFormData.barcodeQuantity"/>
|
</view>
|
<view class="form-group">
|
<label class="form-label">发料数量:</label>
|
<input class="form-input" type="number" v-model="scanFormData.quantity"/>
|
</view>
|
</form>
|
</view>
|
|
<view class="list-container">
|
<uni-table ref="table" border emptyText="暂无更多数据">
|
<uni-tr>
|
<uni-th align="center" class="th" style="color: #FFFFFF;">物料名称</uni-th>
|
<uni-th align="center" class="th" style="color: #FFFFFF">物料编码</uni-th>
|
<uni-th align="center" class="th" style="color: #FFFFFF">待发数量</uni-th>
|
<uni-th align="center" class="th" style="color: #FFFFFF">需领数量</uni-th>
|
<uni-th align="center" class="th" style="color: #FFFFFF">已领数量</uni-th>
|
<uni-th align="center" class="th" style="color: #FFFFFF">材料编码</uni-th>
|
</uni-tr>
|
<uni-tr v-for="(item, index) in table" :key="index">
|
<uni-td align="center">
|
<input class="form-input" disabled="true" type="text" v-model="item.itemName"/>
|
</uni-td>
|
<uni-td align="center">
|
<input class="form-input" disabled="true" type="text" v-model="item.itemNo"/>
|
</uni-td>
|
<uni-td>
|
<input class="form-input" disabled="true" type="text" v-model="item.wNum"/>
|
</uni-td>
|
<uni-td>
|
<input class="form-input" disabled="true" type="text" v-model="item.dab006"/>
|
</uni-td>
|
<uni-td>
|
<input class="form-input" disabled="true" type="text" v-model="item.dab007"/>
|
</uni-td>
|
<uni-td>
|
<input class="form-input" disabled="true" type="text" v-model="item.dab003"/>
|
</uni-td>
|
</uni-tr>
|
</uni-table>
|
</view>
|
|
<view class="plus-button">
|
<button type="warn" @click="SaveBarCodes">保存</button>
|
</view>
|
|
</view>
|
</template>
|
|
<script>
|
import {
|
broadcastScan
|
} from '@/utils/scanCode.js';
|
|
export default {
|
data() {
|
return {
|
scanFormData: {
|
daa001: '', // Initialize with empty strings or default values
|
itemModel: '',
|
barcode: '',
|
barcodeQuantity: '',
|
quantity: null,
|
},
|
searchQuery: '',
|
filteredOptions: [],
|
table: []
|
}
|
},
|
methods: {
|
onDaa001Change(event) {
|
this.scanFormData.daa001 = event;
|
this.getItem();
|
},
|
SaveBarCodes() {
|
if (!this.scanFormData.daa001) {
|
this.$showMessage("请选择工单");
|
return;
|
}
|
|
if (!this.scanFormData.barcode) {
|
this.$showMessage("请输入或扫描条码");
|
return;
|
}
|
|
if (!this.scanFormData.quantity && this.scanFormData.quantity <= 0) {
|
this.$showMessage("请输入正确的发料数量");
|
return;
|
}
|
|
let userName = this.$loginInfo.account;
|
|
this.$post({
|
url: "/MesInvItemBarcodes/ProdPickItem3",
|
data: {
|
userName: userName,
|
barcode: this.scanFormData.barcode,
|
daa001: this.scanFormData.daa001,
|
num: this.scanFormData.quantity
|
}
|
}).then(res => {
|
if (res.data.tbBillList == "001") {
|
this.getItem();
|
this.scanFormData.barcode = null;
|
this.scanFormData.barcodeQuantity = null;
|
this.scanFormData.quantity = null;
|
this.$showMessage("保存成功");
|
}
|
});
|
},
|
getItem() {
|
this.$post({
|
url: "/Womdaa/GetItemsByDaa001",
|
data: {
|
daa001: this.scanFormData.daa001,
|
}
|
}).then(res => {
|
this.scanFormData.itemModel = res.data.tbBillList.itemModel;
|
this.table = res.data.tbBillList.womdabs;
|
console.log(res);
|
});
|
},
|
init() {
|
this.$post({
|
url: '/Womdaa/GetProductionPickDaa001',
|
data: {
|
daa001: this.searchQuery,
|
}
|
}).then(res => {
|
this.filteredOptions = res.data.tbBillList;
|
})
|
},
|
getScanCode(code) {
|
let parseData = code.trim();
|
console.log('自定义扫描的结果回调函数:' + parseData);
|
this.scanFormData.barcode = parseData;
|
this.getBarCode();
|
},
|
getBarCode() {
|
this.$post({
|
url: "/MesInvItemBarcodes/GetBarCodesQuan",
|
data: {
|
daa001: this.scanFormData.daa001,
|
barcode: this.scanFormData.barcode
|
}
|
}).then(res => {
|
this.scanFormData.barcodeQuantity = res.data.tbBillList;
|
});
|
},
|
// 主动触发扫描
|
openScan() {
|
broadcastScan.triggerScan();
|
}
|
},
|
// onLoad 是在页面加载时触发,用于页面的初始化操作,只执行一次
|
onLoad() {
|
// init传入一个回调函数做参数,在扫描时候会将数据传入此方法里,然后处理此方法的自定义业务逻辑
|
broadcastScan.init(this.getScanCode);
|
|
this.init();
|
},
|
onUnload() {
|
broadcastScan.stop();
|
},
|
// 在页面展示时触发,用于处理页面显示相关的逻辑,可能会多次执行,包括页面首次展示和从后台切换到前台时
|
onShow() {
|
broadcastScan.start();
|
},
|
onHide() {
|
broadcastScan.stop();
|
},
|
}
|
</script>
|
|
<style>
|
.form-group {
|
display: flex;
|
align-items: center;
|
border-bottom: 1px solid #c9c9c9;
|
}
|
|
.form-label {
|
margin-bottom: 0;
|
padding: 5px;
|
}
|
|
.form-input {
|
flex: 1;
|
margin-bottom: 0;
|
padding: 5px;
|
}
|
|
.picker {
|
flex: 1;
|
margin-bottom: 0;
|
padding: 5px;
|
font-size: 12px;
|
}
|
|
/* 默认样式 */
|
.list-container {
|
height: 60vh;
|
/* 设置列表容器的高度为剩余空间,并减去表单容器的高度 */
|
overflow-y: auto;
|
/* 允许列表容器垂直滚动 */
|
padding: 10px;
|
/* 可选:添加一些内边距,使列表内容更美观 */
|
}
|
|
/* 在小屏幕设备上,重置高度为适应屏幕 */
|
@media (max-width: 768px) {
|
.list-container {
|
height: calc(100vh - 320px);
|
/* 适当调整高度 */
|
}
|
}
|
|
.form-container {
|
padding: 10px;
|
/* 可选:添加一些内边距,使表单内容更美观 */
|
}
|
|
.th {
|
background-color: lightskyblue;
|
color: #FFFFFF;
|
}
|
|
.plus-button {
|
line-height: 59px;
|
font-size: 24px;
|
cursor: pointer;
|
z-index: 1000;
|
margin-bottom: 10px;
|
}
|
</style>
|