diff --git a/src/api/mes/deviceledger/index.ts b/src/api/mes/deviceledger/index.ts index f258911d..a01141b3 100644 --- a/src/api/mes/deviceledger/index.ts +++ b/src/api/mes/deviceledger/index.ts @@ -13,6 +13,7 @@ export interface DeviceLedgerVO { deviceModel: string // 设备型号 deviceSpec: string // 设备规格 deviceType: string | number // 设备类型 + deviceLine?: string | number // 设备产线 deviceTypeName?: string // 设备类型名称 supplier: string // 供应商 workshop: string // 所属车间 diff --git a/src/api/mes/deviceline/index.ts b/src/api/mes/deviceline/index.ts new file mode 100644 index 00000000..dc3fcce9 --- /dev/null +++ b/src/api/mes/deviceline/index.ts @@ -0,0 +1,45 @@ +import request from '@/config/axios' + +export interface DeviceLineVO { + id: number + code: string + isCode?: boolean + qrcodeUrl?: string + name: string + remark: string + sort: number + parentId: number + parentChain: string + createTime?: string +} + +export interface DeviceLineTreeVO extends DeviceLineVO { + children?: DeviceLineTreeVO[] + leaf?: boolean +} + +export const DeviceLineApi = { + getDeviceLine: async (id: number) => { + return await request.get({ url: `/mes/device-line/get?id=` + id }) + }, + + getDeviceLineTree: async () => { + return await request.get({ url: `/mes/device-line/tree` }) + }, + + regenerateCode: async (id: number, code: string) => { + return await request.post({ url: `/mes/device-line/regenerate-code?id=${id}&code=${encodeURIComponent(code)}` }) + }, + + createDeviceLine: async (data: DeviceLineVO) => { + return await request.post({ url: `/mes/device-line/create`, data }) + }, + + updateDeviceLine: async (data: DeviceLineVO) => { + return await request.put({ url: `/mes/device-line/update`, data }) + }, + + deleteDeviceLine: async (id: number) => { + return await request.delete({ url: `/mes/device-line/delete?id=` + id }) + } +} \ No newline at end of file diff --git a/src/api/mes/printtemplate/index.ts b/src/api/mes/printtemplate/index.ts index 74b59b79..a6093fb4 100644 --- a/src/api/mes/printtemplate/index.ts +++ b/src/api/mes/printtemplate/index.ts @@ -5,7 +5,7 @@ export interface PrintTemplateVO { templateCode: string templateName: string templateType: number - templateBizType: string + templateBizType: number templateJson: string remark: string isEnable: boolean diff --git a/src/locales/en.ts b/src/locales/en.ts index b58bc504..725e7847 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -1252,6 +1252,11 @@ export default { }, // Equipment Ledger EquipmentLedger: { + lineCategory: 'Production Line Category', + createLineCategory: 'Add Production Line Category', + updateLineCategory: 'Edit Production Line Category', + emptyDeviceData: 'No device data', + runningLabel: 'Running', images: 'Images', deviceCode: 'Code', qrcode: 'QR Code/Barcode', @@ -1259,6 +1264,12 @@ export default { deviceStatus: 'Status', statusEnabled: 'Enabled', statusDisabled: 'Disabled', + statusRunning: 'Running', + statusStandby: 'Standby', + statusFault: 'Fault', + statusMaintenance: 'Under Maintenance', + statusStopped: 'Stopped', + statusUnknown: 'Unknown', deviceType: 'Type', deviceSpec: 'Spec', deviceModel: 'Model', @@ -1334,6 +1345,7 @@ export default { dvId: 'Please select device', qrcodeLoadError: 'Failed to load QR code', qrcodeEmpty: 'No QR code', + exportFileName: 'Device Ledger', validatorDeviceCodeRequired: 'Code can not be empty', gjTitle: 'Select key components', bjTitle: 'Select spare parts', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index c3d572c2..276de481 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -1242,6 +1242,11 @@ export default { }, // 设备台账 EquipmentLedger: { + lineCategory: '产线分类', + createLineCategory: '新增产线分类', + updateLineCategory: '修改产线分类', + emptyDeviceData: '暂无设备数据', + runningLabel: '运行', images: '图片', deviceCode: '编码', qrcode: '二维码/条形码', @@ -1249,6 +1254,12 @@ export default { deviceStatus: '状态', statusEnabled: '启用', statusDisabled: '不启用', + statusRunning: '运行中', + statusStandby: '待机', + statusFault: '故障', + statusMaintenance: '维修中', + statusStopped: '已停用', + statusUnknown: '未知', deviceType: '类型', deviceSpec: '规格型号', deviceModel: '型号', @@ -1324,6 +1335,7 @@ export default { dvId: '请选择设备', qrcodeLoadError: '二维码加载失败', qrcodeEmpty: '暂无二维码', + exportFileName: '设备台账', validatorDeviceCodeRequired: '编码不能为空', gjTitle: '选择关键件', bjTitle: '选择备件', diff --git a/src/views/mes/deviceledger/DeviceLedgerForm.vue b/src/views/mes/deviceledger/DeviceLedgerForm.vue index 82ff617a..50584695 100644 --- a/src/views/mes/deviceledger/DeviceLedgerForm.vue +++ b/src/views/mes/deviceledger/DeviceLedgerForm.vue @@ -488,7 +488,8 @@ const initFormData = () => ({ deviceSpec: undefined, isScheduled: 0, ratedCapacity: undefined, - deviceType: undefined, + deviceType: undefined as number | undefined, + deviceLine: undefined as number | undefined, supplier: undefined, workshop: undefined, deviceLocation: undefined, @@ -681,7 +682,7 @@ const ensureOptionsLoaded = async () => { } /** 打开弹窗 */ -const open = async (type: string, id?: number, defaultDeviceTypeId?: number) => { +const open = async (type: string, id?: number, defaultDeviceTypeId?: number, defaultDeviceLineId?: number) => { dialogVisible.value = true dialogTitle.value = t('action.' + type) formType.value = type @@ -690,6 +691,9 @@ const open = async (type: string, id?: number, defaultDeviceTypeId?: number) => if (type === 'create' && defaultDeviceTypeId) { formData.value.deviceType = defaultDeviceTypeId } + if (type === 'create' && defaultDeviceLineId) { + ;(formData.value as any).deviceLine = defaultDeviceLineId + } // 修改时,设置数据 if (id) { formLoading.value = true @@ -707,6 +711,7 @@ const open = async (type: string, id?: number, defaultDeviceTypeId?: number) => isScheduled: normalizeNumberish((detail as any)?.isScheduled ?? (detail as any)?.isScheduled) ?? 0, ratedCapacity: normalizeNumberish((detail as any)?.ratedCapacity), deviceType: normalizeNumberish((detail as any)?.deviceType), + deviceLine: normalizeNumberish((detail as any)?.deviceLine), deviceManagerIds: parseIdsValue((detail as any)?.deviceManager), productionDate: normalizeYmd((detail as any)?.productionDate), factoryEntryDate: normalizeYmd((detail as any)?.factoryEntryDate), @@ -935,6 +940,7 @@ const submitForm = async () => { isScheduled: normalizeNumberish((formData.value as any).isScheduled) ?? 0, ratedCapacity: normalizeNumberish((formData.value as any).ratedCapacity), deviceType: normalizeNumberish(formData.value.deviceType), + deviceLine: normalizeNumberish((formData.value as any).deviceLine), productionDate: normalizeYmd(formData.value.productionDate), factoryEntryDate: normalizeYmd(formData.value.factoryEntryDate), deviceManager: formData.value.deviceManagerIds?.length ? formData.value.deviceManagerIds.join(',') : undefined, diff --git a/src/views/mes/deviceledger/index.vue b/src/views/mes/deviceledger/index.vue index 76c94b6c..9dffbf46 100644 --- a/src/views/mes/deviceledger/index.vue +++ b/src/views/mes/deviceledger/index.vue @@ -1,69 +1,143 @@