diff --git a/src/api/opc/xRay/index.ts b/src/api/opc/xRay/index.ts
new file mode 100644
index 0000000..c72ddea
--- /dev/null
+++ b/src/api/opc/xRay/index.ts
@@ -0,0 +1,58 @@
+import request from '@/config/axios'
+
+export interface XRayVO {
+ id: number
+ code: string
+ dqd: string
+ tyd: string
+ hipotRst: string
+ station: string
+ processStartTime: string
+ processEndTime: string
+ loginId: string
+ coreId: number
+ rework: number
+ inBoundRst: string
+ inBoundFinsh: string
+}
+
+// 查询X-RAY列表
+export const getXRayPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/opc/xray/senior', data })
+ } else {
+ return await request.get({ url: `/opc/xray/page`, params })
+ }
+}
+
+// 查询X-RAY详情
+export const getXRay = async (id: number) => {
+ return await request.get({ url: `/opc/xray/get?id=` + id })
+}
+
+// 新增X-RAY
+export const createXRay = async (data: XRayVO) => {
+ return await request.post({ url: `/opc/xray/create`, data })
+}
+
+// 修改X-RAY
+export const updateXRay = async (data: XRayVO) => {
+ return await request.put({ url: `/opc/xray/update`, data })
+}
+
+// 删除X-RAY
+export const deleteXRay = async (id: number) => {
+ return await request.delete({ url: `/opc/xray/delete?id=` + id })
+}
+
+// 导出X-RAY Excel
+export const exportXRay = async (params) => {
+ return await request.download({ url: `/opc/xray/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/opc/xray/get-import-template' })
+}
diff --git a/src/views/home/index.vue b/src/views/home/index.vue
index 39f28f6..f857e66 100644
--- a/src/views/home/index.vue
+++ b/src/views/home/index.vue
@@ -12,8 +12,8 @@
diff --git a/src/views/opc/xRay/index.vue b/src/views/opc/xRay/index.vue
new file mode 100644
index 0000000..23a49bb
--- /dev/null
+++ b/src/views/opc/xRay/index.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/opc/xRay/xRay.data.ts b/src/views/opc/xRay/xRay.data.ts
new file mode 100644
index 0000000..2a99053
--- /dev/null
+++ b/src/views/opc/xRay/xRay.data.ts
@@ -0,0 +1,162 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+// 表单校验
+export const XRayRules = reactive({
+})
+
+export const XRay = useCrudSchemas(reactive([
+ // {
+ // label: 'id',
+ // field: 'id',
+ // sort: 'custom',
+ // isForm: false,
+ // },
+ {
+ label: '电芯条码',
+ field: 'code',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '对齐度1-4',
+ field: 'dqd',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '投影值1-4',
+ field: 'tyd',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: 'hipot判定',
+ field: 'hipotRst',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '工位',
+ field: 'station',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '电芯进站时间',
+ field: 'processStartTime',
+ 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: 'processEndTime',
+ 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: '登录ID',
+ field: 'loginId',
+ sort: 'custom',
+ isSearch: false,
+ },
+ {
+ label: '序列号',
+ field: 'coreId',
+ sort: 'custom',
+ isSearch: false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '返工品',
+ field: 'rework',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ dictType: DICT_TYPE.REWORK,
+ dictClass: 'string',
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '进站判定',
+ field: 'inBoundRst',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ dictType: DICT_TYPE.IN_BOUND_RST,
+ dictClass: 'string',
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ },
+ {
+ label: '是否进站完成',
+ field: 'inBoundFinsh',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ dictType: DICT_TYPE.IN_BOUND_FINSH,
+ dictClass: 'string',
+ isTable: true,
+ tableForm: {
+ type: 'Select'
+ }
+ // },
+ // {
+ // label: '操作',
+ // field: 'action',
+ // isForm: false,
+ // table: {
+ // width: 150,
+ // fixed: 'right'
+ // }
+ }
+]))