diff --git a/src/api/eam/basic/basciYearEquipment/index.ts b/src/api/eam/basic/basciYearEquipment/index.ts
new file mode 100644
index 0000000..342b7ae
--- /dev/null
+++ b/src/api/eam/basic/basciYearEquipment/index.ts
@@ -0,0 +1,52 @@
+import request from '@/config/axios'
+
+export interface BasciYearEquipmentVO {
+ id: number
+ name: string
+ type: string
+ factoryType: string
+ yearIndex: Date
+ goal: number
+ actual: number
+}
+
+// 查询首页年设备指标列表
+export const getBasciYearEquipmentPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basci-year-equipment/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basci-year-equipment/page`, params })
+ }
+}
+
+// 查询首页年设备指标详情
+export const getBasciYearEquipment = async (id: number) => {
+ return await request.get({ url: `/eam/basci-year-equipment/get?id=` + id })
+}
+
+// 新增首页年设备指标
+export const createBasciYearEquipment = async (data: BasciYearEquipmentVO) => {
+ return await request.post({ url: `/eam/basci-year-equipment/create`, data })
+}
+
+// 修改首页年设备指标
+export const updateBasciYearEquipment = async (data: BasciYearEquipmentVO) => {
+ return await request.put({ url: `/eam/basci-year-equipment/update`, data })
+}
+
+// 删除首页年设备指标
+export const deleteBasciYearEquipment = async (id: number) => {
+ return await request.delete({ url: `/eam/basci-year-equipment/delete?id=` + id })
+}
+
+// 导出首页年设备指标 Excel
+export const exportBasciYearEquipment = async (params) => {
+ return await request.download({ url: `/eam/basci-year-equipment/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basci-year-equipment/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/eam/basic/basicMonthEquipment/index.ts b/src/api/eam/basic/basicMonthEquipment/index.ts
new file mode 100644
index 0000000..a0a3bff
--- /dev/null
+++ b/src/api/eam/basic/basicMonthEquipment/index.ts
@@ -0,0 +1,54 @@
+import request from '@/config/axios'
+
+export interface BasicMonthEquipmentVO {
+ id: number
+ name: string
+ type: string
+ factoryType: string
+ monthIndex: string
+ actual: string
+ siteId: string
+ available: string
+ concurrencyStamp: number
+}
+
+// 查询首页月设备实现指标列表
+export const getBasicMonthEquipmentPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/eam/basic-month-equipment/senior', data })
+ } else {
+ return await request.get({ url: `/eam/basic-month-equipment/page`, params })
+ }
+}
+
+// 查询首页月设备实现指标详情
+export const getBasicMonthEquipment = async (id: number) => {
+ return await request.get({ url: `/eam/basic-month-equipment/get?id=` + id })
+}
+
+// 新增首页月设备实现指标
+export const createBasicMonthEquipment = async (data: BasicMonthEquipmentVO) => {
+ return await request.post({ url: `/eam/basic-month-equipment/create`, data })
+}
+
+// 修改首页月设备实现指标
+export const updateBasicMonthEquipment = async (data: BasicMonthEquipmentVO) => {
+ return await request.put({ url: `/eam/basic-month-equipment/update`, data })
+}
+
+// 删除首页月设备实现指标
+export const deleteBasicMonthEquipment = async (id: number) => {
+ return await request.delete({ url: `/eam/basic-month-equipment/delete?id=` + id })
+}
+
+// 导出首页月设备实现指标 Excel
+export const exportBasicMonthEquipment = async (params) => {
+ return await request.download({ url: `/eam/basic-month-equipment/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/eam/basic-month-equipment/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/components/ImportForm/src/SYMonthImportForm.vue b/src/components/ImportForm/src/SYMonthImportForm.vue
new file mode 100644
index 0000000..8e86271
--- /dev/null
+++ b/src/components/ImportForm/src/SYMonthImportForm.vue
@@ -0,0 +1,335 @@
+
+
+
+
+
+
+
diff --git a/src/utils/dict.ts b/src/utils/dict.ts
index f49c322..4bcbdde 100644
--- a/src/utils/dict.ts
+++ b/src/utils/dict.ts
@@ -302,5 +302,7 @@ export enum DICT_TYPE {
ITEM_SUBJECT = 'item_subject', //备件的科目
TURN_TYPE = 'turn_type', //转移类型
ORDER_COMPLETE_RESULT = 'order_complete_result', //维修工单完成结果
+ FACTORY_TYPE = 'factory_type',//厂区类别
+ EQUIPMENT_INDEX_NAME = 'equipment_index_name'//设备年度目标指标名称分类字段
}
diff --git a/src/views/eam/basic/basciYearEquipment/basciYearEquipment.data.ts b/src/views/eam/basic/basciYearEquipment/basciYearEquipment.data.ts
new file mode 100644
index 0000000..60305d5
--- /dev/null
+++ b/src/views/eam/basic/basciYearEquipment/basciYearEquipment.data.ts
@@ -0,0 +1,98 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const BasciYearEquipmentRules = reactive({
+ // name: [required],
+ type: [required],
+ factoryType: [required],
+ yearIndex: [required],
+ goal: [required]
+})
+
+export const BasciYearEquipment = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isForm: false,
+ isTable:false
+ },
+ // {
+ // label: '名称',
+ // field: 'name',
+ // sort: 'custom',
+ // form:{
+ // componentProps:{disabled:true},//属性
+ // // component:'Select' 展示什么类型输入框之类的
+ // }
+ // },
+ {
+ label: '类型名称',
+ field: 'type',
+ sort: 'custom',
+ dictType: DICT_TYPE.EQUIPMENT_INDEX_NAME,
+ dictClass: 'string',
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '厂区类型',
+ field: 'factoryType',
+ sort: 'custom',
+ dictType: DICT_TYPE.FACTORY_TYPE,
+ dictClass: 'string',
+ isSearch: true,
+ form: {
+ component: 'Select'
+ }
+ },
+ {
+ label: '年指标',
+ field: 'yearIndex',
+ sort: 'custom',
+ form:{
+ component:'DatePicker',
+ componentProps:{
+ valueFormat:'YYYY',//格式化后端数据年
+ format:'YYYY'//格式化显示时间为年
+ }
+ }
+ },
+ {
+ label: '目标值',
+ field: 'goal',
+ sort: 'custom',
+ form:{
+ component:'InputNumber',
+
+ }
+ },
+ {
+ label: '实际值',
+ field: 'actual',
+ sort: 'custom',
+ form: {
+ componentProps:{
+ disabled:true
+ }
+ }
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isForm: false
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/basic/basciYearEquipment/index.vue b/src/views/eam/basic/basciYearEquipment/index.vue
new file mode 100644
index 0000000..1e9aa76
--- /dev/null
+++ b/src/views/eam/basic/basciYearEquipment/index.vue
@@ -0,0 +1,270 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.goal+"%" }}
+
+
+ {{ row.goal==null?"":row.goal+"%" }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/eam/basic/basicMonthEquipment/basicMonthEquipment.data.ts b/src/views/eam/basic/basicMonthEquipment/basicMonthEquipment.data.ts
new file mode 100644
index 0000000..44e5e90
--- /dev/null
+++ b/src/views/eam/basic/basicMonthEquipment/basicMonthEquipment.data.ts
@@ -0,0 +1,71 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const BasicMonthEquipmentRules = reactive({
+ type: [required],
+ factoryType: [required],
+ monthIndex: [required],
+})
+
+export const BasicMonthEquipment = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isTable: false,
+ isForm: false,
+ },
+ // {
+ // label: '名称',
+ // field: 'name',
+ // sort: 'custom',
+ // },
+ {
+ label: '类型',
+ field: 'type',
+ dictType: DICT_TYPE.EQUIPMENT_INDEX_NAME,
+ dictClass: 'string',
+ sort: 'custom',
+ form: {
+ component: 'Select'
+ },
+ },
+ {
+ label: '厂区',
+ field: 'factoryType',
+ dictType: DICT_TYPE.FACTORY_TYPE,
+ dictClass: 'string',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'Select'
+ },
+ },
+ {
+ label: '年月',
+ field: 'monthIndex',
+ sort: 'custom',
+ },
+ {
+ label: '实际值',
+ field: 'actual',
+ sort: 'custom',
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isForm: false,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
diff --git a/src/views/eam/basic/basicMonthEquipment/index.vue b/src/views/eam/basic/basicMonthEquipment/index.vue
new file mode 100644
index 0000000..c7deb1d
--- /dev/null
+++ b/src/views/eam/basic/basicMonthEquipment/index.vue
@@ -0,0 +1,242 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.type=='0'?row.actual+"%":row.actual }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+