| | |
| | | import type { VbenFormSchema } from '#/adapter/form'; |
| | | import type { VxeTableGridOptions } from '#/adapter/vxe-table'; |
| | | import type { MesPdParameterApi } from '#/api/mes/pro/processdesign/parameter'; |
| | | import type { VbenFormSchema } from "#/adapter/form"; |
| | | import type { VxeTableGridOptions } from "#/adapter/vxe-table"; |
| | | import type { MesPdParameterApi } from "#/api/mes/pro/processdesign/parameter"; |
| | | |
| | | import { DICT_TYPE } from '../../../../packages/constants/src'; |
| | | import { getDictOptions } from '../../../../packages/effects/hooks/src'; |
| | | import { DICT_TYPE } from "../../../../packages/constants/src"; |
| | | import { getDictOptions } from "../../../../packages/effects/hooks/src"; |
| | | |
| | | import { z } from '#/adapter/form'; |
| | | |
| | | /** 参数类型 - 下拉选项的值 */ |
| | | const PARAM_TYPE_SELECT = 3; |
| | | import { z } from "#/adapter/form"; |
| | | import { getUnitPage } from "#/api/mdm/unit"; |
| | | |
| | | /** 表单类型 */ |
| | | export type FormType = 'create' | 'detail' | 'update'; |
| | | export type FormType = "create" | "detail" | "update"; |
| | | |
| | | /** 新增/修改工艺参数的表单 */ |
| | | export function useFormSchema(): VbenFormSchema[] { |
| | | return [ |
| | | { |
| | | fieldName: 'id', |
| | | component: 'Input', |
| | | fieldName: "id", |
| | | component: "Input", |
| | | dependencies: { |
| | | triggerFields: [''], |
| | | triggerFields: [""], |
| | | show: () => false, |
| | | }, |
| | | }, |
| | | { |
| | | fieldName: 'code', |
| | | label: '参数编码', |
| | | component: 'Input', |
| | | fieldName: "paramCode", |
| | | label: "参数编码", |
| | | component: "Input", |
| | | componentProps: { |
| | | maxLength: 64, |
| | | placeholder: '请输入参数编码', |
| | | placeholder: "参数编码自动生成", |
| | | disabled: true, |
| | | }, |
| | | rules: z.string().min(1, '参数编码不能为空').max(64), |
| | | }, |
| | | { |
| | | fieldName: 'name', |
| | | label: '参数名称', |
| | | component: 'Input', |
| | | fieldName: "paramName", |
| | | label: "参数名称", |
| | | component: "Input", |
| | | componentProps: { |
| | | maxLength: 100, |
| | | placeholder: '请输入参数名称', |
| | | placeholder: "请输入参数名称", |
| | | }, |
| | | rules: z.string().min(1, '参数名称不能为空').max(100), |
| | | rules: z.string().min(1, "参数名称不能为空").max(100), |
| | | }, |
| | | { |
| | | fieldName: 'type', |
| | | label: '参数类型', |
| | | component: 'Select', |
| | | fieldName: "paramType", |
| | | label: "参数类型", |
| | | component: "Select", |
| | | componentProps: { |
| | | allowClear: true, |
| | | options: getDictOptions(DICT_TYPE.MES_PD_PARAM_TYPE, 'number'), |
| | | placeholder: '请选择参数类型', |
| | | options: getDictOptions(DICT_TYPE.MES_PD_PARAM_TYPE, "number"), |
| | | placeholder: "请选择参数类型", |
| | | }, |
| | | rules: 'selectRequired', |
| | | rules: "selectRequired", |
| | | }, |
| | | { |
| | | fieldName: 'unit', |
| | | label: '单位', |
| | | component: 'Input', |
| | | fieldName: "unitMeasureId", |
| | | label: "计量单位", |
| | | component: "ApiSelect", |
| | | componentProps: { |
| | | maxLength: 20, |
| | | placeholder: '请输入单位', |
| | | allowClear: true, |
| | | api: async () => { |
| | | const result = await getUnitPage({ pageNo: 1, pageSize: 100 }); |
| | | return result.list.map(item => ({ |
| | | label: item.name || "", |
| | | value: item.id || 0, |
| | | })); |
| | | }, |
| | | labelField: "label", |
| | | valueField: "value", |
| | | placeholder: "请选择计量单位", |
| | | showSearch: true, |
| | | filterOption: true, |
| | | }, |
| | | }, |
| | | { |
| | | fieldName: 'requiredFlag', |
| | | label: '是否必填', |
| | | component: 'Switch', |
| | | fieldName: "required", |
| | | label: "是否必填", |
| | | component: "Switch", |
| | | componentProps: { |
| | | checkedChildren: '是', |
| | | unCheckedChildren: '否', |
| | | checkedChildren: "是", |
| | | unCheckedChildren: "否", |
| | | }, |
| | | rules: z.boolean().default(false), |
| | | }, |
| | | { |
| | | fieldName: 'dictType', |
| | | label: '字典类型', |
| | | component: 'Input', |
| | | componentProps: { |
| | | maxLength: 64, |
| | | placeholder: '请输入字典类型(下拉选项时配置)', |
| | | }, |
| | | dependencies: { |
| | | triggerFields: ['type'], |
| | | show: (values) => values?.type === PARAM_TYPE_SELECT, |
| | | }, |
| | | }, |
| | | { |
| | | fieldName: 'apiUrl', |
| | | label: '接口地址', |
| | | component: 'Input', |
| | | fieldName: "remark", |
| | | label: "备注", |
| | | component: "Textarea", |
| | | formItemClass: "col-span-2", |
| | | componentProps: { |
| | | maxLength: 250, |
| | | placeholder: '请输入接口地址(下拉选项时配置)', |
| | | }, |
| | | dependencies: { |
| | | triggerFields: ['type'], |
| | | show: (values) => values?.type === PARAM_TYPE_SELECT, |
| | | }, |
| | | }, |
| | | { |
| | | fieldName: 'remark', |
| | | label: '备注', |
| | | component: 'Textarea', |
| | | formItemClass: 'col-span-2', |
| | | componentProps: { |
| | | maxLength: 250, |
| | | placeholder: '请输入备注', |
| | | placeholder: "请输入备注", |
| | | rows: 3, |
| | | }, |
| | | }, |
| | |
| | | export function useGridFormSchema(): VbenFormSchema[] { |
| | | return [ |
| | | { |
| | | fieldName: 'code', |
| | | label: '参数编码', |
| | | component: 'Input', |
| | | fieldName: "paramCode", |
| | | label: "参数编码", |
| | | component: "Input", |
| | | componentProps: { |
| | | allowClear: true, |
| | | placeholder: '请输入参数编码', |
| | | placeholder: "请输入参数编码", |
| | | }, |
| | | }, |
| | | { |
| | | fieldName: 'name', |
| | | label: '参数名称', |
| | | component: 'Input', |
| | | fieldName: "paramName", |
| | | label: "参数名称", |
| | | component: "Input", |
| | | componentProps: { |
| | | allowClear: true, |
| | | placeholder: '请输入参数名称', |
| | | placeholder: "请输入参数名称", |
| | | }, |
| | | }, |
| | | { |
| | | fieldName: 'type', |
| | | label: '参数类型', |
| | | component: 'Select', |
| | | fieldName: "paramType", |
| | | label: "参数类型", |
| | | component: "Select", |
| | | componentProps: { |
| | | allowClear: true, |
| | | options: getDictOptions(DICT_TYPE.MES_PD_PARAM_TYPE, 'number'), |
| | | placeholder: '请选择参数类型', |
| | | options: getDictOptions(DICT_TYPE.MES_PD_PARAM_TYPE, "number"), |
| | | placeholder: "请选择参数类型", |
| | | }, |
| | | }, |
| | | ]; |
| | | } |
| | | |
| | | /** 列表的字段 */ |
| | | export function useGridColumns(): VxeTableGridOptions<MesPdParameterApi.Parameter>['columns'] { |
| | | export function useGridColumns(): VxeTableGridOptions<MesPdParameterApi.Parameter>["columns"] { |
| | | return [ |
| | | { |
| | | type: 'seq', |
| | | title: '序号', |
| | | type: "seq", |
| | | title: "序号", |
| | | width: 60, |
| | | align: 'center', |
| | | align: "center", |
| | | }, |
| | | { field: 'code', title: '参数编码', minWidth: 150 }, |
| | | { field: 'name', title: '参数名称', minWidth: 180 }, |
| | | { field: "paramCode", title: "参数编码", minWidth: 150 }, |
| | | { field: "paramName", title: "参数名称", minWidth: 180 }, |
| | | { |
| | | field: 'type', |
| | | title: '参数类型', |
| | | field: "paramType", |
| | | title: "参数类型", |
| | | width: 120, |
| | | cellRender: { |
| | | name: 'CellDict', |
| | | name: "CellDict", |
| | | props: { type: DICT_TYPE.MES_PD_PARAM_TYPE }, |
| | | }, |
| | | }, |
| | | { field: 'unit', title: '单位', width: 80 }, |
| | | { field: "unitMeasureName", title: "单位", width: 80 }, |
| | | { |
| | | field: 'requiredFlag', |
| | | title: '是否必填', |
| | | field: "required", |
| | | title: "是否必填", |
| | | width: 90, |
| | | cellRender: { |
| | | name: 'CellDict', |
| | | name: "CellDict", |
| | | props: { type: DICT_TYPE.INFRA_BOOLEAN_STRING }, |
| | | }, |
| | | }, |
| | | { field: 'remark', title: '备注', minWidth: 180 }, |
| | | { field: "remark", title: "备注", minWidth: 180 }, |
| | | { |
| | | field: 'createTime', |
| | | title: '创建时间', |
| | | field: "createTime", |
| | | title: "创建时间", |
| | | width: 180, |
| | | formatter: 'formatDateTime', |
| | | formatter: "formatDateTime", |
| | | }, |
| | | { |
| | | title: '操作', |
| | | title: "操作", |
| | | width: 150, |
| | | fixed: 'right', |
| | | fixed: "right", |
| | | slots: { |
| | | default: 'actions', |
| | | default: "actions", |
| | | }, |
| | | }, |
| | | ]; |