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 ItemApplyMain = 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: 'status', sort: 'custom', dictType: DICT_TYPE.ITEM_APPLY_STATUS, dictClass: 'string', isSearch: true, isTable: true, isForm: false, table: { width: 150 }, tableForm: { type: 'Select', disabled: false } }, { label: '描述', field: 'name', sort: 'custom', }, { label: '操作', field: 'action', isDetail: false, isForm: false, table: { width: 200, fixed: 'right' } } ])) //表单校验 export const ItemApplyMainRules = 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 ItemApplyDetail = 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 }, ] }, form: { // labelMessage: '信息提示说明!!!', componentProps: { isSearchList: 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 } ] }, form: { // labelMessage: '信息提示说明!!!', componentProps: { isSearchList: 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: { disabled: true, min: 0, precision: 2 } }, tableForm: { disabled: true, type: 'InputNumber', min: 0, precision: 2 } }, // { // label: '是否账内库', // field: 'isInAccount', // sort: 'custom', // dictType: DICT_TYPE.TRUE_FALSE, // dictClass: 'string', // isSearch: true, // isTable: true, // table: { // width: 150 // }, // tableForm: { // type: 'Select', // disabled: true // }, // form: { // componentProps: { // disabled: true, // } // }, // }, { 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: 'remark', table: { width: 150 }, }, { label: '操作', field: 'action', isDetail: false, isForm: false, table: { width: 150, fixed: 'right' }, isTableForm: false, } ])) //表单校验 export const ItemApplyDetailRules = reactive({ itemNumber: [ { required: true, message: '请选择备件编号', trigger: 'change' } ], type: [ { required: true, message: '请选择类型', trigger: 'change' } ], deviceNumber: [ { required: true, message: '请选择设备模具编号', trigger: 'change' } ], qty: [ { required: true, message: '请输入申领数量', trigger: 'change' } ], available: [ { required: true, message: '请选择是否可用', trigger: 'change' } ], })