diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue b/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue deleted file mode 100644 index 8a7a8bc..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue b/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue deleted file mode 100644 index 8a7a8bc..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/canceled.vue b/src/views/device/deviceMaintenance/components/listApply/canceled.vue deleted file mode 100644 index 3b9657c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/canceled.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue b/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue deleted file mode 100644 index 8a7a8bc..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/canceled.vue b/src/views/device/deviceMaintenance/components/listApply/canceled.vue deleted file mode 100644 index 3b9657c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/canceled.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue b/src/views/device/deviceMaintenance/components/listApply/draftBox.vue deleted file mode 100644 index 43d7b75..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue b/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue deleted file mode 100644 index 8a7a8bc..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/canceled.vue b/src/views/device/deviceMaintenance/components/listApply/canceled.vue deleted file mode 100644 index 3b9657c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/canceled.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue b/src/views/device/deviceMaintenance/components/listApply/draftBox.vue deleted file mode 100644 index 43d7b75..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue b/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue deleted file mode 100644 index c13f95a..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue b/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue deleted file mode 100644 index 8a7a8bc..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/canceled.vue b/src/views/device/deviceMaintenance/components/listApply/canceled.vue deleted file mode 100644 index 3b9657c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/canceled.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue b/src/views/device/deviceMaintenance/components/listApply/draftBox.vue deleted file mode 100644 index 43d7b75..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue b/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue deleted file mode 100644 index c13f95a..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPage.vue b/src/views/device/deviceMaintenance/components/listApply/listPage.vue deleted file mode 100644 index d269b33..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPage.vue +++ /dev/null @@ -1,506 +0,0 @@ - - - diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue b/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue deleted file mode 100644 index 8a7a8bc..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/canceled.vue b/src/views/device/deviceMaintenance/components/listApply/canceled.vue deleted file mode 100644 index 3b9657c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/canceled.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue b/src/views/device/deviceMaintenance/components/listApply/draftBox.vue deleted file mode 100644 index 43d7b75..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue b/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue deleted file mode 100644 index c13f95a..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPage.vue b/src/views/device/deviceMaintenance/components/listApply/listPage.vue deleted file mode 100644 index d269b33..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPage.vue +++ /dev/null @@ -1,506 +0,0 @@ - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue b/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue deleted file mode 100644 index 5b4b6c7..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue +++ /dev/null @@ -1,603 +0,0 @@ - - - - - diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue b/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue deleted file mode 100644 index 8a7a8bc..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/canceled.vue b/src/views/device/deviceMaintenance/components/listApply/canceled.vue deleted file mode 100644 index 3b9657c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/canceled.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue b/src/views/device/deviceMaintenance/components/listApply/draftBox.vue deleted file mode 100644 index 43d7b75..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue b/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue deleted file mode 100644 index c13f95a..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPage.vue b/src/views/device/deviceMaintenance/components/listApply/listPage.vue deleted file mode 100644 index d269b33..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPage.vue +++ /dev/null @@ -1,506 +0,0 @@ - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue b/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue deleted file mode 100644 index 5b4b6c7..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue +++ /dev/null @@ -1,603 +0,0 @@ - - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/notPass.vue b/src/views/device/deviceMaintenance/components/listApply/notPass.vue deleted file mode 100644 index 5a4b817..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/notPass.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue b/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue deleted file mode 100644 index 8a7a8bc..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/canceled.vue b/src/views/device/deviceMaintenance/components/listApply/canceled.vue deleted file mode 100644 index 3b9657c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/canceled.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue b/src/views/device/deviceMaintenance/components/listApply/draftBox.vue deleted file mode 100644 index 43d7b75..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue b/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue deleted file mode 100644 index c13f95a..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPage.vue b/src/views/device/deviceMaintenance/components/listApply/listPage.vue deleted file mode 100644 index d269b33..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPage.vue +++ /dev/null @@ -1,506 +0,0 @@ - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue b/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue deleted file mode 100644 index 5b4b6c7..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue +++ /dev/null @@ -1,603 +0,0 @@ - - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/notPass.vue b/src/views/device/deviceMaintenance/components/listApply/notPass.vue deleted file mode 100644 index 5a4b817..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/notPass.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/passed.vue b/src/views/device/deviceMaintenance/components/listApply/passed.vue deleted file mode 100644 index 31cd21c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/passed.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue b/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue deleted file mode 100644 index 8a7a8bc..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/canceled.vue b/src/views/device/deviceMaintenance/components/listApply/canceled.vue deleted file mode 100644 index 3b9657c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/canceled.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue b/src/views/device/deviceMaintenance/components/listApply/draftBox.vue deleted file mode 100644 index 43d7b75..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue b/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue deleted file mode 100644 index c13f95a..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPage.vue b/src/views/device/deviceMaintenance/components/listApply/listPage.vue deleted file mode 100644 index d269b33..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPage.vue +++ /dev/null @@ -1,506 +0,0 @@ - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue b/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue deleted file mode 100644 index 5b4b6c7..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue +++ /dev/null @@ -1,603 +0,0 @@ - - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/notPass.vue b/src/views/device/deviceMaintenance/components/listApply/notPass.vue deleted file mode 100644 index 5a4b817..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/notPass.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/passed.vue b/src/views/device/deviceMaintenance/components/listApply/passed.vue deleted file mode 100644 index 31cd21c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/passed.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApproval.vue b/src/views/device/deviceMaintenance/components/listApproval.vue new file mode 100644 index 0000000..7bfd090 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listApproval.vue @@ -0,0 +1,429 @@ + + + + diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue b/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue deleted file mode 100644 index 8a7a8bc..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/canceled.vue b/src/views/device/deviceMaintenance/components/listApply/canceled.vue deleted file mode 100644 index 3b9657c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/canceled.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue b/src/views/device/deviceMaintenance/components/listApply/draftBox.vue deleted file mode 100644 index 43d7b75..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue b/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue deleted file mode 100644 index c13f95a..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPage.vue b/src/views/device/deviceMaintenance/components/listApply/listPage.vue deleted file mode 100644 index d269b33..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPage.vue +++ /dev/null @@ -1,506 +0,0 @@ - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue b/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue deleted file mode 100644 index 5b4b6c7..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue +++ /dev/null @@ -1,603 +0,0 @@ - - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/notPass.vue b/src/views/device/deviceMaintenance/components/listApply/notPass.vue deleted file mode 100644 index 5a4b817..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/notPass.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/passed.vue b/src/views/device/deviceMaintenance/components/listApply/passed.vue deleted file mode 100644 index 31cd21c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/passed.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApproval.vue b/src/views/device/deviceMaintenance/components/listApproval.vue new file mode 100644 index 0000000..7bfd090 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listApproval.vue @@ -0,0 +1,429 @@ + + + + diff --git a/src/views/device/deviceMaintenance/components/listApprovalAdd.vue b/src/views/device/deviceMaintenance/components/listApprovalAdd.vue new file mode 100644 index 0000000..a8e1295 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listApprovalAdd.vue @@ -0,0 +1,645 @@ + + + + + diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue b/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue deleted file mode 100644 index 8a7a8bc..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/canceled.vue b/src/views/device/deviceMaintenance/components/listApply/canceled.vue deleted file mode 100644 index 3b9657c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/canceled.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue b/src/views/device/deviceMaintenance/components/listApply/draftBox.vue deleted file mode 100644 index 43d7b75..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue b/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue deleted file mode 100644 index c13f95a..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPage.vue b/src/views/device/deviceMaintenance/components/listApply/listPage.vue deleted file mode 100644 index d269b33..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPage.vue +++ /dev/null @@ -1,506 +0,0 @@ - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue b/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue deleted file mode 100644 index 5b4b6c7..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue +++ /dev/null @@ -1,603 +0,0 @@ - - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/notPass.vue b/src/views/device/deviceMaintenance/components/listApply/notPass.vue deleted file mode 100644 index 5a4b817..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/notPass.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/passed.vue b/src/views/device/deviceMaintenance/components/listApply/passed.vue deleted file mode 100644 index 31cd21c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/passed.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApproval.vue b/src/views/device/deviceMaintenance/components/listApproval.vue new file mode 100644 index 0000000..7bfd090 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listApproval.vue @@ -0,0 +1,429 @@ + + + + diff --git a/src/views/device/deviceMaintenance/components/listApprovalAdd.vue b/src/views/device/deviceMaintenance/components/listApprovalAdd.vue new file mode 100644 index 0000000..a8e1295 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listApprovalAdd.vue @@ -0,0 +1,645 @@ + + + + + diff --git a/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue b/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue new file mode 100644 index 0000000..44335a6 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue @@ -0,0 +1,448 @@ + + + + diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue b/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue deleted file mode 100644 index 8a7a8bc..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/canceled.vue b/src/views/device/deviceMaintenance/components/listApply/canceled.vue deleted file mode 100644 index 3b9657c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/canceled.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue b/src/views/device/deviceMaintenance/components/listApply/draftBox.vue deleted file mode 100644 index 43d7b75..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue b/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue deleted file mode 100644 index c13f95a..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPage.vue b/src/views/device/deviceMaintenance/components/listApply/listPage.vue deleted file mode 100644 index d269b33..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPage.vue +++ /dev/null @@ -1,506 +0,0 @@ - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue b/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue deleted file mode 100644 index 5b4b6c7..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue +++ /dev/null @@ -1,603 +0,0 @@ - - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/notPass.vue b/src/views/device/deviceMaintenance/components/listApply/notPass.vue deleted file mode 100644 index 5a4b817..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/notPass.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/passed.vue b/src/views/device/deviceMaintenance/components/listApply/passed.vue deleted file mode 100644 index 31cd21c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/passed.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApproval.vue b/src/views/device/deviceMaintenance/components/listApproval.vue new file mode 100644 index 0000000..7bfd090 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listApproval.vue @@ -0,0 +1,429 @@ + + + + diff --git a/src/views/device/deviceMaintenance/components/listApprovalAdd.vue b/src/views/device/deviceMaintenance/components/listApprovalAdd.vue new file mode 100644 index 0000000..a8e1295 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listApprovalAdd.vue @@ -0,0 +1,645 @@ + + + + + diff --git a/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue b/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue new file mode 100644 index 0000000..44335a6 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue @@ -0,0 +1,448 @@ + + + + diff --git a/src/views/device/deviceMaintenance/components/listPageAdd.vue b/src/views/device/deviceMaintenance/components/listPageAdd.vue new file mode 100644 index 0000000..a3129d4 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listPageAdd.vue @@ -0,0 +1,647 @@ + + + + + diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue b/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue deleted file mode 100644 index 8a7a8bc..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/canceled.vue b/src/views/device/deviceMaintenance/components/listApply/canceled.vue deleted file mode 100644 index 3b9657c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/canceled.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue b/src/views/device/deviceMaintenance/components/listApply/draftBox.vue deleted file mode 100644 index 43d7b75..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue b/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue deleted file mode 100644 index c13f95a..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPage.vue b/src/views/device/deviceMaintenance/components/listApply/listPage.vue deleted file mode 100644 index d269b33..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPage.vue +++ /dev/null @@ -1,506 +0,0 @@ - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue b/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue deleted file mode 100644 index 5b4b6c7..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue +++ /dev/null @@ -1,603 +0,0 @@ - - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/notPass.vue b/src/views/device/deviceMaintenance/components/listApply/notPass.vue deleted file mode 100644 index 5a4b817..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/notPass.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/passed.vue b/src/views/device/deviceMaintenance/components/listApply/passed.vue deleted file mode 100644 index 31cd21c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/passed.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApproval.vue b/src/views/device/deviceMaintenance/components/listApproval.vue new file mode 100644 index 0000000..7bfd090 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listApproval.vue @@ -0,0 +1,429 @@ + + + + diff --git a/src/views/device/deviceMaintenance/components/listApprovalAdd.vue b/src/views/device/deviceMaintenance/components/listApprovalAdd.vue new file mode 100644 index 0000000..a8e1295 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listApprovalAdd.vue @@ -0,0 +1,645 @@ + + + + + diff --git a/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue b/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue new file mode 100644 index 0000000..44335a6 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue @@ -0,0 +1,448 @@ + + + + diff --git a/src/views/device/deviceMaintenance/components/listPageAdd.vue b/src/views/device/deviceMaintenance/components/listPageAdd.vue new file mode 100644 index 0000000..a3129d4 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listPageAdd.vue @@ -0,0 +1,647 @@ + + + + + diff --git a/src/views/device/deviceMaintenance/components/manageAdd.vue b/src/views/device/deviceMaintenance/components/manageAdd.vue index 5143309..1efebea 100644 --- a/src/views/device/deviceMaintenance/components/manageAdd.vue +++ b/src/views/device/deviceMaintenance/components/manageAdd.vue @@ -8,7 +8,7 @@ import type { ISupplier } from '../checkList_interface' import showPhoto from '@/views/system/tool/showPhoto.vue' import { UploadFile } from '@/api/measure/file' -import { getSoucreListDetail, getSoucreListlevelType, sourceSave, sourceSubmit } from '@/api/measure/source' +// import { getSoucreListDetail, getSoucreListlevelType, sourceSave, sourceSubmit } from '@/api/measure/source' import { getAddCheckInfo, getselectCheckInfo } from '@/api/device/checkList' import { validatePhone } from '@/utils/validate' import { SCHEDULE } from '@/utils/scheduleDict' @@ -33,7 +33,7 @@ } } const formInline: Ref = ref({ - checkDate: null, + checkDate: '', checkName: '', checkNo: '', checkPerson: '', @@ -117,40 +117,17 @@ }, ).then(() => { if (pageType.value === 'add') { - getselectCheckInfo(formInline.value).then((res) => { - if (res.code === '200') { + getAddCheckInfo(formInline.value).then((res) => { + if (res.code === 200) { close() } }) } - else if (pageType.value === 'edit') { // 编辑 - // getselectCheckInfo(formInline.value).then((res) => { - // if (res.code === '200') { - // close() - // } - // }) - } }) } }) } -// 提交表单 -function submitForm() { - if (formInline.value.id) { - const params = { - id: formInline.value.id, - formId: SCHEDULE.SUPPLIER_APPROVAL, // 表单id - } - sourceSubmit(params).then((res) => { - ElMessage.success('提交成功') - close() - }) - } - else { - ElMessage.info('请先保存再提交!') - } -} const isShow = ref(false) const testForm = ref({ fileList: [], @@ -313,7 +290,7 @@ - + {{ formInline.fileList[0].minioFileName === '' ? '上传' : '更换附件' }} diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue b/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue deleted file mode 100644 index 8a7a8bc..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/canceled.vue b/src/views/device/deviceMaintenance/components/listApply/canceled.vue deleted file mode 100644 index 3b9657c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/canceled.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue b/src/views/device/deviceMaintenance/components/listApply/draftBox.vue deleted file mode 100644 index 43d7b75..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue b/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue deleted file mode 100644 index c13f95a..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPage.vue b/src/views/device/deviceMaintenance/components/listApply/listPage.vue deleted file mode 100644 index d269b33..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPage.vue +++ /dev/null @@ -1,506 +0,0 @@ - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue b/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue deleted file mode 100644 index 5b4b6c7..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue +++ /dev/null @@ -1,603 +0,0 @@ - - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/notPass.vue b/src/views/device/deviceMaintenance/components/listApply/notPass.vue deleted file mode 100644 index 5a4b817..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/notPass.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/passed.vue b/src/views/device/deviceMaintenance/components/listApply/passed.vue deleted file mode 100644 index 31cd21c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/passed.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApproval.vue b/src/views/device/deviceMaintenance/components/listApproval.vue new file mode 100644 index 0000000..7bfd090 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listApproval.vue @@ -0,0 +1,429 @@ + + + + diff --git a/src/views/device/deviceMaintenance/components/listApprovalAdd.vue b/src/views/device/deviceMaintenance/components/listApprovalAdd.vue new file mode 100644 index 0000000..a8e1295 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listApprovalAdd.vue @@ -0,0 +1,645 @@ + + + + + diff --git a/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue b/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue new file mode 100644 index 0000000..44335a6 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue @@ -0,0 +1,448 @@ + + + + diff --git a/src/views/device/deviceMaintenance/components/listPageAdd.vue b/src/views/device/deviceMaintenance/components/listPageAdd.vue new file mode 100644 index 0000000..a3129d4 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listPageAdd.vue @@ -0,0 +1,647 @@ + + + + + diff --git a/src/views/device/deviceMaintenance/components/manageAdd.vue b/src/views/device/deviceMaintenance/components/manageAdd.vue index 5143309..1efebea 100644 --- a/src/views/device/deviceMaintenance/components/manageAdd.vue +++ b/src/views/device/deviceMaintenance/components/manageAdd.vue @@ -8,7 +8,7 @@ import type { ISupplier } from '../checkList_interface' import showPhoto from '@/views/system/tool/showPhoto.vue' import { UploadFile } from '@/api/measure/file' -import { getSoucreListDetail, getSoucreListlevelType, sourceSave, sourceSubmit } from '@/api/measure/source' +// import { getSoucreListDetail, getSoucreListlevelType, sourceSave, sourceSubmit } from '@/api/measure/source' import { getAddCheckInfo, getselectCheckInfo } from '@/api/device/checkList' import { validatePhone } from '@/utils/validate' import { SCHEDULE } from '@/utils/scheduleDict' @@ -33,7 +33,7 @@ } } const formInline: Ref = ref({ - checkDate: null, + checkDate: '', checkName: '', checkNo: '', checkPerson: '', @@ -117,40 +117,17 @@ }, ).then(() => { if (pageType.value === 'add') { - getselectCheckInfo(formInline.value).then((res) => { - if (res.code === '200') { + getAddCheckInfo(formInline.value).then((res) => { + if (res.code === 200) { close() } }) } - else if (pageType.value === 'edit') { // 编辑 - // getselectCheckInfo(formInline.value).then((res) => { - // if (res.code === '200') { - // close() - // } - // }) - } }) } }) } -// 提交表单 -function submitForm() { - if (formInline.value.id) { - const params = { - id: formInline.value.id, - formId: SCHEDULE.SUPPLIER_APPROVAL, // 表单id - } - sourceSubmit(params).then((res) => { - ElMessage.success('提交成功') - close() - }) - } - else { - ElMessage.info('请先保存再提交!') - } -} const isShow = ref(false) const testForm = ref({ fileList: [], @@ -313,7 +290,7 @@ - + {{ formInline.fileList[0].minioFileName === '' ? '上传' : '更换附件' }} diff --git a/src/views/device/deviceMaintenance/maintenanceCheckList.vue b/src/views/device/deviceMaintenance/maintenanceCheckList.vue index c6edd5e..efb2643 100644 --- a/src/views/device/deviceMaintenance/maintenanceCheckList.vue +++ b/src/views/device/deviceMaintenance/maintenanceCheckList.vue @@ -1,12 +1,110 @@ - diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue b/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue deleted file mode 100644 index 8a7a8bc..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/canceled.vue b/src/views/device/deviceMaintenance/components/listApply/canceled.vue deleted file mode 100644 index 3b9657c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/canceled.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue b/src/views/device/deviceMaintenance/components/listApply/draftBox.vue deleted file mode 100644 index 43d7b75..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue b/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue deleted file mode 100644 index c13f95a..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPage.vue b/src/views/device/deviceMaintenance/components/listApply/listPage.vue deleted file mode 100644 index d269b33..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPage.vue +++ /dev/null @@ -1,506 +0,0 @@ - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue b/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue deleted file mode 100644 index 5b4b6c7..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue +++ /dev/null @@ -1,603 +0,0 @@ - - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/notPass.vue b/src/views/device/deviceMaintenance/components/listApply/notPass.vue deleted file mode 100644 index 5a4b817..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/notPass.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/passed.vue b/src/views/device/deviceMaintenance/components/listApply/passed.vue deleted file mode 100644 index 31cd21c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/passed.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApproval.vue b/src/views/device/deviceMaintenance/components/listApproval.vue new file mode 100644 index 0000000..7bfd090 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listApproval.vue @@ -0,0 +1,429 @@ + + + + diff --git a/src/views/device/deviceMaintenance/components/listApprovalAdd.vue b/src/views/device/deviceMaintenance/components/listApprovalAdd.vue new file mode 100644 index 0000000..a8e1295 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listApprovalAdd.vue @@ -0,0 +1,645 @@ + + + + + diff --git a/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue b/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue new file mode 100644 index 0000000..44335a6 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue @@ -0,0 +1,448 @@ + + + + diff --git a/src/views/device/deviceMaintenance/components/listPageAdd.vue b/src/views/device/deviceMaintenance/components/listPageAdd.vue new file mode 100644 index 0000000..a3129d4 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listPageAdd.vue @@ -0,0 +1,647 @@ + + + + + diff --git a/src/views/device/deviceMaintenance/components/manageAdd.vue b/src/views/device/deviceMaintenance/components/manageAdd.vue index 5143309..1efebea 100644 --- a/src/views/device/deviceMaintenance/components/manageAdd.vue +++ b/src/views/device/deviceMaintenance/components/manageAdd.vue @@ -8,7 +8,7 @@ import type { ISupplier } from '../checkList_interface' import showPhoto from '@/views/system/tool/showPhoto.vue' import { UploadFile } from '@/api/measure/file' -import { getSoucreListDetail, getSoucreListlevelType, sourceSave, sourceSubmit } from '@/api/measure/source' +// import { getSoucreListDetail, getSoucreListlevelType, sourceSave, sourceSubmit } from '@/api/measure/source' import { getAddCheckInfo, getselectCheckInfo } from '@/api/device/checkList' import { validatePhone } from '@/utils/validate' import { SCHEDULE } from '@/utils/scheduleDict' @@ -33,7 +33,7 @@ } } const formInline: Ref = ref({ - checkDate: null, + checkDate: '', checkName: '', checkNo: '', checkPerson: '', @@ -117,40 +117,17 @@ }, ).then(() => { if (pageType.value === 'add') { - getselectCheckInfo(formInline.value).then((res) => { - if (res.code === '200') { + getAddCheckInfo(formInline.value).then((res) => { + if (res.code === 200) { close() } }) } - else if (pageType.value === 'edit') { // 编辑 - // getselectCheckInfo(formInline.value).then((res) => { - // if (res.code === '200') { - // close() - // } - // }) - } }) } }) } -// 提交表单 -function submitForm() { - if (formInline.value.id) { - const params = { - id: formInline.value.id, - formId: SCHEDULE.SUPPLIER_APPROVAL, // 表单id - } - sourceSubmit(params).then((res) => { - ElMessage.success('提交成功') - close() - }) - } - else { - ElMessage.info('请先保存再提交!') - } -} const isShow = ref(false) const testForm = ref({ fileList: [], @@ -313,7 +290,7 @@ - + {{ formInline.fileList[0].minioFileName === '' ? '上传' : '更换附件' }} diff --git a/src/views/device/deviceMaintenance/maintenanceCheckList.vue b/src/views/device/deviceMaintenance/maintenanceCheckList.vue index c6edd5e..efb2643 100644 --- a/src/views/device/deviceMaintenance/maintenanceCheckList.vue +++ b/src/views/device/deviceMaintenance/maintenanceCheckList.vue @@ -1,12 +1,110 @@ - diff --git a/src/views/device/deviceMaintenance/maintenanceList.vue b/src/views/device/deviceMaintenance/maintenanceList.vue index 0e03f84..5c474a1 100644 --- a/src/views/device/deviceMaintenance/maintenanceList.vue +++ b/src/views/device/deviceMaintenance/maintenanceList.vue @@ -1,12 +1,110 @@ - diff --git a/src/api/customer/overtime.ts b/src/api/customer/overtime.ts new file mode 100644 index 0000000..9f349d6 --- /dev/null +++ b/src/api/customer/overtime.ts @@ -0,0 +1,25 @@ +/** + * 到期样品接口 + */ +import request from '../index' +import type { IOvertimeListQuery } from '@/views/customer/sample/overTime/overtime_list_interface' +const prefix = '/meter' + +// 列表查询 +export function getOverTimeList(data: IOvertimeListQuery) { + return request({ + url: `${prefix}/sample/overtime/listPage?offset=${data.offset}&limit=${data.limit}`, + method: 'post', + data, + }) +} + +// 导出列表 +export function exportOverTimeList(data: Omit) { + return request({ + url: `${prefix}/sample/overtime/listExport`, + method: 'post', + responseType: 'blob', + data, + }) +} diff --git a/src/api/customer/sampleList.ts b/src/api/customer/sampleList.ts index 5ba0a6d..fb50c25 100644 --- a/src/api/customer/sampleList.ts +++ b/src/api/customer/sampleList.ts @@ -58,3 +58,4 @@ data, }) } + diff --git a/src/api/device/checkList.ts b/src/api/device/checkList.ts index 525909d..6afd53a 100644 --- a/src/api/device/checkList.ts +++ b/src/api/device/checkList.ts @@ -44,3 +44,112 @@ data, }) } + +// 设备检修保养验收单列表 +export function getacceptanceCheckList(data: { limit: number; offset: number }) { + return request({ + url: `/acceptanceCheck/acceptanceCheckList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请新建 +export function addEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/addEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请详情信息 +export function equipmentApplyInfo(data: object) { + return request({ + url: '/equipmentApply/equipmentApplyInfo', + method: 'post', + data, + }) +} + +// 设备维护列表 +export function getEquipmentApplyList(data: { limit: number; offset: number }) { + return request({ + url: `/equipmentApply/equipmentApplyList?limit=${data.limit}&offset=${data.offset}`, + method: 'post', + data, + }) +} + +// 设备检修申请提交 +export function submitEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请删除 +export function deleteEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/deleteEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修申请编辑 +export function updateEquipmentApply(data: object) { + return request({ + url: '/equipmentApply/updateEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单保存 +export function addAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/addAcceptanceCheck', + method: 'post', + data, + }) +} + +// 设备检修保养验收单提交 +export function submitAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/submitEquipmentApply', + method: 'post', + data, + }) +} + +// 设备检修保养验收单编辑 +export function updateAcceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/updateAcceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单详情信息 +export function acceptanceCheckInfo(data: object) { + return request({ + url: '/acceptanceCheck/acceptanceCheckInfo', + method: 'post', + data, + }) +} + +// 设备检修保养验收单审批删除 +export function deleteAcceptanceCheck(data: object) { + return request({ + url: '/acceptanceCheck/deleteEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/device/standard.ts b/src/api/device/standard.ts index c28e9ba..6e6fdfa 100644 --- a/src/api/device/standard.ts +++ b/src/api/device/standard.ts @@ -108,3 +108,22 @@ data, }) } + +// 点击提交 +export function submitStandardEquipmentApply(data: object) { + return request({ + url: '/standard/submitStandardEquipmentApply', + method: 'post', + data, + }) +} + +// 申请编辑 +export function updateStandardEquipmentApply(data: object) { + return request({ + url: '/standard/updateStandardEquipmentApply', + method: 'post', + data, + }) +} + diff --git a/src/api/system/process.ts b/src/api/system/process.ts index e459424..c2d4419 100644 --- a/src/api/system/process.ts +++ b/src/api/system/process.ts @@ -112,7 +112,7 @@ beginTime: string endTime: string status: string - // ids: string[] + ids: string[] }) { return request({ url: `${prefix}/listExport`, diff --git a/src/assets/images/bench/1671087276259.jpg b/src/assets/images/bench/1671087276259.jpg deleted file mode 100644 index 34b76f5..0000000 --- a/src/assets/images/bench/1671087276259.jpg +++ /dev/null Binary files differ diff --git a/src/assets/images/bench/sampie-status.png b/src/assets/images/bench/sampie-status.png new file mode 100644 index 0000000..ff9eb2d --- /dev/null +++ b/src/assets/images/bench/sampie-status.png Binary files differ diff --git a/src/components/dialog/errorDialog.vue b/src/components/dialog/errorDialog.vue index f79428d..e19d7e8 100644 --- a/src/components/dialog/errorDialog.vue +++ b/src/components/dialog/errorDialog.vue @@ -1,5 +1,6 @@ - - diff --git a/src/components/workFlow/addNode.vue b/src/components/workFlow/addNode.vue index 4e10eb0..bc76e54 100644 --- a/src/components/workFlow/addNode.vue +++ b/src/components/workFlow/addNode.vue @@ -1,5 +1,7 @@ + + diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue index 5758df9..153b66e 100644 --- a/src/views/customer/sample/list/edit.vue +++ b/src/views/customer/sample/list/edit.vue @@ -5,7 +5,7 @@ import type { FormInstance, UploadUserFile } from 'element-plus' import { ref } from 'vue' import { Calendar, Search } from '@element-plus/icons-vue' -import type { ISampleEdit, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' +import type { ISampleEdit, Menu, SimpleCertification, SimpleMeasureRecord } from './sample_list_interface' import sampleDialog from './sampleDialog.vue' import showPhoto from '@/views/system/tool/showPhoto.vue' import { SCHEDULE } from '@/utils/scheduleDict' @@ -14,6 +14,7 @@ import countries from '@/components/AddressSelect/country-code.json' import { UploadFile } from '@/api/measure/file' import type { TableColumn } from '@/components/NormalTable/table_interface' +import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' const textMap: { [key: string]: string } = { edit: '编辑', @@ -177,13 +178,7 @@ const fetchCertifications = function (query = null) { dataList.value.certificationRecords = [] } -interface Menu { - name: string - columns: TableColumn[] - pagination: boolean - list: 'measureRecords' | 'certificationRecords' - searchFunc: Function -} + // 菜单 const menu: Menu[] = [ { @@ -275,12 +270,15 @@ } // 选好委托方 -const confirmCheckout = (val: any) => { - dataForm.value.customerNo = val[0].customerNo - dataForm.value.customerName = val[0].customerName - dataForm.value.phone = val[0].phone - dataForm.value.postalCode = val[0].postalCode - dataForm.value.companyAddress = val[0].briefName +const confirmCheckout = (val: Array) => { + if (val && val.length) { + const getValue = val[0] + dataForm.value.customerNo = getValue.customerNo + dataForm.value.customerName = getValue.customerName + dataForm.value.phone = getValue.phone + dataForm.value.postalCode = getValue.postalCode + dataForm.value.companyAddress = getValue.briefName + } } // 控制选择委托方对话框显隐 @@ -346,35 +344,35 @@ const getInfo = () => { getSapmleDetail({ id: infoId.value }).then((res) => { - // res.data = { - // ABC: 'A', - // companyAddress: '北京/北京市', - // customerName: '京东集团', - // customerNo: 'sygf202211290001', - // id: '', - // labelBind: '11222', - // manufacturer: '北京某厂家', - // manufacturerCountry: 'CN', - // manufacturingDate: '2023-03', - // manufacturingNo: '123121', - // mesureCategory: 'jd', - // mesureContent: '项目1', - // mesurePeriod: '1', - // mesureType: 'zj', - // minioFileName: '小程序工期表-1117_1674961769128.xlsx', - // phone: '950618', - // postalCode: 'test', - // remark: '无备注', - // sampleModel: '型号1', - // sampleName: '样品1', - // sampleNo: '', - // measureResultCode: 'bhg', - // } - dataForm.value = res.data - dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] - for (const item of menu) { - item.searchFunc() + res.data = { + ABC: 'A', + companyAddress: '北京/北京市', + customerName: '京东集团', + customerNo: 'sygf202211290001', + id: '', + labelBind: '11222', + manufacturer: '北京某厂家', + manufacturerCountry: 'CN', + manufacturingDate: '2023-03', + manufacturingNo: '123121', + mesureCategory: 'jd', + mesureContent: '项目1', + mesurePeriod: '1', + mesureType: 'zj', + minioFileName: '小程序工期表-1117_1674961769128.xlsx', + phone: '950618', + postalCode: 'test', + remark: '无备注', + sampleModel: '型号1', + sampleName: '样品1', + sampleNo: '', + measureResultCode: 'bhg', } + // dataForm.value = res.data + // dataForm.value.measureResult = mesureResultMap[dataForm.value.measureResultCode] + // for (const item of menu) { + // item.searchFunc() + // } }) } @@ -456,12 +454,9 @@ @focus="customerNoFocus" > @@ -568,7 +563,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -704,7 +647,34 @@ - + + + + + + + + + + + + + + + + diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue index 08dc008..4086b48 100644 --- a/src/views/customer/sample/list/list.vue +++ b/src/views/customer/sample/list/list.vue @@ -132,8 +132,8 @@ sampleModel: '', // 型号 customerId: '', // 委托方代码 customerName: '', // 委托方名称 - startTime: '', // 投诉开始时间 - endTime: '', // 投诉结束时间 + startTime: '', // 检定开始时间 + endTime: '', // 检定结束时间 offset: 1, limit: 20, } @@ -226,7 +226,7 @@ printJSON(list.value, properties, '样品列表') } else if (checkoutList.value.length > 0) { - const printList = list.value.filter((item: any) => checkoutList.value.includes(item.id)) + const printList = list.value.filter((item: ISampleList) => checkoutList.value.includes(item.id)) printJSON(printList, properties, '样品列表') } else { diff --git a/src/views/customer/sample/list/sampleDialog.vue b/src/views/customer/sample/list/sampleDialog.vue index ea2d652..a5a371b 100644 --- a/src/views/customer/sample/list/sampleDialog.vue +++ b/src/views/customer/sample/list/sampleDialog.vue @@ -88,37 +88,37 @@ // 是否显示当前页,否则跳转第一页 listQuery.value.offset = 1 } - // getCustomerList(listQuery.value).then((response) => { - // // 模拟数据 - // response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - // list.value = response.data.rows.map((item: ICustomer) => { - // if (item.companyProvinceName && item.companyCityName) { - // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - // } - // else { - // item.briefName = item.companyProvinceName || item.companyCityName - // } - // return item - // }) - // total.value = parseInt(response.data.total) - // loadingTable.value = false - // }) + getCustomerList(listQuery.value).then((response) => { + // 模拟数据 + response.data.rows = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + list.value = response.data.rows.map((item: ICustomer) => { + if (item.companyProvinceName && item.companyCityName) { + item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + } + else { + item.briefName = item.companyProvinceName || item.companyCityName + } + return item + }) + total.value = parseInt(response.data.total) + loadingTable.value = false + }) // 模拟数据 - const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, - { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] - list.value = response.map((item: ICustomer) => { - if (item.companyProvinceName && item.companyCityName) { - item.briefName = `${item.companyProvinceName}/${item.companyCityName}` - } - else { - item.briefName = item.companyProvinceName || item.companyCityName - } - return item - }) - total.value = 50 - loadingTable.value = false + // const response = [{ bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '京东集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '2集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }, + // { bankAccount: '银行账户', bankAccountNumber: '银行账号', bankName: '工商银行', briefName: '京东', businessContent: '电商', businessScope: 'test1', grade: '1', gradeName: 'A', companySize: '1', companySizeName: '小微企业', businessSize: '1', businessSizeName: '0-10万', evaluation: '1', evaluationName: '优质', companyAddress: '五棵松', companyAreaName: '海淀区', companyCityName: '北京市', companyCountryName: '中国', companyProvinceName: '北京', companyArea: '110007', companyCity: '110000', companyCountry: 'CN', companyProvince: '100000', createTime: '2022-11-29 21:14:50', director: '刘强东', fax: 'test1', id: '1597579843411234817', invoiceAddress: '五棵松', invoiceAreaName: '海淀区', invoiceCityName: '北京市', invoiceCountryName: '中国', invoiceProvinceName: '北京', invoiceyArea: '110007', invoiceCity: '110000', invoiceCountry: 'CN', invoiceProvince: '100000', mailbox: 'test1', minioFileName: 'test', mobile: 'test', phone: '950618', postalCode: 'test', remark: 'test', customerName: '3集团', customerNo: 'sygf202211290001', taxNumber: 'test', updateTime: '2023-01-10 09:56:57', website: 'test' }] + // list.value = response.map((item: ICustomer) => { + // if (item.companyProvinceName && item.companyCityName) { + // item.briefName = `${item.companyProvinceName}/${item.companyCityName}` + // } + // else { + // item.briefName = item.companyProvinceName || item.companyCityName + // } + // return item + // }) + // total.value = 50 + // loadingTable.value = false } // 多选发生改变时 function handleSelectionChange(e: any) { diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts index f5d0514..26638ce 100644 --- a/src/views/customer/sample/list/sample_list_interface.ts +++ b/src/views/customer/sample/list/sample_list_interface.ts @@ -1,3 +1,5 @@ +import type { TableColumn } from '@/components/NormalTable/table_interface' + export interface ISampleListQuery { sampleNo: string // 样品编号 sampleName: string // 样品名称 @@ -11,7 +13,7 @@ } export interface ISampleList { - id?: string // 样品唯一标识 + id: string // 样品唯一标识 sampleNo: string // 样品编号 sampleName: string // 样品名称 sampleModel: string // 型号 @@ -71,3 +73,11 @@ effectiveDate: string // 证书出具日期 expirationDate: string // 证书有效期 } + +export interface Menu { + name: string + columns: TableColumn[] + pagination: boolean + list: 'measureRecords' | 'certificationRecords' + searchFunc: Function +} diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue new file mode 100644 index 0000000..3541675 --- /dev/null +++ b/src/views/customer/sample/overTime/detail.vue @@ -0,0 +1,595 @@ + + + + + + + diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue index 6578d12..6d3699f 100644 --- a/src/views/customer/sample/overTime/list.vue +++ b/src/views/customer/sample/overTime/list.vue @@ -1,3 +1,288 @@ + + + + + diff --git a/src/views/customer/sample/overTime/overtime_list_interface.ts b/src/views/customer/sample/overTime/overtime_list_interface.ts new file mode 100644 index 0000000..40b8e64 --- /dev/null +++ b/src/views/customer/sample/overTime/overtime_list_interface.ts @@ -0,0 +1,75 @@ +export interface IOvertimeListQuery { + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + startTime: string // 检定开始时间 + endTime: string // 检定结束时间 + offset: number + limit: number +} + +export interface IOvertimeList { + id?: string // 样品唯一标识 + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 型号 + evaluationName: string // 出厂编号 + customerId: string // 委托方代码 + customerName: string // 委托方名称 + mesurePeriod: string // 检定周期 + effectiveDate: string // 上次检定时间 + certificationStatus: string // 证书状况 +} + +export interface ISampleDetail { + id?: string + sampleNo: string // 样品编号 + sampleName: string // 样品名称 + sampleModel: string // 样品型号 + manufacturingNo: string // 出厂编号 + customerNo: string // 委托方代码 + customerName: string // 委托方名称 + phone: string // 委托方电话 + postalCode: string // 委托方邮编 + companyAddress: string // 委托方地址 + mesureCategory: string // 检校类别 + manufacturer: string // 生产厂家 + manufacturerCountry: string // 厂家国别 + manufacturingDate: string // 出厂年月 + ABC: string // ABC + deliverer?: string // 送检人 + delivererTel?: string // 送检人联系方式 + planDeliverTime?: string // 预计送达时间 + requireOverTime?: string // 要求检完时间 + mesureContent: string // 检定项目 + mesurePeriod: string // 检定周期 + remark: string // 备注 + minioFileName: string // 说明书 + labelBind: string // 标签绑定 + mesureType: string // 检定方式 + measureDate?: string // 检定日期 + effectiveDate?: string // 有效日期 + measureResultCode?: string // 检定结果代码 + measureResult?: string // 检定结果 +} + +// 检定记录 +export interface SimpleMeasureRecord { + orderCode: string // 委托单编号 + orderTime: string // 委托单日期 + customerCode: string // 委托人代码 + customerName: string // 委托人名称 + deliverer: string // 送检人 + deliverTime: string // 送检日期 +} + +// 检定证书 +export interface SimpleCertification { + certificationCode: string // 证书编号 + certificationName: string // 证书形成 + certificationType: string // 证书类型 + effectiveDate: string // 证书出具日期 + expirationDate: string // 证书有效期 +} diff --git a/src/views/device/deviceMaintenance/checkList_interface.ts b/src/views/device/deviceMaintenance/checkList_interface.ts index fc2cfa7..5be4fa1 100644 --- a/src/views/device/deviceMaintenance/checkList_interface.ts +++ b/src/views/device/deviceMaintenance/checkList_interface.ts @@ -7,7 +7,7 @@ limit: number } export interface ISupplier { - checkDate: null | string + checkDate: string checkName: string checkNo: string checkPerson: string @@ -35,3 +35,8 @@ remark: string updateTime: null | string } + +export interface IOptions { + id: string + name: string +} diff --git a/src/views/device/deviceMaintenance/components/checkList.vue b/src/views/device/deviceMaintenance/components/checkList.vue new file mode 100644 index 0000000..0046fa3 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/checkList.vue @@ -0,0 +1,213 @@ + + + + + + diff --git a/src/views/device/deviceMaintenance/components/listApply/all.vue b/src/views/device/deviceMaintenance/components/listApply/all.vue deleted file mode 100644 index d124307..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/all.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue b/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue deleted file mode 100644 index 8a7a8bc..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/approvalPending.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/canceled.vue b/src/views/device/deviceMaintenance/components/listApply/canceled.vue deleted file mode 100644 index 3b9657c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/canceled.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue b/src/views/device/deviceMaintenance/components/listApply/draftBox.vue deleted file mode 100644 index 43d7b75..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/draftBox.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue b/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue deleted file mode 100644 index c13f95a..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/examineAndApprove.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPage.vue b/src/views/device/deviceMaintenance/components/listApply/listPage.vue deleted file mode 100644 index d269b33..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPage.vue +++ /dev/null @@ -1,506 +0,0 @@ - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue b/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue deleted file mode 100644 index 5b4b6c7..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/listPageAdd.vue +++ /dev/null @@ -1,603 +0,0 @@ - - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/notPass.vue b/src/views/device/deviceMaintenance/components/listApply/notPass.vue deleted file mode 100644 index 5a4b817..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/notPass.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApply/passed.vue b/src/views/device/deviceMaintenance/components/listApply/passed.vue deleted file mode 100644 index 31cd21c..0000000 --- a/src/views/device/deviceMaintenance/components/listApply/passed.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/device/deviceMaintenance/components/listApproval.vue b/src/views/device/deviceMaintenance/components/listApproval.vue new file mode 100644 index 0000000..7bfd090 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listApproval.vue @@ -0,0 +1,429 @@ + + + + diff --git a/src/views/device/deviceMaintenance/components/listApprovalAdd.vue b/src/views/device/deviceMaintenance/components/listApprovalAdd.vue new file mode 100644 index 0000000..a8e1295 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listApprovalAdd.vue @@ -0,0 +1,645 @@ + + + + + diff --git a/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue b/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue new file mode 100644 index 0000000..44335a6 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listMaintenanceApproval.vue @@ -0,0 +1,448 @@ + + + + diff --git a/src/views/device/deviceMaintenance/components/listPageAdd.vue b/src/views/device/deviceMaintenance/components/listPageAdd.vue new file mode 100644 index 0000000..a3129d4 --- /dev/null +++ b/src/views/device/deviceMaintenance/components/listPageAdd.vue @@ -0,0 +1,647 @@ + + + + + diff --git a/src/views/device/deviceMaintenance/components/manageAdd.vue b/src/views/device/deviceMaintenance/components/manageAdd.vue index 5143309..1efebea 100644 --- a/src/views/device/deviceMaintenance/components/manageAdd.vue +++ b/src/views/device/deviceMaintenance/components/manageAdd.vue @@ -8,7 +8,7 @@ import type { ISupplier } from '../checkList_interface' import showPhoto from '@/views/system/tool/showPhoto.vue' import { UploadFile } from '@/api/measure/file' -import { getSoucreListDetail, getSoucreListlevelType, sourceSave, sourceSubmit } from '@/api/measure/source' +// import { getSoucreListDetail, getSoucreListlevelType, sourceSave, sourceSubmit } from '@/api/measure/source' import { getAddCheckInfo, getselectCheckInfo } from '@/api/device/checkList' import { validatePhone } from '@/utils/validate' import { SCHEDULE } from '@/utils/scheduleDict' @@ -33,7 +33,7 @@ } } const formInline: Ref = ref({ - checkDate: null, + checkDate: '', checkName: '', checkNo: '', checkPerson: '', @@ -117,40 +117,17 @@ }, ).then(() => { if (pageType.value === 'add') { - getselectCheckInfo(formInline.value).then((res) => { - if (res.code === '200') { + getAddCheckInfo(formInline.value).then((res) => { + if (res.code === 200) { close() } }) } - else if (pageType.value === 'edit') { // 编辑 - // getselectCheckInfo(formInline.value).then((res) => { - // if (res.code === '200') { - // close() - // } - // }) - } }) } }) } -// 提交表单 -function submitForm() { - if (formInline.value.id) { - const params = { - id: formInline.value.id, - formId: SCHEDULE.SUPPLIER_APPROVAL, // 表单id - } - sourceSubmit(params).then((res) => { - ElMessage.success('提交成功') - close() - }) - } - else { - ElMessage.info('请先保存再提交!') - } -} const isShow = ref(false) const testForm = ref({ fileList: [], @@ -313,7 +290,7 @@ - + {{ formInline.fileList[0].minioFileName === '' ? '上传' : '更换附件' }} diff --git a/src/views/device/deviceMaintenance/maintenanceCheckList.vue b/src/views/device/deviceMaintenance/maintenanceCheckList.vue index c6edd5e..efb2643 100644 --- a/src/views/device/deviceMaintenance/maintenanceCheckList.vue +++ b/src/views/device/deviceMaintenance/maintenanceCheckList.vue @@ -1,12 +1,110 @@ - diff --git a/src/views/device/deviceMaintenance/maintenanceList.vue b/src/views/device/deviceMaintenance/maintenanceList.vue index 0e03f84..5c474a1 100644 --- a/src/views/device/deviceMaintenance/maintenanceList.vue +++ b/src/views/device/deviceMaintenance/maintenanceList.vue @@ -1,12 +1,110 @@ - diff --git a/src/views/device/deviceMaintenance/manageCheckList.vue b/src/views/device/deviceMaintenance/manageCheckList.vue index 0940420..9556d73 100644 --- a/src/views/device/deviceMaintenance/manageCheckList.vue +++ b/src/views/device/deviceMaintenance/manageCheckList.vue @@ -177,7 +177,7 @@ // todo: 批量导入 fileRef.value.click() } -// 添加溯源供方 +// 添加设备管理点检查 const add = () => { $router.push('/maintenance/manageCheckList/add') } @@ -269,21 +269,12 @@