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) }}
-
+
@@ -208,7 +208,14 @@
分钟
-
+
+
+
@@ -291,6 +298,57 @@
+
+
+
+
+ 新增工序资源
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+ {{dict.label}}
+
+
+
+
+ {{dict.label}}
+
+
+
+
+ {{dict.label}}
+
+
+
+
+ {{dict.label}}
+
+
+
+
+
+
+
+
+
+
@@ -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();
});