diff --git a/src/api/eam/adjustRecordDetail/index.ts b/src/api/eam/adjustRecordDetail/index.ts new file mode 100644 index 000000000..d8f18cb8b --- /dev/null +++ b/src/api/eam/adjustRecordDetail/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +export interface AdjustRecordDetailVO { + number: string + planNumber: string + requestNumber: string + requestTime: Date + jobNumber: string + recordNumber: string +} + +// 查询备件盘点调整记录主列表 +export const getAdjustRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/adjustRecordDetail/senior', data }) + } else { + return await request.get({ url: `/eam/adjustRecordDetail/page`, params }) + } +} + +// 查询备件盘点调整记录主详情 +export const getAdjustRecordDetail = async (id: number) => { + return await request.get({ url: `/eam/adjustRecordDetail/get?id=` + id }) +} + +// 新增备件盘点调整记录主 +export const createAdjustRecordDetail = async (data: AdjustRecordDetailVO) => { + return await request.post({ url: `/eam/adjustRecordDetail/create`, data }) +} + +// 修改备件盘点调整记录主 +export const updateAdjustRecordDetail = async (data: AdjustRecordDetailVO) => { + return await request.put({ url: `/eam/adjustRecordDetail/update`, data }) +} + +// 删除备件盘点调整记录主 +export const deleteAdjustRecordDetail = async (id: number) => { + return await request.delete({ url: `/eam/adjustRecordDetail/delete?id=` + id }) +} + +// 导出备件盘点调整记录主 Excel +export const exportAdjustRecordDetail = async (params) => { + return await request.download({ url: `/eam/adjustRecordDetail/export-excel`, params }) +} diff --git a/src/api/eam/adjustRecordMain/index.ts b/src/api/eam/adjustRecordMain/index.ts new file mode 100644 index 000000000..9eb4297b1 --- /dev/null +++ b/src/api/eam/adjustRecordMain/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +export interface AdjustRecordMainVO { + number: string + planNumber: string + requestNumber: string + requestTime: Date + jobNumber: string + recordNumber: string +} + +// 查询备件盘点调整记录主列表 +export const getAdjustRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/adjustRecordMain/senior', data }) + } else { + return await request.get({ url: `/eam/adjustRecordMain/page`, params }) + } +} + +// 查询备件盘点调整记录主详情 +export const getAdjustRecordMain = async (id: number) => { + return await request.get({ url: `/eam/adjustRecordMain/get?id=` + id }) +} + +// 新增备件盘点调整记录主 +export const createAdjustRecordMain = async (data: AdjustRecordMainVO) => { + return await request.post({ url: `/eam/adjustRecordMain/create`, data }) +} + +// 修改备件盘点调整记录主 +export const updateAdjustRecordMain = async (data: AdjustRecordMainVO) => { + return await request.put({ url: `/eam/adjustRecordMain/update`, data }) +} + +// 删除备件盘点调整记录主 +export const deleteAdjustRecordMain = async (id: number) => { + return await request.delete({ url: `/eam/adjustRecordMain/delete?id=` + id }) +} + +// 导出备件盘点调整记录主 Excel +export const exportAdjustRecordMain = async (params) => { + return await request.download({ url: `/eam/adjustRecordMain/export-excel`, params }) +} diff --git a/src/api/eam/applicationRecordDetail/index.ts b/src/api/eam/applicationRecordDetail/index.ts new file mode 100644 index 000000000..9a45b466a --- /dev/null +++ b/src/api/eam/applicationRecordDetail/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +export interface ItemApplyDetailVO { + number : string + name : string + type : string + applyId : number + applyDeptId : number + approveId : number + approveTime : Date + outId : number + outTime : Date + siteId : string + available : string + concurrencyStamp : number +} + +// 查询备件申领记录主列表 +export const getApplicationRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = { ...params } + return await request.post({ url: '/eam/item-apply-request-detail/senior', data }) + } else { + return await request.get({ url: `/eam/item-apply-request-detail/page`, params }) + } +} + +// 查询备件申领记录主详情 +export const getApplicationRecordDetail = async (id : number) => { + return await request.get({ url: `/eam/item-apply-request-detail/get?id=` + id }) +} + +// 新增备件申领记录主 +export const createApplicationRecordDetail = async (data : ItemApplyDetailVO) => { + return await request.post({ url: `/eam/item-apply-request-detail/create`, data }) +} + +// 修改备件申领记录主 +export const updateApplicationRecordDetail = async (data : ItemApplyDetailVO) => { + return await request.put({ url: `/eam/item-apply-request-detail/update`, data }) +} + +// 删除备件申领记录主 +export const deleteApplicationRecordDetail = async (id : number) => { + return await request.delete({ url: `/eam/item-apply-request-detail/delete?id=` + id }) +} + +// 导出备件申领记录主 Excel +export const exportApplicationRecordDetail = async (params) => { + return await request.download({ url: `/eam/item-apply-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-apply-request-detail/get-import-template' }) +} diff --git a/src/api/eam/applicationRecordMain/index.ts b/src/api/eam/applicationRecordMain/index.ts new file mode 100644 index 000000000..207b15a2e --- /dev/null +++ b/src/api/eam/applicationRecordMain/index.ts @@ -0,0 +1,67 @@ +import request from '@/config/axios' + +export interface ItemApplyMainVO { + number: string + name: string + type: string + applyId: number + applyDeptId: number + approveId: number + approveTime: Date + outId: number + outTime: Date + siteId: string + available: string + concurrencyStamp: number +} + +// 查询备件申领记录主列表 +export const getApplicationRecordMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-apply-request-main/senior', data }) + } else { + return await request.get({ url: `/eam/item-apply-request-main/page`, params }) + } +} + +// 查询备件申领记录主详情 +export const getApplicationRecordMain = async (id: number) => { + return await request.get({ url: `/eam/item-apply-request-main/get?id=` + id }) +} + +// 新增备件申领记录主 +export const createApplicationRecordMain = async (data: ItemApplyMainVO) => { + return await request.post({ url: `/eam/item-apply-request-main/create`, data }) +} + +// 修改备件申领记录主 +export const updateApplicationRecordMain = async (data: ItemApplyMainVO) => { + return await request.put({ url: `/eam/item-apply-request-main/update`, data }) +} + +// 删除备件申领记录主 +export const deleteApplicationRecordMain = async (id: number) => { + return await request.delete({ url: `/eam/item-apply-request-main/delete?id=` + id }) +} + +// 审批通过备件申领记录主 +export const agreeApplicationRecordMain = async (id: number) => { + return await request.get({ url: `/eam/item-apply-request-main/agree?id=` + id }) +} + +// 审批驳回备件申领记录主 +export const disAgreeApplicationRecordMain = async (id: number) => { + return await request.get({ url: `/eam/item-apply-request-main/disAgree?id=` + id }) +} + +// 导出备件申领记录主 Excel +export const exportApplicationRecordMain = async (params) => { + return await request.download({ url: `/eam/item-apply-request-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-apply-request-main/get-import-template' }) +} diff --git a/src/api/eam/countJobDetail/index.ts b/src/api/eam/countJobDetail/index.ts new file mode 100644 index 000000000..5f06e894f --- /dev/null +++ b/src/api/eam/countJobDetail/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +export interface CountJobDetailVO { + id : number + number : string + name : string + classification : string + isInAccount : string + status : string +} + +// 查询备件盘点计划列表 +export const getCountJobDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = { ...params } + return await request.post({ url: '/eam/countJobDetail/senior', data }) + } else { + return await request.get({ url: `/eam/countJobDetail/page`, params }) + } +} + +// 查询备件盘点计划详情 +export const getCountJobDetail = async (id : number) => { + return await request.get({ url: `/eam/countJobDetail/get?id=` + id }) +} + +// 新增备件盘点计划 +export const createCountJobDetail = async (data : CountJobDetailVO) => { + return await request.post({ url: `/eam/countJobDetail/create`, data }) +} + +// 修改备件盘点计划 +export const updateCountJobDetail = async (data : CountJobDetailVO) => { + return await request.put({ url: `/eam/countJobDetail/update`, data }) +} + +// 删除备件盘点计划 +export const deleteCountJobDetail = async (id : number) => { + return await request.delete({ url: `/eam/countJobDetail/delete?id=` + id }) +} + +// 导出备件盘点计划 Excel +export const exportCountJobDetail = async (params) => { + return await request.download({ url: `/eam/countJobDetail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/countJobDetail/get-import-template' }) +} diff --git a/src/api/eam/countJobMain/index.ts b/src/api/eam/countJobMain/index.ts new file mode 100644 index 000000000..2ead754e0 --- /dev/null +++ b/src/api/eam/countJobMain/index.ts @@ -0,0 +1,56 @@ +import request from '@/config/axios' + +export interface CountJobMainVO { + id : number + number : string + name : string + classification : string + isInAccount : string + status : string +} + +// 查询备件盘点计划列表 +export const getCountJobMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = { ...params } + return await request.post({ url: '/eam/countJobMain/senior', data }) + } else { + return await request.get({ url: `/eam/countJobMain/page`, params }) + } +} + +// 查询备件盘点计划详情 +export const getCountJobMain = async (id : number) => { + return await request.get({ url: `/eam/countJobMain/get?id=` + id }) +} + +// 新增备件盘点计划 +export const createCountJobMain = async (data : CountJobMainVO) => { + return await request.post({ url: `/eam/countJobMain/create`, data }) +} + +// 修改备件盘点计划 +export const updateCountJobMain = async (data : CountJobMainVO) => { + return await request.put({ url: `/eam/countJobMain/update`, data }) +} + +// 删除备件盘点计划 +export const deleteCountJobMain = async (id : number) => { + return await request.delete({ url: `/eam/countJobMain/delete?id=` + id }) +} + +// 导出备件盘点计划 Excel +export const handleMainExport = async (id : number) => { + return await request.download({ url: `/eam/countJobMain/handleMainExport?id=` + id }) +} + +// 导出备件盘点计划 Excel +export const exportCountJobMain = async (params) => { + return await request.download({ url: `/eam/countJobMain/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/countJobMain/get-import-template' }) +} diff --git a/src/api/eam/countRecordDetail/index.ts b/src/api/eam/countRecordDetail/index.ts new file mode 100644 index 000000000..0387608c3 --- /dev/null +++ b/src/api/eam/countRecordDetail/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +export interface CountRecordDetailVO { + id : number + number : string + name : string + classification : string + isInAccount : string + status : string +} + +// 查询备件盘点计划列表 +export const getCountRecordDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = { ...params } + return await request.post({ url: '/eam/countRecordDetail/senior', data }) + } else { + return await request.get({ url: `/eam/countRecordDetail/page`, params }) + } +} + +// 查询备件盘点计划详情 +export const getCountRecordDetail = async (id : number) => { + return await request.get({ url: `/eam/countRecordDetail/get?id=` + id }) +} + +// 新增备件盘点计划 +export const createCountRecordDetail = async (data : CountRecordDetailVO) => { + return await request.post({ url: `/eam/countRecordDetail/create`, data }) +} + +// 修改备件盘点计划 +export const updateCountRecordDetail = async (data : CountRecordDetailVO) => { + return await request.put({ url: `/eam/countRecordDetail/update`, data }) +} + +// 删除备件盘点计划 +export const deleteCountRecordDetail = async (id : number) => { + return await request.delete({ url: `/eam/countRecordDetail/delete?id=` + id }) +} + +// 导出备件盘点计划 Excel +export const exportCountRecordDetail = async (params) => { + return await request.download({ url: `/eam/countRecordDetail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/countRecordDetail/get-import-template' }) +} diff --git a/src/api/eam/countRecordMain/index.ts b/src/api/eam/countRecordMain/index.ts new file mode 100644 index 000000000..512ae4c4c --- /dev/null +++ b/src/api/eam/countRecordMain/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +export interface CountRecordMainVO { + id : number + number : string + name : string + classification : string + isInAccount : string + status : string +} + +// 查询备件盘点计划列表 +export const getCountRecordMainPage = async (params) => { + params.status="CANGENERATE" + if (params.isSearch) { + delete params.isSearch + const data = { ...params } + return await request.post({ url: '/eam/countRecordMain/senior', data }) + } else { + return await request.get({ url: `/eam/countRecordMain/page`, params }) + } +} + +// 查询备件盘点计划详情 +export const getCountRecordMain = async (id : number) => { + return await request.get({ url: `/eam/countRecordMain/get?id=` + id }) +} + +// 新增备件盘点计划 +export const createCountRecordMain = async (data : CountRecordMainVO) => { + return await request.post({ url: `/eam/countRecordMain/create`, data }) +} + +// 修改备件盘点计划 +export const updateCountRecordMain = async (data : CountRecordMainVO) => { + return await request.put({ url: `/eam/countRecordMain/update`, data }) +} + +// 删除备件盘点计划 +export const deleteCountRecordMain = async (id : number) => { + return await request.delete({ url: `/eam/countRecordMain/delete?id=` + id }) +} +// 盘点调整 +export const adjustCountRecordMain = async (id : number) => { + return await request.get({ url: `/eam/countRecordMain/adjust?number=` + id }) +} + +// 导出备件盘点计划 Excel +export const handleMainExport = async (id : number) => { + return await request.download({ url: `/eam/countRecordMain/handleMainExport?id=` + id }) +} + +// 导出备件盘点计划 Excel +export const exportCounRecordMain = async (params) => { + return await request.download({ url: `/eam/countRecordMain/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/countRecordMain/get-import-template' }) +} diff --git a/src/api/eam/countadjustPlan/index.ts b/src/api/eam/countadjustPlan/index.ts new file mode 100644 index 000000000..4a9470f1a --- /dev/null +++ b/src/api/eam/countadjustPlan/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +export interface CountadjustPlanVO { + id : number + number : string + name : string + classification : string + isInAccount : string + status : string +} + +// 查询备件盘点计划列表 +export const getCountadjustPlanPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = { ...params } + return await request.post({ url: '/eam/countadjust-plan/senior', data }) + } else { + return await request.get({ url: `/eam/countadjust-plan/page`, params }) + } +} + +// 查询备件盘点计划详情 +export const getCountadjustPlan = async (id : number) => { + return await request.get({ url: `/eam/countadjust-plan/get?id=` + id }) +} + +// 新增备件盘点计划 +export const createCountadjustPlan = async (data : CountadjustPlanVO) => { + return await request.post({ url: `/eam/countadjust-plan/create`, data }) +} + +// 修改备件盘点计划 +export const updateCountadjustPlan = async (data : CountadjustPlanVO) => { + return await request.put({ url: `/eam/countadjust-plan/update`, data }) +} + +// 删除备件盘点计划 +export const deleteCountadjustPlan = async (id : number) => { + return await request.delete({ url: `/eam/countadjust-plan/delete?id=` + id }) +} + +// 导出备件盘点计划 Excel +export const exportCountadjustPlan = async (params) => { + return await request.download({ url: `/eam/countadjust-plan/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/countadjust-plan/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/eam/itemAccounts/index.ts b/src/api/eam/itemAccounts/index.ts new file mode 100644 index 000000000..88fb3d16f --- /dev/null +++ b/src/api/eam/itemAccounts/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface ItemAccountsVO { + itemNumber: string + qty: number + areaNumber: string + isInAccount: string + siteId: string + available: string + concurrencyStamp: number +} + +// 查询备件台账列表 +export const getItemAccountsPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-accounts/senior', data }) + } else { + return await request.get({ url: `/eam/item-accounts/page`, params }) + } +} + +// 查询备件台账详情 +export const getItemAccounts = async (id: number) => { + return await request.get({ url: `/eam/item-accounts/get?id=` + id }) +} + +// 新增备件台账 +export const createItemAccounts = async (data: ItemAccountsVO) => { + return await request.post({ url: `/eam/item-accounts/create`, data }) +} + +// 修改备件台账 +export const updateItemAccounts = async (data: ItemAccountsVO) => { + return await request.put({ url: `/eam/item-accounts/update`, data }) +} + +// 删除备件台账 +export const deleteItemAccounts = async (id: number) => { + return await request.delete({ url: `/eam/item-accounts/delete?id=` + id }) +} + +// 导出备件台账 Excel +export const exportItemAccounts = async (params) => { + return await request.download({ url: `/eam/item-accounts/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-accounts/get-import-template' }) +} + +// 更改备件库位 +export const replaceLocation = async (data: Array) => { + return await request.post({url: `/eam/item-accounts/replaceLocation `, data }); +}; + +// 备件不分页 + +export const getItemAccountsNoPage = async (params) => { + return await request.get({ url: `/eam/item-accounts/noPage`, params }) +} diff --git a/src/api/eam/itemApplyDetail/index.ts b/src/api/eam/itemApplyDetail/index.ts new file mode 100644 index 000000000..0941c11a3 --- /dev/null +++ b/src/api/eam/itemApplyDetail/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +export interface ItemApplyDetailVO { + number: string + name: string + type: string + applyId: number + applyDeptId: number + approveId: number + approveTime: Date + outId: number + outTime: Date + siteId: string + available: string + concurrencyStamp: number +} + +// 查询备件申领记录主列表 +export const getItemApplyDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-apply-request-detail/senior', data }) + } else { + return await request.get({ url: `/eam/item-apply-request-detail/page`, params }) + } +} + +// 查询备件申领记录主详情 +export const getItemApplyDetail = async (id: number) => { + return await request.get({ url: `/eam/item-apply-request-detail/get?id=` + id }) +} + +// 新增备件申领记录主 +export const createItemApplyDetail = async (data: ItemApplyDetailVO) => { + return await request.post({ url: `/eam/item-apply-request-detail/create`, data }) +} + +// 修改备件申领记录主 +export const updateItemApplyDetail = async (data: ItemApplyDetailVO) => { + return await request.put({ url: `/eam/item-apply-request-detail/update`, data }) +} + +// 删除备件申领记录主 +export const deleteItemApplyDetail = async (id: number) => { + return await request.delete({ url: `/eam/item-apply-request-detail/delete?id=` + id }) +} + +// 导出备件申领记录主 Excel +export const exportItemApplyDetail = async (params) => { + return await request.download({ url: `/eam/item-apply-request-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-apply-request-detail/get-import-template' }) +} diff --git a/src/api/eam/itemInLocation/index.ts b/src/api/eam/itemInLocation/index.ts new file mode 100644 index 000000000..9589db346 --- /dev/null +++ b/src/api/eam/itemInLocation/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +export interface ItemInLocationVO { + number: string + itemNumber: string + locationNumber: string + type: string + qty: number +} + +// 查询备件入库记录列表 +export const getItemInLocationPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-in-location/senior', data }) + } else { + return await request.get({ url: `/eam/item-in-location/page`, params }) + } +} + +// 查询备件入库记录详情 +export const getItemInLocation = async (id: number) => { + return await request.get({ url: `/eam/item-in-location/get?id=` + id }) +} + +// 新增备件入库记录 +export const createItemInLocation = async (data: ItemInLocationVO) => { + return await request.post({ url: `/eam/item-in-location/create`, data }) +} + +// 修改备件入库记录 +export const updateItemInLocation = async (data: ItemInLocationVO) => { + return await request.put({ url: `/eam/item-in-location/update`, data }) +} + +// 删除备件入库记录 +export const deleteItemInLocation = async (id: number) => { + return await request.delete({ url: `/eam/item-in-location/delete?id=` + id }) +} + +// 导出备件入库记录 Excel +export const exportItemInLocation = async (params) => { + return await request.download({ url: `/eam/item-in-location/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-in-location/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/eam/itemLocationReplace/index.ts b/src/api/eam/itemLocationReplace/index.ts new file mode 100644 index 000000000..7bdab64df --- /dev/null +++ b/src/api/eam/itemLocationReplace/index.ts @@ -0,0 +1,49 @@ +import request from '@/config/axios' + +export interface ItemLocationReplaceVO { + locationNumber: string + describe: string + oldItemNumber: string + itemNumber: string +} + +// 查询备件库位变更记录列表 +export const getItemLocationReplacePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-location-replace/senior', data }) + } else { + return await request.get({ url: `/eam/item-location-replace/page`, params }) + } +} + +// 查询备件库位变更记录详情 +export const getItemLocationReplace = async (id: number) => { + return await request.get({ url: `/eam/item-location-replace/get?id=` + id }) +} + +// 新增备件库位变更记录 +export const createItemLocationReplace = async (data: ItemLocationReplaceVO) => { + return await request.post({ url: `/eam/item-location-replace/create`, data }) +} + +// 修改备件库位变更记录 +export const updateItemLocationReplace = async (data: ItemLocationReplaceVO) => { + return await request.put({ url: `/eam/item-location-replace/update`, data }) +} + +// 删除备件库位变更记录 +export const deleteItemLocationReplace = async (id: number) => { + return await request.delete({ url: `/eam/item-location-replace/delete?id=` + id }) +} + +// 导出备件库位变更记录 Excel +export const exportItemLocationReplace = async (params) => { + return await request.download({ url: `/eam/item-location-replace/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-location-replace/get-import-template' }) +} diff --git a/src/api/eam/itemMaintenance/index.ts b/src/api/eam/itemMaintenance/index.ts new file mode 100644 index 000000000..d6fe941c5 --- /dev/null +++ b/src/api/eam/itemMaintenance/index.ts @@ -0,0 +1,52 @@ +import request from '@/config/axios' + +export interface ItemMaintenanceVO { + number: string + itemNumber: string + qty: number + result: string + siteId: string + available: string + concurrencyStamp: number +} + +// 查询备件维修记录列表 +export const getItemMaintenancePage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-maintenance-record/senior', data }) + } else { + return await request.get({ url: `/eam/item-maintenance-record/page`, params }) + } +} + +// 查询备件维修记录详情 +export const getItemMaintenance = async (id: number) => { + return await request.get({ url: `/eam/item-maintenance-record/get?id=` + id }) +} + +// 新增备件维修记录 +export const createItemMaintenance = async (data: ItemMaintenanceVO) => { + return await request.post({ url: `/eam/item-maintenance-record/create`, data }) +} + +// 修改备件维修记录 +export const updateItemMaintenance = async (data: ItemMaintenanceVO) => { + return await request.put({ url: `/eam/item-maintenance-record/update`, data }) +} + +// 删除备件维修记录 +export const deleteItemMaintenance = async (id: number) => { + return await request.delete({ url: `/eam/item-maintenance-record/delete?id=` + id }) +} + +// 导出备件维修记录 Excel +export const exportItemMaintenance = async (params) => { + return await request.download({ url: `/eam/item-maintenance-record/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-maintenance-record/get-import-template' }) +} diff --git a/src/api/eam/itemOrderDetail/index.ts b/src/api/eam/itemOrderDetail/index.ts new file mode 100644 index 000000000..339c3482c --- /dev/null +++ b/src/api/eam/itemOrderDetail/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface ItemOrderDetailVO { + number: string + date: string + phone: string + fax: string + purchaser: string + supplierNumber: string + supplierName: string + supplierAddress: string + shipTo: string + invoiceTo: string + contacts: string + contactsPhone: string + paymentType: string + registLocation: string + bank: string + account: string + dutyParagraph: string + siteId: string + available: string + concurrencyStamp: number +} + +// 查询备件采购订单主列表 +export const getItemOrderDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-order-detail/senior', data }) + } else { + return await request.get({ url: `/eam/item-order-detail/page`, params }) + } +} + +// 查询备件采购订单主详情 +export const getItemOrderDetail = async (id: number) => { + return await request.get({ url: `/eam/item-order-detail/get?id=` + id }) +} + +// 新增备件采购订单主 +export const createItemOrderDetail = async (data: ItemOrderDetailVO) => { + return await request.post({ url: `/eam/item-order-detail/create`, data }) +} + +// 修改备件采购订单主 +export const updateItemOrderDetail = async (data: ItemOrderDetailVO) => { + return await request.put({ url: `/eam/item-order-detail/update`, data }) +} + +// 删除备件采购订单主 +export const deleteItemOrderDetail = async (id: number) => { + return await request.delete({ url: `/eam/item-order-detail/delete?id=` + id }) +} + +// 导出备件采购订单主 Excel +export const exportItemOrderDetail = async (params) => { + return await request.download({ url: `/eam/item-order-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-order-detail/get-import-template' }) +} diff --git a/src/api/eam/itemOrderMain/index.ts b/src/api/eam/itemOrderMain/index.ts new file mode 100644 index 000000000..125851b14 --- /dev/null +++ b/src/api/eam/itemOrderMain/index.ts @@ -0,0 +1,71 @@ +import request from '@/config/axios' + +export interface ItemOrderMainVO { + number: string + date: string + phone: string + fax: string + purchaser: string + supplierNumber: string + supplierName: string + supplierAddress: string + shipTo: string + invoiceTo: string + contacts: string + contactsPhone: string + paymentType: string + registLocation: string + bank: string + account: string + dutyParagraph: string + siteId: string + available: string + concurrencyStamp: number +} + +// 查询备件采购订单主列表 +export const getItemOrderMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-order-main/senior', data }) + } else { + return await request.get({ url: `/eam/item-order-main/page`, params }) + } +} + +// 查询备件采购订单主详情 +export const getItemOrderMain = async (id: number) => { + return await request.get({ url: `/eam/item-order-main/get?id=` + id }) +} + +// 新增备件采购订单主 +export const createItemOrderMain = async (data: ItemOrderMainVO) => { + return await request.post({ url: `/eam/item-order-main/create`, data }) +} + +// 修改备件采购订单主 +export const updateItemOrderMain = async (data: ItemOrderMainVO) => { + return await request.put({ url: `/eam/item-order-main/update`, data }) +} + +// 删除备件采购订单主 +export const deleteItemOrderMain = async (id: number) => { + return await request.delete({ url: `/eam/item-order-main/delete?id=` + id }) +} + +// 关闭采购订单主 +export const closeItemOrderMain = async (id: number) => { + return await request.post({ url: `/eam/item-order-main/close?id=` + id }) +} + + +// 导出备件采购订单主 Excel +export const exportItemOrderMain = async (params) => { + return await request.download({ url: `/eam/item-order-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-order-main/get-import-template' }) +} diff --git a/src/api/eam/itemOutLocation/index.ts b/src/api/eam/itemOutLocation/index.ts new file mode 100644 index 000000000..a6660ae38 --- /dev/null +++ b/src/api/eam/itemOutLocation/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +export interface ItemOutLocationVO { + number: string + itemNumber: string + locationNumber: string + type: string + qty: number +} + +// 查询备件出库记录列表 +export const getItemOutLocationPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/item-out-location/senior', data }) + } else { + return await request.get({ url: `/eam/item-out-location/page`, params }) + } +} + +// 查询备件出库记录详情 +export const getItemOutLocation = async (id: number) => { + return await request.get({ url: `/eam/item-out-location/get?id=` + id }) +} + +// 新增备件出库记录 +export const createItemOutLocation = async (data: ItemOutLocationVO) => { + return await request.post({ url: `/eam/item-out-location/create`, data }) +} + +// 修改备件出库记录 +export const updateItemOutLocation = async (data: ItemOutLocationVO) => { + return await request.put({ url: `/eam/item-out-location/update`, data }) +} + +// 删除备件出库记录 +export const deleteItemOutLocation = async (id: number) => { + return await request.delete({ url: `/eam/item-out-location/delete?id=` + id }) +} + +// 导出备件出库记录 Excel +export const exportItemOutLocation = async (params) => { + return await request.download({ url: `/eam/item-out-location/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/item-out-location/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/eam/sparePartsApplyDetail/index.ts b/src/api/eam/sparePartsApplyDetail/index.ts new file mode 100644 index 000000000..ae94831de --- /dev/null +++ b/src/api/eam/sparePartsApplyDetail/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface SparePartsApplyDetailVO { + id: number + number: string + masterId: number + sparePartsCode: string + isRadeIn: string + applyQty: number + currentQty: number + type: string + currentSinglePrice: number + equipmentCode: byte[] + jobNumber: byte[] + departmentCode: string + remark: string + siteId: string + available: string + deletionTime: Date + deleterId: byte[] + concurrencyStamp: number +} + +// 查询备件领用申请子列表 +export const getSparePartsApplyDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/spare-parts-apply-detail/senior', data }) + } else { + return await request.get({ url: `/eam/spare-parts-apply-detail/page`, params }) + } +} + +// 查询备件领用申请子详情 +export const getSparePartsApplyDetail = async (id: number) => { + return await request.get({ url: `/eam/spare-parts-apply-detail/get?id=` + id }) +} + +// 新增备件领用申请子 +export const createSparePartsApplyDetail = async (data: SparePartsApplyDetailVO) => { + return await request.post({ url: `/eam/spare-parts-apply-detail/create`, data }) +} + +// 修改备件领用申请子 +export const updateSparePartsApplyDetail = async (data: SparePartsApplyDetailVO) => { + return await request.put({ url: `/eam/spare-parts-apply-detail/update`, data }) +} + +// 删除备件领用申请子 +export const deleteSparePartsApplyDetail = async (id: number) => { + return await request.delete({ url: `/eam/spare-parts-apply-detail/delete?id=` + id }) +} + +// 导出备件领用申请子 Excel +export const exportSparePartsApplyDetail = async (params) => { + return await request.download({ url: `/eam/spare-parts-apply-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/spare-parts-apply-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/eam/sparePartsApplyMain/index.ts b/src/api/eam/sparePartsApplyMain/index.ts new file mode 100644 index 000000000..c69234979 --- /dev/null +++ b/src/api/eam/sparePartsApplyMain/index.ts @@ -0,0 +1,65 @@ +import request from '@/config/axios' + +export interface SparePartsApplyMainVO { + id: number + number: string + description: string + applyDeptId: string + sumVal: number + status: 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 getSparePartsApplyMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/spare-parts-apply-main/senior', data }) + } else { + return await request.get({ url: `/eam/spare-parts-apply-main/page`, params }) + } +} + +// 查询备件领用申请详情 +export const getSparePartsApplyMain = async (id: number) => { + return await request.get({ url: `/eam/spare-parts-apply-main/get?id=` + id }) +} + +// 新增备件领用申请 +export const createSparePartsApplyMain = async (data: SparePartsApplyMainVO) => { + return await request.post({ url: `/eam/spare-parts-apply-main/create`, data }) +} + +// 修改备件领用申请 +export const updateSparePartsApplyMain = async (data: SparePartsApplyMainVO) => { + return await request.put({ url: `/eam/spare-parts-apply-main/update`, data }) +} + +// 删除备件领用申请 +export const deleteSparePartsApplyMain = async (id: number) => { + return await request.delete({ url: `/eam/spare-parts-apply-main/delete?id=` + id }) +} + +// 导出备件领用申请 Excel +export const exportSparePartsApplyMain = async (params) => { + return await request.download({ url: `/eam/spare-parts-apply-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/spare-parts-apply-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/eam/transaction/index.ts b/src/api/eam/transaction/index.ts new file mode 100644 index 000000000..c11588aec --- /dev/null +++ b/src/api/eam/transaction/index.ts @@ -0,0 +1,53 @@ +import request from '@/config/axios' + +export interface TransactionVO { + itemNumber: string + locationNumber: string + transactionType: string + inventoryAction: string + businessType: string + inventoryStatus: string + uom: string + qty: number +} + +// 查询库存事务列表 +export const getTransactionPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/eam/transaction/senior', data }) + } else { + return await request.get({ url: `/eam/transaction/page`, params }) + } +} + +// 查询库存事务详情 +export const getTransaction = async (id: number) => { + return await request.get({ url: `/eam/transaction/get?id=` + id }) +} + +// 新增库存事务 +export const createTransaction = async (data: TransactionVO) => { + return await request.post({ url: `/eam/transaction/create`, data }) +} + +// 修改库存事务 +export const updateTransaction = async (data: TransactionVO) => { + return await request.put({ url: `/eam/transaction/update`, data }) +} + +// 删除库存事务 +export const deleteTransaction = async (id: number) => { + return await request.delete({ url: `/eam/transaction/delete?id=` + id }) +} + +// 导出库存事务 Excel +export const exportTransaction = async (params) => { + return await request.download({ url: `/eam/transaction/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/eam/transaction/get-import-template' }) +} diff --git a/src/views/eam/adjustRecord/adjustRecord.data.ts b/src/views/eam/adjustRecord/adjustRecord.data.ts new file mode 100644 index 000000000..e2f5bb39d --- /dev/null +++ b/src/views/eam/adjustRecord/adjustRecord.data.ts @@ -0,0 +1,189 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const Rules = reactive({ + number: [required], + planNumber: [required], +}) + +export const AdjustRecordMain = useCrudSchemas(reactive([ + { + label: '调整编号', + field: 'number', + sort: 'custom', + isSearch: true, + }, + { + label: '计划编号', + field: 'planNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '任务编号', + field: 'jobNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) + +//表单校验 +export const AdjustRecordMainRules = reactive({ + name: [ + { required: true, message: '请填写描述', trigger: 'change' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + available: [ + { required: true, message: '请选择是否可用', trigger: 'change' } + ], +}) +/** + * @returns {Array} 备件申请子表 + */ +export const AdjustRecordDetail = useCrudSchemas(reactive([ + { + label: '任务编号', + field: 'number', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, + + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + { + label: '库位编号', + field: 'locationNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + { + label: '库区编号', + field: 'areaNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + { + label: '库存数量', + field: 'qty', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + { + label: '盘点数量', + field: 'countQty', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + { + label: '差异数量', + field: 'differenceQty', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false, + } +])) + +//表单校验 +export const AdjustRecordDetailRules = reactive({ + lineNumber: [ + { required: true, message: '请输入行号', trigger: 'blur' }, + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + stdPackQty: [ + { required: true, message: '请输入标包数量', trigger: 'blur' } + ], +}) diff --git a/src/views/eam/adjustRecord/index.vue b/src/views/eam/adjustRecord/index.vue new file mode 100644 index 000000000..e144d3276 --- /dev/null +++ b/src/views/eam/adjustRecord/index.vue @@ -0,0 +1,322 @@ + + + diff --git a/src/views/eam/applicationRecord/applicationRecordMain.data.ts b/src/views/eam/applicationRecord/applicationRecordMain.data.ts new file mode 100644 index 000000000..c7d233246 --- /dev/null +++ b/src/views/eam/applicationRecord/applicationRecordMain.data.ts @@ -0,0 +1,329 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import { ItemAccounts } from '@/views/eam/itemAccounts/itemAccounts.data' +import * as ItemAccountsApi from '@/api/eam/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' } + ], +}) diff --git a/src/views/eam/applicationRecord/index.vue b/src/views/eam/applicationRecord/index.vue new file mode 100644 index 000000000..46c6691d2 --- /dev/null +++ b/src/views/eam/applicationRecord/index.vue @@ -0,0 +1,309 @@ + + + diff --git a/src/views/eam/countRecord/countRecord.data.ts b/src/views/eam/countRecord/countRecord.data.ts new file mode 100644 index 000000000..c6d5c3112 --- /dev/null +++ b/src/views/eam/countRecord/countRecord.data.ts @@ -0,0 +1,242 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import { validateHanset, validateEmail } from '@/utils/validator' +const { t } = useI18n() // 国际化 + +/** + * @returns {Array} 备件申领主表 + */ +export const CountRecordMain = useCrudSchemas(reactive([ + { + label: '任务编号', + field: 'number', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, + { + label: '工单编号', + field: 'jobNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, + { + label: '计划编号', + field: 'requestNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, + { + label: '名称', + field: 'name', + sort: 'custom', + isForm: false, + isSearch: false, + }, + { + label: '状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.ADJUST_STATUS, + dictClass: 'string', + isTable: true, + isForm: true, + tableForm: { + type: 'Select' + } + }, + { + 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, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 200, + fixed: 'right' + } + } +])) + +//表单校验 +export const CountRecordMainRules = reactive({ + name: [ + { required: true, message: '请填写描述', trigger: 'change' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + available: [ + { required: true, message: '请选择是否可用', trigger: 'change' } + ], +}) + +/** + * @returns {Array} 备件申请子表 + */ +export const CountRecordDetail = useCrudSchemas(reactive([ + { + label: '任务编号', + field: 'number', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, + + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + + + { + label: '库位编号', + field: 'locationNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + { + label: '库区编号', + field: 'areaNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + { + label: '库存数量', + field: 'qty', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + { + label: '盘点数量', + field: 'countQty', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + { + label: '差异数量', + field: 'differenceQty', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false, + } +])) + +//表单校验 +export const CountRecordDetailRules = reactive({ + lineNumber: [ + { required: true, message: '请输入行号', trigger: 'blur' }, + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + stdPackQty: [ + { required: true, message: '请输入标包数量', trigger: 'blur' } + ], +}) diff --git a/src/views/eam/countRecord/index.vue b/src/views/eam/countRecord/index.vue new file mode 100644 index 000000000..b8a269b1b --- /dev/null +++ b/src/views/eam/countRecord/index.vue @@ -0,0 +1,339 @@ + + + diff --git a/src/views/eam/countadjustPlan/countadjustPlan.data.ts b/src/views/eam/countadjustPlan/countadjustPlan.data.ts new file mode 100644 index 000000000..c1e5d3c95 --- /dev/null +++ b/src/views/eam/countadjustPlan/countadjustPlan.data.ts @@ -0,0 +1,78 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' + +// 表单校验 +export const CountadjustPlanRules = reactive({ + number: [required], + name: [required], + classification: [ + { required: true, message: '请选择盘点类型', trigger: 'blur' } + ], + +}) + +export const CountadjustPlan = useCrudSchemas(reactive([ + { + label: '计划编号', + field: 'number', + sort: 'custom', + isSearch: true, + isForm: false, + }, + { + label: '名称', + field: 'name', + sort: 'custom', + isSearch: true, + }, + { + label: '盘点类型', + field: 'classification', + sort: 'custom', + dictType: DICT_TYPE.CLASSIFICATION, + dictClass: 'string', + isSearch: false, + isTable: true, + isForm: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select', + disabled: false + } + }, + { + label: '是否账内库', + field: 'isInAccount', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isSearch: false, + isTable: true, + sort: 'custom', + table: { + width: 140 + }, + tableForm: { + type: 'Select', + inactiveValue: 'FALSE', + disabled: true + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/eam/countadjustPlan/index.vue b/src/views/eam/countadjustPlan/index.vue new file mode 100644 index 000000000..efa6eb661 --- /dev/null +++ b/src/views/eam/countadjustPlan/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/eam/countadjustWork/countadjustWork.data.ts b/src/views/eam/countadjustWork/countadjustWork.data.ts new file mode 100644 index 000000000..2453aa364 --- /dev/null +++ b/src/views/eam/countadjustWork/countadjustWork.data.ts @@ -0,0 +1,156 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' +import { validateHanset, validateEmail } from '@/utils/validator' +const { t } = useI18n() // 国际化 + +/** + * @returns {Array} 备件申领主表 + */ +export const CountJobMain = useCrudSchemas(reactive([ + { + label: '计划编号', + field: 'number', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, + { + label: '工单编号', + field: 'jobNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + { + label: '名称', + field: 'name', + sort: 'custom', + isForm: false, + isSearch: false, + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 200, + fixed: 'right' + } + } +])) + +//表单校验 +export const CountJobMainRules = reactive({ + name: [ + { required: true, message: '请填写描述', trigger: 'change' } + ], + remark: [ + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + available: [ + { required: true, message: '请选择是否可用', trigger: 'change' } + ], +}) + +/** + * @returns {Array} 备件申请子表 + */ +export const CountJobDetail = useCrudSchemas(reactive([ + { + label: '工单编号', + field: 'number', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + fixed: 'left' + }, + }, + + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + { + label: '库位编号', + field: 'locationNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + { + label: '库区编号', + field: 'areaNumber', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + }, + + { + label: '库存数量', + field: 'qty', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 180, + }, + form: { + component: 'InputNumber', + componentProps: { + min: 0, + precision: 2 + } + }, + tableForm: { + type: 'InputNumber', + min: 0, + precision: 2 + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false, + } +])) + +//表单校验 +export const CountJobDetailRules = reactive({ + lineNumber: [ + { required: true, message: '请输入行号', trigger: 'blur' }, + { max: 50, message: '不得超过50个字符', trigger: 'blur' } + ], + stdPackQty: [ + { required: true, message: '请输入标包数量', trigger: 'blur' } + ], +}) diff --git a/src/views/eam/countadjustWork/index.vue b/src/views/eam/countadjustWork/index.vue new file mode 100644 index 000000000..65c87d3bc --- /dev/null +++ b/src/views/eam/countadjustWork/index.vue @@ -0,0 +1,306 @@ + + + diff --git a/src/views/eam/itemAccounts/index.vue b/src/views/eam/itemAccounts/index.vue new file mode 100644 index 000000000..d3b39e599 --- /dev/null +++ b/src/views/eam/itemAccounts/index.vue @@ -0,0 +1,399 @@ + + + diff --git a/src/views/eam/itemAccounts/itemAccounts.data.ts b/src/views/eam/itemAccounts/itemAccounts.data.ts new file mode 100644 index 000000000..f92091519 --- /dev/null +++ b/src/views/eam/itemAccounts/itemAccounts.data.ts @@ -0,0 +1,349 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' + +import * as LocationApi from '@/api/wms/location' +import { Location } from '@/views/wms/basicDataManage/factoryModeling/location/location.data' + +import * as SparePartApi from '@/api/eam/sparePart' +import { SparePart } from '@/views/eam/sparePart/sparePart.data' + +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const ItemAccountsRules = reactive({ + itemNumber: [required], + singlePrice: [required], + locationNumber: [required], + qty: [required] +}) + +export const ItemAccounts = useCrudSchemas( + reactive([ + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + table: { + width: 180, + fixed: 'left' + }, + isSearch: false, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择备件编号', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '编号信息', // 查询弹窗标题 + searchAllSchemas: SparePart.allSchemas, // 查询弹窗所需类 + searchPage: SparePartApi.getSparePartPage, // 查询弹窗所需分页方法 + searchCondition: [ + // { + // key: 'warehouseCode', + // value: 'warehouseCode', + // message: '请填写仓库代码!', + // isMainValue: true + // }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] + } + } + }, + + { + label: '备件名称', + field: 'name', + sort: 'custom', + isSearch: true, + isForm: true, + table: { + width: 150 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: '库存数量', + field: 'qty', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: '库位编号', + field: 'locationNumber', + sort: 'custom', + table: { + width: 150 + }, + isSearch: true, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchListPlaceholder: '请选择库位编号', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '库位信息', // 查询弹窗标题 + searchAllSchemas: Location.allSchemas, // 查询弹窗所需类 + searchPage: LocationApi.getLocationPage, // 查询弹窗所需分页方法 + searchCondition: [ + // { + // key: 'warehouseCode', + // value: 'warehouseCode', + // message: '请填写仓库代码!', + // isMainValue: true + // }, + { + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] + } + } + }, + { + label: '库区编号', + field: 'areaNumber', + sort: 'custom', + isSearch: true, + table: { + width: 180 + }, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '品牌', + field: 'brand', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '规格型号', + field: 'specifications', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '是否全局', + field: 'isOverall', + sort: 'custom', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: false, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE', + disabled: true + } + } + }, + { + label: '科目', + field: 'subject', + sort: 'custom', + dictType: DICT_TYPE.SUBJECT, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: false, + form: { + component: 'Select', + componentProps: { + disabled: true + } + } + }, + { + label: '科目代码', + field: 'subjectCode', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '类别', + field: 'type', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '区域', + field: 'region', + sort: 'custom', + dictType: DICT_TYPE.REGION, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: false, + form: { + component: 'Select', + componentProps: { + disabled: true + } + } + }, + { + label: '备件分类', + field: 'classification', + sort: 'custom', + dictType: DICT_TYPE.PART_CLASS, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: false, + form: { + component: 'Select', + componentProps: { + disabled: true + } + } + }, + { + label: '计量单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', // 默认都是字符串类型其他暂不考虑 + isSearch: false, + form: { + componentProps: { + disabled: true + } + } + }, + + { + label: '生产厂家', + field: 'manufacturer', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '库存下限', + field: 'minInventory', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0, + componentProps: { + disabled: true + } + } + }, + { + label: '库存上限', + field: 'maxInventory', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0, + componentProps: { + disabled: true + } + } + }, + { + label: '更换周期', + field: 'replacementCycle', + sort: 'custom', + isSearch: false, + form: { + component: 'InputNumber', + value: 0, + componentProps: { + disabled: true + } + } + }, + { + label: '存放位置描述', + field: 'storageLocation', + sort: 'custom', + isSearch: false, + form: { + componentProps: { + disabled: true + } + } + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false, + componentProps: { + disabled: true + } + }, + + { + label: '是否可用', + field: 'available', + sort: 'custom', + isSearch: false, + isTable: false, + isForm: false, + isDetail: false, + componentProps: { + disabled: true + } + }, + + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } + ]) +) diff --git a/src/views/eam/itemInLocation/index.vue b/src/views/eam/itemInLocation/index.vue new file mode 100644 index 000000000..725f78ec0 --- /dev/null +++ b/src/views/eam/itemInLocation/index.vue @@ -0,0 +1,224 @@ + + + diff --git a/src/views/eam/itemInLocation/itemInLocation.data.ts b/src/views/eam/itemInLocation/itemInLocation.data.ts new file mode 100644 index 000000000..4aef77dd6 --- /dev/null +++ b/src/views/eam/itemInLocation/itemInLocation.data.ts @@ -0,0 +1,53 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' + +// 表单校验 +export const ItemInLocationRules = reactive({ + number: [required], + itemNumber: [required], + locationNumber: [required], +}) + +export const ItemInLocation = useCrudSchemas(reactive([ + { + label: '入库编号', + field: 'number', + sort: 'custom', + isSearch: true, + }, + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '库位编号', + field: 'locationNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '入库类型', + field: 'type', + sort: 'custom', + isSearch: false, + form: { + component: 'Select' + }, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + isSearch: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/eam/itemLocationReplace/index.vue b/src/views/eam/itemLocationReplace/index.vue new file mode 100644 index 000000000..939d5693e --- /dev/null +++ b/src/views/eam/itemLocationReplace/index.vue @@ -0,0 +1,244 @@ + + + diff --git a/src/views/eam/itemLocationReplace/itemLocationReplace.data.ts b/src/views/eam/itemLocationReplace/itemLocationReplace.data.ts new file mode 100644 index 000000000..75ed8da3b --- /dev/null +++ b/src/views/eam/itemLocationReplace/itemLocationReplace.data.ts @@ -0,0 +1,55 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const ItemLocationReplaceRules = reactive({ + locationNumber: [required], + oldItemNumber: [required], + itemNumber: [required], +}) + +export const ItemLocationReplace = useCrudSchemas(reactive([ + { + label: '库位编号', + field: 'locationNumber', + sort: 'custom', + isSearch: true, + }, + + { + label: '变更前备件编号', + field: 'oldItemNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '变更后备件编号', + field: 'itemNumber', + sort: 'custom', + isSearch: true, + }, + { + 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, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + fixed: 'right' + } + } +])) diff --git a/src/views/eam/itemMaintenance/index.vue b/src/views/eam/itemMaintenance/index.vue new file mode 100644 index 000000000..c21050d6c --- /dev/null +++ b/src/views/eam/itemMaintenance/index.vue @@ -0,0 +1,243 @@ + + + diff --git a/src/views/eam/itemMaintenance/itemMaintenance.data.ts b/src/views/eam/itemMaintenance/itemMaintenance.data.ts new file mode 100644 index 000000000..b72ca4d0e --- /dev/null +++ b/src/views/eam/itemMaintenance/itemMaintenance.data.ts @@ -0,0 +1,110 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const ItemMaintenanceRules = reactive({ + number: [required], + itemNumber: [required], + qty: [required], + concurrencyStamp: [required], +}) + +export const ItemMaintenance = useCrudSchemas(reactive([ + { + label: '维修工单编号', + field: 'number', + sort: 'custom', + isSearch: true, + }, + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + }, + { + label: '事务类型', + field: 'result', + dictType: DICT_TYPE.RESULT, + dictClass: 'string', + isSearch: false, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + inactiveValue: 'FALSE', + disabled: true + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + 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, + }, + { + label: '维修原因', + field: 'reasons', + sort: 'custom', + }, + { + label: '是否可用', + field: 'available', + dictType: DICT_TYPE.TRUE_FALSE, + dictClass: 'string', + isSearch: false, + isTable: true, + sort: 'custom', + table: { + width: 150 + }, + tableForm: { + type: 'Select', + inactiveValue: 'FALSE', + disabled: true + }, + form: { + component: 'Switch', + value: 'TRUE', + componentProps: { + inactiveValue: 'FALSE', + activeValue: 'TRUE' + } + } + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/eam/itemOrderMain/index.vue b/src/views/eam/itemOrderMain/index.vue new file mode 100644 index 000000000..b37492d05 --- /dev/null +++ b/src/views/eam/itemOrderMain/index.vue @@ -0,0 +1,304 @@ + + + diff --git a/src/views/eam/itemOrderMain/itemOrderMain.data.ts b/src/views/eam/itemOrderMain/itemOrderMain.data.ts new file mode 100644 index 000000000..2c127f91c --- /dev/null +++ b/src/views/eam/itemOrderMain/itemOrderMain.data.ts @@ -0,0 +1,310 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter2 } from '@/utils/formatTime' +import { SparePart } from '@/views/eam/sparePart/sparePart.data' +import * as ItemApi from '@/api/eam/sparePart' +import { validateHanset, validateEmail } from '@/utils/validator' +const { t } = useI18n() // 国际化 + +/** + * @returns {Array} 备件申请主表 + */ +export const ItemOrderMain = useCrudSchemas(reactive([ + { + label: '采购订单编号', + field: 'number', + sort: 'custom', + isForm: false, + isSearch: true, + table: { + width: 150, + fixed: 'left' + }, + }, + { + label: '电话', + field: 'phone', + sort: 'custom', + }, + { + label: '传真', + field: 'fax', + sort: 'custom', + }, + { + label: '采购员', + field: 'purchaser', + sort: 'custom', + }, + { + label: '供应商编号', + field: 'supplierNumber', + sort: 'custom', + }, + { + label: '供应商名称', + field: 'supplierName', + sort: 'custom', + }, + { + label: '供应商地址', + field: 'supplierAddress', + sort: 'custom', + }, + { + label: '发货至', + field: 'shipTo', + sort: 'custom', + }, + { + label: '开票至', + field: 'invoiceTo', + sort: 'custom', + }, + { + label: '联系人', + field: 'contacts', + sort: 'custom', + }, + { + label: '联系电话', + field: 'contactsPhone', + sort: 'custom', + }, + { + label: '付款方式', + field: 'paymentType', + sort: 'custom', + form: { + component: 'Select' + }, + }, + { + label: '注册地', + field: 'registLocation', + sort: 'custom', + }, + { + label: '开户行', + field: 'bank', + sort: 'custom', + }, + { + label: '账号', + field: 'account', + sort: 'custom', + }, + { + label: '税号', + field: 'dutyParagraph', + sort: 'custom', + }, + // { + // label: '是否关闭', + // field: 'available', + // dictType: DICT_TYPE.TRUE_FALSE, + // dictClass: 'string', + // isSearch: false, + // isTable: true, + // sort: 'custom', + // table: { + // width: 150 + // }, + // tableForm: { + // type: 'Select', + // inactiveValue: 'FALSE', + // disabled: true + // }, + // form: { + // component: 'Switch', + // value: 'FALSE', + // componentProps: { + // inactiveValue: 'FALSE', + // activeValue: 'TRUE' + // } + // } + // }, + { + label: '状态', + field: 'status', + sort: 'custom', + dictType: DICT_TYPE.IS_COMPLETE, + dictClass: 'string', + isTable: true, + isForm: true, + tableForm: { + type: 'Select' + }, + form: { + value: 'INCOMPLETE', + componentProps: { + disabled: true, + } + } + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 200, + fixed: 'right' + } + } +])) + +//表单校验 +export const ItemOrderMainRules = reactive({ + available: [ + { required: true, message: '请选择是否关闭', trigger: 'change' } + ], +}) + +/** + * @returns {Array} 备件申请子表 + */ +export const ItemOrderDetail = useCrudSchemas(reactive([ + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isSearch: true, + tableForm: { + isInpuFocusShow: true, + searchListPlaceholder: '请选择备件编号', + searchField: 'number', + searchTitle: '备件信息', + searchAllSchemas: SparePart.allSchemas, // 查询弹窗所需类 + searchPage: ItemApi.getItemPage, // 查询弹窗所需分页方法 + searchCondition: [{ + key: 'available', + value: 'TRUE', + isMainValue: false + } + ] + }, + }, + { + label: '备件名称', + field: 'itemName', + sort: 'custom', + isSearch: true, + table: { + width: 110, + }, + tableForm: { + disabled: true + } + }, + { + label: '单位', + field: 'uom', + sort: 'custom', + dictType: DICT_TYPE.UOM, + dictClass: 'string', + isSearch: false, + isTable: true, + tableForm: { + type: 'Select', + disabled: true + } + }, + { + label: '单价', + field: 'singlePrice', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + } + }, + tableForm: { + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + 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: 'qty', + sort: 'custom', + table: { + width: 150 + }, + form: { + component: 'InputNumber', + componentProps: { + min: 1, + precision: 6 + } + }, + tableForm: { + type: 'InputNumber', + min: 1, + precision: 6 + } + }, + { + label: '备注', + field: 'remark', + table: { + width: 150 + }, + }, + + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false, + } +])) + +//表单校验 +export const ItemOrderDetailRules = reactive({ + singlePrice: [ + { required: true, message: '请输入备件单价', trigger: 'blur' }, + ], +}) diff --git a/src/views/eam/itemOutLocation/index.vue b/src/views/eam/itemOutLocation/index.vue new file mode 100644 index 000000000..0773cbbbd --- /dev/null +++ b/src/views/eam/itemOutLocation/index.vue @@ -0,0 +1,243 @@ + + + diff --git a/src/views/eam/itemOutLocation/itemOutLocation.data.ts b/src/views/eam/itemOutLocation/itemOutLocation.data.ts new file mode 100644 index 000000000..ac2890387 --- /dev/null +++ b/src/views/eam/itemOutLocation/itemOutLocation.data.ts @@ -0,0 +1,53 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' + +// 表单校验 +export const ItemOutLocationRules = reactive({ + number: [required], + itemNumber: [required], + locationNumber: [required], +}) + +export const ItemOutLocation = useCrudSchemas(reactive([ + { + label: '出库编号', + field: 'number', + sort: 'custom', + isSearch: true, + }, + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '库位编号', + field: 'locationNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '出库类型', + field: 'type', + sort: 'custom', + isSearch: false, + form: { + component: 'Select' + }, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + isSearch: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) \ No newline at end of file diff --git a/src/views/eam/sparePartsApplyMain/SparePartsApply.data.ts b/src/views/eam/sparePartsApplyMain/SparePartsApply.data.ts new file mode 100644 index 000000000..b58324f71 --- /dev/null +++ b/src/views/eam/sparePartsApplyMain/SparePartsApply.data.ts @@ -0,0 +1,290 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' + +import * as ItemAccountsApi from '@/api/eam/itemAccounts' +import { ItemAccounts } from '@/views/eam/itemAccounts/itemAccounts.data' + +import { EquipmentAccounts } from '@/views/eam/equipmentAccounts/equipmentAccounts.data' +import * as EquipmentItemApi from '@/api/eam/equipmentAccounts' + +import { dateFormatter } from '@/utils/formatTime' + +export const SparePartsApplyMain = useCrudSchemas( + reactive([ + { + label: '申请编号', + field: 'number', + sort: 'custom', + isSearch: true, + isForm: false + }, + { + label: '描述', + field: 'description', + sort: 'custom', + isSearch: true + }, + { + label: '申领备件总价', + field: 'sumVal', + sort: 'custom', + isSearch: false, + isForm: false + }, + { + label: '流程状态', + field: 'status', + sort: 'custom', + isSearch: false, + isForm: false, + form: { + component: 'Radio' + } + }, + { + label: '申请人', + field: 'applyer', + sort: 'custom', + isSearch: false, + isForm: false + }, + { + label: '审核人', + field: 'approver', + sort: 'custom', + isSearch: false, + isForm: false, + form: { + component: 'InputNumber', + value: 0 + } + }, + { + label: '审核内容', + field: 'approveContent', + sort: 'custom', + isSearch: true, + isForm: false + }, + { + label: '审核时间', + field: 'approveTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: false, + isForm: 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' + } + } + }, + { + label: '自动审核', + field: 'autoExamine', + sort: 'custom', + isSearch: false, + isForm: false + }, + { + label: '自动通过', + field: 'autoAgree', + sort: 'custom', + isSearch: false, + isForm: false + }, + { + label: '直接生成记录', + field: 'directCreateRecord', + sort: 'custom', + isSearch: false, + isForm: 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 + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } + ]) +) + +//表单校验 +export const SparePartsApplyMainRules = reactive({ + description: [{ required: true, message: '描述不能为空', trigger: 'change' }] +}) +/** + * @returns {Array} 备件申请子表 + */ +export const SparePartsApplyDetail = useCrudSchemas( + reactive([ + { + 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: 'type', + dictType: DICT_TYPE.DEVICE_TYPE, + dictClass: 'string', + isTable: true, + sort: 'custom', + isSearch: false, + table: { + width: 150 + }, + tableForm: { + type: 'Select' + } + }, + { + label: '设备工装编号', + field: 'equipmentCode', + sort: 'custom', + table: { + width: 150 + }, + form: { + // labelMessage: '信息提示说明!!!', + componentProps: { + isSearchList: true, // 开启查询弹窗 + searchTitle: '设备信息', // 查询弹窗标题 + searchListPlaceholder: '请选择 设备编号', // 输入框占位文本 + searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类 + searchField: 'code', // 查询弹窗赋值字段 + searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法 + multiple: true, + searchCondition: [ + { + key: 'status', + value: 'NORMAL', + action: '==', + isSearch: true, + isMainValue: false + } + ] + } + }, + tableForm: { + isInpuFocusShow: true, + searchListPlaceholder: '请选择备件编号', // 输入框占位文本 + searchField: 'code', // 查询弹窗赋值字段 + searchTitle: '备件信息', // 查询弹窗标题 + searchAllSchemas: EquipmentAccounts.allSchemas, // 查询弹窗所需类 + searchPage: EquipmentItemApi.getEquipmentAccountsPage, // 查询弹窗所需分页方法 + searchCondition: [ + { + key: 'status', + value: 'NORMAL', + action: '==', + isSearch: true, + isMainValue: false + } + ] + } + }, + + { + label: '库存数量', + field: 'currentQty', + sort: 'custom', + isSearch: false, + tableForm: { + disabled: true + } + }, + { + label: '申领数量', + field: 'applyQty', + sort: 'custom', + isSearch: false + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + isSearch: false + }, + { + label: '操作', + field: 'action', + isDetail: false, + isForm: false, + table: { + width: 150, + fixed: 'right' + }, + isTableForm: false + } + ]) +) + +//表单校验 +export const SparePartsApplyDetailRules = reactive({ + applyQty: [{ required: true, message: '请输入标包数量', trigger: 'blur' }] +}) diff --git a/src/views/eam/sparePartsApplyMain/index.vue b/src/views/eam/sparePartsApplyMain/index.vue new file mode 100644 index 000000000..698503b35 --- /dev/null +++ b/src/views/eam/sparePartsApplyMain/index.vue @@ -0,0 +1,372 @@ + + + diff --git a/src/views/eam/transaction/index.vue b/src/views/eam/transaction/index.vue new file mode 100644 index 000000000..c9857a614 --- /dev/null +++ b/src/views/eam/transaction/index.vue @@ -0,0 +1,241 @@ + + + diff --git a/src/views/eam/transaction/transaction.data.ts b/src/views/eam/transaction/transaction.data.ts new file mode 100644 index 000000000..f75af8ac6 --- /dev/null +++ b/src/views/eam/transaction/transaction.data.ts @@ -0,0 +1,94 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' + +// 表单校验 +export const Rules = reactive({ + itemNumber: [required], + locationNumber: [required], + inventoryAction: [required], + businessType: [required], + uom: [required], +}) + +export const Transaction = useCrudSchemas(reactive([ + { + label: '备件编号', + field: 'itemNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '库位编码', + field: 'locationNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '事务类型', + field: 'transactionType', + sort: 'custom', + dictType: DICT_TYPE.TRANSACTION_TYPE, + dictClass: 'string', + isSearch: false, + isTable: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select' + } + }, + { + label: '库存动作', + field: 'inventoryAction', + sort: 'custom', + dictType: DICT_TYPE.INVENTORY_ACTION, + dictClass: 'string', + isSearch: false, + isTable: true, + table: { + width: 150 + }, + tableForm: { + type: 'Select' + } + }, + { + label: '库存状态', + field: 'inventoryStatus', + sort: 'custom', + isSearch: false, + form: { + component: 'Radio' + }, + }, + { + label: '关联单号', + field: 'associatedNumber', + sort: 'custom', + isSearch: false, + form: { + component: 'Radio' + }, + }, + { + label: '计量单位', + field: 'uom', + sort: 'custom', + isSearch: false, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + isSearch: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +]))