|
|
|
import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
|
|
|
|
import { dateFormatter } from '@/utils/formatTime'
|
|
|
|
import { getSamplingScheme } from "@/api/qms/aql";
|
|
|
|
import { validateNum } from "@/utils/validator";
|
|
|
|
|
|
|
|
// 表单校验
|
|
|
|
export const AqlRules = reactive({
|
|
|
|
code: [required],
|
|
|
|
inspectionQualification: [required],
|
|
|
|
sampleCharacterCode: [{ required, max: 1, message: '长度不得超过1个字符', trigger: 'blur' }],
|
|
|
|
sampleSize: [required],
|
|
|
|
a0separator010: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator010: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator015: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator015: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator025: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator025: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator040: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator040: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator065: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator065: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator10: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator10: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator15: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator15: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator25: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator25: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator40: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator40: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator65: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator65: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a1separator0: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r1separator0: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a1separator5: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r1separator5: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a2separator5: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r2separator5: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a4separator0: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r4separator0: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a6separator5: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r6separator5: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a10: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r10: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a15: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r15: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a25: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r25: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a40: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r40: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a65: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r65: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a100: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r100: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a150: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r150: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a250: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r250: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a400: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r400: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a650: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r650: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a1000: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r1000: [{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
})
|
|
|
|
const samplingSchemeList = await getSamplingScheme()
|
|
|
|
export const Aql = useCrudSchemas(reactive<CrudSchema[]>([
|
|
|
|
{
|
|
|
|
label: '采样方案编码',
|
|
|
|
field: 'code',
|
|
|
|
sort: 'custom',
|
|
|
|
isSearch: true,
|
|
|
|
form: {
|
|
|
|
component: 'Select',
|
|
|
|
componentProps: {
|
|
|
|
options: samplingSchemeList,
|
|
|
|
optionsAlias: {
|
|
|
|
labelField: 'description',
|
|
|
|
valueField: 'code'
|
|
|
|
},
|
|
|
|
}
|
|
|
|
},
|
|
|
|
table: {
|
|
|
|
width: 175,
|
|
|
|
fixed: 'left'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '检验严格性',
|
|
|
|
field: 'inspectionQualification',
|
|
|
|
sort: 'custom',
|
|
|
|
dictType: DICT_TYPE.INSPECTION_SEVERITY,
|
|
|
|
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
|
|
|
|
isSearch: true,
|
|
|
|
form: {
|
|
|
|
component: 'Select'
|
|
|
|
},
|
|
|
|
table: {
|
|
|
|
width: 130
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '样本字码',
|
|
|
|
field: 'sampleCharacterCode',
|
|
|
|
sort: 'custom',
|
|
|
|
isSearch: true,
|
|
|
|
table: {
|
|
|
|
width: 110
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '样本量',
|
|
|
|
field: 'sampleSize',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 95
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A0_010',
|
|
|
|
field: 'a0separator010',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R0_010',
|
|
|
|
field: 'r0separator010',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A0_015',
|
|
|
|
field: 'a0separator015',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R0_015',
|
|
|
|
field: 'r0separator015',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A0_025',
|
|
|
|
field: 'a0separator025',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R0_025',
|
|
|
|
field: 'r0separator025',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A0_040',
|
|
|
|
field: 'a0separator040',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R0_040',
|
|
|
|
field: 'r0separator040',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A0_065',
|
|
|
|
field: 'a0separator065',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R0_065',
|
|
|
|
field: 'r0separator065',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A0_10',
|
|
|
|
field: 'a0separator10',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R0_10',
|
|
|
|
field: 'r0separator10',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A0_15',
|
|
|
|
field: 'a0separator15',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R0_15',
|
|
|
|
field: 'r0separator15',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A0_25',
|
|
|
|
field: 'a0separator25',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R0_25',
|
|
|
|
field: 'r0separator25',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A0_40',
|
|
|
|
field: 'a0separator40',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R0_40',
|
|
|
|
field: 'r0separator40',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A0_65',
|
|
|
|
field: 'a0separator65',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R0_65',
|
|
|
|
field: 'r0separator65',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A1_0',
|
|
|
|
field: 'a1separator0',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R1_0',
|
|
|
|
field: 'r1separator0',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A1_5',
|
|
|
|
field: 'a1separator5',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R1_5',
|
|
|
|
field: 'r1separator5',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A2_5',
|
|
|
|
field: 'a2separator5',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R2_5',
|
|
|
|
field: 'r2separator5',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A4_0',
|
|
|
|
field: 'a4separator0',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R4_0',
|
|
|
|
field: 'r4separator0',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A6_5',
|
|
|
|
field: 'a6separator5',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R6_5',
|
|
|
|
field: 'r6separator5',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A10',
|
|
|
|
field: 'a10',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R10',
|
|
|
|
field: 'r10',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A15',
|
|
|
|
field: 'a15',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R15',
|
|
|
|
field: 'r15',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A25',
|
|
|
|
field: 'a25',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R25',
|
|
|
|
field: 'r25',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A40',
|
|
|
|
field: 'a40',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R40',
|
|
|
|
field: 'r40',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A65',
|
|
|
|
field: 'a65',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R65',
|
|
|
|
field: 'r65',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A100',
|
|
|
|
field: 'a100',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R100',
|
|
|
|
field: 'r100',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A150',
|
|
|
|
field: 'a150',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R150',
|
|
|
|
field: 'r150',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A250',
|
|
|
|
field: 'a250',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R250',
|
|
|
|
field: 'r250',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A400',
|
|
|
|
field: 'a400',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R400',
|
|
|
|
field: 'r400',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A650',
|
|
|
|
field: 'a650',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R650',
|
|
|
|
field: 'r650',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A1000',
|
|
|
|
field: 'a1000',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R1000',
|
|
|
|
field: 'r1000',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '创建时间',
|
|
|
|
field: 'createTime',
|
|
|
|
sort: 'custom',
|
|
|
|
formatter: dateFormatter,
|
|
|
|
isForm: false,
|
|
|
|
detail: {
|
|
|
|
dateFormat: 'YYYY-MM-DD HH:mm:ss'
|
|
|
|
},
|
|
|
|
form: {
|
|
|
|
component: 'DatePicker',
|
|
|
|
componentProps: {
|
|
|
|
style: { width: '100%' },
|
|
|
|
type: 'datetime',
|
|
|
|
dateFormat: 'YYYY-MM-DD HH:mm:ss',
|
|
|
|
valueFormat: 'x',
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '是否可用',
|
|
|
|
field: 'available',
|
|
|
|
sort: 'custom',
|
|
|
|
dictType: DICT_TYPE.TRUE_FALSE,
|
|
|
|
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
|
|
|
|
form: {
|
|
|
|
component: 'Switch',
|
|
|
|
value: 'TRUE',
|
|
|
|
componentProps: {
|
|
|
|
inactiveValue: 'FALSE',
|
|
|
|
activeValue: 'TRUE'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
table: {
|
|
|
|
width: 110
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: '操作',
|
|
|
|
field: 'action',
|
|
|
|
isForm: false,
|
|
|
|
table: {
|
|
|
|
width: 150,
|
|
|
|
fixed: 'right'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]))
|