import { BasicColumn, FormSchema } from '/@/components/Table'; import { checkActionCode, checkActionName } from './MesXslMixerAction.api'; export const columns: BasicColumn[] = [ { title: '设备名称', align: 'center', dataIndex: 'equipmentName', width: 180 }, { title: '机台编号', align: 'center', dataIndex: 'equipId', width: 110 }, { title: '机台类型', align: 'center', dataIndex: 'equipType', width: 110 }, { title: '动作名称', align: 'center', dataIndex: 'actionName', width: 180 }, { title: '动作代号', align: 'center', dataIndex: 'actionCode', width: 120 }, { title: '创建时间', align: 'center', dataIndex: 'createTime', width: 170 }, ]; export const searchFormSchema: FormSchema[] = [ { label: '设备名称', field: 'equipmentId', component: 'JDictSelectTag', componentProps: { dictCode: 'mes_xsl_equipment_ledger,equipment_name,id' }, colProps: { span: 6 }, }, { label: '机台编号', field: 'equipId', component: 'Input', colProps: { span: 6 } }, { label: '动作名称', field: 'actionName', component: 'Input', colProps: { span: 6 } }, { label: '动作代号', field: 'actionCode', component: 'Input', colProps: { span: 6 } }, ]; export const formSchema: FormSchema[] = [ { label: '', field: 'id', component: 'Input', show: false }, { label: '设备名称', field: 'equipmentId', component: 'JDictSelectTag', required: true, componentProps: { dictCode: 'mes_xsl_equipment_ledger,equipment_name,id', placeholder: '请选择设备台账中的设备' }, }, // 采集冗余字段:仅采集数据有值,只读展示 { label: '机台编号', field: 'equipId', component: 'Input', componentProps: { disabled: true }, ifShow: ({ values }) => !!values.equipId, }, { label: '机台类型', field: 'equipType', component: 'Input', componentProps: { disabled: true }, ifShow: ({ values }) => !!values.equipType, }, { label: '动作名称', field: 'actionName', component: 'Input', required: true, dynamicRules: ({ model }) => [ { required: true, message: '请输入动作名称' }, { validator: async (_rule, value) => { const v = value == null ? '' : String(value).trim(); if (!v) return Promise.resolve(); try { await checkActionName({ equipmentId: model?.equipmentId, actionName: v, dataId: model?.id }); return Promise.resolve(); } catch (e: any) { return Promise.reject(e?.response?.data?.message || e?.message || '同一设备下动作名称不能重复'); } }, trigger: 'blur', }, ], }, { label: '动作代号', field: 'actionCode', component: 'Input', required: true, dynamicRules: ({ model }) => [ { required: true, message: '请输入动作代号' }, { validator: async (_rule, value) => { const v = value == null ? '' : String(value).trim(); if (!v) return Promise.resolve(); try { await checkActionCode({ equipmentId: model?.equipmentId, actionCode: v, dataId: model?.id }); return Promise.resolve(); } catch (e: any) { return Promise.reject(e?.response?.data?.message || e?.message || '同一设备下动作代号不能重复'); } }, trigger: 'blur', }, ], }, ];