From 3283a60be2f82e5fc44512a87c8d2e75bf78b776 Mon Sep 17 00:00:00 2001 From: yinq Date: Thu, 29 May 2025 17:25:33 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=B7=A5=E5=BA=8F=E5=85=B3=E8=81=94?= =?UTF-8?q?=E5=B7=A5=E5=BA=8F=E8=B5=84=E6=BA=90=E7=BB=B4=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/mes/baseProcessInfo/types.ts | 3 + src/api/mes/baseProcessResource/types.ts | 134 ++++++++++ src/views/mes/baseProcessInfo/index.vue | 310 ++++++++++++++++++++++- 3 files changed, 440 insertions(+), 7 deletions(-) create mode 100644 src/api/mes/baseProcessResource/types.ts diff --git a/src/api/mes/baseProcessInfo/types.ts b/src/api/mes/baseProcessInfo/types.ts index 3f0c630..f9c6635 100644 --- a/src/api/mes/baseProcessInfo/types.ts +++ b/src/api/mes/baseProcessInfo/types.ts @@ -1,3 +1,5 @@ +import { BaseProcessResourceVO } from "../baseProcessResource/types"; + export interface BaseProcessInfoVO { /** * 主键标识 @@ -251,6 +253,7 @@ export interface BaseProcessInfoForm extends BaseEntity { prodBaseProcessUserVoList?: ProdBaseProcessUser[]; prodBaseProcessProdlineBoList?: ProdBaseProcessProdLine[]; prodBaseProcessUserBoList?: ProdBaseProcessUser[]; + prodBaseProcessResourceList?: BaseProcessResourceVO[]; } export interface BaseProcessInfoQuery extends PageQuery { diff --git a/src/api/mes/baseProcessResource/types.ts b/src/api/mes/baseProcessResource/types.ts new file mode 100644 index 0000000..e627a89 --- /dev/null +++ b/src/api/mes/baseProcessResource/types.ts @@ -0,0 +1,134 @@ +export interface BaseProcessResourceVO { + /** + * 主键标识 + */ + processResourceId: string | number; + + /** + * 工序ID + */ + processId: string | number; + + /** + * 指派类型(1人员 2班组 3机台 4工位) + */ + assignmentType: string; + + /** + * 载具工装类型 + */ + toolingTypeCode: string; + + /** + * 必选标识(0可选 1必选) + */ + requiredFlag: string; + + /** + * 选择模式(0单选 1多选) + */ + selectionMode: string; + + /** + * 是否需要校验(0否 1是) + */ + requiresValidation: string | number; + + /** + * 是否需要准备任务(0否 1是) + */ + requiresPreparation: string; + + /** + * 备注 + */ + remark: string; +} + +export interface BaseProcessResourceForm extends BaseEntity { + /** + * 主键标识 + */ + processResourceId?: string | number; + + /** + * 指派类型(1人员 2班组 3机台 4工位) + */ + assignmentType?: string; + + /** + * 载具工装类型 + */ + toolingTypeCode?: string; + + /** + * 必选标识(0可选 1必选) + */ + requiredFlag?: string; + + /** + * 选择模式(0单选 1多选) + */ + selectionMode?: string; + + /** + * 是否需要校验(0否 1是) + */ + requiresValidation?: string | number; + + /** + * 是否需要准备任务(0否 1是) + */ + requiresPreparation?: string; + + /** + * 备注 + */ + remark?: string; +} + +export interface BaseProcessResourceQuery extends PageQuery { + + /** + * 主键标识 + */ + processResourceId?: string | number; + + /** + * 指派类型(1人员 2班组 3机台 4工位) + */ + assignmentType?: string; + + /** + * 载具工装类型 + */ + toolingTypeCode?: string; + + /** + * 必选标识(0可选 1必选) + */ + requiredFlag?: string; + + /** + * 选择模式(0单选 1多选) + */ + selectionMode?: string; + + /** + * 是否需要校验(0否 1是) + */ + requiresValidation?: string | number; + + /** + * 是否需要准备任务(0否 1是) + */ + requiresPreparation?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/views/mes/baseProcessInfo/index.vue b/src/views/mes/baseProcessInfo/index.vue index 0f347f7..6903fd3 100644 --- a/src/views/mes/baseProcessInfo/index.vue +++ b/src/views/mes/baseProcessInfo/index.vue @@ -95,7 +95,7 @@ {{ formatDayHourMinutes(scope.row.productionTime) }} - + @@ -416,11 +544,17 @@ import { } from '@/api/mes/baseProcessInfo'; import { getProdLineList } from '@/api/mes/baseProdLineInfo'; import { getUserList } from '@/api/system/user'; +import { getWorkshopList } from '@/api/mes/baseWorkshopInfo'; import { BaseProcessInfoVO, BaseProcessInfoQuery, BaseProcessInfoForm } from '@/api/mes/baseProcessInfo/types'; +import { + BaseProcessResourceVO, + BaseProcessResourceQuery, + BaseProcessResourceForm +} from '@/api/mes/baseProcessResource/types'; const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { @@ -429,8 +563,27 @@ const { mes_outsourcing_flag, mes_process_production_type, mes_material_method, - mes_inspection_method -} = toRefs(proxy?.useDict('active_flag', 'process_type', 'mes_outsourcing_flag', 'mes_process_production_type', 'mes_material_method', 'mes_inspection_method')); + mes_inspection_method, + mes_assignment_type, + mes_requires_validation, + mes_selection_mode, + tooling_type_code, + mes_required_flag, + mes_requires_preparation +} = toRefs(proxy?.useDict( + 'active_flag', + 'process_type', + 'mes_outsourcing_flag', + 'mes_process_production_type', + 'mes_material_method', + 'mes_inspection_method', + 'mes_assignment_type', + 'mes_requires_validation', + 'mes_selection_mode', + 'tooling_type_code', + 'mes_required_flag', + 'mes_requires_preparation' +)); const baseProcessInfoList = ref([]); const buttonLoading = ref(false); @@ -451,6 +604,14 @@ const chekedUserList = ref([]); const prodBaseProcessProdlineBoList = ref([]); const prodBaseProcessUserBoList = ref([]); +let workshopInfoList = ref([]); + +/** 查询车间下拉树结构 */ +const getWorkshopListSelect = async () => { + let res = await getWorkshopList(null); + workshopInfoList.value = res.data; +}; + const queryFormRef = ref(); const baseProcessInfoFormRef = ref(); @@ -646,7 +807,15 @@ const handleUpdate = async (row?: BaseProcessInfoVO) => { reset(); const _processId = row?.processId || ids.value[0]; const res = await getBaseProcessInfo(_processId); - Object.assign(form.value, res.data); + // 处理返回数据 + const { prodBaseProcessResourceList, ...sourceData } = res.data as any; + Object.assign(form.value, sourceData); + // 设置资源列表 + if (prodBaseProcessResourceList && Array.isArray(prodBaseProcessResourceList)) { + processResourceList.value = prodBaseProcessResourceList; + } else { + processResourceList.value = []; + } convertToTime(); dialog.visible = true; dialog.title = '修改工序信息'; @@ -658,10 +827,16 @@ const submitForm = () => { if (valid) { buttonLoading.value = true; convertToSeconds(); + // 将资源列表添加到表单数据中 + const submitData: BaseProcessInfoForm = { + ...form.value, + prodBaseProcessResourceList: processResourceList.value + }; + if (form.value.processId) { - await updateBaseProcessInfo(form.value).finally(() => buttonLoading.value = false); + await updateBaseProcessInfo(submitData).finally(() => buttonLoading.value = false); } else { - await addBaseProcessInfo(form.value).finally(() => buttonLoading.value = false); + await addBaseProcessInfo(submitData).finally(() => buttonLoading.value = false); } proxy?.$modal.msgSuccess('操作成功'); dialog.visible = false; @@ -869,9 +1044,130 @@ const rowProdBaseProcessUserIndex = ({ row, rowIndex }: { row: any; rowIndex: nu return ''; }; +// 工序资源相关 +const processResourceList = ref([]); +const resourceLoading = ref(false); +const resourceButtonLoading = ref(false); +const resourceFormRef = ref(); + +const resourceDialog = reactive({ + visible: false, + title: '' +}); + +const initResourceFormData: BaseProcessResourceForm = { + processResourceId: undefined, + assignmentType: undefined, + toolingTypeCode: undefined, + requiredFlag: undefined, + selectionMode: undefined, + requiresValidation: undefined, + requiresPreparation: undefined, + remark: undefined +}; + +const resourceData = reactive>({ + form: {...initResourceFormData}, + queryParams: { + pageNum: 1, + pageSize: 10, + processResourceId: undefined, + assignmentType: undefined, + toolingTypeCode: undefined, + requiredFlag: undefined, + selectionMode: undefined, + requiresValidation: undefined, + requiresPreparation: undefined, + params: {} + }, + rules: { + assignmentType: [ + { required: true, message: "指派类型不能为空", trigger: "change" } + ], + requiredFlag: [ + { required: true, message: "必选标识不能为空", trigger: "change" } + ], + selectionMode: [ + { required: true, message: "选择模式不能为空", trigger: "change" } + ], + requiresValidation: [ + { required: true, message: "是否需要校验不能为空", trigger: "change" } + ], + requiresPreparation: [ + { required: true, message: "是否需要准备任务不能为空", trigger: "change" } + ] + } +}); + +const { queryParams: resourceQueryParams, form: resourceForm, rules: resourceRules } = toRefs(resourceData); + +/** 新增资源按钮操作 */ +const handleAddResource = () => { + resourceForm.value = {...initResourceFormData}; + resourceDialog.visible = true; + resourceDialog.title = "添加工序资源"; +}; + +/** 修改资源按钮操作 */ +const handleUpdateResource = async (row: BaseProcessResourceVO) => { + resourceForm.value = {...initResourceFormData}; + Object.assign(resourceForm.value, row); + resourceDialog.visible = true; + resourceDialog.title = "修改工序资源"; +}; + +/** 删除资源按钮操作 */ +const handleDeleteResource = async (row: BaseProcessResourceVO) => { + await proxy?.$modal.confirm('是否确认删除该工序资源?'); + const index = processResourceList.value.findIndex(item => item.processResourceId === row.processResourceId); + if (index > -1) { + processResourceList.value.splice(index, 1); + } + proxy?.$modal.msgSuccess("删除成功"); +}; + +/** 提交资源表单 */ +const submitResourceForm = () => { + resourceFormRef.value?.validate(async (valid: boolean) => { + if (valid) { + const resourceData: BaseProcessResourceVO = { + processResourceId: resourceForm.value.processResourceId, + processId: form.value.processId, + assignmentType: resourceForm.value.assignmentType, + toolingTypeCode: resourceForm.value.toolingTypeCode, + requiredFlag: resourceForm.value.requiredFlag, + selectionMode: resourceForm.value.selectionMode, + requiresValidation: resourceForm.value.requiresValidation, + requiresPreparation: resourceForm.value.requiresPreparation, + remark: resourceForm.value.remark + }; + + if (resourceForm.value.processResourceId) { + // 修改资源 + const index = processResourceList.value.findIndex(item => item.processResourceId === resourceForm.value.processResourceId); + if (index > -1) { + processResourceList.value[index] = resourceData; + } + } else { + // 新增资源 + processResourceList.value.push(resourceData); + } + proxy?.$modal.msgSuccess("操作成功"); + resourceDialog.visible = false; + } + }); +}; + +/** 取消资源表单 */ +const cancelResource = () => { + resourceForm.value = {...initResourceFormData}; + resourceDialog.visible = false; +}; + onMounted(() => { getUsersList(); getLineList(); + getWorkshopListSelect();// 初始化车间数据 getList(); });