From 5f39ee3d7cd3976d6b055586c2eb647f508e011d Mon Sep 17 00:00:00 2001 From: chenshuichuan <1154693969@qq.com> Date: Fri, 2 Aug 2024 03:59:31 +0800 Subject: [PATCH] add mold record --- src/api/erp/mold/index.ts | 29 +- src/api/mes/moldrecordsubject/index.ts | 8 +- src/utils/dict.ts | 1 + src/views/erp/mold/components/MoldList.vue | 19 ++ .../erp/mold/components/MoldRecordForm.vue | 269 ++++++++++++++++++ .../MoldRecordSubjectDetailForm.vue | 144 ++++++++++ src/views/mes/machine/index.vue | 16 +- src/views/mes/moldrecord/MoldRecordForm.vue | 103 +++++-- .../MoldRecordSubjectDetailForm.vue | 38 ++- src/views/mes/moldrecord/index.vue | 38 +-- 10 files changed, 615 insertions(+), 50 deletions(-) create mode 100644 src/views/erp/mold/components/MoldRecordForm.vue create mode 100644 src/views/erp/mold/components/MoldRecordSubjectDetailForm.vue diff --git a/src/api/erp/mold/index.ts b/src/api/erp/mold/index.ts index 275bacc7..0b3fb016 100644 --- a/src/api/erp/mold/index.ts +++ b/src/api/erp/mold/index.ts @@ -14,7 +14,24 @@ export interface MoldBrandVO { remark: string // 备注 isEnable: boolean // 是否启用 } - +// 模具 VO +export interface MoldVO { + id: number // ID + code: string // 模具编码 + name: string // 模具名称 + unitId: number // 单位ID + machineId: number // 机台ID + useTime: number // 使用时间(小时) + inTime: Date // 入库时间 + status: number // 状态 + images: string // 模具图片 + remark: string // 备注 + isEnable: boolean // 是否启用 + brandId: number // 型号id + lastMaintainTime: Date // 上次保养 + lastRepairTime: Date // 上次维修 + lastMoldTime: Date // 上次换模 +} // 模具型号 API export const MoldBrandApi = { // 查询模具型号分页 @@ -46,9 +63,15 @@ export const MoldBrandApi = { exportMoldBrand: async (params) => { return await request.download({ url: `/erp/mold-brand/export-excel`, params }) }, - + // 查询模具型号列表 + getBrandList: async (params) => { + return await request.get({ url: `/erp/mold-brand/getBrandList`, params }) + }, // ==================== 子表(模具) ==================== - + // 查询模具列表 + getMoldList: async (params) => { + return await request.get({ url: `/erp/mold-brand/getMoldList`, params }) + }, // 获得模具分页 getMoldPage: async (params) => { return await request.get({ url: `/erp/mold-brand/mold/page`, params }) diff --git a/src/api/mes/moldrecordsubject/index.ts b/src/api/mes/moldrecordsubject/index.ts index 77168a0b..bce8c6fc 100644 --- a/src/api/mes/moldrecordsubject/index.ts +++ b/src/api/mes/moldrecordsubject/index.ts @@ -33,9 +33,13 @@ export const MoldRecordSubjectApi = { deleteMoldRecordSubject: async (id: number) => { return await request.delete({ url: `/mes/mold-record-subject/delete?id=` + id }) }, - + // 查询维保项目列表 + getList: async (params: any) => { + return await request.get({ url: `/mes/mold-record-subject/getList`, params }) + }, // 导出维保项目 Excel exportMoldRecordSubject: async (params) => { return await request.download({ url: `/mes/mold-record-subject/export-excel`, params }) } -} \ No newline at end of file + +} diff --git a/src/utils/dict.ts b/src/utils/dict.ts index def7aed9..3018eb47 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -253,6 +253,7 @@ export enum DICT_TYPE { MES_PROGRESS_TYPE = "mes_progress_type", MES_MOLD_RECORD_STATUS = "mes_mold_record_status", MES_MOLD_RECORD_TYPE = "mes_mold_record_type", + MES_PASS_OR_NOPASS = "mes_pass_or_nopass", //====iot IOT_SIEMENS_TYPE = "iot_siemens_type", IOT_MODBUS_TYPE = "iot_modbus_type", diff --git a/src/views/erp/mold/components/MoldList.vue b/src/views/erp/mold/components/MoldList.vue index 6353f39d..897c893e 100644 --- a/src/views/erp/mold/components/MoldList.vue +++ b/src/views/erp/mold/components/MoldList.vue @@ -44,6 +44,14 @@ /> diff --git a/src/views/erp/mold/components/MoldRecordForm.vue b/src/views/erp/mold/components/MoldRecordForm.vue new file mode 100644 index 00000000..513de31a --- /dev/null +++ b/src/views/erp/mold/components/MoldRecordForm.vue @@ -0,0 +1,269 @@ + + diff --git a/src/views/erp/mold/components/MoldRecordSubjectDetailForm.vue b/src/views/erp/mold/components/MoldRecordSubjectDetailForm.vue new file mode 100644 index 00000000..ef9ab50c --- /dev/null +++ b/src/views/erp/mold/components/MoldRecordSubjectDetailForm.vue @@ -0,0 +1,144 @@ + + diff --git a/src/views/mes/machine/index.vue b/src/views/mes/machine/index.vue index 547b2a71..8a4c6c9b 100644 --- a/src/views/mes/machine/index.vue +++ b/src/views/mes/machine/index.vue @@ -145,6 +145,7 @@ + - 替换 + 换模 + + diff --git a/src/views/mes/moldrecord/MoldRecordForm.vue b/src/views/mes/moldrecord/MoldRecordForm.vue index 153b82ac..774661d5 100644 --- a/src/views/mes/moldrecord/MoldRecordForm.vue +++ b/src/views/mes/moldrecord/MoldRecordForm.vue @@ -8,17 +8,44 @@ v-loading="formLoading" > - + - + + + - + + + @@ -33,20 +60,44 @@ - + - + + + - + - + + + + + + + + - + - - - - - + + @@ -91,12 +139,20 @@ import { getStrDictOptions, DICT_TYPE } from '@/utils/dict' import { MoldRecordApi, MoldRecordVO } from '@/api/mes/moldrecord' import MoldRecordSubjectDetailForm from './components/MoldRecordSubjectDetailForm.vue' +import {MoldBrandApi, MoldBrandVO, MoldVO} from "@/api/erp/mold"; +import * as UserApi from "@/api/system/user"; +import {MachineComponentApi, MachineComponentVO} from "@/api/mes/machine"; /** 模具维保 表单 */ defineOptions({ name: 'MoldRecordForm' }) const { t } = useI18n() // 国际化 const message = useMessage() // 消息弹窗 +const editDisable = ref(false) +const brandList = ref([]) // 模具型号列表 +const moldList = ref([]) // 模具列表 +const userList = ref([]) // 用户列表 +const machineList = ref([]) // 模具列表 const dialogVisible = ref(false) // 弹窗的是否展示 const dialogTitle = ref('') // 弹窗的标题 @@ -118,9 +174,7 @@ const formRules = reactive({ brandId: [{ required: true, message: '模具型号ID不能为空', trigger: 'blur' }], moldId: [{ required: true, message: '模具ID不能为空', trigger: 'blur' }], userId: [{ required: true, message: '负责人ID不能为空', trigger: 'blur' }], - recordType: [{ required: true, message: '单据类型不能为空', trigger: 'blur' }], - recordStatus: [{ required: true, message: '状态不能为空', trigger: 'blur' }], - remark: [{ required: true, message: '备注不能为空', trigger: 'blur' }] + recordType: [{ required: true, message: '单据类型不能为空', trigger: 'blur' }] }) const formRef = ref() // 表单 Ref @@ -139,10 +193,17 @@ const open = async (type: string, id?: number) => { formLoading.value = true try { formData.value = await MoldRecordApi.getMoldRecord(id) + editDisable.value = true } finally { formLoading.value = false } } + // 加载列表 + brandList.value = await MoldBrandApi.getBrandList() + // 获得用户列表 + userList.value = await UserApi.getSimpleUserList() + // 获得用户列表 + machineList.value = await MachineComponentApi.getMachineComponentList() } defineExpose({ open }) // 提供 open 方法,用于打开弹窗 @@ -195,4 +256,14 @@ const resetForm = () => { } formRef.value?.resetFields() } + +const query = reactive({ + brandId: undefined +}) +const changeBrand = async(e) => { + query.brandId = formData.value.brandId + // 加载列表 + moldList.value = await MoldBrandApi.getMoldList(query) +} + diff --git a/src/views/mes/moldrecord/components/MoldRecordSubjectDetailForm.vue b/src/views/mes/moldrecord/components/MoldRecordSubjectDetailForm.vue index 8381e057..ef9ab50c 100644 --- a/src/views/mes/moldrecord/components/MoldRecordSubjectDetailForm.vue +++ b/src/views/mes/moldrecord/components/MoldRecordSubjectDetailForm.vue @@ -12,21 +12,34 @@ @@ -47,7 +60,9 @@ @@ -59,6 +74,8 @@ \ No newline at end of file + diff --git a/src/views/mes/moldrecord/index.vue b/src/views/mes/moldrecord/index.vue index adb195b3..b140ac3f 100644 --- a/src/views/mes/moldrecord/index.vue +++ b/src/views/mes/moldrecord/index.vue @@ -17,24 +17,22 @@ class="!w-240px" /> - - - - + > + import { getStrDictOptions, DICT_TYPE } from '@/utils/dict' -import { dateFormatter } from '@/utils/formatTime' +import {dateFormatter, dateFormatter2} from '@/utils/formatTime' import download from '@/utils/download' import { MoldRecordApi, MoldRecordVO } from '@/api/mes/moldrecord' import MoldRecordForm from './MoldRecordForm.vue' import MoldRecordSubjectDetailList from './components/MoldRecordSubjectDetailList.vue' +import * as UserApi from "@/api/system/user"; /** 模具维保 列表 */ defineOptions({ name: 'MoldRecord' }) @@ -204,6 +203,7 @@ const { t } = useI18n() // 国际化 const loading = ref(true) // 列表的加载中 const list = ref([]) // 列表的数据 +const userList = ref([]) // 用户列表 const total = ref(0) // 列表的总页数 const queryParams = reactive({ pageNo: 1, @@ -281,8 +281,10 @@ const handleExport = async () => { } /** 初始化 **/ -onMounted(() => { - getList() +onMounted(async () => { + await getList() + // 获得用户列表 + userList.value = await UserApi.getSimpleUserList() }) /** tab 切换 */ let activeName = ''