后道触摸屏添加标签重打,打零头箱标签功能

This commit is contained in:
2025-06-09 18:15:39 +08:00
parent 66470777e2
commit f9be5111a8
3 changed files with 304 additions and 1 deletions

View File

@@ -164,3 +164,28 @@ export function GenerateVirtualLabel(query) {
data: query,
})
}
/**
* 打印特殊标签
* @param {查询条件} data
*/
export function PrintSpecialPacakgeLabel(data, params) {
return request({
url: '/mes/qc/BackEnd/QcBackEndController/PrintSpecialPacakgeLabel',
method: 'post',
data: data,
params: params,
})
}
/**
* 打印特殊标签
* @param {查询条件} data
*/
export function SearchWorkOrderLabelDetail(params) {
return request({
url: '/mes/qc/BackEnd/QcBackEndController/SearchWorkOrderLabelDetail',
method: 'get',
params: params,
})
}

View File

@@ -0,0 +1,266 @@
<template>
<div>
<!-- 特殊标签打印 -->
<el-dialog class="dialogBox" :visible.sync="show" title="特殊标签打印" width="60%" append-to-body :close-on-click-modal="false">
<el-form label-width="auto" :inline="true">
<div>
<el-form-item label="工单号">
<div class="number-text">{{ formData.workOrder }}</div>
</el-form-item>
<el-form-item label="零件号">
<div class="number-text">{{ formData.partNumber }}</div>
</el-form-item>
<el-form-item label="描述">
<div class="number-text">{{ formData.description }}</div>
</el-form-item>
</div>
<div>
<el-form-item label="已扫零件数">
<div class="number-text">{{ printDetail.scannedPartCount }}</div>
</el-form-item>
<el-form-item label="已扫箱数">
<div class="number-text">{{ printDetail.scannedBoxLabelCount }}</div>
</el-form-item>
<el-form-item label="补打数">
<div class="number-text">{{ printDetail.rePrintCount }}</div>
</el-form-item>
<el-form-item label="零头箱打印数">
<div class="number-text">{{ printDetail.remainderBoxPrintCount }}</div>
</el-form-item>
<el-form-item label="箱标签当前序号">
<div class="number-text">{{ printDetail.currentBoxLabelSequence }}</div>
</el-form-item>
</div>
<div>
<el-form-item label="打印操作">
<el-button type="warning" @click="submit(1)">补打箱标签</el-button>
</el-form-item>
</div>
<div>
<el-form-item label="零头产品数">
<el-input-number :min="0" class="number-text" v-model="packageNum"></el-input-number>
</el-form-item>
</div>
<div>
<el-form-item label="快速操作">
<el-button type="primary" icon="el-icon-minus" @click="openReduceDialog">减少</el-button>
<el-button type="primary" icon="el-icon-plus" @click="openAddDialog">增加</el-button>
</el-form-item>
</div>
<el-form-item label="打印操作">
<el-button type="danger" @click="submit(2)">打印零头箱</el-button>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="close">取消</el-button>
<!-- <el-button :disabled="loading" type="primary" @click="submit">确认</el-button> -->
</div>
</template>
</el-dialog>
<!-- 减少合格数对话框 -->
<el-dialog :visible.sync="reduceDialogVisible" title="减少" width="300px" append-to-body>
<el-form label-width="auto">
<el-form-item label="减少数量">
<el-input-number :min="1" :max="formData.qualifiedNumber" v-model="changeAmount" controls-position="right"></el-input-number>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="reduceDialogVisible = false">取消</el-button>
<el-button type="primary" @click="confirmReduce">确定</el-button>
</div>
</template>
</el-dialog>
<!-- 增加合格数对话框 -->
<el-dialog :visible.sync="addDialogVisible" title="增加" width="300px" append-to-body>
<el-form label-width="auto">
<el-form-item label="增加数量">
<el-input-number :min="1" v-model="changeAmount" controls-position="right"></el-input-number>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="addDialogVisible = false">取消</el-button>
<el-button type="primary" @click="confirmAdd">确定</el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script>
import * as QcBackEndApi from '@/api/qualityManagement/BackEnd/qcBackEndService'
export default {
name: 'GenerateLabelDialog',
data() {
return {
loading: false,
show: false,
addDialogVisible: false,
reduceDialogVisible: false,
changeAmount: 1,
packageNum: 0,
formData: {
workOrder: '',
partNumber: '',
specification: '',
color: '',
description: '',
number: '',
labelCode: '',
siteNo: '',
comNo: '',
isOnetime: 0,
isBack: 0,
isPolish: 0,
isOut: 0,
polishNumber: 0,
damoNumber: 0,
baofeiNumber: 0,
qualifiedNumber: 0,
},
// 打印参数
printDetail: {
// 已扫零件数
scannedPartCount: 0,
// 已扫箱标签数
scannedBoxLabelCount: 0,
// 补打数
rePrintCount: 0,
// 零头箱打印数
remainderBoxPrintCount: 0,
// 箱标签当前序号
currentBoxLabelSequence: 0,
},
team: '',
siteNo: '',
}
},
computed: {
requireNumber() {
return 1
},
},
methods: {
openReduceDialog() {
this.reduceDialogVisible = true
this.changeAmount = 1
},
openAddDialog() {
this.addDialogVisible = true
this.changeAmount = 1
},
confirmReduce() {
if (this.changeAmount > 0 && this.changeAmount <= this.packageNum) {
this.packageNum -= this.changeAmount
this.reduceDialogVisible = false
} else {
this.$message.error('请输入有效的减少数量')
}
},
async getPrintInfo() {
try {
const params = {
workOrder: this.formData.workOrder,
}
let res = await QcBackEndApi.SearchWorkOrderLabelDetail(params)
if (res.code === 200) {
this.printDetail = res.data
}
} catch (error) {}
},
confirmAdd() {
if (this.changeAmount > 0) {
this.packageNum += this.changeAmount
this.addDialogVisible = false
} else {
this.$message.error('请输入有效的增加数量')
}
},
async submit(specialPrintType = 1) {
try {
this.loading = true
const params = {
specialPrintType,
packageNum: this.packageNum,
}
let res = await QcBackEndApi.PrintSpecialPacakgeLabel(this.formData, params)
if (res.code === 200 && res.data === 'ok') {
this.$message.success('打印成功')
this.getPrintInfo()
} else {
this.$message.error('打印异常:' + res.data)
}
//this.emitSuccess()
//this.close()
} catch (error) {
this.$message.error('打印失败,请重试' + error)
} finally {
this.loading = false
}
},
open(data) {
this.show = true
this.loading = false
this.formData = { ...data.formData }
this.team = data.team
this.siteNo = data.siteNo
this.getPrintInfo()
},
close() {
this.show = false
this.resetFormData()
},
resetFormData() {
this.packageNum = 0
this.changeAmount = 1
this.formData = {
workOrder: '',
partNumber: '',
specification: '',
color: '',
description: '',
number: '',
labelCode: '',
siteNo: '',
comNo: '',
isOnetime: 0,
isBack: 0,
isPolish: 0,
isOut: 0,
polishNumber: 0,
damoNumber: 0,
baofeiNumber: 0,
qualifiedNumber: 0,
}
this.printDetail = {
scannedPartCount: 0,
scannedBoxLabelCount: 0,
rePrintCount: 0,
remainderBoxPrintCount: 0,
currentBoxLabelSequence: 0,
}
this.team = ''
this.siteNo = ''
},
},
}
</script>
<style scoped>
.number-text {
font-weight: bold;
}
.dialog-footer button {
margin-left: 10px;
}
</style>

View File

@@ -16,6 +16,7 @@
</div>
<div>
<el-button v-if="formStatus === 1" type="success" @click="doBtnStartWorkOrder">开启工单</el-button>
<el-button v-if="formStatus != 1" @click="doSpecialPrintDialogOpen">打印</el-button>
<el-button v-if="formStatus != 1" type="info" @click="doBtnGenerateLabel">修改合格数</el-button>
<el-button v-if="formStatus != 1" type="warning" @click="doBtnEndWorkOrder">结束工单</el-button>
</div>
@@ -95,6 +96,7 @@
<ScanPackageLabelDialog ref="ScanPackageLabelDialogRef" @changeFormStatus="changeFormStatus" @showWarningMessage="showErrorMessage" @submit="handleStartWorkOrder" />
<EndWorkOrderDialog ref="EndWorkOrderDialogRef" @changeFormStatus="changeFormStatus" @endWorkOrder="handleEndWorkOrder" />
<GenerateLabelDialog ref="GenerateLabelDialogRef" @generateLabelSuccess="handleGenerateLabelSuccess"></GenerateLabelDialog>
<SpecialPrintDialog ref="SpecialPrintDialogRef" @SpecialPrintSuccess="handleGenerateLabelSuccess"></SpecialPrintDialog>
</div>
</template>
@@ -102,11 +104,12 @@
import StartWorkOrderDialog from './StartWorkOrderDialog.vue'
import EndWorkOrderDialog from './EndWorkOrderDialog.vue'
import GenerateLabelDialog from './GenerateLabelDialog.vue'
import SpecialPrintDialog from './SpecialPrintDialog.vue'
import ScanPackageLabelDialog from './ScanPackageLabelDialog.vue'
import * as QcBackEndApi from '@/api/qualityManagement/BackEnd/qcBackEndService'
export default {
name: 'WorkOrderCard',
components: { StartWorkOrderDialog, EndWorkOrderDialog, GenerateLabelDialog, ScanPackageLabelDialog },
components: { StartWorkOrderDialog, EndWorkOrderDialog, GenerateLabelDialog, ScanPackageLabelDialog, SpecialPrintDialog },
props: {
message: String,
messageClass: String,
@@ -116,6 +119,7 @@ export default {
StartWorkOrderDialogRef: null,
EndWorkOrderDialogRef: null,
ScanPackageLabelDialogRef: null,
SpecialPrintDialogRef: null,
sessionKey: '_touchScreenB02',
teamOptions: [],
@@ -338,6 +342,14 @@ export default {
}
this.$refs.GenerateLabelDialogRef.open(data)
},
doSpecialPrintDialogOpen() {
const data = {
formData: this.formData,
team: this.team,
siteNo: this.site,
}
this.$refs.SpecialPrintDialogRef.open(data)
},
// 开始工单完成反馈
handleStartWorkOrder(formData) {
if (formData) {