|
|
|
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' }],
|
|
|
|
sampleQty: [required,{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator010: [required,{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator010: [required,{ validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator015: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator015: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator025: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator025: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator040: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator040: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator065: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator065: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator10: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator10: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator15: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator15: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator25: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator25: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator40: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator40: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a0separator65: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r0separator65: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a1separator0: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r1separator0: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a1separator5: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r1separator5: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a2separator5: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r2separator5: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a4separator0: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r4separator0: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a6separator5: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r6separator5: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a10: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r10: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a15: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r15: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a25: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r25: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a40: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r40: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a65: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r65: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a100: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r100: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a150: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r150: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a250: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r250: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a400: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r400: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a650: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r650: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
a1000: [required,{validator: validateNum, message: '请输入整数', trigger: 'blur' }],
|
|
|
|
r1000: [required,{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: 'sampleQty',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 95
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'A0.01',
|
|
|
|
field: 'a0separator010',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R0.01',
|
|
|
|
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.04',
|
|
|
|
field: 'a0separator040',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R0.04',
|
|
|
|
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.1',
|
|
|
|
field: 'a0separator10',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R0.1',
|
|
|
|
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.4',
|
|
|
|
field: 'a0separator40',
|
|
|
|
sort: 'custom',
|
|
|
|
table: {
|
|
|
|
width: 105
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'R0.4',
|
|
|
|
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',
|
|
|
|
}
|
|
|
|
},
|
|
|
|
table: {
|
|
|
|
width: 175
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
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'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]))
|