394 lines
13 KiB
Vue
394 lines
13 KiB
Vue
![]() |
<template>
|
|||
|
<view>
|
|||
|
<u-navbar back-text="返回" title="立库空托盘出库" :background="background"></u-navbar>
|
|||
|
<u-form ref="testForm">
|
|||
|
<u-form-item :border-bottom="false">
|
|||
|
<p>选单据:</p>
|
|||
|
<u-select v-model="dlistShow" mode="single-column" value-name="id" :list="dlist" @confirm="selConfirm" confirm-text="确认选择" />
|
|||
|
<u-input :border="true" v-model="ReceiveRequestName" placeholder="请选择单据" :focus="focusReceiveRequest"
|
|||
|
@confirm="checkReceiveRequest" style="background: #ffffff; margin-right: 10rpx" />
|
|||
|
<u-button @click="selectReceiveRequest" type="primary" size = "mini">选择单号</u-button>
|
|||
|
|
|||
|
</u-form-item>
|
|||
|
<u-form-item :border-bottom="false">
|
|||
|
<p>选托盘:</p>
|
|||
|
<u-select v-model="dlistShow" mode="single-column" value-name="id" :list="dlist" @confirm="selConfirm" confirm-text="确认选择" />
|
|||
|
<u-input :border="true" v-model="ReceiveRequestName" placeholder="请选择托盘" :focus="focusReceiveRequest"
|
|||
|
@confirm="checkReceiveRequest" style="background: #ffffff; margin-right: 10rpx" />
|
|||
|
<u-button @click="selectReceiveRequest" type="primary" size = "mini">选择托盘</u-button>
|
|||
|
|
|||
|
</u-form-item>
|
|||
|
|
|||
|
<!--<u-form-item :border-bottom="false">
|
|||
|
|
|||
|
<picker @change="bindPickerChange" :range="array">
|
|||
|
<label>选择行:</label>
|
|||
|
<label class="">{{array[index]}}</label>
|
|||
|
<br/>
|
|||
|
<label>物料属性:</label>
|
|||
|
<label class="">XXXX </label>
|
|||
|
<label> 物料规格:</label>
|
|||
|
<label class="">XXXX</label>
|
|||
|
<!-- <u-row>
|
|||
|
<u-col span="4"><label>选择行:</label> </u-col >
|
|||
|
<u-col span="8"><label class="">{{array[index]}}</label> </u-col >
|
|||
|
</u-row> -->
|
|||
|
<!--</picker>
|
|||
|
</u-form-item>-->
|
|||
|
<!--<u-form-item :border-bottom="false">
|
|||
|
<u-row>
|
|||
|
<u-col span="6"><label>制造日期:</label> </u-col >
|
|||
|
<u-col span="13">
|
|||
|
<picker mode="date" :end="endDate"@change="bindDateChange">
|
|||
|
<label class="">{{date}}</label>
|
|||
|
</picker>
|
|||
|
</u-col >
|
|||
|
</u-row>
|
|||
|
</u-form-item>-->
|
|||
|
<!--<u-form-item :border-bottom="false">
|
|||
|
<p>目的地:</p>
|
|||
|
<u-select v-model="dlistShow" mode="single-column" value-name="id" :list="dlist" @confirm="selConfirm" confirm-text="确认选择" />
|
|||
|
<u-input :border="true" v-model="ReceiveRequestName" placeholder="请选目的地" :focus="focusReceiveRequest"
|
|||
|
@confirm="checkReceiveRequest" style="background: #ffffff; margin-right: 10rpx" />
|
|||
|
<u-button @click="selectReceiveRequest" type="primary" size = "mini">选目的地</u-button>
|
|||
|
</u-form-item>-->
|
|||
|
<!--<u-form-item :border-bottom="false">
|
|||
|
<label>库位选择:</label>
|
|||
|
<u-input :border="true" v-model="ReceiveRequestName" placeholder="请选择库位" :focus="focusReceiveRequest"
|
|||
|
@confirm="checkReceiveRequest" style="background: #ffffff; margin-right: 10rpx" />
|
|||
|
<!--<label>{{description}}</label>-->
|
|||
|
<!-- <u-row>
|
|||
|
<u-col span="3"><label>物料描述:</label></u-col >
|
|||
|
<u-col span="9"><label>{{description}}</label></u-col >
|
|||
|
</u-row> -->
|
|||
|
<!--</u-form-item>-->
|
|||
|
|
|||
|
<!--<u-form-item :border-bottom="false">
|
|||
|
<u-row>
|
|||
|
<u-col >
|
|||
|
<p>条码:</p>
|
|||
|
<u-input :border="true" v-model="ReceiveRequestName" placeholder="请选择单据" :focus="focusReceiveRequest"
|
|||
|
@confirm="checkReceiveRequest" style="background: #ffffff; margin-right: 10rpx" />
|
|||
|
</u-col>
|
|||
|
<u-col >
|
|||
|
<u-input
|
|||
|
:border="true" v-model="palletName" placeholder="请扫描供应商条码" :focus="focusPalletName"
|
|||
|
style="background: #ffffff;width: 100%;"/>
|
|||
|
</u-col>
|
|||
|
</u-row>
|
|||
|
</u-form-item>-->
|
|||
|
<!--<u-card style="border: 1rpx solid #0081ff" :show-head="false" :full="true" :body-style="{ height: '100rpx' }">
|
|||
|
<view slot="body">
|
|||
|
<u-row>
|
|||
|
<u-col span="6">
|
|||
|
<view>应扫数量:{{ PLAN_QTY || '0' }}</view>
|
|||
|
</u-col>
|
|||
|
<u-col span="6">
|
|||
|
<view>扫码数量:{{ PRTBARCODEQTY || '0' }}</view>
|
|||
|
</u-col>
|
|||
|
</u-row>
|
|||
|
</view>
|
|||
|
</u-card>-->
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!--<u-form-item :border-bottom="false">
|
|||
|
<u-row>
|
|||
|
<u-col span="4">
|
|||
|
<p>包装数量:</p>
|
|||
|
</u-col>
|
|||
|
<u-col span="8">
|
|||
|
<u-input
|
|||
|
:border="true" v-model="BOX_QTY" placeholder="请填写数量" @confirm="CreateBarCodeInfo" :focus = "focusBoxQty"
|
|||
|
style="background: #ffffff; "/>
|
|||
|
</u-col>
|
|||
|
</u-row>
|
|||
|
</u-form-item>-->
|
|||
|
</u-form>
|
|||
|
|
|||
|
<uni-table ref="BoxList" :loading="loading" border stripe type="false">
|
|||
|
<uni-tr>
|
|||
|
<uni-th align="center">栈板号</uni-th>
|
|||
|
<uni-th align="center">供应商条码</uni-th>
|
|||
|
<uni-th align="center">物料号</uni-th>
|
|||
|
<uni-th align="center">物料描述</uni-th>
|
|||
|
<uni-th align="center">批号</uni-th>
|
|||
|
<uni-th align="center">数量</uni-th>
|
|||
|
<uni-th align="center">是否质检</uni-th>
|
|||
|
</uni-tr>
|
|||
|
<uni-tr v-for="(item, index) in BoxListInfo" :key="index" ><!-- :style="getStyle(index)"--><!--:style="{ backgroundColor: item.color === 0 ? 'white' : 'blue' }" -->
|
|||
|
<uni-td align="center">{{ item.MATERIALPACKING}}</uni-td>
|
|||
|
<uni-td align="center">{{ item.SOURCESN}}</uni-td>
|
|||
|
<uni-td align="center">{{ item.MATERIALSPECNAME }}</uni-td>
|
|||
|
<uni-td align="center">{{ item.DESCRIPTION }}</uni-td>
|
|||
|
<uni-td align="center">{{ item.CHARGE }}</uni-td>
|
|||
|
<uni-td align="center">{{ item.QTY }}</uni-td>
|
|||
|
<uni-td align="center">{{ item.IQCFLAG }}</uni-td>
|
|||
|
</uni-tr>
|
|||
|
</uni-table>
|
|||
|
<u-button @click="GenerateBox" style="background: #0081ff; color: #ffffff">确认出库</u-button>
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
import {
|
|||
|
print
|
|||
|
} from '../../../../common/BluetoothPrint.js';
|
|||
|
export default {
|
|||
|
data() {
|
|||
|
return {
|
|||
|
array : ['请选择物料行号'],
|
|||
|
background: {
|
|||
|
backgroundImage: 'linear-gradient(45deg, rgb(28, 187, 180), rgb(141, 198, 63))'
|
|||
|
},
|
|||
|
date: this.getDate(),
|
|||
|
index : 0,
|
|||
|
PLAN_QTY : 0,
|
|||
|
PRTBARCODEQTY : 0,
|
|||
|
BOX_QTY : "",
|
|||
|
palletName : "",
|
|||
|
focusPalletName : false,
|
|||
|
ReceiveRequestName : "",
|
|||
|
focusReceiveRequest : "",
|
|||
|
dlist: [], //选择内容
|
|||
|
dlistShow: false, //是否显示选择框
|
|||
|
description : "描述",
|
|||
|
loading : false,
|
|||
|
BoxListInfo : [],
|
|||
|
jg : "",
|
|||
|
zpl : "",
|
|||
|
focusBoxQty : false,
|
|||
|
rangedata: [],
|
|||
|
}
|
|||
|
},
|
|||
|
created() {
|
|||
|
//挂载页面的时候就查询下拉框的数据,这是无参请求所以没参数
|
|||
|
this.$MyRequest('/split/getbluetoothprinter', {}, 'GET').then(res => {
|
|||
|
if (res.data.success) {
|
|||
|
this.rangedata = res.data.resultObj //接数据,是一个对象数组
|
|||
|
this.show = true //设置为true展示picker组件
|
|||
|
} else {
|
|||
|
console.log(this.data.message)
|
|||
|
}
|
|||
|
}).catch(err => {
|
|||
|
this.$showMessage(err)
|
|||
|
});
|
|||
|
let that = this
|
|||
|
uni.getStorage({
|
|||
|
key: "sitename",
|
|||
|
success(res) {
|
|||
|
that.siteName = res.data
|
|||
|
}
|
|||
|
})
|
|||
|
uni.getStorage({
|
|||
|
key: "userid",
|
|||
|
success(res) {
|
|||
|
that.userId = res.data
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
computed:{
|
|||
|
endDate(){
|
|||
|
return this.getDate();
|
|||
|
}
|
|||
|
},
|
|||
|
methods: {
|
|||
|
selConfirm(e) {
|
|||
|
this.ReceiveRequestName = e[0].value;
|
|||
|
this.checkReceiveRequest();
|
|||
|
},
|
|||
|
|
|||
|
bindPickerChange: function(e) {//改变的事件名
|
|||
|
console.log('picker发送选择改变,携带值为', e.target.value) // 用于输出改变索引值
|
|||
|
this.index = e.target.value//将数组改变索引赋给定义的index变量
|
|||
|
this.jg=this.array[this.index]//将array【改变索引】的值赋给定义的jg变量
|
|||
|
this.$MyRequest('/barCode/getSLInfo', {
|
|||
|
ReceiveRequestName: this.jg
|
|||
|
}).then(res => {
|
|||
|
if (res.data.success) {
|
|||
|
var _Arr = res.data.resultObj;
|
|||
|
for (let i = 0; i < _Arr.length; ++ i) {
|
|||
|
this.description = _Arr[i]['DESCRIPTION'];
|
|||
|
this.PLAN_QTY = _Arr[i]['PLAN_QTY'];
|
|||
|
this.PRTBARCODEQTY = _Arr[i]['PRTBARCODEQTY'];
|
|||
|
}
|
|||
|
}
|
|||
|
}).catch(err => {
|
|||
|
this.$showMessage(err)
|
|||
|
})
|
|||
|
},
|
|||
|
getDate() {
|
|||
|
const date = new Date();
|
|||
|
let year = date.getFullYear();
|
|||
|
let month = date.getMonth() + 1;
|
|||
|
let day = date.getDate();
|
|||
|
month = month > 9 ? month : '0' + month;
|
|||
|
day = day > 9 ? day : '0' + day;
|
|||
|
return `${year}-${month}-${day}`;
|
|||
|
},
|
|||
|
bindDateChange: function(e) {
|
|||
|
this.date = e.detail.value;
|
|||
|
},
|
|||
|
//查找代打条码的领料单集合
|
|||
|
selectReceiveRequest () {
|
|||
|
this.dlist = [];
|
|||
|
this.BoxListInfo = [];
|
|||
|
this.$MyRequest('/barCode/getSLList', {
|
|||
|
ReceiveRequestName: this.ReceiveRequestName
|
|||
|
}).then(res => {
|
|||
|
console.log(res.data)
|
|||
|
if (res.data.success) {
|
|||
|
console.log(res.data.resultObj.length)
|
|||
|
for (var i = 0; i <= res.data.resultObj.length; i++) {
|
|||
|
console.log(res.data.resultObj[i].RECEIVEREQUESTNAME)
|
|||
|
this.dlist.push({
|
|||
|
id: res.data.resultObj[i].RECEIVEREQUESTNAME,
|
|||
|
label: res.data.resultObj[i].RECEIVEREQUESTNAME
|
|||
|
});
|
|||
|
console.log(this.dlist);
|
|||
|
this.dlistShow = true;
|
|||
|
this.checkReceiveRequest();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}).catch(err => {
|
|||
|
this.$showMessage(err)
|
|||
|
})
|
|||
|
},
|
|||
|
checkReceiveRequest () {
|
|||
|
this.resetValue();
|
|||
|
this.$MyRequest('/barCode/getSLCBM', {
|
|||
|
ReceiveRequestName: this.ReceiveRequestName
|
|||
|
}).then(res => {
|
|||
|
if (res.data.success) {
|
|||
|
var _Arr = res.data.resultObj;
|
|||
|
for (let i = 0; i < _Arr.length; ++ i) {
|
|||
|
console.log(_Arr[i])
|
|||
|
this.array [i] = _Arr[i]['WL'];
|
|||
|
}
|
|||
|
}
|
|||
|
this.focusBarCode = true
|
|||
|
this.focusReceiveRequest = false
|
|||
|
}).catch(err => {
|
|||
|
this.$showMessage(err)
|
|||
|
})
|
|||
|
},
|
|||
|
//创建条码信息
|
|||
|
CreateBarCodeInfo () {
|
|||
|
if (Number(this.PRTBARCODEQTY) + Number(this.BOX_QTY) > Number(this.PLAN_QTY)) {
|
|||
|
this.$showMessage("可打码数量不足")
|
|||
|
return;
|
|||
|
}
|
|||
|
this.PRTBARCODEQTY = Number(this.PRTBARCODEQTY) + Number(this.BOX_QTY);
|
|||
|
this.$MyRequest('/barCode/CreateBarCodeInfo', {
|
|||
|
ReceiveRequestName: this.jg,//单号
|
|||
|
palletName: this.palletName,
|
|||
|
makeDate: this.date,
|
|||
|
qty: this.BOX_QTY
|
|||
|
}).then(res => {
|
|||
|
console.log(res.data.success)
|
|||
|
if (res.data.success) {
|
|||
|
var _Arr = res.data.resultObj;
|
|||
|
console.log(_Arr)
|
|||
|
this.BoxListInfo.push(_Arr[0]);
|
|||
|
console.log("***********************")
|
|||
|
console.log(this.BoxListInfo)
|
|||
|
}
|
|||
|
this.focusBarCode = true
|
|||
|
this.focusReceiveRequest = false
|
|||
|
}).catch(err => {
|
|||
|
this.$showMessage(err)
|
|||
|
})
|
|||
|
this.BOX_QTY = "";
|
|||
|
this.focusBoxQty = true;
|
|||
|
},
|
|||
|
|
|||
|
GenerateBox () {
|
|||
|
let macaddress = this.rangedata[0].ENUMVALUE
|
|||
|
this.$MyRequest('/barCode/getZICOXCPCL', {
|
|||
|
info : this.BoxListInfo
|
|||
|
}).then(res => {
|
|||
|
if (res.data.success) {
|
|||
|
this.zpl = res.data.resultObj[0]['LABELSTRING'].toString();
|
|||
|
console.log(this.zpl)
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
}).catch(err => {
|
|||
|
this.$showMessage(err)
|
|||
|
})
|
|||
|
for (let i = 0; i < this.BoxListInfo.length; ++ i) {
|
|||
|
let _zpl = '! 0 200 200 400 1\n' +
|
|||
|
'PAGE-WIDTH 560\n' +
|
|||
|
/* 'PW 848\n' + */
|
|||
|
'TONE 0\n' +
|
|||
|
'SPEED 0\n' +
|
|||
|
'GAP-SENSE\n' +
|
|||
|
'NO-PACE\n' +
|
|||
|
'POSTFEED 0\n' +
|
|||
|
'LEFT\n' +
|
|||
|
'T 65 1 20 20 物料编码:\n' +
|
|||
|
'SETBOLD 2\n' +
|
|||
|
'T 65 1 135 20 ' + this.BoxListInfo[i]['MATERIALSPECNAME'] + '\n' +
|
|||
|
'SETBOLD 0\n' +
|
|||
|
'T 65 1 20 50 客供料号:\n' +
|
|||
|
'T 65 1 135 50 ' + this.BoxListInfo[i]['FK_TWH_NUMBER'] + '\n' +
|
|||
|
|
|||
|
'T 65 0 20 80 物料名称:\n' +
|
|||
|
'T 65 1 135 80 ' + this.BoxListInfo[i]['DESCRIPTION'] + '\n' +
|
|||
|
|
|||
|
'T 65 0 20 110 SN:\n' +
|
|||
|
'T 65 1 135 110 ' + this.BoxListInfo[i]['MATERIALPACKING'] + '\n' +
|
|||
|
|
|||
|
|
|||
|
'T 65 0 20 140 客户S/N:\n' +
|
|||
|
'T 65 1 135 140 ' + this.BoxListInfo[i]["SOURCESN"] + '\n' +
|
|||
|
|
|||
|
'T 65 0 20 170 供应商:\n' +
|
|||
|
'T 65 1 135 170 ' + this.BoxListInfo[i]["SUPPLIERNAME"] + '\n' +
|
|||
|
|
|||
|
|
|||
|
|
|||
|
'T 65 0 20 200 批次:\n' +
|
|||
|
'T 65 1 135 200 ' + this.BoxListInfo[i]["CHARGE"] + '\n' +
|
|||
|
|
|||
|
|
|||
|
'T 65 0 20 230 收料日期:\n' +
|
|||
|
'T 65 1 135 230 ' + this.BoxListInfo[i]['SLDATE'] + '\n' +
|
|||
|
|
|||
|
'T 65 0 20 260 数量:\n' +
|
|||
|
'T 65 1 135 260 ' + this.BoxListInfo[i]['QTY'] + '\n' +
|
|||
|
|
|||
|
'SETBOLD 2\n' +
|
|||
|
'SETBOLD 0\n' +
|
|||
|
'B QR 400 230 M 6 U 3\n' +
|
|||
|
'MA,' + this.BoxListInfo[i]['MATERIALPACKING'] + '\n' +
|
|||
|
'ENDQR\n' +
|
|||
|
/* 'B 128 2 1 50 50 560 ' + this.barCode + '\n' +
|
|||
|
'T 65 1 200 620 ' + this.barCode + '\n' + */
|
|||
|
'FORM\n' +
|
|||
|
'PRINT\n';
|
|||
|
console.log(_zpl);
|
|||
|
print(macaddress, _zpl);
|
|||
|
}
|
|||
|
this.BoxListInfo = []
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
resetValue () {
|
|||
|
this.palletName = "";
|
|||
|
this.BOX_QTY = "";
|
|||
|
this.BoxListInfo = [];
|
|||
|
this.PLAN_QTY = 0;
|
|||
|
this.PRTBARCODEQTY = 0;
|
|||
|
this.description = "";
|
|||
|
this.array = [];
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style>
|
|||
|
|
|||
|
</style>
|