优化
This commit is contained in:
@@ -56,7 +56,8 @@
|
||||
</td>
|
||||
<td class="label-cell qr-cell" rowspan="4">
|
||||
<div class="qr-code">
|
||||
<img :src="`https://api.qrserver.com/v1/create-qr-code/?size=120x120&data=${encodeURIComponent(labelData.qrCodeData)}`" alt="QR Code" />
|
||||
<img v-if="labelData.qrCodeImage" :src="labelData.qrCodeImage" alt="QR Code" />
|
||||
<div v-else class="loading">生成二维码中...</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -117,7 +118,8 @@
|
||||
import { ref, reactive, nextTick, onMounted } from 'vue'
|
||||
import { Message } from '@arco-design/web-vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
import {getWorkOrder} from "@/apis/workOrder/workOrder";
|
||||
import {getWorkOrder} from "@/apis/workOrder/workOrder"
|
||||
import QRCode from 'qrcode';
|
||||
|
||||
const route = useRoute()
|
||||
|
||||
@@ -145,11 +147,29 @@ const labelData = reactive({
|
||||
packingSignature: '',
|
||||
inspectionSignature: '',
|
||||
qrCodeData: '',
|
||||
qrCodeImage: '',
|
||||
})
|
||||
|
||||
// 标签容器引用
|
||||
const labelContainer = ref<HTMLElement | null>(null)
|
||||
|
||||
// 生成二维码
|
||||
const generateQRCode = async (data: string) => {
|
||||
try {
|
||||
return await QRCode.toDataURL(data, {
|
||||
width: 120,
|
||||
margin: 1,
|
||||
color: {
|
||||
dark: '#000000',
|
||||
light: '#FFFFFF'
|
||||
}
|
||||
})
|
||||
} catch (error) {
|
||||
console.error('生成二维码失败:', error)
|
||||
return ''
|
||||
}
|
||||
}
|
||||
|
||||
// 生成标签
|
||||
const generateLabel = async () => {
|
||||
if (!formData.productionBatch) {
|
||||
@@ -174,6 +194,12 @@ const generateLabel = async () => {
|
||||
String(now.getMonth() + 1).padStart(2, '0') +
|
||||
String(now.getDate()).padStart(2, '0');
|
||||
|
||||
// 计算二维码数据
|
||||
const qrCodeData = `10#${formData.materialName}$11#9DP$12#${formData.productionBatch}$17#${formData.totalCount}$20#${formattedDate2}$31#${formData.orderNo}$DY`
|
||||
|
||||
// 生成二维码图片
|
||||
const qrCodeImage = await generateQRCode(qrCodeData)
|
||||
|
||||
// 直接从 formData 中获取数据
|
||||
Object.assign(labelData, {
|
||||
partName: formData.materialName || '',
|
||||
@@ -184,8 +210,8 @@ const generateLabel = async () => {
|
||||
totalCount: formData.totalCount || '',
|
||||
packingSignature: '',
|
||||
inspectionSignature: '',
|
||||
//10#零件号$11#供应商代码$12#生产批次$17#数量$20#包装日期$31#唯一号$DY
|
||||
qrCodeData: `10#${formData.materialName}$11#9DP$12#${formData.productionBatch}$17#${formData.totalCount}$20#${formattedDate2}$31#${formData.orderNo}$DY`
|
||||
qrCodeData: qrCodeData,
|
||||
qrCodeImage: qrCodeImage
|
||||
})
|
||||
|
||||
Message.success('标签生成成功')
|
||||
@@ -265,7 +291,7 @@ const printLabel = async () => {
|
||||
</td>
|
||||
<td class="label-cell qr-cell" rowspan="4">
|
||||
<div class="qr-code">
|
||||
<img src="https://api.qrserver.com/v1/create-qr-code/?size=120x120&data=${encodeURIComponent(labelData.qrCodeData)}" alt="QR Code" />
|
||||
<img src="${labelData.qrCodeImage}" alt="QR Code" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -448,6 +474,16 @@ defineOptions({ name: 'BarcodePrint' })
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
.qr-code .loading {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 10px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.serial-number {
|
||||
font-size: 12px;
|
||||
margin-top: 5px;
|
||||
|
||||
@@ -784,7 +784,7 @@ const handleNext = async () => {
|
||||
}
|
||||
|
||||
// 调用后端接口获取比对结果 // todo
|
||||
// const res = await vmSend(materialCode);
|
||||
const res = await vmSend(materialCode);
|
||||
// compareMatchResult.value = res.data || '';
|
||||
compareMatchResult.value = 'success'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user