77 lines
2.6 KiB
Vue
77 lines
2.6 KiB
Vue
|
|
import { BasicColumn, FormSchema } from '/@/components/Table';
|
||
|
|
import { checkActionCode, checkActionName } from './MesXslMixerAction.api';
|
||
|
|
|
||
|
|
export const columns: BasicColumn[] = [
|
||
|
|
{ title: '设备名称', align: 'center', dataIndex: 'equipmentId_dictText', width: 180 },
|
||
|
|
{ title: '动作名称', align: 'center', dataIndex: 'actionName', width: 180 },
|
||
|
|
{ title: '动作代号', align: 'center', dataIndex: 'actionCode', width: 160 },
|
||
|
|
{ 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: '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: '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({ 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({ actionCode: v, dataId: model?.id });
|
||
|
|
return Promise.resolve();
|
||
|
|
} catch (e: any) {
|
||
|
|
return Promise.reject(e?.response?.data?.message || e?.message || '动作代号不能重复');
|
||
|
|
}
|
||
|
|
},
|
||
|
|
trigger: 'blur',
|
||
|
|
},
|
||
|
|
],
|
||
|
|
},
|
||
|
|
];
|