diff --git a/src/api/erp/mold/index.ts b/src/api/erp/mold/index.ts index 96bbc19d..775bd7ae 100644 --- a/src/api/erp/mold/index.ts +++ b/src/api/erp/mold/index.ts @@ -25,6 +25,7 @@ export interface MoldVO { inTime: Date // 入库时间 status: number // 状态 images: string // 模具图片 + fileUrl?: string remark: string // 备注 isEnable: boolean // 是否启用 brandId: number // 型号id diff --git a/src/api/mes/energydevice/index.ts b/src/api/mes/energydevice/index.ts index 3094d114..5164e784 100644 --- a/src/api/mes/energydevice/index.ts +++ b/src/api/mes/energydevice/index.ts @@ -1,6 +1,12 @@ import request from '@/config/axios' // 能源设备 VO +export interface EnergyDeviceOperationRuleVO { + deviceId: number + pointId: number + operator?: string +} + export interface EnergyDeviceVO { id: number // ID name: string // 名称 @@ -16,6 +22,7 @@ export interface EnergyDeviceVO { orgId: number // 所属区域id orgName: string // 所属区域名称 rules: string // 计算规则 + operationRulesVOList?: EnergyDeviceOperationRuleVO[] } // 能源设备 API diff --git a/src/api/mold/inspectionItems/index.ts b/src/api/mold/inspectionItems/index.ts new file mode 100644 index 00000000..b719aeee --- /dev/null +++ b/src/api/mold/inspectionItems/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +// 维保项目 VO +export interface DvSubjectVO { + id?: number // ID + subjectCode: string // 项目编码 + subjectName: string // 项目名称 + subjectType?: string // 项目类型 + subjectContent?: string // 项目内容 + subjectStandard?: string // 标准 + isEnable: string // 是否启用 + inspectionMethod: string // 检验方式 + valueType: string // 值类型 + judgmentCriteria: string // 判定基准 + creator?: string // 创建人 + createTime?: string | number | Date // 创建时间 +} + +// 维保项目 API +export const DvSubjectApi = { + // 查询维保项目分页 + getDvSubjectPage: async (params: any) => { + return await request.get({ url: `/mes/mold-subject/page`, params }) + }, + + // 查询维保项目详情 + getDvSubject: async (id: number) => { + return await request.get({ url: `/mes/mold-subject/get?id=` + id }) + }, + + // 新增维保项目 + createDvSubject: async (data: DvSubjectVO) => { + return await request.post({ url: `/mes/mold-subject/create`, data }) + }, + + // 修改维保项目 + updateDvSubject: async (data: DvSubjectVO) => { + return await request.put({ url: `/mes/mold-subject/update`, data }) + }, + + // 删除维保项目 + deleteDvSubject: async (ids: string) => { + return await request.delete({ url: `/mes/mold-subject/delete?ids=` + ids }) + }, + + // 导出维保项目 Excel + exportDvSubject: async (params) => { + return await request.download({ url: `/mes/mold-subject/export-excel`, params }) + }, +} diff --git a/src/api/mold/planmaintenance/index.ts b/src/api/mold/planmaintenance/index.ts new file mode 100644 index 00000000..cc2747e9 --- /dev/null +++ b/src/api/mold/planmaintenance/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +export interface PlanMaintenanceVO { + id?: number | string + planName: string + planType: number | string + description?: string + subjectIdS?: string + creator?: string + creatorName?: string + createTime?: string | number | Date + updateTime?: string | number | Date +} + +export interface PlanMaintenanceSubjectVO { + id?: number | string + subjectCode?: string + subjectName?: string + inspectionMethod?: string + judgmentCriteria?: string +} + +export const PlanMaintenanceApi = { + getPlanMaintenancePage: async (params: any) => { + return await request.get({ url: `/mes/mold-plan-maintenance/page`, params }) + }, + + getSubjectList: async (id: number | string) => { + return await request.get({ url: `/mes/mold-plan-maintenance/getSubjectList`, params: { id } }) + }, + + createPlanMaintenance: async (data: any) => { + return await request.post({ url: `/mes/mold-plan-maintenance/create`, data }) + }, + + updatePlanMaintenance: async (data: any) => { + return await request.put({ url: `/mes/mold-plan-maintenance/update`, data }) + }, + + deletePlanMaintenance: async (ids: string) => { + return await request.delete({ url: `/mes/mold-plan-maintenance/delete?ids=` + ids }) + }, + + exportPlanMaintenance: async (params: any) => { + return await request.download({ url: `/mes/mold-plan-maintenance/export-excel`, params }) + } +} diff --git a/src/views/erp/mold/components/MoldForm.vue b/src/views/erp/mold/components/MoldForm.vue index d191c5fb..8367bbd7 100644 --- a/src/views/erp/mold/components/MoldForm.vue +++ b/src/views/erp/mold/components/MoldForm.vue @@ -76,6 +76,9 @@ + + + - + diff --git a/src/views/iot/deviceParamAnalysis/index.vue b/src/views/iot/deviceParamAnalysis/index.vue index 0353ca11..45dc7b84 100644 --- a/src/views/iot/deviceParamAnalysis/index.vue +++ b/src/views/iot/deviceParamAnalysis/index.vue @@ -78,6 +78,7 @@ import dayjs from 'dayjs' import { Echart as EChart } from '@/components/Echart' import { OrganizationApi } from '@/api/mes/organization' import { DeviceModelAttributeApi } from '@/api/iot/devicemodelattribute' +import { handleTree } from '@/utils/tree' defineOptions({ name: 'DeviceParamAnalysis' }) @@ -110,7 +111,9 @@ type ApiTreeEquipment = { type ApiTreeOrg = { id: number name: string + parentId?: number | null equipments?: ApiTreeEquipment[] + children?: ApiTreeOrg[] } const message = useMessage() @@ -215,37 +218,47 @@ const handleKeywordChange = () => { } const buildTreeFromApi = (orgs: ApiTreeOrg[]): DeviceTreeNode[] => { - return ( - orgs?.map((org) => { - const equipments = Array.isArray(org?.equipments) ? org.equipments : [] - const equipmentNodes: DeviceTreeNode[] = equipments.map((eq) => { - const params = Array.isArray(eq?.parameters) ? eq.parameters : [] - const paramNodes: DeviceTreeNode[] = params.map((p) => ({ - id: `param-${eq.id}-${p.id}`, - label: p?.name ?? p?.code ?? String(p?.id ?? ''), - type: 'param', - deviceId: Number(eq.id), - modelId: Number(p.id), - paramKey: p?.code ? String(p.code) : undefined, - unit: p?.unit ? String(p.unit) : undefined - })) - - return { - id: `equipment-${org.id}-${eq.id}`, - label: eq?.name ?? String(eq?.id ?? ''), - type: 'device', - children: paramNodes.length ? paramNodes : undefined - } - }) + const normalizedOrgs: ApiTreeOrg[] = (Array.isArray(orgs) ? orgs : []).map((o) => ({ + ...o, + parentId: typeof o?.parentId === 'number' ? o.parentId : Number(o?.parentId ?? 0) || 0 + })) + + const orgTree = handleTree(normalizedOrgs, 'id', 'parentId', 'children') as ApiTreeOrg[] + + const toOrgNode = (org: ApiTreeOrg): DeviceTreeNode => { + const orgChildren = Array.isArray(org?.children) ? org.children.map(toOrgNode) : [] + + const equipments = Array.isArray(org?.equipments) ? org.equipments : [] + const equipmentNodes: DeviceTreeNode[] = equipments.map((eq) => { + const params = Array.isArray(eq?.parameters) ? eq.parameters : [] + const paramNodes: DeviceTreeNode[] = params.map((p) => ({ + id: `param-${eq.id}-${p.id}`, + label: p?.name ?? p?.code ?? String(p?.id ?? ''), + type: 'param', + deviceId: Number(eq.id), + modelId: Number(p.id), + paramKey: p?.code ? String(p.code) : undefined, + unit: p?.unit ? String(p.unit) : undefined + })) return { - id: `org-${org.id}`, - label: org?.name ?? String(org?.id ?? ''), + id: `equipment-${org.id}-${eq.id}`, + label: eq?.name ?? String(eq?.id ?? ''), type: 'device', - children: equipmentNodes.length ? equipmentNodes : undefined + children: paramNodes.length ? paramNodes : undefined } - }) ?? [] - ) + }) + + const children = [...orgChildren, ...equipmentNodes] + return { + id: `org-${org.id}`, + label: org?.name ?? String(org?.id ?? ''), + type: 'device', + children: children.length ? children : undefined + } + } + + return Array.isArray(orgTree) ? orgTree.map(toOrgNode) : [] } const loadTree = async () => { diff --git a/src/views/mes/energydevice/EnergyDeviceForm.vue b/src/views/mes/energydevice/EnergyDeviceForm.vue index 912da23e..73861c1f 100644 --- a/src/views/mes/energydevice/EnergyDeviceForm.vue +++ b/src/views/mes/energydevice/EnergyDeviceForm.vue @@ -7,78 +7,97 @@ label-width="100px" v-loading="formLoading" > - - - - - - - - - - - - - - - + + + + + + + + + - + - - - - - - - - - - - - - - - - - + + + + + + +
+
+ + + + +
+
+
+ + + + - + diff --git a/src/views/mes/energydevice/index.vue b/src/views/mes/energydevice/index.vue index d2a34e69..d6af71f8 100644 --- a/src/views/mes/energydevice/index.vue +++ b/src/views/mes/energydevice/index.vue @@ -1,55 +1,30 @@ \ No newline at end of file + diff --git a/src/views/mold/inspectionItems/InspectionItemsForm.vue b/src/views/mold/inspectionItems/InspectionItemsForm.vue index 23f52964..024abc94 100644 --- a/src/views/mold/inspectionItems/InspectionItemsForm.vue +++ b/src/views/mold/inspectionItems/InspectionItemsForm.vue @@ -42,7 +42,7 @@