diff --git a/src/api/eam/repairSparePartsRecord/index.ts b/src/api/eam/repairSparePartsRecord/index.ts new file mode 100644 index 000000000..d499696d8 --- /dev/null +++ b/src/api/eam/repairSparePartsRecord/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface RepairSparePartsRecordVO { + id: number + number: string + sparePartsCode: string + qty: number + areaCode: string + locationCode: string + status: string + result: string + applyer: string + approver: number + approveContent: string + approveTime: Date + autoExamine: string + autoAgree: string + directCreateRecord: string + departmentCode: string + remark: string + siteId: string + available: string + deletionTime: Date + deleterId: byte[] + concurrencyStamp: number +} + +// 查询备件维修申请列表 +export const getRepairSparePartsRecordPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/repair-spare-parts-record/senior', data }) + } else { + return await request.get({ url: `/eam/repair-spare-parts-record/page`, params }) + } +} + +// 查询备件维修申请详情 +export const getRepairSparePartsRecord = async (id: number) => { + return await request.get({ url: `/eam/repair-spare-parts-record/get?id=` + id }) +} + +// 新增备件维修申请 +export const createRepairSparePartsRecord = async (data: RepairSparePartsRecordVO) => { + return await request.post({ url: `/eam/repair-spare-parts-record/create`, data }) +} + +// 修改备件维修申请 +export const updateRepairSparePartsRecord = async (data: RepairSparePartsRecordVO) => { + return await request.put({ url: `/eam/repair-spare-parts-record/update`, data }) +} + +// 删除备件维修申请 +export const deleteRepairSparePartsRecord = async (id: number) => { + return await request.delete({ url: `/eam/repair-spare-parts-record/delete?id=` + id }) +} + +// 导出备件维修申请 Excel +export const exportRepairSparePartsRecord = async (params) => { + return await request.download({ url: `/eam/repair-spare-parts-record/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/repair-spare-parts-record/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/eam/repairSparePartsRequest/index.ts b/src/api/eam/repairSparePartsRequest/index.ts new file mode 100644 index 000000000..b99181ff9 --- /dev/null +++ b/src/api/eam/repairSparePartsRequest/index.ts @@ -0,0 +1,68 @@ +import request from '@/config/axios' + +export interface RepairSparePartsRequestVO { + id: number + number: string + sparePartsCode: string + qty: number + areaCode: string + locationCode: string + status: string + result: string + applyer: string + approver: number + approveContent: string + approveTime: Date + autoExamine: string + autoAgree: string + directCreateRecord: string + departmentCode: string + remark: string + siteId: string + available: string + deletionTime: Date + deleterId: byte[] + concurrencyStamp: number + repairCause: string +} + +// 查询备件维修申请列表 +export const getRepairSparePartsRequestPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/repair-spare-parts-request/senior', data }) + } else { + return await request.get({ url: `/eam/repair-spare-parts-request/page`, params }) + } +} + +// 查询备件维修申请详情 +export const getRepairSparePartsRequest = async (id: number) => { + return await request.get({ url: `/eam/repair-spare-parts-request/get?id=` + id }) +} + +// 新增备件维修申请 +export const createRepairSparePartsRequest = async (data: RepairSparePartsRequestVO) => { + return await request.post({ url: `/eam/repair-spare-parts-request/create`, data }) +} + +// 修改备件维修申请 +export const updateRepairSparePartsRequest = async (data: RepairSparePartsRequestVO) => { + return await request.put({ url: `/eam/repair-spare-parts-request/update`, data }) +} + +// 删除备件维修申请 +export const deleteRepairSparePartsRequest = async (id: number) => { + return await request.delete({ url: `/eam/repair-spare-parts-request/delete?id=` + id }) +} + +// 导出备件维修申请 Excel +export const exportRepairSparePartsRequest = async (params) => { + return await request.download({ url: `/eam/repair-spare-parts-request/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/repair-spare-parts-request/get-import-template' }) +} \ No newline at end of file diff --git a/src/views/eam/repairSparePartsRecord/index.vue b/src/views/eam/repairSparePartsRecord/index.vue new file mode 100644 index 000000000..af8626c6d --- /dev/null +++ b/src/views/eam/repairSparePartsRecord/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/eam/repairSparePartsRecord/repairSparePartsRecord.data.ts b/src/views/eam/repairSparePartsRecord/repairSparePartsRecord.data.ts new file mode 100644 index 000000000..b5ce90db8 --- /dev/null +++ b/src/views/eam/repairSparePartsRecord/repairSparePartsRecord.data.ts @@ -0,0 +1,238 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const RepairSparePartsRecordRules = reactive({ + number: [required], + sparePartsCode: [required], + qty: [required], + areaCode: [required], + locationCode: [required], + status: [required], + result: [required], + applyer: [required], + concurrencyStamp: [required] +}) + +export const RepairSparePartsRecord = useCrudSchemas(reactive([ + { + label: '单号', + field: 'number', + sort: 'custom', + isSearch: true + }, + { + label: '备件编号', + field: 'sparePartsCode', + sort: 'custom', + isSearch: true + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + isSearch: true + }, + { + label: '库区编号', + field: 'areaCode', + sort: 'custom', + isSearch: true, + form: { + component: 'Select' + } + }, + { + label: '库位编号', + field: 'locationCode', + sort: 'custom', + isSearch: true, + form: { + component: 'Select' + } + }, + { + label: '流程状态', + field: 'status', + sort: 'custom', + isSearch: true, + form: { + component: 'Radio' + } + }, + { + label: '结果状态', + field: 'result', + sort: 'custom', + isSearch: true, + form: { + component: 'Select' + } + }, + { + label: '申请人', + field: 'applyer', + sort: 'custom', + isSearch: true + }, + { + label: '审核人', + field: 'approver', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: '审核内容', + field: 'approveContent', + sort: 'custom', + isSearch: true, + form: { + component: 'Editor', + componentProps: { + valueHtml: '', + height: 200 + } + } + }, + { + label: '审核时间', + field: 'approveTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + } + }, + { + label: '自动审核', + field: 'autoExamine', + sort: 'custom', + isSearch: true + }, + { + label: '自动通过', + field: 'autoAgree', + sort: 'custom', + isSearch: true + }, + { + label: '直接生成记录', + field: 'directCreateRecord', + sort: 'custom', + isSearch: true + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + isForm: false + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + isSearch: true + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: true + }, + { + label: '地点', + field: 'siteId', + sort: 'custom', + isSearch: true + }, + { + label: '是否可用', + field: 'available', + sort: 'custom', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: true, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '删除时间', + field: 'deletionTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + } + }, + { + label: '删除人', + field: 'deleterId', + sort: 'custom', + isSearch: true + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/eam/repairSparePartsRequest/index.vue b/src/views/eam/repairSparePartsRequest/index.vue new file mode 100644 index 000000000..873bb7a7e --- /dev/null +++ b/src/views/eam/repairSparePartsRequest/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/eam/repairSparePartsRequest/repairSparePartsRequest.data.ts b/src/views/eam/repairSparePartsRequest/repairSparePartsRequest.data.ts new file mode 100644 index 000000000..d64c8d827 --- /dev/null +++ b/src/views/eam/repairSparePartsRequest/repairSparePartsRequest.data.ts @@ -0,0 +1,251 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const RepairSparePartsRequestRules = reactive({ + number: [required], + sparePartsCode: [required], + qty: [required], + areaCode: [required], + locationCode: [required], + status: [required], + result: [required], + applyer: [required], + concurrencyStamp: [required], + repairCause: [required] +}) + +export const RepairSparePartsRequest = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isForm: false + }, + { + label: '单号', + field: 'number', + sort: 'custom', + isSearch: true + }, + { + label: '备件编号', + field: 'sparePartsCode', + sort: 'custom', + isSearch: true + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + isSearch: true + }, + { + label: '库区编号', + field: 'areaCode', + sort: 'custom', + isSearch: true, + form: { + component: 'SelectV2' + } + }, + { + label: '库位编号', + field: 'locationCode', + sort: 'custom', + isSearch: true, + form: { + component: 'SelectV2' + } + }, + { + label: '流程状态枚举0:待审核1:已撤回3:审核中4:已通过5:已驳回6:已完成', + field: 'status', + sort: 'custom', + isSearch: true, + form: { + component: 'Radio' + } + }, + { + label: '结果状态枚举:0待维修,1已废弃,2已修好', + field: 'result', + sort: 'custom', + isSearch: true, + form: { + component: 'SelectV2' + } + }, + { + label: '申请人', + field: 'applyer', + sort: 'custom', + isSearch: true + }, + { + label: '审核人', + field: 'approver', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: '审核内容', + field: 'approveContent', + sort: 'custom', + isSearch: true, + form: { + component: 'Editor', + componentProps: { + valueHtml: '', + height: 200 + } + } + }, + { + label: '审核时间', + field: 'approveTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + } + }, + { + label: '自动审核', + field: 'autoExamine', + sort: 'custom', + isSearch: true + }, + { + label: '自动通过', + field: 'autoAgree', + sort: 'custom', + isSearch: true + }, + { + label: '直接生成记录', + field: 'directCreateRecord', + sort: 'custom', + isSearch: true + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + isForm: false + }, + { + label: '部门', + field: 'departmentCode', + sort: 'custom', + isSearch: true + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: true + }, + { + label: '地点', + field: 'siteId', + sort: 'custom', + isSearch: true + }, + { + label: '是否可用--默认TRUE', + field: 'available', + sort: 'custom', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: true, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '删除时间', + field: 'deletionTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + } + }, + { + label: '删除人', + field: 'deleterId', + sort: 'custom', + isSearch: true + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isSearch: true, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: '维修原因', + field: 'repairCause', + sort: 'custom', + isSearch: true + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +]))