import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import { dateFormatter } from '@/utils/formatTime' import { ItemAccounts } from '@/views/eam/item/itemAccounts/itemAccounts.data' import * as ItemAccountsApi from '@/api/eam/item/itemAccounts' import * as DeviceMoldItemsApi from '@/api/eam/basic/deviceMaintenance' import { validateHanset, validateEmail } from '@/utils/validator' const { t } = useI18n() // 国际化 /** * @returns {Array} 备件申请主表 */ export const ApplicationRecordMain = useCrudSchemas(reactive([ { label: '领用编号', field: 'number', sort: 'custom', isForm: false, isSearch: true, table: { width: 180, fixed: 'left' }, }, { label: '申领人', field: 'applyId', sort: 'custom', isForm: false, isSearch: false, }, { label: '审批人', field: 'approveId', sort: 'custom', isForm: false, isSearch: false, }, { label: '出库人', field: 'outId', sort: 'custom', isForm: false, isSearch: false, }, { label: '描述', field: 'name', sort: 'custom', }, { label: '状态', field: 'status', sort: 'custom', dictType: DICT_TYPE.ITEM_APPLY_STATUS, dictClass: 'string', isSearch: true, isTable: true, table: { width: 150 }, tableForm: { type: 'Select', disabled: true } }, { label: '操作', field: 'action', isDetail: false, isForm: false, table: { width: 200, fixed: 'right' } } ])) //表单校验 export const ApplicationRecordMainRules = reactive({ name: [ { required: true, message: '请填写描述', trigger: 'change' } ], remark: [ { max: 50, message: '不得超过50个字符', trigger: 'blur' } ], available: [ { required: true, message: '请选择是否可用', trigger: 'change' } ], }) export const DeviceMOLD = useCrudSchemas(reactive([ { label: '编号', field: 'number', sort: 'custom', isForm: false, table: { width: 180, fixed: 'left' }, }, { label: '名称', field: 'name', sort: 'custom', }, { label: '规格型号', field: 'specification', sort: 'custom', }, ])) /** * @returns {Array} 备件申请子表 */ export const ApplicationRecordDetail = useCrudSchemas(reactive([ { label: '备件编号', field: 'itemNumber', sort: 'custom', isSearch: true, tableForm: { isInpuFocusShow: true, searchListPlaceholder: '请选择备件编号', searchField: 'number', searchTitle: '库区信息', searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类 searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法 searchCondition: [{ key: 'available', value: 'TRUE', isMainValue: false } ] }, }, { label: '类型', field: 'type', sort: 'custom', dictType: DICT_TYPE.DEVICE_MOLD_TYPE, dictClass: 'string', isSearch: true, isTable: true, table: { width: 150 }, tableForm: { type: 'Select', disabled: false } }, { label: '设备/模具编号', field: 'deviceNumber', sort: 'custom', isSearch: true, tableForm: { isInpuFocusShow: true, searchListPlaceholder: '请选择单号', searchField: 'number', searchTitle: '单号信息', searchAllSchemas: DeviceMOLD.allSchemas, // 查询弹窗所需类 searchPage: DeviceMoldItemsApi.getNumber, // 查询弹窗所需分页方法 searchCondition: [{ key: 'available', value: "TRUE", isMainValue: false }, { key: 'type', value: "type", isMainValue: true } ] }, }, { label: '申领数量', field: 'qty', sort: 'custom', table: { width: 150 }, form: { component: 'InputNumber', componentProps: { min: 0, precision: 2 } }, tableForm: { type: 'InputNumber', min: 0, precision: 2 } }, { label: '库存数量', field: 'currentQty', sort: 'custom', table: { width: 150 }, form: { component: 'InputNumber', componentProps: { min: 0, precision: 2 } }, tableForm: { type: 'InputNumber', min: 0, precision: 2 } }, { label: '是否可用', field: 'available', sort: 'custom', dictType: DICT_TYPE.TRUE_FALSE, dictClass: 'string', isSearch: true, isTable: true, table: { width: 150 }, tableForm: { type: 'Select', disabled: true } }, { label: '是否以旧换新', field: 'isRadeIn', sort: 'custom', dictType: DICT_TYPE.TRUE_FALSE, dictClass: 'string', isSearch: true, isTable: true, table: { width: 150 }, tableForm: { type: 'Select', disabled: true } }, { label: '备注', field: 'remark', table: { width: 150 }, }, { label: '操作', field: 'action', isDetail: false, isForm: false, table: { width: 150, fixed: 'right' }, isTableForm: false, } ])) //表单校验 export const ApplicationRecordDetailRules = reactive({ lineNumber: [ { required: true, message: '请输入行号', trigger: 'blur' }, { max: 50, message: '不得超过50个字符', trigger: 'blur' } ], stdPackQty: [ { required: true, message: '请输入标包数量', trigger: 'blur' } ], stdPackUnit: [ { required: true, message: '请选择标包单位', trigger: 'change' } ], convertRate: [ { required: true, message: '请输入转换率', trigger: 'blur' } ], taxRate: [ { required: true, message: '请输入税率', trigger: 'blur' } ], shippedQty: [ { required: true, message: '请输入已发货数量', trigger: 'blur' } ], receivedQty: [ { required: true, message: '请输入已收货数量', trigger: 'blur' } ], returnedQty: [ { required: true, message: '请输入已退货数量', trigger: 'blur' } ], putawayQty: [ { required: true, message: '请输入已上架数量', trigger: 'blur' } ], overReceivingPercent: [ { required: true, message: '请输入超收百分比', trigger: 'blur' } ], orderQty: [ { required: true, message: '请输入订单数量', trigger: 'blur' } ], uom: [ { required: true, message: '请选择计量单位', trigger: 'change' } ], available: [ { required: true, message: '请选择是否可用', trigger: 'change' } ], nuumber: [ { required: true, message: '请输入单据号', trigger: 'blur' } ], itemCode: [ { required: true, message: '请选择物品代码', trigger: 'change' } ], remark: [ { max: 50, message: '不得超过50个字符', trigger: 'blur' } ], })