diff --git a/src/api/eam/item/itemAccounts/index.ts b/src/api/eam/item/itemAccounts/index.ts
new file mode 100644
index 0000000..f660e47
--- /dev/null
+++ b/src/api/eam/item/itemAccounts/index.ts
@@ -0,0 +1,52 @@
+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' })
+}
\ No newline at end of file
diff --git a/src/api/eam/item/itemApplyMain/index.ts b/src/api/eam/item/itemApplyMain/index.ts
new file mode 100644
index 0000000..fd0e19e
--- /dev/null
+++ b/src/api/eam/item/itemApplyMain/index.ts
@@ -0,0 +1,57 @@
+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 getItemApplyMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/item-apply-main/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item-apply-main/page`, params })
+ }
+}
+
+// 查询备件申领记录主详情
+export const getItemApplyMain = async (id: number) => {
+ return await request.get({ url: `/eam/item-apply-main/get?id=` + id })
+}
+
+// 新增备件申领记录主
+export const createItemApplyMain = async (data: ItemApplyMainVO) => {
+ return await request.post({ url: `/eam/item-apply-main/create`, data })
+}
+
+// 修改备件申领记录主
+export const updateItemApplyMain = async (data: ItemApplyMainVO) => {
+ return await request.put({ url: `/eam/item-apply-main/update`, data })
+}
+
+// 删除备件申领记录主
+export const deleteItemApplyMain = async (id: number) => {
+ return await request.delete({ url: `/eam/item-apply-main/delete?id=` + id })
+}
+
+// 导出备件申领记录主 Excel
+export const exportItemApplyMain = async (params) => {
+ return await request.download({ url: `/eam/item-apply-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-apply-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/item/itemLocationInRecord/index.ts b/src/api/eam/item/itemLocationInRecord/index.ts
new file mode 100644
index 0000000..b097160
--- /dev/null
+++ b/src/api/eam/item/itemLocationInRecord/index.ts
@@ -0,0 +1,56 @@
+import request from '@/config/axios'
+
+export interface ItemLocationInRecordVO {
+ itemNumber: string
+ locationNumber: string
+ transactionType: string
+ inventoryAction: string
+ businessType: string
+ inventoryStatus: string
+ uom: string
+ qty: number
+ siteId: string
+ available: string
+ concurrencyStamp: number
+}
+
+// 查询备件库存记录列表
+export const getItemLocationInRecordPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/item-location-record/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item-location-record/page`, params })
+ }
+}
+
+// 查询备件库存记录详情
+export const getItemLocationInRecord = async (id: number) => {
+ return await request.get({ url: `/eam/item-location-record/get?id=` + id })
+}
+
+// 新增备件库存记录
+export const createItemLocationInRecord = async (data: ItemLocationInRecordVO) => {
+ return await request.post({ url: `/eam/item-location-record/create`, data })
+}
+
+// 修改备件库存记录
+export const updateItemLocationInRecord = async (data: ItemLocationInRecordVO) => {
+ return await request.put({ url: `/eam/item-location-record/update`, data })
+}
+
+// 删除备件库存记录
+export const deleteItemLocationInRecord = async (id: number) => {
+ return await request.delete({ url: `/eam/item-location-record/delete?id=` + id })
+}
+
+// 导出备件库存记录 Excel
+export const exportItemLocationInRecord = async (params) => {
+ return await request.download({ url: `/eam/item-location-record/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-location-record/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/item/itemLocationOutRecord/index.ts b/src/api/eam/item/itemLocationOutRecord/index.ts
new file mode 100644
index 0000000..aab3d8d
--- /dev/null
+++ b/src/api/eam/item/itemLocationOutRecord/index.ts
@@ -0,0 +1,56 @@
+import request from '@/config/axios'
+
+export interface ItemLocationOutRecordVO {
+ itemNumber: string
+ locationNumber: string
+ transactionType: string
+ inventoryAction: string
+ businessType: string
+ inventoryStatus: string
+ uom: string
+ qty: number
+ siteId: string
+ available: string
+ concurrencyStamp: number
+}
+
+// 查询备件库存记录列表
+export const getItemLocationOutRecordPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/item-location-record/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item-location-record/page`, params })
+ }
+}
+
+// 查询备件库存记录详情
+export const getItemLocationOutRecord = async (id: number) => {
+ return await request.get({ url: `/eam/item-location-record/get?id=` + id })
+}
+
+// 新增备件库存记录
+export const createItemLocationOutRecord = async (data: ItemLocationOutRecordVO) => {
+ return await request.post({ url: `/eam/item-location-record/create`, data })
+}
+
+// 修改备件库存记录
+export const updateItemLocationOutRecord = async (data: ItemLocationOutRecordVO) => {
+ return await request.put({ url: `/eam/item-location-record/update`, data })
+}
+
+// 删除备件库存记录
+export const deleteItemLocationOutRecord = async (id: number) => {
+ return await request.delete({ url: `/eam/item-location-record/delete?id=` + id })
+}
+
+// 导出备件库存记录 Excel
+export const exportItemLocationOutRecord = async (params) => {
+ return await request.download({ url: `/eam/item-location-record/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-location-record/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/item/itemLocationRecord/index.ts b/src/api/eam/item/itemLocationRecord/index.ts
new file mode 100644
index 0000000..51cd22e
--- /dev/null
+++ b/src/api/eam/item/itemLocationRecord/index.ts
@@ -0,0 +1,56 @@
+import request from '@/config/axios'
+
+export interface ItemLocationRecordVO {
+ itemNumber: string
+ locationNumber: string
+ transactionType: string
+ inventoryAction: string
+ businessType: string
+ inventoryStatus: string
+ uom: string
+ qty: number
+ siteId: string
+ available: string
+ concurrencyStamp: number
+}
+
+// 查询备件库存记录列表
+export const getItemLocationRecordPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/item-location-record/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item-location-record/page`, params })
+ }
+}
+
+// 查询备件库存记录详情
+export const getItemLocationRecord = async (id: number) => {
+ return await request.get({ url: `/eam/item-location-record/get?id=` + id })
+}
+
+// 新增备件库存记录
+export const createItemLocationRecord = async (data: ItemLocationRecordVO) => {
+ return await request.post({ url: `/eam/item-location-record/create`, data })
+}
+
+// 修改备件库存记录
+export const updateItemLocationRecord = async (data: ItemLocationRecordVO) => {
+ return await request.put({ url: `/eam/item-location-record/update`, data })
+}
+
+// 删除备件库存记录
+export const deleteItemLocationRecord = async (id: number) => {
+ return await request.delete({ url: `/eam/item-location-record/delete?id=` + id })
+}
+
+// 导出备件库存记录 Excel
+export const exportItemLocationRecord = async (params) => {
+ return await request.download({ url: `/eam/item-location-record/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-location-record/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/item/itemMaintenance/index.ts b/src/api/eam/item/itemMaintenance/index.ts
new file mode 100644
index 0000000..d87e6f9
--- /dev/null
+++ b/src/api/eam/item/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/senior', data })
+ } else {
+ return await request.get({ url: `/eam/item-maintenance/page`, params })
+ }
+}
+
+// 查询备件维修记录详情
+export const getItemMaintenance = async (id: number) => {
+ return await request.get({ url: `/eam/item-maintenance/get?id=` + id })
+}
+
+// 新增备件维修记录
+export const createItemMaintenance = async (data: ItemMaintenanceVO) => {
+ return await request.post({ url: `/eam/item-maintenance/create`, data })
+}
+
+// 修改备件维修记录
+export const updateItemMaintenance = async (data: ItemMaintenanceVO) => {
+ return await request.put({ url: `/eam/item-maintenance/update`, data })
+}
+
+// 删除备件维修记录
+export const deleteItemMaintenance = async (id: number) => {
+ return await request.delete({ url: `/eam/item-maintenance/delete?id=` + id })
+}
+
+// 导出备件维修记录 Excel
+export const exportItemMaintenance = async (params) => {
+ return await request.download({ url: `/eam/item-maintenance/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/item-maintenance/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/item/itemOrderMain/index.ts b/src/api/eam/item/itemOrderMain/index.ts
new file mode 100644
index 0000000..cd41d81
--- /dev/null
+++ b/src/api/eam/item/itemOrderMain/index.ts
@@ -0,0 +1,65 @@
+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 })
+}
+
+// 导出备件采购订单主 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' })
+}
\ No newline at end of file
diff --git a/src/views/eam/item/itemAccounts/index.vue b/src/views/eam/item/itemAccounts/index.vue
new file mode 100644
index 0000000..c669876
--- /dev/null
+++ b/src/views/eam/item/itemAccounts/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/item/itemAccounts/itemAccounts.data.ts b/src/views/eam/item/itemAccounts/itemAccounts.data.ts
new file mode 100644
index 0000000..ff7ca4a
--- /dev/null
+++ b/src/views/eam/item/itemAccounts/itemAccounts.data.ts
@@ -0,0 +1,68 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const ItemAccountsRules = reactive({
+ itemNumber: [required],
+ areaNumber: [required],
+ concurrencyStamp: [required],
+})
+
+export const ItemAccounts = useCrudSchemas(reactive([
+ {
+ label: '备件编号',
+ field: 'itemNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '库存数量',
+ field: 'qty',
+ sort: 'custom',
+ },
+ {
+ label: '库区编号',
+ field: 'areaNumber',
+ sort: 'custom',
+ },
+ {
+ label: '是否账内库TRUE账内FALSE账外',
+ field: 'isInAccount',
+ sort: 'custom',
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isForm: false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/item/itemApplyMain/index.vue b/src/views/eam/item/itemApplyMain/index.vue
new file mode 100644
index 0000000..41fee46
--- /dev/null
+++ b/src/views/eam/item/itemApplyMain/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/item/itemApplyMain/itemApplyMain.data.ts b/src/views/eam/item/itemApplyMain/itemApplyMain.data.ts
new file mode 100644
index 0000000..0609fde
--- /dev/null
+++ b/src/views/eam/item/itemApplyMain/itemApplyMain.data.ts
@@ -0,0 +1,146 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const ItemApplyMainRules = reactive({
+ number: [required],
+ name: [required],
+ concurrencyStamp: [required],
+})
+
+export const ItemApplyMain = useCrudSchemas(reactive([
+ {
+ label: '编号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '描述',
+ field: 'name',
+ sort: 'custom',
+ },
+ {
+ label: '维修申领、以旧换新字典',
+ field: 'type',
+ sort: 'custom',
+ form: {
+ component: 'SelectV2'
+ },
+ },
+ {
+ label: '申领人id',
+ field: 'applyId',
+ sort: 'custom',
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '申领人部门id',
+ field: 'applyDeptId',
+ sort: 'custom',
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '审批人id',
+ field: 'approveId',
+ sort: 'custom',
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '审批时间',
+ field: 'approveTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '出库人id',
+ field: 'outId',
+ sort: 'custom',
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '出库时间',
+ field: 'outTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/item/itemLocationInRecord/index.vue b/src/views/eam/item/itemLocationInRecord/index.vue
new file mode 100644
index 0000000..4fa16be
--- /dev/null
+++ b/src/views/eam/item/itemLocationInRecord/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/item/itemLocationInRecord/itemLocationInRecord.data.ts b/src/views/eam/item/itemLocationInRecord/itemLocationInRecord.data.ts
new file mode 100644
index 0000000..d0e668f
--- /dev/null
+++ b/src/views/eam/item/itemLocationInRecord/itemLocationInRecord.data.ts
@@ -0,0 +1,111 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const ItemLocationInRecordRules = reactive({
+ itemNumber: [required],
+ locationNumber: [required],
+ inventoryAction: [required],
+ businessType: [required],
+ uom: [required],
+ concurrencyStamp: [required],
+})
+
+export const ItemLocationInRecord = useCrudSchemas(reactive([
+ {
+ label: '编号唯一标识',
+ field: 'itemNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '库存编码',
+ field: 'locationNumber',
+ sort: 'custom',
+ },
+ {
+ label: '事务类型IN、OUT',
+ field: 'transactionType',
+ sort: 'custom',
+ form: {
+ component: 'SelectV2'
+ },
+ },
+ {
+ label: '库存动作',
+ field: 'inventoryAction',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '业务类型',
+ field: 'businessType',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'SelectV2'
+ },
+ },
+ {
+ label: '库存状态',
+ field: 'inventoryStatus',
+ sort: 'custom',
+ form: {
+ component: 'Radio'
+ },
+ },
+ {
+ label: '计量单位从备件中获取',
+ field: 'uom',
+ sort: 'custom',
+ },
+ {
+ label: '数量',
+ field: 'qty',
+ sort: 'custom',
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/item/itemLocationOutRecord/index.vue b/src/views/eam/item/itemLocationOutRecord/index.vue
new file mode 100644
index 0000000..e23be63
--- /dev/null
+++ b/src/views/eam/item/itemLocationOutRecord/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/item/itemLocationOutRecord/itemLocationOutRecord.data.ts b/src/views/eam/item/itemLocationOutRecord/itemLocationOutRecord.data.ts
new file mode 100644
index 0000000..19bf891
--- /dev/null
+++ b/src/views/eam/item/itemLocationOutRecord/itemLocationOutRecord.data.ts
@@ -0,0 +1,111 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const ItemLocationOutRecordRules = reactive({
+ itemNumber: [required],
+ locationNumber: [required],
+ inventoryAction: [required],
+ businessType: [required],
+ uom: [required],
+ concurrencyStamp: [required],
+})
+
+export const ItemLocationOutRecord = useCrudSchemas(reactive([
+ {
+ label: '编号唯一标识',
+ field: 'itemNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '库存编码',
+ field: 'locationNumber',
+ sort: 'custom',
+ },
+ {
+ label: '事务类型IN、OUT',
+ field: 'transactionType',
+ sort: 'custom',
+ form: {
+ component: 'SelectV2'
+ },
+ },
+ {
+ label: '库存动作',
+ field: 'inventoryAction',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '业务类型',
+ field: 'businessType',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'SelectV2'
+ },
+ },
+ {
+ label: '库存状态',
+ field: 'inventoryStatus',
+ sort: 'custom',
+ form: {
+ component: 'Radio'
+ },
+ },
+ {
+ label: '计量单位从备件中获取',
+ field: 'uom',
+ sort: 'custom',
+ },
+ {
+ label: '数量',
+ field: 'qty',
+ sort: 'custom',
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/item/itemLocationRecord/index.vue b/src/views/eam/item/itemLocationRecord/index.vue
new file mode 100644
index 0000000..bcee0ca
--- /dev/null
+++ b/src/views/eam/item/itemLocationRecord/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/item/itemLocationRecord/itemLocationRecord.data.ts b/src/views/eam/item/itemLocationRecord/itemLocationRecord.data.ts
new file mode 100644
index 0000000..00b2407
--- /dev/null
+++ b/src/views/eam/item/itemLocationRecord/itemLocationRecord.data.ts
@@ -0,0 +1,111 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const ItemLocationRecordRules = reactive({
+ itemNumber: [required],
+ locationNumber: [required],
+ inventoryAction: [required],
+ businessType: [required],
+ uom: [required],
+ concurrencyStamp: [required],
+})
+
+export const ItemLocationRecord = useCrudSchemas(reactive([
+ {
+ label: '编号唯一标识',
+ field: 'itemNumber',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '库存编码',
+ field: 'locationNumber',
+ sort: 'custom',
+ },
+ {
+ label: '事务类型IN、OUT',
+ field: 'transactionType',
+ sort: 'custom',
+ form: {
+ component: 'SelectV2'
+ },
+ },
+ {
+ label: '库存动作',
+ field: 'inventoryAction',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '业务类型',
+ field: 'businessType',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'SelectV2'
+ },
+ },
+ {
+ label: '库存状态',
+ field: 'inventoryStatus',
+ sort: 'custom',
+ form: {
+ component: 'Radio'
+ },
+ },
+ {
+ label: '计量单位从备件中获取',
+ field: 'uom',
+ sort: 'custom',
+ },
+ {
+ label: '数量',
+ field: 'qty',
+ sort: 'custom',
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/item/itemMaintenance/index.vue b/src/views/eam/item/itemMaintenance/index.vue
new file mode 100644
index 0000000..2fde18f
--- /dev/null
+++ b/src/views/eam/item/itemMaintenance/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/item/itemMaintenance/itemMaintenance.data.ts b/src/views/eam/item/itemMaintenance/itemMaintenance.data.ts
new file mode 100644
index 0000000..75af293
--- /dev/null
+++ b/src/views/eam/item/itemMaintenance/itemMaintenance.data.ts
@@ -0,0 +1,80 @@
+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: '维修结果YES、NO',
+ field: 'result',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/item/itemOrderMain/index.vue b/src/views/eam/item/itemOrderMain/index.vue
new file mode 100644
index 0000000..1176f11
--- /dev/null
+++ b/src/views/eam/item/itemOrderMain/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/item/itemOrderMain/itemOrderMain.data.ts b/src/views/eam/item/itemOrderMain/itemOrderMain.data.ts
new file mode 100644
index 0000000..8d7ea4a
--- /dev/null
+++ b/src/views/eam/item/itemOrderMain/itemOrderMain.data.ts
@@ -0,0 +1,153 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const ItemOrderMainRules = reactive({
+ number: [required],
+ date: [required],
+ concurrencyStamp: [required],
+})
+
+export const ItemOrderMain = useCrudSchemas(reactive([
+ {
+ label: '订单号唯一标识',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '日期',
+ field: 'date',
+ sort: 'custom',
+ formatter: dateFormatter,
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ 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: 'SelectV2'
+ },
+ },
+ {
+ label: '注册地',
+ field: 'registLocation',
+ sort: 'custom',
+ },
+ {
+ label: '开户行',
+ field: 'bank',
+ sort: 'custom',
+ },
+ {
+ label: '账号',
+ field: 'account',
+ sort: 'custom',
+ },
+ {
+ label: '税号',
+ field: 'dutyParagraph',
+ sort: 'custom',
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: true,
+ search: {
+ component: 'DatePicker',
+ componentProps: {
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
+ type: 'daterange',
+ defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
+ }
+ },
+ isForm: false,
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))