From 611c968b22e2e1185fd578314cb677713019c938 Mon Sep 17 00:00:00 2001 From: zhang_li <2235006734@qqq.com> Date: Fri, 7 Jun 2024 16:14:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=87=E4=BB=B6=E5=85=A5=E8=B4=A6=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eam/sparePartsInLocationDetail/index.ts | 58 +++ src/api/eam/sparePartsInLocationMain/index.ts | 65 +++ src/utils/dict.ts | 3 +- src/views/eam/sparePart/sparePart.data.ts | 3 +- src/views/eam/sparepartsinlocation/index.vue | 380 ++++++++++++++++++ .../sparePartsInLocationMain.data.ts | 322 +++++++++++++++ 6 files changed, 828 insertions(+), 3 deletions(-) create mode 100644 src/api/eam/sparePartsInLocationDetail/index.ts create mode 100644 src/api/eam/sparePartsInLocationMain/index.ts create mode 100644 src/views/eam/sparepartsinlocation/index.vue create mode 100644 src/views/eam/sparepartsinlocation/sparePartsInLocationMain.data.ts diff --git a/src/api/eam/sparePartsInLocationDetail/index.ts b/src/api/eam/sparePartsInLocationDetail/index.ts new file mode 100644 index 000000000..827687a36 --- /dev/null +++ b/src/api/eam/sparePartsInLocationDetail/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +export interface SparePartsInLocationDetailVO { + id: number + number: string + masterId: number + sparePartsCode: string + isRadeIn: string + applyQty: number + departmentCode: string + remark: string + siteId: string + available: string + deletionTime: Date + deleterId: byte[] + concurrencyStamp: number +} + +// 查询备件入库记录子列表 +export const getSparePartsInLocationDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/spare-parts-in-location-detail/senior', data }) + } else { + return await request.get({ url: `/eam/spare-parts-in-location-detail/page`, params }) + } +} + +// 查询备件入库记录子详情 +export const getSparePartsInLocationDetail = async (id: number) => { + return await request.get({ url: `/eam/spare-parts-in-location-detail/get?id=` + id }) +} + +// 新增备件入库记录子 +export const createSparePartsInLocationDetail = async (data: SparePartsInLocationDetailVO) => { + return await request.post({ url: `/eam/spare-parts-in-location-detail/create`, data }) +} + +// 修改备件入库记录子 +export const updateSparePartsInLocationDetail = async (data: SparePartsInLocationDetailVO) => { + return await request.put({ url: `/eam/spare-parts-in-location-detail/update`, data }) +} + +// 删除备件入库记录子 +export const deleteSparePartsInLocationDetail = async (id: number) => { + return await request.delete({ url: `/eam/spare-parts-in-location-detail/delete?id=` + id }) +} + +// 导出备件入库记录子 Excel +export const exportSparePartsInLocationDetail = async (params) => { + return await request.download({ url: `/eam/spare-parts-in-location-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/spare-parts-in-location-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/eam/sparePartsInLocationMain/index.ts b/src/api/eam/sparePartsInLocationMain/index.ts new file mode 100644 index 000000000..100f8fdb9 --- /dev/null +++ b/src/api/eam/sparePartsInLocationMain/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface SparePartsInLocationMainVO { + id: number + number: string + theme: string + status: string + applyer: string + approver: number + approveContent: string + approveTime: Date + autoExamine: string + autoAgree: string + directCreateRecord: string + areaCode: string + locationCode: string + departmentCode: string + remark: string + siteId: string + available: string + deletionTime: Date + deleterId: byte[] + concurrencyStamp: number +} + +// 查询备件领用出库记录主列表 +export const getSparePartsInLocationMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/spare-parts-in-location-main/senior', data }) + } else { + return await request.get({ url: `/eam/spare-parts-in-location-main/page`, params }) + } +} + +// 查询备件领用出库记录主详情 +export const getSparePartsInLocationMain = async (id: number) => { + return await request.get({ url: `/eam/spare-parts-in-location-main/get?id=` + id }) +} + +// 新增备件领用出库记录主 +export const createSparePartsInLocationMain = async (data: SparePartsInLocationMainVO) => { + return await request.post({ url: `/eam/spare-parts-in-location-main/create`, data }) +} + +// 修改备件领用出库记录主 +export const updateSparePartsInLocationMain = async (data: SparePartsInLocationMainVO) => { + return await request.put({ url: `/eam/spare-parts-in-location-main/update`, data }) +} + +// 删除备件领用出库记录主 +export const deleteSparePartsInLocationMain = async (id: number) => { + return await request.delete({ url: `/eam/spare-parts-in-location-main/delete?id=` + id }) +} + +// 导出备件领用出库记录主 Excel +export const exportSparePartsInLocationMain = async (params) => { + return await request.download({ url: `/eam/spare-parts-in-location-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/spare-parts-in-location-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 2b6969a8c..226390604 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -363,5 +363,6 @@ export enum DICT_TYPE { EAM_MAINTENANCE_URGENCY = 'eam_maintenance_urgency', // 维保紧急程度 EAM_MAINTENANCE_LEVEL = 'eam_maintenance_level', // 维保维修级别 EAM_REPAIR_STATUS = 'eam_repair_status', // 维修状态 - OFF_BACK_STATUS = 'off_back_status' + OFF_BACK_STATUS = 'off_back_status', + SPAREPARTS_APPLY_STATUS_ENUM = 'spareparts_apply_status_enum'// 流程状态 } diff --git a/src/views/eam/sparePart/sparePart.data.ts b/src/views/eam/sparePart/sparePart.data.ts index bd87fd3bf..86f74f2ab 100644 --- a/src/views/eam/sparePart/sparePart.data.ts +++ b/src/views/eam/sparePart/sparePart.data.ts @@ -25,7 +25,7 @@ export const SparePart = useCrudSchemas(reactive([ isSearch: false, isTable: false, isForm: false, - isDetail:false, + isDetail:false }, { label: '备件编号', @@ -197,7 +197,6 @@ export const SparePart = useCrudSchemas(reactive([ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] } }, - isForm: false, }, { label: '部门id', diff --git a/src/views/eam/sparepartsinlocation/index.vue b/src/views/eam/sparepartsinlocation/index.vue new file mode 100644 index 000000000..4371d9f2b --- /dev/null +++ b/src/views/eam/sparepartsinlocation/index.vue @@ -0,0 +1,380 @@ + + + diff --git a/src/views/eam/sparepartsinlocation/sparePartsInLocationMain.data.ts b/src/views/eam/sparepartsinlocation/sparePartsInLocationMain.data.ts new file mode 100644 index 000000000..b40f19427 --- /dev/null +++ b/src/views/eam/sparepartsinlocation/sparePartsInLocationMain.data.ts @@ -0,0 +1,322 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' +import * as ItemAccountsApi from '@/api/eam/itemAccounts' +import { ItemAccounts } from '@/views/eam/itemAccounts/itemAccounts.data' + + +// 表单校验 +export const SparePartsInLocationMainRules = reactive({ + number: [required], + theme: [required], + // status: [required], + // areaCode: [required], + // locationCode: [required], + concurrencyStamp: [required], +}) +// 备件入库主表 +export const SparePartsInLocationMain = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + }, + { + label: '编号', + field: 'number', + sort: 'custom', + isSearch: false, + isForm: false, + }, + { + label: '入库主题', + field: 'theme', + sort: 'custom', + isSearch: false, + }, + { + label: '流程状态', + field: 'status', + sort: 'custom', + isSearch: false, + isForm:false, + + dictType: DICT_TYPE.SPAREPARTS_APPLY_STATUS_ENUM, + dictClass: 'string', + + }, + { + label: '入库申请人', + field: 'applyer', + sort: 'custom', + isSearch: false, + }, + { + label: '审核人', + field: 'approver', + sort: 'custom', + isSearch: false, + }, + { + label: '审核内容', + field: 'approveContent', + sort: 'custom', + isSearch: false, + }, + { + label: '审核时间', + field: 'approveTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + 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' + } + }, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + }, + { + label: '入库时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + 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, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + }, + { + label: '库位编号', + field: 'locationCode', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择库位编号', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] + } + }, + }, + { + label: '库区编号', + field: 'areaCode', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + } + }, + + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + 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, + detail: { + dateFormat: 'YYYY-MM-DD HH:mm:ss' + }, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isDetail:false + } +])) +// 备件入库子表 +export const SparePartsInLocationDetailRules = reactive({ + number: [required], + masterId: [required], + sparePartsCode: [required], + applyQty: [required], + concurrencyStamp: [required], +}) + +export const SparePartsInLocationDetail = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + + isSearch: false, + isTable: false, + isForm: false, + isDetail:false, + isTableForm:false + }, + { + label: '单号', + field: 'number', + sort: 'custom', + + isSearch: false, + isTable: false, + isForm: false, + isTableForm:false + }, + { + label: '主表ID', + field: 'masterId', + sort: 'custom', + form: { + component: 'InputNumber', + value: 0 + }, + isSearch: false, + isTable: false, + isForm: false, + isTableForm:false + }, + { + label: '备件编号', + field: 'sparePartsCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择备件编号', // 输入框占位文本 + searchField: 'itemNumber', // 查询弹窗赋值字段 + searchTitle: '备件信息', // 查询弹窗标题 + searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类 + searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] + } + }, + tableForm: { + isInpuFocusShow: true, + searchListPlaceholder: '请选择备件编号', // 输入框占位文本 + searchField: 'itemNumber', // 查询弹窗赋值字段 + searchTitle: '备件信息', // 查询弹窗标题 + searchAllSchemas: ItemAccounts.allSchemas, // 查询弹窗所需类 + searchPage: ItemAccountsApi.getItemAccountsPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] + } + }, + { + label: '库存数量', + field: 'currentQty', + sort: 'custom', + isSearch: false, + tableForm: { + disabled: true + }, + isDetail:false, + isTable:false + }, + { + label: '申领数量', + field: 'applyQty', + sort: 'custom', + isSearch: false + }, + { + 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, + isTableForm:false + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: true, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm:false + } +])) +