diff --git a/erp-frontend-vue/src/api/workOrder.ts b/erp-frontend-vue/src/api/workOrder.ts index 7c1a57c..9309e50 100644 --- a/erp-frontend-vue/src/api/workOrder.ts +++ b/erp-frontend-vue/src/api/workOrder.ts @@ -152,6 +152,10 @@ export function getWorkOrderDetail(workorderId: number): Promise { if (data.requestDate && !data.productionDate) { data.productionDate = data.requestDate } + // 后端返回 salesOrderCode(pp_number),确保前端有值 + if (data.ppNumber && !data.salesOrderCode) { + data.salesOrderCode = data.ppNumber + } return data }) } @@ -260,7 +264,7 @@ export interface ProTask { updateTime?: string } -/** 根据工单 ID 获取工序任务列表 */ +/** 根据工单 ID 获取工序任务列表(pro_task 表,需已排产) */ export function getTaskListByWorkorder(workorderId: number): Promise { return request.get('/mes/pro/protask/list', { params: { workorderId, pageNum: 1, pageSize: 500 } @@ -269,6 +273,14 @@ export function getTaskListByWorkorder(workorderId: number): Promise }) } +/** 根据工单 ID 获取工序列表(基于工艺路线,不依赖 pro_task,用于打印等) */ +export function getProcessTasksByWorkorder(workorderId: number): Promise { + return request.get(`/mes/pro/workorder/${workorderId}/processTasks`).then((res: any) => { + const data = res.data ?? res + return Array.isArray(data) ? data : [] + }) +} + // ============ 工艺路线选择 API ============ /** 工艺路线列表(选择弹窗,不默认过滤 enableFlag 以避免列表为空) */ diff --git a/erp-frontend-vue/src/components/print/WorkstationLabelPrint.vue b/erp-frontend-vue/src/components/print/WorkstationLabelPrint.vue new file mode 100644 index 0000000..63a6ae3 --- /dev/null +++ b/erp-frontend-vue/src/components/print/WorkstationLabelPrint.vue @@ -0,0 +1,170 @@ + + + + + + + diff --git a/erp-frontend-vue/src/views/MasterData/Workstation/index.vue b/erp-frontend-vue/src/views/MasterData/Workstation/index.vue index 98e3595..bd4b82e 100644 --- a/erp-frontend-vue/src/views/MasterData/Workstation/index.vue +++ b/erp-frontend-vue/src/views/MasterData/Workstation/index.vue @@ -32,6 +32,9 @@ 删除 + + 打印标签 + 确定 + + + diff --git a/mom-frontend-vue2/src/components/print/WarehouseLabelPrint.vue b/mom-frontend-vue2/src/components/print/WarehouseLabelPrint.vue new file mode 100644 index 0000000..3b90e2f --- /dev/null +++ b/mom-frontend-vue2/src/components/print/WarehouseLabelPrint.vue @@ -0,0 +1,173 @@ + + + + + + + diff --git a/mom-frontend-vue2/src/views/mes/wm/warehouse/index.vue b/mom-frontend-vue2/src/views/mes/wm/warehouse/index.vue index cc9c99b..c3c1f19 100644 --- a/mom-frontend-vue2/src/views/mes/wm/warehouse/index.vue +++ b/mom-frontend-vue2/src/views/mes/wm/warehouse/index.vue @@ -91,7 +91,7 @@ - + @@ -207,6 +214,12 @@ 取 消 + + + @@ -215,13 +228,14 @@ import { listWarehouse, getWarehouse, delWarehouse, addWarehouse, updateWarehous import UserSingleSelect from "@/components/userSelect/single.vue" import {genCode} from "@/api/system/autocode/rule" import BarcodeImg from "@/components/barcodeImg/index.vue" +import WarehouseLabelPrint from "@/components/print/WarehouseLabelPrint.vue" import { getBarcodeUrl } from '@/api/mes/wm/barcode'; import {print} from "../../../../utils/print" import {getByTemplateType} from "@/api/print/template"; import { hiprintMixin } from "../../../../mixins/hiprintMixin"; export default { name: "Warehouse", - components: { BarcodeImg ,UserSingleSelect} , + components: { BarcodeImg, UserSingleSelect, WarehouseLabelPrint }, mixins: [hiprintMixin], data() { return { @@ -246,6 +260,9 @@ export default { title: "", // 是否显示弹出层 open: false, + // 简易打印弹窗 + printDialogVisible: false, + printWarehouses: [], // 查询参数 queryParams: { pageNum: 1, @@ -297,6 +314,11 @@ export default { this.getList(); }, methods: { + // 简易打印(不依赖MinIO,纯前端二维码+window.print) + handleSimplePrint(row) { + this.printWarehouses = [row] + this.printDialogVisible = true + }, // 使用HiPrint打印 async handleHiPrint(row) { let printData = row