优化代码,改进电子标签打印界面
This commit is contained in:
parent
9013364d84
commit
bf7f97d90a
|
|
@ -358,6 +358,8 @@ http://{ip}:{port}?taskId={taskId}
|
||||||
>
|
>
|
||||||
> 接口地址:/api/pub/task/addEtagTask
|
> 接口地址:/api/pub/task/addEtagTask
|
||||||
|
|
||||||
|
**使用说明:**WCS不会合并同货位的任务数量,如需合并捡选请合并后发送给WCS
|
||||||
|
|
||||||
**请求参数:**
|
**请求参数:**
|
||||||
|
|
||||||
| 键 | 键名称 | 数据类型 | 长度 | 是否必填 | 备注 |
|
| 键 | 键名称 | 数据类型 | 长度 | 是否必填 | 备注 |
|
||||||
|
|
@ -365,20 +367,20 @@ http://{ip}:{port}?taskId={taskId}
|
||||||
| taskGroup | 任务组 | string | 64 | N | |
|
| taskGroup | 任务组 | string | 64 | N | |
|
||||||
| taskType | 任务类型 | int | | Y | 枚举类型:<br />1 - 捡货<br />2 - 上架<br />3 - 盘点<br />4 - 清点<br />5 - 其他 |
|
| taskType | 任务类型 | int | | Y | 枚举类型:<br />1 - 捡货<br />2 - 上架<br />3 - 盘点<br />4 - 清点<br />5 - 其他 |
|
||||||
| vehicleNo | 载具号 | string | 64 | Y | |
|
| vehicleNo | 载具号 | string | 64 | Y | |
|
||||||
| lightModel | 点亮类型 | int | | Y | 枚举类型:<br />1 - 立即点亮<br />2 - 等待触发<br /><span style="color:#f455ee">根据流程确定,请与我们交流方案</span> |
|
| lightModel | 点亮类型 | int | | N | 枚举类型:<br />1 - 立即点亮<br />2 - 等待触发<br /><span style="color:#f455ee">根据流程确定,请与我们交流方案,不传或传空视为立即点亮</span> |
|
||||||
| sysName | 上位系统名称 | string | 32 | Y | 固定值,请联系我们获取,否则将无法收到任务回告 |
|
| sysName | 上位系统名称 | string | 32 | Y | 固定值,请联系我们获取,否则将无法收到任务回告 |
|
||||||
| taskList | 任务数据 | list | | Y | |
|
| taskList | 任务数据 | list | | Y | |
|
||||||
|
|
||||||
taskList:<span style="color:#f455ee">若任务中存在一个有问题,则所有任务都会判定失败</span>
|
taskList:<span style="color:#f455ee">若任务中存在一个有问题,则所有任务都会判定失败</span>
|
||||||
|
|
||||||
| 键 | 键名称 | 数据类型 | 长度 | 是否必填 | 备注 |
|
| 键 | 键名称 | 数据类型 | 长度 | 是否必填 | 备注 |
|
||||||
| --------- | -------- | -------- | ---- | -------- | -------- |
|
| --------- | -------- | -------- | ---- | -------- | ------------------ |
|
||||||
| taskId | 任务号 | string | 64 | Y | 唯一标识 |
|
| taskId | 任务号 | string | 64 | Y | 唯一标识 |
|
||||||
| orderId | 订单号 | string | 64 | N | |
|
| orderId | 订单号 | string | 64 | N | 备选字段 |
|
||||||
| location | 点位 | string | 64 | Y | |
|
| location | 点位 | string | 64 | Y | 需要点亮的点位 |
|
||||||
| goodsId | 物料编号 | string | 64 | N | |
|
| goodsId | 物料编号 | string | 64 | N | 中文标签时可能需要 |
|
||||||
| goodsName | 物料名称 | string | 64 | N | |
|
| goodsName | 物料名称 | string | 64 | N | 中文标签时可能需要 |
|
||||||
| lightNum | 点亮数量 | int | | Y | |
|
| lightNum | 点亮数量 | int | | Y | 点亮的数量 |
|
||||||
|
|
||||||
**请求示例:**
|
**请求示例:**
|
||||||
|
|
||||||
|
|
@ -386,6 +388,7 @@ taskList:<span style="color:#f455ee">若任务中存在一个有问题,则
|
||||||
{
|
{
|
||||||
"taskGroup":"2223336678",
|
"taskGroup":"2223336678",
|
||||||
"taskType":1,
|
"taskType":1,
|
||||||
|
"vehicleNo":"11220099",
|
||||||
"lightModel":1,
|
"lightModel":1,
|
||||||
"sysName":"WMS",
|
"sysName":"WMS",
|
||||||
"taskList":[
|
"taskList":[
|
||||||
|
|
|
||||||
|
|
@ -247,7 +247,11 @@ public class TaskService implements ITaskService {
|
||||||
appEtagTask.setGoodsName(etagTaskItem.getGoodsName());
|
appEtagTask.setGoodsName(etagTaskItem.getGoodsName());
|
||||||
appEtagTask.setLightNum(BigDecimal.valueOf(etagTaskItem.getLightNum()));
|
appEtagTask.setLightNum(BigDecimal.valueOf(etagTaskItem.getLightNum()));
|
||||||
appEtagTask.setTaskStatus(EtagTaskStatusEnum.NOT_ACTIVATED.getCode());
|
appEtagTask.setTaskStatus(EtagTaskStatusEnum.NOT_ACTIVATED.getCode());
|
||||||
appEtagTask.setLightModel(addEtagTaskReq.getLightModel());
|
if(addEtagTaskReq.getLightModel() == null) {
|
||||||
|
appEtagTask.setLightModel(EtagTaskLightModelEnum.IMMEDIATELY.getCode());
|
||||||
|
} else {
|
||||||
|
appEtagTask.setLightModel(addEtagTaskReq.getLightModel());
|
||||||
|
}
|
||||||
appEtagTask.setTaskSource(addEtagTaskReq.getSysName());
|
appEtagTask.setTaskSource(addEtagTaskReq.getSysName());
|
||||||
appEtagTask.setCreatePerson("?");
|
appEtagTask.setCreatePerson("?");
|
||||||
appEtagTask.setCreateTime(LocalDateTime.now());
|
appEtagTask.setCreateTime(LocalDateTime.now());
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import type {IPrintParams} from "@/interface/page/printCode/IPrintParams.ts";
|
||||||
import VueQrcode from '@chenfengyuan/vue-qrcode';
|
import VueQrcode from '@chenfengyuan/vue-qrcode';
|
||||||
import VueBarcode from '@chenfengyuan/vue-barcode';
|
import VueBarcode from '@chenfengyuan/vue-barcode';
|
||||||
import printJS from "print-js";
|
import printJS from "print-js";
|
||||||
|
import MessageUtils from "@/utils/MessageUtils.ts";
|
||||||
|
|
||||||
const props = defineProps(['isFull']);
|
const props = defineProps(['isFull']);
|
||||||
|
|
||||||
|
|
@ -13,11 +14,12 @@ const isFull = computed(() => {
|
||||||
return props.isFull ?? false;
|
return props.isFull ?? false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const paperTitle = ref<string>("");
|
||||||
const printCodeTypeFormatter = new PrintCodeTypeFormatter();
|
const printCodeTypeFormatter = new PrintCodeTypeFormatter();
|
||||||
const codeType = ref<number>(1); // 条码类型
|
const codeType = ref<number>(1); // 条码类型
|
||||||
const paperWidth = ref<number>(80); // 纸张宽度
|
const paperWidth = ref<number>(80); // 纸张宽度
|
||||||
const paperHeight = ref<number>(60); // 纸张高度
|
const paperHeight = ref<number>(60); // 纸张高度
|
||||||
const codeSize = ref<number>(200); // 条码大小
|
const codeSize = ref<number>(180); // 条码大小
|
||||||
const codeHeight = ref<number>(150); // 条码高度,仅一维码生效
|
const codeHeight = ref<number>(150); // 条码高度,仅一维码生效
|
||||||
const printParams = ref<IPrintParams>({
|
const printParams = ref<IPrintParams>({
|
||||||
startString: "",
|
startString: "",
|
||||||
|
|
@ -27,6 +29,7 @@ const printParams = ref<IPrintParams>({
|
||||||
tagCount: 1,
|
tagCount: 1,
|
||||||
printCount: 1
|
printCount: 1
|
||||||
});
|
});
|
||||||
|
const printText = ref<string>(""); // 纯文本打印的内容
|
||||||
const printCodeList = ref<string[]>([]); // 要打印的条码
|
const printCodeList = ref<string[]>([]); // 要打印的条码
|
||||||
|
|
||||||
const changeCodeType = (value: number) => {
|
const changeCodeType = (value: number) => {
|
||||||
|
|
@ -35,11 +38,11 @@ const changeCodeType = (value: number) => {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(value === 1) {
|
if(value === 1) {
|
||||||
codeSize.value = 200;
|
codeSize.value = 180;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
// 打印条码
|
||||||
const printCode = () => {
|
const printCode = () => {
|
||||||
preview();
|
preview();
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
|
|
@ -50,9 +53,33 @@ const printCode = () => {
|
||||||
targetStyles: ['*']
|
targetStyles: ['*']
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
// 打印纯文本
|
||||||
|
const printInputText = () => {
|
||||||
|
if(printText.value === null || printText.value === "") {
|
||||||
|
MessageUtils.warningMessageBox('请输入纯文本');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
previewText();
|
||||||
|
nextTick(() => {
|
||||||
|
printJS({
|
||||||
|
printable: 'codePrintDiv',// 标签元素id
|
||||||
|
type: 'html',
|
||||||
|
header: '',
|
||||||
|
targetStyles: ['*']
|
||||||
|
});
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
// 纯文本打印预览
|
||||||
|
const previewText = () => {
|
||||||
|
if(printText.value === null || printText.value === "") {
|
||||||
|
MessageUtils.warningMessageBox('请输入纯文本');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
printCodeList.value = [printText.value];
|
||||||
|
}
|
||||||
|
// 条码打印预览
|
||||||
const preview = () => {
|
const preview = () => {
|
||||||
printCodeList.value = [];
|
printCodeList.value = [];
|
||||||
let codes: string[] = [];
|
let codes: string[] = [];
|
||||||
|
|
@ -78,88 +105,111 @@ const preview = () => {
|
||||||
<template>
|
<template>
|
||||||
<div :style="{marginLeft: '10px',marginTop: '10px', width: isFull ? 'calc(100vw - 20px)' : 'calc(100vw - 280px)' }">
|
<div :style="{marginLeft: '10px',marginTop: '10px', width: isFull ? 'calc(100vw - 20px)' : 'calc(100vw - 280px)' }">
|
||||||
<h3>条码打印</h3>
|
<h3>条码打印</h3>
|
||||||
<el-row>
|
<el-scrollbar>
|
||||||
<el-col :span="12">
|
<el-row>
|
||||||
<el-card style="width: calc(100% - 10px); margin-right: 10px; height: 300px">
|
<el-col :span="12">
|
||||||
<el-text type="warning">基础设置</el-text>
|
<el-card style="width: calc(100% - 10px); margin-right: 10px; height: 350px">
|
||||||
<el-form label-width="160px">
|
<el-text type="warning">基础设置</el-text>
|
||||||
<el-form-item label="条码类型:">
|
<el-form label-width="160px">
|
||||||
<el-select v-model="codeType" placeholder="请选择条码类型" @change="changeCodeType">
|
<el-form-item label="纸张标题:">
|
||||||
<el-option v-for="item in printCodeTypeFormatter.codeType" :label="item.label" :key="item.value" :value="item.value"></el-option>
|
<el-input v-model="paperTitle" placeholder="请输入标题"/>
|
||||||
</el-select>
|
</el-form-item>
|
||||||
</el-form-item>
|
<el-form-item label="条码类型:">
|
||||||
<el-form-item label="条码纸宽度(mm):">
|
<el-select v-model="codeType" placeholder="请选择条码类型" @change="changeCodeType">
|
||||||
<el-input-number v-model="paperWidth" :min="20" :max="9999" :step="10"/>
|
<el-option v-for="item in printCodeTypeFormatter.codeType" :label="item.label" :key="item.value" :value="item.value"></el-option>
|
||||||
</el-form-item>
|
</el-select>
|
||||||
<el-form-item label="条码纸高度(mm):">
|
</el-form-item>
|
||||||
<el-input-number v-model="paperHeight" :min="20" :max="9999" :step="10"/>
|
<el-form-item label="条码纸宽度(mm):">
|
||||||
</el-form-item>
|
<el-input-number v-model="paperWidth" :min="20" :max="9999" :step="10"/>
|
||||||
<el-form-item label="条码大小:">
|
</el-form-item>
|
||||||
<el-input-number v-model="codeSize" :min="1" :max="9999" :step="1" :precision="2"/>
|
<el-form-item label="条码纸高度(mm):">
|
||||||
</el-form-item>
|
<el-input-number v-model="paperHeight" :min="20" :max="9999" :step="10"/>
|
||||||
<el-form-item label="一维码条码高度:">
|
</el-form-item>
|
||||||
<el-input-number v-model="codeHeight" :min="1" :max="9999" :step="10"/>
|
<el-form-item label="条码大小:">
|
||||||
</el-form-item>
|
<el-input-number v-model="codeSize" :min="1" :max="9999" :step="1" :precision="2"/>
|
||||||
</el-form>
|
</el-form-item>
|
||||||
</el-card>
|
<el-form-item label="一维码条码高度:">
|
||||||
<el-card style="width: calc(100% - 10px); margin-right: 10px; height: calc(100vh - 445px); margin-top: 10px">
|
<el-input-number v-model="codeHeight" :min="1" :max="9999" :step="10"/>
|
||||||
<el-text type="primary">打印设置</el-text>
|
</el-form-item>
|
||||||
<el-form label-width="160px">
|
</el-form>
|
||||||
<el-form-item label="起始字符串:">
|
</el-card>
|
||||||
<el-input v-model="printParams.startString" placeholder="请输入起始字符串"/>
|
<el-card style="width: calc(100% - 10px); margin-right: 10px; height: 170px; margin-top: 10px">
|
||||||
</el-form-item>
|
<el-text type="success">纯文本打印设置</el-text>
|
||||||
<el-form-item label="结束字符串:">
|
<el-form label-width="160px">
|
||||||
<el-input v-model="printParams.endString" placeholder="请输入结束字符串"/>
|
<el-form-item label="字符串:">
|
||||||
</el-form-item>
|
<el-input v-model="printText" placeholder="请输入字符串"/>
|
||||||
<el-form-item label="编号长度:">
|
</el-form-item>
|
||||||
<el-input-number v-model="printParams.numberLength" :min="1" :max="9999" :step="1"/>
|
</el-form>
|
||||||
</el-form-item>
|
<el-row>
|
||||||
<el-form-item label="起始编号:">
|
<el-text type="danger">您必须点击预览后才能执行打印和下载动作</el-text>
|
||||||
<el-input-number v-model="printParams.startNo" :min="1" :max="9999" :step="1"/>
|
</el-row>
|
||||||
</el-form-item>
|
<el-row>
|
||||||
<el-form-item label="标签数量:">
|
<el-button-group>
|
||||||
<el-input-number v-model="printParams.tagCount" :min="1" :max="9999" :step="1"/>
|
<el-button type="info" @click="previewText">预览</el-button>
|
||||||
</el-form-item>
|
<el-button type="primary" @click="printInputText">打印</el-button>
|
||||||
<el-form-item label="打印数量:">
|
</el-button-group>
|
||||||
<el-input-number v-model="printParams.printCount" :min="1" :max="9999" :step="1"/>
|
</el-row>
|
||||||
</el-form-item>
|
</el-card>
|
||||||
</el-form>
|
<el-card style="width: calc(100% - 10px); margin-right: 10px; height: 420px; margin-top: 10px">
|
||||||
<el-row>
|
<el-text type="primary">条码打印设置</el-text>
|
||||||
<el-text type="danger">您必须点击预览后才能执行打印和下载动作</el-text>
|
<el-form label-width="160px">
|
||||||
</el-row>
|
<el-form-item label="起始字符串:">
|
||||||
<el-row>
|
<el-input v-model="printParams.startString" placeholder="请输入起始字符串"/>
|
||||||
<el-button-group>
|
</el-form-item>
|
||||||
<el-button type="info" @click="preview">预览</el-button>
|
<el-form-item label="结束字符串:">
|
||||||
<el-button type="primary" @click="printCode">打印</el-button>
|
<el-input v-model="printParams.endString" placeholder="请输入结束字符串"/>
|
||||||
</el-button-group>
|
</el-form-item>
|
||||||
</el-row>
|
<el-form-item label="编号长度:">
|
||||||
</el-card>
|
<el-input-number v-model="printParams.numberLength" :min="1" :max="9999" :step="1"/>
|
||||||
</el-col>
|
</el-form-item>
|
||||||
<el-col :span="12">
|
<el-form-item label="起始编号:">
|
||||||
<el-card style="width: 100%">
|
<el-input-number v-model="printParams.startNo" :min="1" :max="9999" :step="1"/>
|
||||||
<el-text type="success">打印预览区</el-text>
|
</el-form-item>
|
||||||
<el-scrollbar style="height: calc(100vh - 200px);">
|
<el-form-item label="标签数量:">
|
||||||
<div id="codePrintDiv">
|
<el-input-number v-model="printParams.tagCount" :min="1" :max="9999" :step="1"/>
|
||||||
<!-- 二维码区域-->
|
</el-form-item>
|
||||||
<div v-if="codeType === 1" v-for="item in printCodeList" :style="{width: paperWidth.toString() + 'mm', height: paperHeight.toString() + 'mm', textAlign: 'center', border: '#2c3e5040 solid 1px', marginTop: '8px'}">
|
<el-form-item label="打印数量:">
|
||||||
<div style="width: 100%; height: calc(100% - 25px);">
|
<el-input-number v-model="printParams.printCount" :min="1" :max="9999" :step="1"/>
|
||||||
<VueQrcode :value="item" tag="svg" style="margin: auto auto;overflow: visible" :options="{width: codeSize}"/>
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<el-row>
|
||||||
|
<el-text type="danger">您必须点击预览后才能执行打印和下载动作</el-text>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-button-group>
|
||||||
|
<el-button type="info" @click="preview">预览</el-button>
|
||||||
|
<el-button type="primary" @click="printCode">打印</el-button>
|
||||||
|
</el-button-group>
|
||||||
|
</el-row>
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-card style="width: 100%">
|
||||||
|
<el-text type="success">打印预览区</el-text>
|
||||||
|
<el-scrollbar style="height: calc(100vh - 200px);">
|
||||||
|
<div id="codePrintDiv">
|
||||||
|
<!-- 二维码区域-->
|
||||||
|
<div v-if="codeType === 1" v-for="item in printCodeList" :style="{width: paperWidth.toString() + 'mm', height: paperHeight.toString() + 'mm', textAlign: 'center', border: '#2c3e5040 solid 1px', marginTop: '8px'}">
|
||||||
|
<div v-if="paperTitle != ''" style="margin-bottom: 0; font-weight: bolder">{{paperTitle}}</div>
|
||||||
|
<div style="width: 100%; height: calc(100% - 45px);">
|
||||||
|
<VueQrcode :value="item" tag="svg" style="margin: auto auto;overflow: visible" :options="{width: codeSize}"/>
|
||||||
|
</div>
|
||||||
|
<div style="margin: 0 auto; height: 20px;width: 100%; font-size: large;font-weight: bolder; transform: translateY(-5px)">{{item}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin: auto auto; height: 20px;width: 100%; font-size: large;font-weight: bolder; transform: translateY(-5px)">{{item}}</div>
|
<!-- code 128 区域-->
|
||||||
</div>
|
<div v-if="codeType === 0" v-for="item in printCodeList" :style="{width: paperWidth.toString() + 'mm', height: paperHeight.toString() + 'mm', textAlign: 'center', border: '#2c3e5040 solid 1px', marginTop: '8px'}">
|
||||||
<!-- code 128 区域-->
|
<div v-if="paperTitle != ''" style="margin-bottom: 0; font-weight: bolder">{{paperTitle}}</div>
|
||||||
<div v-if="codeType === 0" v-for="item in printCodeList" :style="{width: paperWidth.toString() + 'mm', height: paperHeight.toString() + 'mm', textAlign: 'center', border: '#2c3e5040 solid 1px', marginTop: '8px'}">
|
<div style="width: 100%; height: calc(100% - 45px);">
|
||||||
<div style="width: 100%; height: calc(100% - 25px);">
|
<VueBarcode :value="item" tag="svg" style="margin: auto auto;overflow: visible" :options="{width: codeSize, displayValue: false, height: codeHeight}"/>
|
||||||
<VueBarcode :value="item" tag="svg" style="margin: auto auto;overflow: visible" :options="{width: codeSize, displayValue: false, height: codeHeight}"/>
|
</div>
|
||||||
|
<div style="margin: 0 auto; height: 20px;width: 100%; font-size: large;font-weight: bolder; transform: translateY(-5px)">{{item}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="margin: auto auto; height: 20px;width: 100%; font-size: large;font-weight: bolder; transform: translateY(-5px)">{{item}}</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</el-scrollbar>
|
||||||
</el-scrollbar>
|
</el-card>
|
||||||
</el-card>
|
</el-col>
|
||||||
</el-col>
|
</el-row>
|
||||||
</el-row>
|
</el-scrollbar>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user