diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts index 574d62e..df5e257 100644 --- a/src/api/business/schedule/interchangeReceipt.ts +++ b/src/api/business/schedule/interchangeReceipt.ts @@ -61,9 +61,18 @@ } // 关联委托书的且是已收入的样品的列表 +// export function getSampleList(data: ISampleListQuery) { +// return request({ +// url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, +// method: 'post', +// data, +// }) +// } + +// 查询样品列表 export function getSampleList(data: ISampleListQuery) { return request({ - url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, + url: `/customer/sample/listPageByInterchange?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts index 574d62e..df5e257 100644 --- a/src/api/business/schedule/interchangeReceipt.ts +++ b/src/api/business/schedule/interchangeReceipt.ts @@ -61,9 +61,18 @@ } // 关联委托书的且是已收入的样品的列表 +// export function getSampleList(data: ISampleListQuery) { +// return request({ +// url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, +// method: 'post', +// data, +// }) +// } + +// 查询样品列表 export function getSampleList(data: ISampleListQuery) { return request({ - url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, + url: `/customer/sample/listPageByInterchange?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index e82a99e..65acbce 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -60,18 +60,18 @@ } // 查询检定记录 -export function getMesureRecords(data: { customerId?: string; sampleId?: string }) { +export function getMesureRecords(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: `${prefix}/sample/measureRecordsById`, + url: `${prefix}/sample/measureRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) } // 查询检定证书 -export function getCertification(data: { customerId?: string; sampleId?: string }) { +export function getCertification(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: '/business/certificateReport/certificateRecordsById', + url: `/business/certificateReport/certificateRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts index 574d62e..df5e257 100644 --- a/src/api/business/schedule/interchangeReceipt.ts +++ b/src/api/business/schedule/interchangeReceipt.ts @@ -61,9 +61,18 @@ } // 关联委托书的且是已收入的样品的列表 +// export function getSampleList(data: ISampleListQuery) { +// return request({ +// url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, +// method: 'post', +// data, +// }) +// } + +// 查询样品列表 export function getSampleList(data: ISampleListQuery) { return request({ - url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, + url: `/customer/sample/listPageByInterchange?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index e82a99e..65acbce 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -60,18 +60,18 @@ } // 查询检定记录 -export function getMesureRecords(data: { customerId?: string; sampleId?: string }) { +export function getMesureRecords(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: `${prefix}/sample/measureRecordsById`, + url: `${prefix}/sample/measureRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) } // 查询检定证书 -export function getCertification(data: { customerId?: string; sampleId?: string }) { +export function getCertification(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: '/business/certificateReport/certificateRecordsById', + url: `/business/certificateReport/certificateRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/assets/icons/business-board.svg b/src/assets/icons/business-board.svg new file mode 100644 index 0000000..990fe35 --- /dev/null +++ b/src/assets/icons/business-board.svg @@ -0,0 +1 @@ + diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts index 574d62e..df5e257 100644 --- a/src/api/business/schedule/interchangeReceipt.ts +++ b/src/api/business/schedule/interchangeReceipt.ts @@ -61,9 +61,18 @@ } // 关联委托书的且是已收入的样品的列表 +// export function getSampleList(data: ISampleListQuery) { +// return request({ +// url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, +// method: 'post', +// data, +// }) +// } + +// 查询样品列表 export function getSampleList(data: ISampleListQuery) { return request({ - url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, + url: `/customer/sample/listPageByInterchange?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index e82a99e..65acbce 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -60,18 +60,18 @@ } // 查询检定记录 -export function getMesureRecords(data: { customerId?: string; sampleId?: string }) { +export function getMesureRecords(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: `${prefix}/sample/measureRecordsById`, + url: `${prefix}/sample/measureRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) } // 查询检定证书 -export function getCertification(data: { customerId?: string; sampleId?: string }) { +export function getCertification(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: '/business/certificateReport/certificateRecordsById', + url: `/business/certificateReport/certificateRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/assets/icons/business-board.svg b/src/assets/icons/business-board.svg new file mode 100644 index 0000000..990fe35 --- /dev/null +++ b/src/assets/icons/business-board.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/icon-create.svg b/src/assets/icons/icon-create.svg new file mode 100644 index 0000000..5d651db --- /dev/null +++ b/src/assets/icons/icon-create.svg @@ -0,0 +1 @@ + diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts index 574d62e..df5e257 100644 --- a/src/api/business/schedule/interchangeReceipt.ts +++ b/src/api/business/schedule/interchangeReceipt.ts @@ -61,9 +61,18 @@ } // 关联委托书的且是已收入的样品的列表 +// export function getSampleList(data: ISampleListQuery) { +// return request({ +// url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, +// method: 'post', +// data, +// }) +// } + +// 查询样品列表 export function getSampleList(data: ISampleListQuery) { return request({ - url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, + url: `/customer/sample/listPageByInterchange?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index e82a99e..65acbce 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -60,18 +60,18 @@ } // 查询检定记录 -export function getMesureRecords(data: { customerId?: string; sampleId?: string }) { +export function getMesureRecords(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: `${prefix}/sample/measureRecordsById`, + url: `${prefix}/sample/measureRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) } // 查询检定证书 -export function getCertification(data: { customerId?: string; sampleId?: string }) { +export function getCertification(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: '/business/certificateReport/certificateRecordsById', + url: `/business/certificateReport/certificateRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/assets/icons/business-board.svg b/src/assets/icons/business-board.svg new file mode 100644 index 0000000..990fe35 --- /dev/null +++ b/src/assets/icons/business-board.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/icon-create.svg b/src/assets/icons/icon-create.svg new file mode 100644 index 0000000..5d651db --- /dev/null +++ b/src/assets/icons/icon-create.svg @@ -0,0 +1 @@ + diff --git a/src/router/modules/business.ts b/src/router/modules/business.ts index be78584..db0b317 100644 --- a/src/router/modules/business.ts +++ b/src/router/modules/business.ts @@ -29,6 +29,41 @@ ], }, { + path: '/board', + component: Layout, + redirect: '/board/overdueReminderList', + name: 'Board', + meta: { + title: '业务看板', + icon: 'ep:key', + auth: '/business/board', + }, + children: [ + { + path: 'overdueReminderList', + name: 'OverdueReminderList', + component: () => import('@/views/business/board/overdueReminder/list.vue'), + meta: { + title: '样品超期提醒', + icon: 'ep:key', + auth: '/business/board/overdueReminder', + }, + }, + { + path: 'overdueReminderDetail/:id', + name: 'OverdueReminderDetail', + component: () => import('@/views/business/board/overdueReminder/detail.vue'), + meta: { + title: '样品超期提醒详情', + icon: 'ep:key', + sidebar: false, + breadcrumb: true, + activeMenu: '/board/overdueReminderList', + }, + }, + ], + }, + { path: '/schedule', component: Layout, redirect: '/schedule/orderList', @@ -374,7 +409,7 @@ { path: '/:type/:id?', name: 'taskDetail', - component: () => import('@/views/business/schedule/certificate/edit.vue'), + component: () => import('@/views/business/subpackage/certificate/edit.vue'), meta: { title: '分包证书详情', icon: 'ep:key', diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts index 574d62e..df5e257 100644 --- a/src/api/business/schedule/interchangeReceipt.ts +++ b/src/api/business/schedule/interchangeReceipt.ts @@ -61,9 +61,18 @@ } // 关联委托书的且是已收入的样品的列表 +// export function getSampleList(data: ISampleListQuery) { +// return request({ +// url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, +// method: 'post', +// data, +// }) +// } + +// 查询样品列表 export function getSampleList(data: ISampleListQuery) { return request({ - url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, + url: `/customer/sample/listPageByInterchange?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index e82a99e..65acbce 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -60,18 +60,18 @@ } // 查询检定记录 -export function getMesureRecords(data: { customerId?: string; sampleId?: string }) { +export function getMesureRecords(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: `${prefix}/sample/measureRecordsById`, + url: `${prefix}/sample/measureRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) } // 查询检定证书 -export function getCertification(data: { customerId?: string; sampleId?: string }) { +export function getCertification(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: '/business/certificateReport/certificateRecordsById', + url: `/business/certificateReport/certificateRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/assets/icons/business-board.svg b/src/assets/icons/business-board.svg new file mode 100644 index 0000000..990fe35 --- /dev/null +++ b/src/assets/icons/business-board.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/icon-create.svg b/src/assets/icons/icon-create.svg new file mode 100644 index 0000000..5d651db --- /dev/null +++ b/src/assets/icons/icon-create.svg @@ -0,0 +1 @@ + diff --git a/src/router/modules/business.ts b/src/router/modules/business.ts index be78584..db0b317 100644 --- a/src/router/modules/business.ts +++ b/src/router/modules/business.ts @@ -29,6 +29,41 @@ ], }, { + path: '/board', + component: Layout, + redirect: '/board/overdueReminderList', + name: 'Board', + meta: { + title: '业务看板', + icon: 'ep:key', + auth: '/business/board', + }, + children: [ + { + path: 'overdueReminderList', + name: 'OverdueReminderList', + component: () => import('@/views/business/board/overdueReminder/list.vue'), + meta: { + title: '样品超期提醒', + icon: 'ep:key', + auth: '/business/board/overdueReminder', + }, + }, + { + path: 'overdueReminderDetail/:id', + name: 'OverdueReminderDetail', + component: () => import('@/views/business/board/overdueReminder/detail.vue'), + meta: { + title: '样品超期提醒详情', + icon: 'ep:key', + sidebar: false, + breadcrumb: true, + activeMenu: '/board/overdueReminderList', + }, + }, + ], + }, + { path: '/schedule', component: Layout, redirect: '/schedule/orderList', @@ -374,7 +409,7 @@ { path: '/:type/:id?', name: 'taskDetail', - component: () => import('@/views/business/schedule/certificate/edit.vue'), + component: () => import('@/views/business/subpackage/certificate/edit.vue'), meta: { title: '分包证书详情', icon: 'ep:key', diff --git a/src/views/business/board/overdueReminder/detail.vue b/src/views/business/board/overdueReminder/detail.vue new file mode 100644 index 0000000..50aa545 --- /dev/null +++ b/src/views/business/board/overdueReminder/detail.vue @@ -0,0 +1,543 @@ + + + + + + + diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts index 574d62e..df5e257 100644 --- a/src/api/business/schedule/interchangeReceipt.ts +++ b/src/api/business/schedule/interchangeReceipt.ts @@ -61,9 +61,18 @@ } // 关联委托书的且是已收入的样品的列表 +// export function getSampleList(data: ISampleListQuery) { +// return request({ +// url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, +// method: 'post', +// data, +// }) +// } + +// 查询样品列表 export function getSampleList(data: ISampleListQuery) { return request({ - url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, + url: `/customer/sample/listPageByInterchange?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index e82a99e..65acbce 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -60,18 +60,18 @@ } // 查询检定记录 -export function getMesureRecords(data: { customerId?: string; sampleId?: string }) { +export function getMesureRecords(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: `${prefix}/sample/measureRecordsById`, + url: `${prefix}/sample/measureRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) } // 查询检定证书 -export function getCertification(data: { customerId?: string; sampleId?: string }) { +export function getCertification(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: '/business/certificateReport/certificateRecordsById', + url: `/business/certificateReport/certificateRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/assets/icons/business-board.svg b/src/assets/icons/business-board.svg new file mode 100644 index 0000000..990fe35 --- /dev/null +++ b/src/assets/icons/business-board.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/icon-create.svg b/src/assets/icons/icon-create.svg new file mode 100644 index 0000000..5d651db --- /dev/null +++ b/src/assets/icons/icon-create.svg @@ -0,0 +1 @@ + diff --git a/src/router/modules/business.ts b/src/router/modules/business.ts index be78584..db0b317 100644 --- a/src/router/modules/business.ts +++ b/src/router/modules/business.ts @@ -29,6 +29,41 @@ ], }, { + path: '/board', + component: Layout, + redirect: '/board/overdueReminderList', + name: 'Board', + meta: { + title: '业务看板', + icon: 'ep:key', + auth: '/business/board', + }, + children: [ + { + path: 'overdueReminderList', + name: 'OverdueReminderList', + component: () => import('@/views/business/board/overdueReminder/list.vue'), + meta: { + title: '样品超期提醒', + icon: 'ep:key', + auth: '/business/board/overdueReminder', + }, + }, + { + path: 'overdueReminderDetail/:id', + name: 'OverdueReminderDetail', + component: () => import('@/views/business/board/overdueReminder/detail.vue'), + meta: { + title: '样品超期提醒详情', + icon: 'ep:key', + sidebar: false, + breadcrumb: true, + activeMenu: '/board/overdueReminderList', + }, + }, + ], + }, + { path: '/schedule', component: Layout, redirect: '/schedule/orderList', @@ -374,7 +409,7 @@ { path: '/:type/:id?', name: 'taskDetail', - component: () => import('@/views/business/schedule/certificate/edit.vue'), + component: () => import('@/views/business/subpackage/certificate/edit.vue'), meta: { title: '分包证书详情', icon: 'ep:key', diff --git a/src/views/business/board/overdueReminder/detail.vue b/src/views/business/board/overdueReminder/detail.vue new file mode 100644 index 0000000..50aa545 --- /dev/null +++ b/src/views/business/board/overdueReminder/detail.vue @@ -0,0 +1,543 @@ + + + + + + + diff --git a/src/views/business/board/overdueReminder/list.vue b/src/views/business/board/overdueReminder/list.vue new file mode 100644 index 0000000..2421546 --- /dev/null +++ b/src/views/business/board/overdueReminder/list.vue @@ -0,0 +1,269 @@ + + + + + + diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts index 574d62e..df5e257 100644 --- a/src/api/business/schedule/interchangeReceipt.ts +++ b/src/api/business/schedule/interchangeReceipt.ts @@ -61,9 +61,18 @@ } // 关联委托书的且是已收入的样品的列表 +// export function getSampleList(data: ISampleListQuery) { +// return request({ +// url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, +// method: 'post', +// data, +// }) +// } + +// 查询样品列表 export function getSampleList(data: ISampleListQuery) { return request({ - url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, + url: `/customer/sample/listPageByInterchange?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index e82a99e..65acbce 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -60,18 +60,18 @@ } // 查询检定记录 -export function getMesureRecords(data: { customerId?: string; sampleId?: string }) { +export function getMesureRecords(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: `${prefix}/sample/measureRecordsById`, + url: `${prefix}/sample/measureRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) } // 查询检定证书 -export function getCertification(data: { customerId?: string; sampleId?: string }) { +export function getCertification(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: '/business/certificateReport/certificateRecordsById', + url: `/business/certificateReport/certificateRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/assets/icons/business-board.svg b/src/assets/icons/business-board.svg new file mode 100644 index 0000000..990fe35 --- /dev/null +++ b/src/assets/icons/business-board.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/icon-create.svg b/src/assets/icons/icon-create.svg new file mode 100644 index 0000000..5d651db --- /dev/null +++ b/src/assets/icons/icon-create.svg @@ -0,0 +1 @@ + diff --git a/src/router/modules/business.ts b/src/router/modules/business.ts index be78584..db0b317 100644 --- a/src/router/modules/business.ts +++ b/src/router/modules/business.ts @@ -29,6 +29,41 @@ ], }, { + path: '/board', + component: Layout, + redirect: '/board/overdueReminderList', + name: 'Board', + meta: { + title: '业务看板', + icon: 'ep:key', + auth: '/business/board', + }, + children: [ + { + path: 'overdueReminderList', + name: 'OverdueReminderList', + component: () => import('@/views/business/board/overdueReminder/list.vue'), + meta: { + title: '样品超期提醒', + icon: 'ep:key', + auth: '/business/board/overdueReminder', + }, + }, + { + path: 'overdueReminderDetail/:id', + name: 'OverdueReminderDetail', + component: () => import('@/views/business/board/overdueReminder/detail.vue'), + meta: { + title: '样品超期提醒详情', + icon: 'ep:key', + sidebar: false, + breadcrumb: true, + activeMenu: '/board/overdueReminderList', + }, + }, + ], + }, + { path: '/schedule', component: Layout, redirect: '/schedule/orderList', @@ -374,7 +409,7 @@ { path: '/:type/:id?', name: 'taskDetail', - component: () => import('@/views/business/schedule/certificate/edit.vue'), + component: () => import('@/views/business/subpackage/certificate/edit.vue'), meta: { title: '分包证书详情', icon: 'ep:key', diff --git a/src/views/business/board/overdueReminder/detail.vue b/src/views/business/board/overdueReminder/detail.vue new file mode 100644 index 0000000..50aa545 --- /dev/null +++ b/src/views/business/board/overdueReminder/detail.vue @@ -0,0 +1,543 @@ + + + + + + + diff --git a/src/views/business/board/overdueReminder/list.vue b/src/views/business/board/overdueReminder/list.vue new file mode 100644 index 0000000..2421546 --- /dev/null +++ b/src/views/business/board/overdueReminder/list.vue @@ -0,0 +1,269 @@ + + + + + + diff --git a/src/views/business/board/overdueReminder/overdueReminder_interface.ts b/src/views/business/board/overdueReminder/overdueReminder_interface.ts new file mode 100644 index 0000000..45bcf9e --- /dev/null +++ b/src/views/business/board/overdueReminder/overdueReminder_interface.ts @@ -0,0 +1,31 @@ +// 筛选 +export interface IListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + orderNo: string // 委托书编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + isUrgent: string // 是否加急 + sampleBelong: string // 样品属性 + sampleStatus: string // 分发状态 + startTime: string // 应检定开始时间 + endTime: string // 应检定结束时间 + limit: number + offset: number +} +// 表格 +export interface IList { + id: string // 主键 + sampleId: string // 样品id + sampleNo: string // 样品编号 + sampleName: string// 样品名称 + sampleModel: string// 型号 + manufacturingNo: string// 出厂编号 + orderId: string // 委托书id + orderCode: string// 委托书编号 + customerNo: string// 委托方代码 + customerName: string// 委托方名称 + deliverer: string// 送检人 + remark: string// 备注 +} + diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts index 574d62e..df5e257 100644 --- a/src/api/business/schedule/interchangeReceipt.ts +++ b/src/api/business/schedule/interchangeReceipt.ts @@ -61,9 +61,18 @@ } // 关联委托书的且是已收入的样品的列表 +// export function getSampleList(data: ISampleListQuery) { +// return request({ +// url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, +// method: 'post', +// data, +// }) +// } + +// 查询样品列表 export function getSampleList(data: ISampleListQuery) { return request({ - url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, + url: `/customer/sample/listPageByInterchange?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index e82a99e..65acbce 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -60,18 +60,18 @@ } // 查询检定记录 -export function getMesureRecords(data: { customerId?: string; sampleId?: string }) { +export function getMesureRecords(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: `${prefix}/sample/measureRecordsById`, + url: `${prefix}/sample/measureRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) } // 查询检定证书 -export function getCertification(data: { customerId?: string; sampleId?: string }) { +export function getCertification(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: '/business/certificateReport/certificateRecordsById', + url: `/business/certificateReport/certificateRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/assets/icons/business-board.svg b/src/assets/icons/business-board.svg new file mode 100644 index 0000000..990fe35 --- /dev/null +++ b/src/assets/icons/business-board.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/icon-create.svg b/src/assets/icons/icon-create.svg new file mode 100644 index 0000000..5d651db --- /dev/null +++ b/src/assets/icons/icon-create.svg @@ -0,0 +1 @@ + diff --git a/src/router/modules/business.ts b/src/router/modules/business.ts index be78584..db0b317 100644 --- a/src/router/modules/business.ts +++ b/src/router/modules/business.ts @@ -29,6 +29,41 @@ ], }, { + path: '/board', + component: Layout, + redirect: '/board/overdueReminderList', + name: 'Board', + meta: { + title: '业务看板', + icon: 'ep:key', + auth: '/business/board', + }, + children: [ + { + path: 'overdueReminderList', + name: 'OverdueReminderList', + component: () => import('@/views/business/board/overdueReminder/list.vue'), + meta: { + title: '样品超期提醒', + icon: 'ep:key', + auth: '/business/board/overdueReminder', + }, + }, + { + path: 'overdueReminderDetail/:id', + name: 'OverdueReminderDetail', + component: () => import('@/views/business/board/overdueReminder/detail.vue'), + meta: { + title: '样品超期提醒详情', + icon: 'ep:key', + sidebar: false, + breadcrumb: true, + activeMenu: '/board/overdueReminderList', + }, + }, + ], + }, + { path: '/schedule', component: Layout, redirect: '/schedule/orderList', @@ -374,7 +409,7 @@ { path: '/:type/:id?', name: 'taskDetail', - component: () => import('@/views/business/schedule/certificate/edit.vue'), + component: () => import('@/views/business/subpackage/certificate/edit.vue'), meta: { title: '分包证书详情', icon: 'ep:key', diff --git a/src/views/business/board/overdueReminder/detail.vue b/src/views/business/board/overdueReminder/detail.vue new file mode 100644 index 0000000..50aa545 --- /dev/null +++ b/src/views/business/board/overdueReminder/detail.vue @@ -0,0 +1,543 @@ + + + + + + + diff --git a/src/views/business/board/overdueReminder/list.vue b/src/views/business/board/overdueReminder/list.vue new file mode 100644 index 0000000..2421546 --- /dev/null +++ b/src/views/business/board/overdueReminder/list.vue @@ -0,0 +1,269 @@ + + + + + + diff --git a/src/views/business/board/overdueReminder/overdueReminder_interface.ts b/src/views/business/board/overdueReminder/overdueReminder_interface.ts new file mode 100644 index 0000000..45bcf9e --- /dev/null +++ b/src/views/business/board/overdueReminder/overdueReminder_interface.ts @@ -0,0 +1,31 @@ +// 筛选 +export interface IListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + orderNo: string // 委托书编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + isUrgent: string // 是否加急 + sampleBelong: string // 样品属性 + sampleStatus: string // 分发状态 + startTime: string // 应检定开始时间 + endTime: string // 应检定结束时间 + limit: number + offset: number +} +// 表格 +export interface IList { + id: string // 主键 + sampleId: string // 样品id + sampleNo: string // 样品编号 + sampleName: string// 样品名称 + sampleModel: string// 型号 + manufacturingNo: string// 出厂编号 + orderId: string // 委托书id + orderCode: string// 委托书编号 + customerNo: string// 委托方代码 + customerName: string// 委托方名称 + deliverer: string// 送检人 + remark: string// 备注 +} + diff --git a/src/views/business/schedule/components/terminateDialog.vue b/src/views/business/schedule/components/terminateDialog.vue index d5f85a0..17c8b15 100644 --- a/src/views/business/schedule/components/terminateDialog.vue +++ b/src/views/business/schedule/components/terminateDialog.vue @@ -32,7 +32,7 @@ * @param orderId 委托书id * @param sampleId 样品id */ -function initDialog(row) { +function initDialog(row: any) { // dataFormRef.value!.clearValidate() formData.value.orderId = row.orderId formData.value.sampleId = row.sampleId diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts index 574d62e..df5e257 100644 --- a/src/api/business/schedule/interchangeReceipt.ts +++ b/src/api/business/schedule/interchangeReceipt.ts @@ -61,9 +61,18 @@ } // 关联委托书的且是已收入的样品的列表 +// export function getSampleList(data: ISampleListQuery) { +// return request({ +// url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, +// method: 'post', +// data, +// }) +// } + +// 查询样品列表 export function getSampleList(data: ISampleListQuery) { return request({ - url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, + url: `/customer/sample/listPageByInterchange?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index e82a99e..65acbce 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -60,18 +60,18 @@ } // 查询检定记录 -export function getMesureRecords(data: { customerId?: string; sampleId?: string }) { +export function getMesureRecords(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: `${prefix}/sample/measureRecordsById`, + url: `${prefix}/sample/measureRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) } // 查询检定证书 -export function getCertification(data: { customerId?: string; sampleId?: string }) { +export function getCertification(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: '/business/certificateReport/certificateRecordsById', + url: `/business/certificateReport/certificateRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/assets/icons/business-board.svg b/src/assets/icons/business-board.svg new file mode 100644 index 0000000..990fe35 --- /dev/null +++ b/src/assets/icons/business-board.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/icon-create.svg b/src/assets/icons/icon-create.svg new file mode 100644 index 0000000..5d651db --- /dev/null +++ b/src/assets/icons/icon-create.svg @@ -0,0 +1 @@ + diff --git a/src/router/modules/business.ts b/src/router/modules/business.ts index be78584..db0b317 100644 --- a/src/router/modules/business.ts +++ b/src/router/modules/business.ts @@ -29,6 +29,41 @@ ], }, { + path: '/board', + component: Layout, + redirect: '/board/overdueReminderList', + name: 'Board', + meta: { + title: '业务看板', + icon: 'ep:key', + auth: '/business/board', + }, + children: [ + { + path: 'overdueReminderList', + name: 'OverdueReminderList', + component: () => import('@/views/business/board/overdueReminder/list.vue'), + meta: { + title: '样品超期提醒', + icon: 'ep:key', + auth: '/business/board/overdueReminder', + }, + }, + { + path: 'overdueReminderDetail/:id', + name: 'OverdueReminderDetail', + component: () => import('@/views/business/board/overdueReminder/detail.vue'), + meta: { + title: '样品超期提醒详情', + icon: 'ep:key', + sidebar: false, + breadcrumb: true, + activeMenu: '/board/overdueReminderList', + }, + }, + ], + }, + { path: '/schedule', component: Layout, redirect: '/schedule/orderList', @@ -374,7 +409,7 @@ { path: '/:type/:id?', name: 'taskDetail', - component: () => import('@/views/business/schedule/certificate/edit.vue'), + component: () => import('@/views/business/subpackage/certificate/edit.vue'), meta: { title: '分包证书详情', icon: 'ep:key', diff --git a/src/views/business/board/overdueReminder/detail.vue b/src/views/business/board/overdueReminder/detail.vue new file mode 100644 index 0000000..50aa545 --- /dev/null +++ b/src/views/business/board/overdueReminder/detail.vue @@ -0,0 +1,543 @@ + + + + + + + diff --git a/src/views/business/board/overdueReminder/list.vue b/src/views/business/board/overdueReminder/list.vue new file mode 100644 index 0000000..2421546 --- /dev/null +++ b/src/views/business/board/overdueReminder/list.vue @@ -0,0 +1,269 @@ + + + + + + diff --git a/src/views/business/board/overdueReminder/overdueReminder_interface.ts b/src/views/business/board/overdueReminder/overdueReminder_interface.ts new file mode 100644 index 0000000..45bcf9e --- /dev/null +++ b/src/views/business/board/overdueReminder/overdueReminder_interface.ts @@ -0,0 +1,31 @@ +// 筛选 +export interface IListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + orderNo: string // 委托书编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + isUrgent: string // 是否加急 + sampleBelong: string // 样品属性 + sampleStatus: string // 分发状态 + startTime: string // 应检定开始时间 + endTime: string // 应检定结束时间 + limit: number + offset: number +} +// 表格 +export interface IList { + id: string // 主键 + sampleId: string // 样品id + sampleNo: string // 样品编号 + sampleName: string// 样品名称 + sampleModel: string// 型号 + manufacturingNo: string// 出厂编号 + orderId: string // 委托书id + orderCode: string// 委托书编号 + customerNo: string// 委托方代码 + customerName: string// 委托方名称 + deliverer: string// 送检人 + remark: string// 备注 +} + diff --git a/src/views/business/schedule/components/terminateDialog.vue b/src/views/business/schedule/components/terminateDialog.vue index d5f85a0..17c8b15 100644 --- a/src/views/business/schedule/components/terminateDialog.vue +++ b/src/views/business/schedule/components/terminateDialog.vue @@ -32,7 +32,7 @@ * @param orderId 委托书id * @param sampleId 样品id */ -function initDialog(row) { +function initDialog(row: any) { // dataFormRef.value!.clearValidate() formData.value.orderId = row.orderId formData.value.sampleId = row.sampleId diff --git a/src/views/business/schedule/interchange/interchangeDetail.vue b/src/views/business/schedule/interchange/interchangeDetail.vue index 789505f..5244f44 100644 --- a/src/views/business/schedule/interchange/interchangeDetail.vue +++ b/src/views/business/schedule/interchange/interchangeDetail.vue @@ -4,6 +4,8 @@ import { ElMessage, ElMessageBox } from 'element-plus' import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' +import dayjs from 'dayjs' +import type { IRecord } from './interchange_interface' import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord, dictType } from '@/views/customer/sample/list/sample_list_interface' import selectCustomer from '@/views/customer/sample/list/selectCustomer.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' @@ -13,7 +15,6 @@ import { UploadFile } from '@/api/measure/file' import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' import { getDictByCode } from '@/api/system/dict' - const textMap: { [key: string]: string } = { edit: '编辑', add: '新建', @@ -27,6 +28,7 @@ const mesureCategoryList = ref([]) // 校检类别 const measureTypeList = ref([]) // 检定方式 const powerVoltageList = ref([]) // 电源电压 +const total = ref(0) const dataForm: Ref = ref({ id: '', sampleNo: '', // 样品编号 @@ -86,12 +88,6 @@ powerVoltage: [{ required: true, message: '要求电源电压不能为空', trigger: 'change' }], }) // 表单验证规则 -// 其他关联数据列表 -const dataList = ref({ - measureRecords: [] as SimpleMeasureRecord[], - certificationRecords: [] as SimpleCertification[], -}) - // 获取字典值 function getDict() { // 校检类别 @@ -109,11 +105,33 @@ } getDict() +// --------------------------检定记录、检定证书----------------------------------------- +// 其他关联数据列表 +const dataList = ref({ + measureRecords: [] as SimpleMeasureRecord[], + certificationRecords: [] as SimpleCertification[], +}) + +const listQuery = ref({ + sampleId: infoId.value, // 样品id + customerId: '', // 客户id + offset: 1, + limit: 10, +}) +const totalRecords = ref(0) // 检定记录总条数 +const totalCertifications = ref(0) // 检定证书总条数 // 获取检定记录 const fetchMeasureRecords = (query = null) => { if (pageType.value === 'detail') { - getMesureRecords({ sampleId: infoId.value, customerId: '' }).then((res) => { - dataList.value.measureRecords = res.data.rows + getMesureRecords(listQuery.value).then((res) => { + dataList.value.measureRecords = res.data.rows.map((item: { orderTime: string; deliverTime: string }) => { + return { + ...item, + orderTime: item.orderTime ? dayjs(item.orderTime).format('YYYY-MM-DD') : '', + deliverTime: item.deliverTime ? dayjs(item.deliverTime).format('YYYY-MM-DD') : '', + } + }) + totalRecords.value = parseInt(res.data.total) }) } } @@ -121,8 +139,16 @@ // 获取检定证书 const fetchCertifications = (query = null) => { if (pageType.value === 'detail') { - getCertification({ sampleId: infoId.value, customerId: '' }).then((res) => { - dataList.value.certificationRecords = res.data.rows + getCertification(listQuery.value).then((res) => { + dataList.value.certificationRecords = res.data.rows.map((item: { effectiveDate: string; expirationDate: string }) => { + return { + ...item, + effectiveDate: item.effectiveDate ? dayjs(item.effectiveDate).format('YYYY-MM-DD') : '', + expirationDate: item.expirationDate ? dayjs(item.expirationDate).format('YYYY-MM-DD') : '', + + } + }) + totalCertifications.value = parseInt(res.data.total) }) } } @@ -133,11 +159,11 @@ name: '检定记录', columns: [ { text: '委托单编号', value: 'orderCode', align: 'center' }, - { text: '委托单日期', value: 'orderTime', align: 'center' }, + { text: '委托单日期', value: 'orderTime', align: 'center', width: '120' }, { text: '委托方代码', value: 'customerCode', align: 'center' }, { text: '委托方名称', value: 'customerName', align: 'center' }, { text: '送检人', value: 'deliverer', align: 'center' }, - { text: '送检日期', value: 'deliverTime', align: 'center' }, + { text: '送检日期', value: 'deliverTime', align: 'center', width: '120' }, ], list: 'measureRecords', pagination: true, @@ -149,8 +175,8 @@ { text: '证书编号', value: 'certificationCode', align: 'center' }, { text: '证书名称', value: 'certificationName', align: 'center' }, { text: '证书类型', value: 'certificationClassName', align: 'center' }, - { text: '证书出具日期', value: 'effectiveDate', align: 'center' }, - { text: '证书有效期', value: 'expirationDate', align: 'center' }, + { text: '证书出具日期', value: 'effectiveDate', align: 'center', width: '120' }, + { text: '证书有效期', value: 'expirationDate', align: 'center', width: '120' }, ], list: 'certificationRecords', pagination: true, @@ -162,6 +188,25 @@ const currentMenuObj = computed(() => { return menu.find(item => item.name === currentMenu.value) }) +watch(currentMenuObj, () => { + listQuery.value.offset = 1 + currentMenuObj.value?.searchFunc() +}, +{ + deep: true, + immediate: true, +}) + +// 监听检定记录和证书报告页数变化 +const changePage = (val: any) => { + if (val.value && currentMenuObj) { + listQuery.value.offset = val.value.offset + listQuery.value.limit = val.value.limit + currentMenuObj.value?.searchFunc() + } +} + +// -------------------------------------底部-------------------------------------- // 从路由中获取页面类型参数 const $route = useRoute() @@ -615,7 +660,8 @@ - + + diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts index 574d62e..df5e257 100644 --- a/src/api/business/schedule/interchangeReceipt.ts +++ b/src/api/business/schedule/interchangeReceipt.ts @@ -61,9 +61,18 @@ } // 关联委托书的且是已收入的样品的列表 +// export function getSampleList(data: ISampleListQuery) { +// return request({ +// url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, +// method: 'post', +// data, +// }) +// } + +// 查询样品列表 export function getSampleList(data: ISampleListQuery) { return request({ - url: `${prefix}/sampleList?offset=${data.offset}&limit=${data.limit}`, + url: `/customer/sample/listPageByInterchange?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index e82a99e..65acbce 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -60,18 +60,18 @@ } // 查询检定记录 -export function getMesureRecords(data: { customerId?: string; sampleId?: string }) { +export function getMesureRecords(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: `${prefix}/sample/measureRecordsById`, + url: `${prefix}/sample/measureRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) } // 查询检定证书 -export function getCertification(data: { customerId?: string; sampleId?: string }) { +export function getCertification(data: { customerId?: string; sampleId?: string; offset: number; limit: number }) { return request({ - url: '/business/certificateReport/certificateRecordsById', + url: `/business/certificateReport/certificateRecordsById?offset=${data.offset}&limit=${data.limit}`, method: 'post', data, }) diff --git a/src/assets/icons/business-board.svg b/src/assets/icons/business-board.svg new file mode 100644 index 0000000..990fe35 --- /dev/null +++ b/src/assets/icons/business-board.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/icon-create.svg b/src/assets/icons/icon-create.svg new file mode 100644 index 0000000..5d651db --- /dev/null +++ b/src/assets/icons/icon-create.svg @@ -0,0 +1 @@ + diff --git a/src/router/modules/business.ts b/src/router/modules/business.ts index be78584..db0b317 100644 --- a/src/router/modules/business.ts +++ b/src/router/modules/business.ts @@ -29,6 +29,41 @@ ], }, { + path: '/board', + component: Layout, + redirect: '/board/overdueReminderList', + name: 'Board', + meta: { + title: '业务看板', + icon: 'ep:key', + auth: '/business/board', + }, + children: [ + { + path: 'overdueReminderList', + name: 'OverdueReminderList', + component: () => import('@/views/business/board/overdueReminder/list.vue'), + meta: { + title: '样品超期提醒', + icon: 'ep:key', + auth: '/business/board/overdueReminder', + }, + }, + { + path: 'overdueReminderDetail/:id', + name: 'OverdueReminderDetail', + component: () => import('@/views/business/board/overdueReminder/detail.vue'), + meta: { + title: '样品超期提醒详情', + icon: 'ep:key', + sidebar: false, + breadcrumb: true, + activeMenu: '/board/overdueReminderList', + }, + }, + ], + }, + { path: '/schedule', component: Layout, redirect: '/schedule/orderList', @@ -374,7 +409,7 @@ { path: '/:type/:id?', name: 'taskDetail', - component: () => import('@/views/business/schedule/certificate/edit.vue'), + component: () => import('@/views/business/subpackage/certificate/edit.vue'), meta: { title: '分包证书详情', icon: 'ep:key', diff --git a/src/views/business/board/overdueReminder/detail.vue b/src/views/business/board/overdueReminder/detail.vue new file mode 100644 index 0000000..50aa545 --- /dev/null +++ b/src/views/business/board/overdueReminder/detail.vue @@ -0,0 +1,543 @@ + + + + + + + diff --git a/src/views/business/board/overdueReminder/list.vue b/src/views/business/board/overdueReminder/list.vue new file mode 100644 index 0000000..2421546 --- /dev/null +++ b/src/views/business/board/overdueReminder/list.vue @@ -0,0 +1,269 @@ + + + + + + diff --git a/src/views/business/board/overdueReminder/overdueReminder_interface.ts b/src/views/business/board/overdueReminder/overdueReminder_interface.ts new file mode 100644 index 0000000..45bcf9e --- /dev/null +++ b/src/views/business/board/overdueReminder/overdueReminder_interface.ts @@ -0,0 +1,31 @@ +// 筛选 +export interface IListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + orderNo: string // 委托书编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + isUrgent: string // 是否加急 + sampleBelong: string // 样品属性 + sampleStatus: string // 分发状态 + startTime: string // 应检定开始时间 + endTime: string // 应检定结束时间 + limit: number + offset: number +} +// 表格 +export interface IList { + id: string // 主键 + sampleId: string // 样品id + sampleNo: string // 样品编号 + sampleName: string// 样品名称 + sampleModel: string// 型号 + manufacturingNo: string// 出厂编号 + orderId: string // 委托书id + orderCode: string// 委托书编号 + customerNo: string// 委托方代码 + customerName: string// 委托方名称 + deliverer: string// 送检人 + remark: string// 备注 +} + diff --git a/src/views/business/schedule/components/terminateDialog.vue b/src/views/business/schedule/components/terminateDialog.vue index d5f85a0..17c8b15 100644 --- a/src/views/business/schedule/components/terminateDialog.vue +++ b/src/views/business/schedule/components/terminateDialog.vue @@ -32,7 +32,7 @@ * @param orderId 委托书id * @param sampleId 样品id */ -function initDialog(row) { +function initDialog(row: any) { // dataFormRef.value!.clearValidate() formData.value.orderId = row.orderId formData.value.sampleId = row.sampleId diff --git a/src/views/business/schedule/interchange/interchangeDetail.vue b/src/views/business/schedule/interchange/interchangeDetail.vue index 789505f..5244f44 100644 --- a/src/views/business/schedule/interchange/interchangeDetail.vue +++ b/src/views/business/schedule/interchange/interchangeDetail.vue @@ -4,6 +4,8 @@ import { ElMessage, ElMessageBox } from 'element-plus' import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' +import dayjs from 'dayjs' +import type { IRecord } from './interchange_interface' import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord, dictType } from '@/views/customer/sample/list/sample_list_interface' import selectCustomer from '@/views/customer/sample/list/selectCustomer.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' @@ -13,7 +15,6 @@ import { UploadFile } from '@/api/measure/file' import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' import { getDictByCode } from '@/api/system/dict' - const textMap: { [key: string]: string } = { edit: '编辑', add: '新建', @@ -27,6 +28,7 @@ const mesureCategoryList = ref([]) // 校检类别 const measureTypeList = ref([]) // 检定方式 const powerVoltageList = ref([]) // 电源电压 +const total = ref(0) const dataForm: Ref = ref({ id: '', sampleNo: '', // 样品编号 @@ -86,12 +88,6 @@ powerVoltage: [{ required: true, message: '要求电源电压不能为空', trigger: 'change' }], }) // 表单验证规则 -// 其他关联数据列表 -const dataList = ref({ - measureRecords: [] as SimpleMeasureRecord[], - certificationRecords: [] as SimpleCertification[], -}) - // 获取字典值 function getDict() { // 校检类别 @@ -109,11 +105,33 @@ } getDict() +// --------------------------检定记录、检定证书----------------------------------------- +// 其他关联数据列表 +const dataList = ref({ + measureRecords: [] as SimpleMeasureRecord[], + certificationRecords: [] as SimpleCertification[], +}) + +const listQuery = ref({ + sampleId: infoId.value, // 样品id + customerId: '', // 客户id + offset: 1, + limit: 10, +}) +const totalRecords = ref(0) // 检定记录总条数 +const totalCertifications = ref(0) // 检定证书总条数 // 获取检定记录 const fetchMeasureRecords = (query = null) => { if (pageType.value === 'detail') { - getMesureRecords({ sampleId: infoId.value, customerId: '' }).then((res) => { - dataList.value.measureRecords = res.data.rows + getMesureRecords(listQuery.value).then((res) => { + dataList.value.measureRecords = res.data.rows.map((item: { orderTime: string; deliverTime: string }) => { + return { + ...item, + orderTime: item.orderTime ? dayjs(item.orderTime).format('YYYY-MM-DD') : '', + deliverTime: item.deliverTime ? dayjs(item.deliverTime).format('YYYY-MM-DD') : '', + } + }) + totalRecords.value = parseInt(res.data.total) }) } } @@ -121,8 +139,16 @@ // 获取检定证书 const fetchCertifications = (query = null) => { if (pageType.value === 'detail') { - getCertification({ sampleId: infoId.value, customerId: '' }).then((res) => { - dataList.value.certificationRecords = res.data.rows + getCertification(listQuery.value).then((res) => { + dataList.value.certificationRecords = res.data.rows.map((item: { effectiveDate: string; expirationDate: string }) => { + return { + ...item, + effectiveDate: item.effectiveDate ? dayjs(item.effectiveDate).format('YYYY-MM-DD') : '', + expirationDate: item.expirationDate ? dayjs(item.expirationDate).format('YYYY-MM-DD') : '', + + } + }) + totalCertifications.value = parseInt(res.data.total) }) } } @@ -133,11 +159,11 @@ name: '检定记录', columns: [ { text: '委托单编号', value: 'orderCode', align: 'center' }, - { text: '委托单日期', value: 'orderTime', align: 'center' }, + { text: '委托单日期', value: 'orderTime', align: 'center', width: '120' }, { text: '委托方代码', value: 'customerCode', align: 'center' }, { text: '委托方名称', value: 'customerName', align: 'center' }, { text: '送检人', value: 'deliverer', align: 'center' }, - { text: '送检日期', value: 'deliverTime', align: 'center' }, + { text: '送检日期', value: 'deliverTime', align: 'center', width: '120' }, ], list: 'measureRecords', pagination: true, @@ -149,8 +175,8 @@ { text: '证书编号', value: 'certificationCode', align: 'center' }, { text: '证书名称', value: 'certificationName', align: 'center' }, { text: '证书类型', value: 'certificationClassName', align: 'center' }, - { text: '证书出具日期', value: 'effectiveDate', align: 'center' }, - { text: '证书有效期', value: 'expirationDate', align: 'center' }, + { text: '证书出具日期', value: 'effectiveDate', align: 'center', width: '120' }, + { text: '证书有效期', value: 'expirationDate', align: 'center', width: '120' }, ], list: 'certificationRecords', pagination: true, @@ -162,6 +188,25 @@ const currentMenuObj = computed(() => { return menu.find(item => item.name === currentMenu.value) }) +watch(currentMenuObj, () => { + listQuery.value.offset = 1 + currentMenuObj.value?.searchFunc() +}, +{ + deep: true, + immediate: true, +}) + +// 监听检定记录和证书报告页数变化 +const changePage = (val: any) => { + if (val.value && currentMenuObj) { + listQuery.value.offset = val.value.offset + listQuery.value.limit = val.value.limit + currentMenuObj.value?.searchFunc() + } +} + +// -------------------------------------底部-------------------------------------- // 从路由中获取页面类型参数 const $route = useRoute() @@ -615,7 +660,8 @@ - + + diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue index 61ca5e5..51321f8 100644 --- a/src/views/business/schedule/interchange/interchangeList.vue +++ b/src/views/business/schedule/interchange/interchangeList.vue @@ -32,7 +32,7 @@ sampleNo: '', // 样品编号 sampleName: '', // 样品名称 orderNo: '', // 委托书编号 - customerId: '', // 委托方代码 + customerNo: '', // 委托方代码 startTime: '', // 预计送达开始时间 endTime: '', // 预计送达结束时间 isUrgent: '2', // 是否加急 //2全部 @@ -174,12 +174,12 @@ sampleNo: '', // 样品编号 sampleName: '', // 样品名称 orderNo: '', // 委托书编号 - customerId: '', // 委托方代码 + customerNo: '', // 委托方代码 startTime: '', // 预计送达开始时间 endTime: '', // 预计送达结束时间 isUrgent: '2', // 是否加急 sampleBelong: '2', // 样品属性 - sampleStatus: '', + sampleStatus: '', // 样品状态 offset: 1, limit: 20, } @@ -238,7 +238,7 @@ sampleNo: listQuery.value.sampleNo, // 样品编号 sampleName: listQuery.value.sampleName, // 样品名称 orderNo: listQuery.value.orderNo, // 委托书编号 - customerId: listQuery.value.customerId, // 委托方代码 + customerNo: listQuery.value.customerNo, // 委托方代码 startTime: listQuery.value.startTime, // 预计送达开始时间 endTime: listQuery.value.endTime, // 预计送达结束时间 isUrgent: listQuery.value.isUrgent, // 是否加急 @@ -363,6 +363,11 @@ $router.push(`/schedule/interchange/${pageType}/${row.sampleId}`) } +// 点击生成设备交接单 +const createInterchangeReceipt = () => { + $router.push('/schedule/receipt/add') +} + onMounted(async () => { await getDict() // 字典 if (window.sessionStorage.getItem('interchangeActive')) { @@ -407,7 +412,7 @@ - + + diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue index 61ca5e5..51321f8 100644 --- a/src/views/business/schedule/interchange/interchangeList.vue +++ b/src/views/business/schedule/interchange/interchangeList.vue @@ -32,7 +32,7 @@ sampleNo: '', // 样品编号 sampleName: '', // 样品名称 orderNo: '', // 委托书编号 - customerId: '', // 委托方代码 + customerNo: '', // 委托方代码 startTime: '', // 预计送达开始时间 endTime: '', // 预计送达结束时间 isUrgent: '2', // 是否加急 //2全部 @@ -174,12 +174,12 @@ sampleNo: '', // 样品编号 sampleName: '', // 样品名称 orderNo: '', // 委托书编号 - customerId: '', // 委托方代码 + customerNo: '', // 委托方代码 startTime: '', // 预计送达开始时间 endTime: '', // 预计送达结束时间 isUrgent: '2', // 是否加急 sampleBelong: '2', // 样品属性 - sampleStatus: '', + sampleStatus: '', // 样品状态 offset: 1, limit: 20, } @@ -238,7 +238,7 @@ sampleNo: listQuery.value.sampleNo, // 样品编号 sampleName: listQuery.value.sampleName, // 样品名称 orderNo: listQuery.value.orderNo, // 委托书编号 - customerId: listQuery.value.customerId, // 委托方代码 + customerNo: listQuery.value.customerNo, // 委托方代码 startTime: listQuery.value.startTime, // 预计送达开始时间 endTime: listQuery.value.endTime, // 预计送达结束时间 isUrgent: listQuery.value.isUrgent, // 是否加急 @@ -363,6 +363,11 @@ $router.push(`/schedule/interchange/${pageType}/${row.sampleId}`) } +// 点击生成设备交接单 +const createInterchangeReceipt = () => { + $router.push('/schedule/receipt/add') +} + onMounted(async () => { await getDict() // 字典 if (window.sessionStorage.getItem('interchangeActive')) { @@ -407,7 +412,7 @@ - + + diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue index 61ca5e5..51321f8 100644 --- a/src/views/business/schedule/interchange/interchangeList.vue +++ b/src/views/business/schedule/interchange/interchangeList.vue @@ -32,7 +32,7 @@ sampleNo: '', // 样品编号 sampleName: '', // 样品名称 orderNo: '', // 委托书编号 - customerId: '', // 委托方代码 + customerNo: '', // 委托方代码 startTime: '', // 预计送达开始时间 endTime: '', // 预计送达结束时间 isUrgent: '2', // 是否加急 //2全部 @@ -174,12 +174,12 @@ sampleNo: '', // 样品编号 sampleName: '', // 样品名称 orderNo: '', // 委托书编号 - customerId: '', // 委托方代码 + customerNo: '', // 委托方代码 startTime: '', // 预计送达开始时间 endTime: '', // 预计送达结束时间 isUrgent: '2', // 是否加急 sampleBelong: '2', // 样品属性 - sampleStatus: '', + sampleStatus: '', // 样品状态 offset: 1, limit: 20, } @@ -238,7 +238,7 @@ sampleNo: listQuery.value.sampleNo, // 样品编号 sampleName: listQuery.value.sampleName, // 样品名称 orderNo: listQuery.value.orderNo, // 委托书编号 - customerId: listQuery.value.customerId, // 委托方代码 + customerNo: listQuery.value.customerNo, // 委托方代码 startTime: listQuery.value.startTime, // 预计送达开始时间 endTime: listQuery.value.endTime, // 预计送达结束时间 isUrgent: listQuery.value.isUrgent, // 是否加急 @@ -363,6 +363,11 @@ $router.push(`/schedule/interchange/${pageType}/${row.sampleId}`) } +// 点击生成设备交接单 +const createInterchangeReceipt = () => { + $router.push('/schedule/receipt/add') +} + onMounted(async () => { await getDict() // 字典 if (window.sessionStorage.getItem('interchangeActive')) { @@ -407,7 +412,7 @@ - + + diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue index 61ca5e5..51321f8 100644 --- a/src/views/business/schedule/interchange/interchangeList.vue +++ b/src/views/business/schedule/interchange/interchangeList.vue @@ -32,7 +32,7 @@ sampleNo: '', // 样品编号 sampleName: '', // 样品名称 orderNo: '', // 委托书编号 - customerId: '', // 委托方代码 + customerNo: '', // 委托方代码 startTime: '', // 预计送达开始时间 endTime: '', // 预计送达结束时间 isUrgent: '2', // 是否加急 //2全部 @@ -174,12 +174,12 @@ sampleNo: '', // 样品编号 sampleName: '', // 样品名称 orderNo: '', // 委托书编号 - customerId: '', // 委托方代码 + customerNo: '', // 委托方代码 startTime: '', // 预计送达开始时间 endTime: '', // 预计送达结束时间 isUrgent: '2', // 是否加急 sampleBelong: '2', // 样品属性 - sampleStatus: '', + sampleStatus: '', // 样品状态 offset: 1, limit: 20, } @@ -238,7 +238,7 @@ sampleNo: listQuery.value.sampleNo, // 样品编号 sampleName: listQuery.value.sampleName, // 样品名称 orderNo: listQuery.value.orderNo, // 委托书编号 - customerId: listQuery.value.customerId, // 委托方代码 + customerNo: listQuery.value.customerNo, // 委托方代码 startTime: listQuery.value.startTime, // 预计送达开始时间 endTime: listQuery.value.endTime, // 预计送达结束时间 isUrgent: listQuery.value.isUrgent, // 是否加急 @@ -363,6 +363,11 @@ $router.push(`/schedule/interchange/${pageType}/${row.sampleId}`) } +// 点击生成设备交接单 +const createInterchangeReceipt = () => { + $router.push('/schedule/receipt/add') +} + onMounted(async () => { await getDict() // 字典 if (window.sessionStorage.getItem('interchangeActive')) { @@ -407,7 +412,7 @@ - + + diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue index 61ca5e5..51321f8 100644 --- a/src/views/business/schedule/interchange/interchangeList.vue +++ b/src/views/business/schedule/interchange/interchangeList.vue @@ -32,7 +32,7 @@ sampleNo: '', // 样品编号 sampleName: '', // 样品名称 orderNo: '', // 委托书编号 - customerId: '', // 委托方代码 + customerNo: '', // 委托方代码 startTime: '', // 预计送达开始时间 endTime: '', // 预计送达结束时间 isUrgent: '2', // 是否加急 //2全部 @@ -174,12 +174,12 @@ sampleNo: '', // 样品编号 sampleName: '', // 样品名称 orderNo: '', // 委托书编号 - customerId: '', // 委托方代码 + customerNo: '', // 委托方代码 startTime: '', // 预计送达开始时间 endTime: '', // 预计送达结束时间 isUrgent: '2', // 是否加急 sampleBelong: '2', // 样品属性 - sampleStatus: '', + sampleStatus: '', // 样品状态 offset: 1, limit: 20, } @@ -238,7 +238,7 @@ sampleNo: listQuery.value.sampleNo, // 样品编号 sampleName: listQuery.value.sampleName, // 样品名称 orderNo: listQuery.value.orderNo, // 委托书编号 - customerId: listQuery.value.customerId, // 委托方代码 + customerNo: listQuery.value.customerNo, // 委托方代码 startTime: listQuery.value.startTime, // 预计送达开始时间 endTime: listQuery.value.endTime, // 预计送达结束时间 isUrgent: listQuery.value.isUrgent, // 是否加急 @@ -363,6 +363,11 @@ $router.push(`/schedule/interchange/${pageType}/${row.sampleId}`) } +// 点击生成设备交接单 +const createInterchangeReceipt = () => { + $router.push('/schedule/receipt/add') +} + onMounted(async () => { await getDict() // 字典 if (window.sessionStorage.getItem('interchangeActive')) { @@ -407,7 +412,7 @@