diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/src/views/tested/MeasurementPlan/plan/components/list.vue b/src/views/tested/MeasurementPlan/plan/components/list.vue index ea18fd7..893e7d5 100644 --- a/src/views/tested/MeasurementPlan/plan/components/list.vue +++ b/src/views/tested/MeasurementPlan/plan/components/list.vue @@ -73,11 +73,6 @@ value: 'createTime', align: 'center', }, - { - text: '审批状态', - value: 'approvalStatusName', - align: 'center', - }, ]) const list = ref([]) const total = ref(0) @@ -284,13 +279,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/src/views/tested/MeasurementPlan/plan/components/list.vue b/src/views/tested/MeasurementPlan/plan/components/list.vue index ea18fd7..893e7d5 100644 --- a/src/views/tested/MeasurementPlan/plan/components/list.vue +++ b/src/views/tested/MeasurementPlan/plan/components/list.vue @@ -73,11 +73,6 @@ value: 'createTime', align: 'center', }, - { - text: '审批状态', - value: 'approvalStatusName', - align: 'center', - }, ]) const list = ref([]) const total = ref(0) @@ -284,13 +279,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index 6078532..c56b23f 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -63,14 +63,14 @@ const rules = ref({ deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], - customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, message: '电话必填', trigger: ['blur', 'change'] }], maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], - // undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], - // undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +135,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.list.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', @@ -251,7 +255,7 @@ - + diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/src/views/tested/MeasurementPlan/plan/components/list.vue b/src/views/tested/MeasurementPlan/plan/components/list.vue index ea18fd7..893e7d5 100644 --- a/src/views/tested/MeasurementPlan/plan/components/list.vue +++ b/src/views/tested/MeasurementPlan/plan/components/list.vue @@ -73,11 +73,6 @@ value: 'createTime', align: 'center', }, - { - text: '审批状态', - value: 'approvalStatusName', - align: 'center', - }, ]) const list = ref([]) const total = ref(0) @@ -284,13 +279,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index 6078532..c56b23f 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -63,14 +63,14 @@ const rules = ref({ deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], - customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, message: '电话必填', trigger: ['blur', 'change'] }], maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], - // undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], - // undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +135,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.list.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', @@ -251,7 +255,7 @@ - + diff --git a/src/views/tested/device/group/components/edit.vue b/src/views/tested/device/group/components/edit.vue index cf4e526..63d61c8 100644 --- a/src/views/tested/device/group/components/edit.vue +++ b/src/views/tested/device/group/components/edit.vue @@ -67,6 +67,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/src/views/tested/MeasurementPlan/plan/components/list.vue b/src/views/tested/MeasurementPlan/plan/components/list.vue index ea18fd7..893e7d5 100644 --- a/src/views/tested/MeasurementPlan/plan/components/list.vue +++ b/src/views/tested/MeasurementPlan/plan/components/list.vue @@ -73,11 +73,6 @@ value: 'createTime', align: 'center', }, - { - text: '审批状态', - value: 'approvalStatusName', - align: 'center', - }, ]) const list = ref([]) const total = ref(0) @@ -284,13 +279,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index 6078532..c56b23f 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -63,14 +63,14 @@ const rules = ref({ deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], - customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, message: '电话必填', trigger: ['blur', 'change'] }], maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], - // undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], - // undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +135,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.list.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', @@ -251,7 +255,7 @@ - + diff --git a/src/views/tested/device/group/components/edit.vue b/src/views/tested/device/group/components/edit.vue index cf4e526..63d61c8 100644 --- a/src/views/tested/device/group/components/edit.vue +++ b/src/views/tested/device/group/components/edit.vue @@ -67,6 +67,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', diff --git a/src/views/tested/device/group/components/selectDevice.vue b/src/views/tested/device/group/components/selectDevice.vue index 659a406..6571938 100644 --- a/src/views/tested/device/group/components/selectDevice.vue +++ b/src/views/tested/device/group/components/selectDevice.vue @@ -97,11 +97,27 @@ // 判断是否需要加入设备使用状态查询条件 const data = { ...listQuery.value, - usageStatusList: [], + usageStatusList: [] as string[], } - // if ($props.needStatus) { - // statusType - // } + if ($props.needStatus) { + switch ($props.statusType) { + case '1': + data.usageStatusList = ['0', '1', '4'] + break + case '2': + data.usageStatusList = ['1', '3'] + break + case '3': + data.usageStatusList = ['0', '4'] + break + case '4': + data.usageStatusList = ['0', '1', '3', '4'] + break + case '5': + data.usageStatusList = ['0', '1'] + break + } + } getInfoListPage(data, '全部').then((response) => { list.value = response.data.rows total.value = parseInt(response.data.total) diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/src/views/tested/MeasurementPlan/plan/components/list.vue b/src/views/tested/MeasurementPlan/plan/components/list.vue index ea18fd7..893e7d5 100644 --- a/src/views/tested/MeasurementPlan/plan/components/list.vue +++ b/src/views/tested/MeasurementPlan/plan/components/list.vue @@ -73,11 +73,6 @@ value: 'createTime', align: 'center', }, - { - text: '审批状态', - value: 'approvalStatusName', - align: 'center', - }, ]) const list = ref([]) const total = ref(0) @@ -284,13 +279,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index 6078532..c56b23f 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -63,14 +63,14 @@ const rules = ref({ deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], - customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, message: '电话必填', trigger: ['blur', 'change'] }], maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], - // undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], - // undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +135,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.list.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', @@ -251,7 +255,7 @@ - + diff --git a/src/views/tested/device/group/components/edit.vue b/src/views/tested/device/group/components/edit.vue index cf4e526..63d61c8 100644 --- a/src/views/tested/device/group/components/edit.vue +++ b/src/views/tested/device/group/components/edit.vue @@ -67,6 +67,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', diff --git a/src/views/tested/device/group/components/selectDevice.vue b/src/views/tested/device/group/components/selectDevice.vue index 659a406..6571938 100644 --- a/src/views/tested/device/group/components/selectDevice.vue +++ b/src/views/tested/device/group/components/selectDevice.vue @@ -97,11 +97,27 @@ // 判断是否需要加入设备使用状态查询条件 const data = { ...listQuery.value, - usageStatusList: [], + usageStatusList: [] as string[], } - // if ($props.needStatus) { - // statusType - // } + if ($props.needStatus) { + switch ($props.statusType) { + case '1': + data.usageStatusList = ['0', '1', '4'] + break + case '2': + data.usageStatusList = ['1', '3'] + break + case '3': + data.usageStatusList = ['0', '4'] + break + case '4': + data.usageStatusList = ['0', '1', '3', '4'] + break + case '5': + data.usageStatusList = ['0', '1'] + break + } + } getInfoListPage(data, '全部').then((response) => { list.value = response.data.rows total.value = parseInt(response.data.total) diff --git a/src/views/tested/device/info/components/detail.vue b/src/views/tested/device/info/components/detail.vue index 542a3a0..ee83bc9 100644 --- a/src/views/tested/device/info/components/detail.vue +++ b/src/views/tested/device/info/components/detail.vue @@ -94,6 +94,7 @@ const cancelForm = () => { baseRef.value.cancelForm() } +console.log(JSON.parse($route.query.row as string), 'row') @@ -140,7 +141,7 @@ - + diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/src/views/tested/MeasurementPlan/plan/components/list.vue b/src/views/tested/MeasurementPlan/plan/components/list.vue index ea18fd7..893e7d5 100644 --- a/src/views/tested/MeasurementPlan/plan/components/list.vue +++ b/src/views/tested/MeasurementPlan/plan/components/list.vue @@ -73,11 +73,6 @@ value: 'createTime', align: 'center', }, - { - text: '审批状态', - value: 'approvalStatusName', - align: 'center', - }, ]) const list = ref([]) const total = ref(0) @@ -284,13 +279,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index 6078532..c56b23f 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -63,14 +63,14 @@ const rules = ref({ deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], - customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, message: '电话必填', trigger: ['blur', 'change'] }], maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], - // undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], - // undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +135,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.list.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', @@ -251,7 +255,7 @@ - + diff --git a/src/views/tested/device/group/components/edit.vue b/src/views/tested/device/group/components/edit.vue index cf4e526..63d61c8 100644 --- a/src/views/tested/device/group/components/edit.vue +++ b/src/views/tested/device/group/components/edit.vue @@ -67,6 +67,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', diff --git a/src/views/tested/device/group/components/selectDevice.vue b/src/views/tested/device/group/components/selectDevice.vue index 659a406..6571938 100644 --- a/src/views/tested/device/group/components/selectDevice.vue +++ b/src/views/tested/device/group/components/selectDevice.vue @@ -97,11 +97,27 @@ // 判断是否需要加入设备使用状态查询条件 const data = { ...listQuery.value, - usageStatusList: [], + usageStatusList: [] as string[], } - // if ($props.needStatus) { - // statusType - // } + if ($props.needStatus) { + switch ($props.statusType) { + case '1': + data.usageStatusList = ['0', '1', '4'] + break + case '2': + data.usageStatusList = ['1', '3'] + break + case '3': + data.usageStatusList = ['0', '4'] + break + case '4': + data.usageStatusList = ['0', '1', '3', '4'] + break + case '5': + data.usageStatusList = ['0', '1'] + break + } + } getInfoListPage(data, '全部').then((response) => { list.value = response.data.rows total.value = parseInt(response.data.total) diff --git a/src/views/tested/device/info/components/detail.vue b/src/views/tested/device/info/components/detail.vue index 542a3a0..ee83bc9 100644 --- a/src/views/tested/device/info/components/detail.vue +++ b/src/views/tested/device/info/components/detail.vue @@ -94,6 +94,7 @@ const cancelForm = () => { baseRef.value.cancelForm() } +console.log(JSON.parse($route.query.row as string), 'row') @@ -140,7 +141,7 @@ - + diff --git a/src/views/tested/device/info/components/edit.vue b/src/views/tested/device/info/components/edit.vue index 19f9e65..6680670 100644 --- a/src/views/tested/device/info/components/edit.vue +++ b/src/views/tested/device/info/components/edit.vue @@ -490,7 +490,7 @@ - + diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/src/views/tested/MeasurementPlan/plan/components/list.vue b/src/views/tested/MeasurementPlan/plan/components/list.vue index ea18fd7..893e7d5 100644 --- a/src/views/tested/MeasurementPlan/plan/components/list.vue +++ b/src/views/tested/MeasurementPlan/plan/components/list.vue @@ -73,11 +73,6 @@ value: 'createTime', align: 'center', }, - { - text: '审批状态', - value: 'approvalStatusName', - align: 'center', - }, ]) const list = ref([]) const total = ref(0) @@ -284,13 +279,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index 6078532..c56b23f 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -63,14 +63,14 @@ const rules = ref({ deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], - customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, message: '电话必填', trigger: ['blur', 'change'] }], maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], - // undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], - // undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +135,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.list.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', @@ -251,7 +255,7 @@ - + diff --git a/src/views/tested/device/group/components/edit.vue b/src/views/tested/device/group/components/edit.vue index cf4e526..63d61c8 100644 --- a/src/views/tested/device/group/components/edit.vue +++ b/src/views/tested/device/group/components/edit.vue @@ -67,6 +67,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', diff --git a/src/views/tested/device/group/components/selectDevice.vue b/src/views/tested/device/group/components/selectDevice.vue index 659a406..6571938 100644 --- a/src/views/tested/device/group/components/selectDevice.vue +++ b/src/views/tested/device/group/components/selectDevice.vue @@ -97,11 +97,27 @@ // 判断是否需要加入设备使用状态查询条件 const data = { ...listQuery.value, - usageStatusList: [], + usageStatusList: [] as string[], } - // if ($props.needStatus) { - // statusType - // } + if ($props.needStatus) { + switch ($props.statusType) { + case '1': + data.usageStatusList = ['0', '1', '4'] + break + case '2': + data.usageStatusList = ['1', '3'] + break + case '3': + data.usageStatusList = ['0', '4'] + break + case '4': + data.usageStatusList = ['0', '1', '3', '4'] + break + case '5': + data.usageStatusList = ['0', '1'] + break + } + } getInfoListPage(data, '全部').then((response) => { list.value = response.data.rows total.value = parseInt(response.data.total) diff --git a/src/views/tested/device/info/components/detail.vue b/src/views/tested/device/info/components/detail.vue index 542a3a0..ee83bc9 100644 --- a/src/views/tested/device/info/components/detail.vue +++ b/src/views/tested/device/info/components/detail.vue @@ -94,6 +94,7 @@ const cancelForm = () => { baseRef.value.cancelForm() } +console.log(JSON.parse($route.query.row as string), 'row') @@ -140,7 +141,7 @@ - + diff --git a/src/views/tested/device/info/components/edit.vue b/src/views/tested/device/info/components/edit.vue index 19f9e65..6680670 100644 --- a/src/views/tested/device/info/components/edit.vue +++ b/src/views/tested/device/info/components/edit.vue @@ -490,7 +490,7 @@ - + diff --git a/src/views/tested/document/list/edit.vue b/src/views/tested/document/list/edit.vue index 2aa46c7..ea81bd0 100644 --- a/src/views/tested/document/list/edit.vue +++ b/src/views/tested/document/list/edit.vue @@ -40,7 +40,10 @@ const rules = ref({ fileName: [{ required: true, message: '文件名称必填', trigger: ['blur', 'change'] }], fileNo: [{ required: true, message: '文件号必填', trigger: ['blur', 'change'] }], - remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + fileType: [{ required: true, message: '文件类别必选', trigger: ['blur', 'change'] }], + implementationStatus: [{ required: true, message: '实施状态必选', trigger: ['blur', 'change'] }], + // remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + attachment: [{ required: true, message: '文件附件需上传', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +138,7 @@ fd.append('multipartFile', event.target.files[0]) uploadApi(fd).then((res) => { if (res.code === 200) { + ruleFormRef.value?.clearValidate('attachment') ruleForm.value.attachment = res.data[0] // 重置当前验证 ElMessage.success('文件上传成功') @@ -207,7 +211,7 @@ - + diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/src/views/tested/MeasurementPlan/plan/components/list.vue b/src/views/tested/MeasurementPlan/plan/components/list.vue index ea18fd7..893e7d5 100644 --- a/src/views/tested/MeasurementPlan/plan/components/list.vue +++ b/src/views/tested/MeasurementPlan/plan/components/list.vue @@ -73,11 +73,6 @@ value: 'createTime', align: 'center', }, - { - text: '审批状态', - value: 'approvalStatusName', - align: 'center', - }, ]) const list = ref([]) const total = ref(0) @@ -284,13 +279,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index 6078532..c56b23f 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -63,14 +63,14 @@ const rules = ref({ deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], - customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, message: '电话必填', trigger: ['blur', 'change'] }], maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], - // undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], - // undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +135,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.list.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', @@ -251,7 +255,7 @@ - + diff --git a/src/views/tested/device/group/components/edit.vue b/src/views/tested/device/group/components/edit.vue index cf4e526..63d61c8 100644 --- a/src/views/tested/device/group/components/edit.vue +++ b/src/views/tested/device/group/components/edit.vue @@ -67,6 +67,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', diff --git a/src/views/tested/device/group/components/selectDevice.vue b/src/views/tested/device/group/components/selectDevice.vue index 659a406..6571938 100644 --- a/src/views/tested/device/group/components/selectDevice.vue +++ b/src/views/tested/device/group/components/selectDevice.vue @@ -97,11 +97,27 @@ // 判断是否需要加入设备使用状态查询条件 const data = { ...listQuery.value, - usageStatusList: [], + usageStatusList: [] as string[], } - // if ($props.needStatus) { - // statusType - // } + if ($props.needStatus) { + switch ($props.statusType) { + case '1': + data.usageStatusList = ['0', '1', '4'] + break + case '2': + data.usageStatusList = ['1', '3'] + break + case '3': + data.usageStatusList = ['0', '4'] + break + case '4': + data.usageStatusList = ['0', '1', '3', '4'] + break + case '5': + data.usageStatusList = ['0', '1'] + break + } + } getInfoListPage(data, '全部').then((response) => { list.value = response.data.rows total.value = parseInt(response.data.total) diff --git a/src/views/tested/device/info/components/detail.vue b/src/views/tested/device/info/components/detail.vue index 542a3a0..ee83bc9 100644 --- a/src/views/tested/device/info/components/detail.vue +++ b/src/views/tested/device/info/components/detail.vue @@ -94,6 +94,7 @@ const cancelForm = () => { baseRef.value.cancelForm() } +console.log(JSON.parse($route.query.row as string), 'row') @@ -140,7 +141,7 @@ - + diff --git a/src/views/tested/device/info/components/edit.vue b/src/views/tested/device/info/components/edit.vue index 19f9e65..6680670 100644 --- a/src/views/tested/device/info/components/edit.vue +++ b/src/views/tested/device/info/components/edit.vue @@ -490,7 +490,7 @@ - + diff --git a/src/views/tested/document/list/edit.vue b/src/views/tested/document/list/edit.vue index 2aa46c7..ea81bd0 100644 --- a/src/views/tested/document/list/edit.vue +++ b/src/views/tested/document/list/edit.vue @@ -40,7 +40,10 @@ const rules = ref({ fileName: [{ required: true, message: '文件名称必填', trigger: ['blur', 'change'] }], fileNo: [{ required: true, message: '文件号必填', trigger: ['blur', 'change'] }], - remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + fileType: [{ required: true, message: '文件类别必选', trigger: ['blur', 'change'] }], + implementationStatus: [{ required: true, message: '实施状态必选', trigger: ['blur', 'change'] }], + // remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + attachment: [{ required: true, message: '文件附件需上传', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +138,7 @@ fd.append('multipartFile', event.target.files[0]) uploadApi(fd).then((res) => { if (res.code === 200) { + ruleFormRef.value?.clearValidate('attachment') ruleForm.value.attachment = res.data[0] // 重置当前验证 ElMessage.success('文件上传成功') @@ -207,7 +211,7 @@ - + diff --git a/src/views/tested/document/list/index.vue b/src/views/tested/document/list/index.vue index 0ac7cf3..fea4112 100644 --- a/src/views/tested/document/list/index.vue +++ b/src/views/tested/document/list/index.vue @@ -3,6 +3,8 @@ import { reactive, ref } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' import { delDocument, getListPage } from '@/api/eqpt/document/index' +import { urlToBlob } from '@/utils/download' +import { getPhotoUrl } from '@/api/system/tool' const { proxy } = getCurrentInstance() as any const listQuery = reactive({ fileNo: '', @@ -112,8 +114,12 @@ }) } // 下载 -const download = () => { - +const download = (row: any) => { + // 获取文件地址 + // downloadFile + getPhotoUrl(row.attachment).then((res) => { + urlToBlob(res.data, row.fileName) + }) } @@ -149,7 +155,7 @@ 删除 - + 下载 diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/src/views/tested/MeasurementPlan/plan/components/list.vue b/src/views/tested/MeasurementPlan/plan/components/list.vue index ea18fd7..893e7d5 100644 --- a/src/views/tested/MeasurementPlan/plan/components/list.vue +++ b/src/views/tested/MeasurementPlan/plan/components/list.vue @@ -73,11 +73,6 @@ value: 'createTime', align: 'center', }, - { - text: '审批状态', - value: 'approvalStatusName', - align: 'center', - }, ]) const list = ref([]) const total = ref(0) @@ -284,13 +279,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index 6078532..c56b23f 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -63,14 +63,14 @@ const rules = ref({ deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], - customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, message: '电话必填', trigger: ['blur', 'change'] }], maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], - // undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], - // undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +135,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.list.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', @@ -251,7 +255,7 @@ - + diff --git a/src/views/tested/device/group/components/edit.vue b/src/views/tested/device/group/components/edit.vue index cf4e526..63d61c8 100644 --- a/src/views/tested/device/group/components/edit.vue +++ b/src/views/tested/device/group/components/edit.vue @@ -67,6 +67,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', diff --git a/src/views/tested/device/group/components/selectDevice.vue b/src/views/tested/device/group/components/selectDevice.vue index 659a406..6571938 100644 --- a/src/views/tested/device/group/components/selectDevice.vue +++ b/src/views/tested/device/group/components/selectDevice.vue @@ -97,11 +97,27 @@ // 判断是否需要加入设备使用状态查询条件 const data = { ...listQuery.value, - usageStatusList: [], + usageStatusList: [] as string[], } - // if ($props.needStatus) { - // statusType - // } + if ($props.needStatus) { + switch ($props.statusType) { + case '1': + data.usageStatusList = ['0', '1', '4'] + break + case '2': + data.usageStatusList = ['1', '3'] + break + case '3': + data.usageStatusList = ['0', '4'] + break + case '4': + data.usageStatusList = ['0', '1', '3', '4'] + break + case '5': + data.usageStatusList = ['0', '1'] + break + } + } getInfoListPage(data, '全部').then((response) => { list.value = response.data.rows total.value = parseInt(response.data.total) diff --git a/src/views/tested/device/info/components/detail.vue b/src/views/tested/device/info/components/detail.vue index 542a3a0..ee83bc9 100644 --- a/src/views/tested/device/info/components/detail.vue +++ b/src/views/tested/device/info/components/detail.vue @@ -94,6 +94,7 @@ const cancelForm = () => { baseRef.value.cancelForm() } +console.log(JSON.parse($route.query.row as string), 'row') @@ -140,7 +141,7 @@ - + diff --git a/src/views/tested/device/info/components/edit.vue b/src/views/tested/device/info/components/edit.vue index 19f9e65..6680670 100644 --- a/src/views/tested/device/info/components/edit.vue +++ b/src/views/tested/device/info/components/edit.vue @@ -490,7 +490,7 @@ - + diff --git a/src/views/tested/document/list/edit.vue b/src/views/tested/document/list/edit.vue index 2aa46c7..ea81bd0 100644 --- a/src/views/tested/document/list/edit.vue +++ b/src/views/tested/document/list/edit.vue @@ -40,7 +40,10 @@ const rules = ref({ fileName: [{ required: true, message: '文件名称必填', trigger: ['blur', 'change'] }], fileNo: [{ required: true, message: '文件号必填', trigger: ['blur', 'change'] }], - remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + fileType: [{ required: true, message: '文件类别必选', trigger: ['blur', 'change'] }], + implementationStatus: [{ required: true, message: '实施状态必选', trigger: ['blur', 'change'] }], + // remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + attachment: [{ required: true, message: '文件附件需上传', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +138,7 @@ fd.append('multipartFile', event.target.files[0]) uploadApi(fd).then((res) => { if (res.code === 200) { + ruleFormRef.value?.clearValidate('attachment') ruleForm.value.attachment = res.data[0] // 重置当前验证 ElMessage.success('文件上传成功') @@ -207,7 +211,7 @@ - + diff --git a/src/views/tested/document/list/index.vue b/src/views/tested/document/list/index.vue index 0ac7cf3..fea4112 100644 --- a/src/views/tested/document/list/index.vue +++ b/src/views/tested/document/list/index.vue @@ -3,6 +3,8 @@ import { reactive, ref } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' import { delDocument, getListPage } from '@/api/eqpt/document/index' +import { urlToBlob } from '@/utils/download' +import { getPhotoUrl } from '@/api/system/tool' const { proxy } = getCurrentInstance() as any const listQuery = reactive({ fileNo: '', @@ -112,8 +114,12 @@ }) } // 下载 -const download = () => { - +const download = (row: any) => { + // 获取文件地址 + // downloadFile + getPhotoUrl(row.attachment).then((res) => { + urlToBlob(res.data, row.fileName) + }) } @@ -149,7 +155,7 @@ 删除 - + 下载 diff --git a/src/views/tested/status/delay/components/list.vue b/src/views/tested/status/delay/components/list.vue index 69e664f..5603bf1 100644 --- a/src/views/tested/status/delay/components/list.vue +++ b/src/views/tested/status/delay/components/list.vue @@ -268,13 +268,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 @@ -304,7 +309,7 @@ 取消 删除 diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/src/views/tested/MeasurementPlan/plan/components/list.vue b/src/views/tested/MeasurementPlan/plan/components/list.vue index ea18fd7..893e7d5 100644 --- a/src/views/tested/MeasurementPlan/plan/components/list.vue +++ b/src/views/tested/MeasurementPlan/plan/components/list.vue @@ -73,11 +73,6 @@ value: 'createTime', align: 'center', }, - { - text: '审批状态', - value: 'approvalStatusName', - align: 'center', - }, ]) const list = ref([]) const total = ref(0) @@ -284,13 +279,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index 6078532..c56b23f 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -63,14 +63,14 @@ const rules = ref({ deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], - customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, message: '电话必填', trigger: ['blur', 'change'] }], maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], - // undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], - // undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +135,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.list.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', @@ -251,7 +255,7 @@ - + diff --git a/src/views/tested/device/group/components/edit.vue b/src/views/tested/device/group/components/edit.vue index cf4e526..63d61c8 100644 --- a/src/views/tested/device/group/components/edit.vue +++ b/src/views/tested/device/group/components/edit.vue @@ -67,6 +67,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', diff --git a/src/views/tested/device/group/components/selectDevice.vue b/src/views/tested/device/group/components/selectDevice.vue index 659a406..6571938 100644 --- a/src/views/tested/device/group/components/selectDevice.vue +++ b/src/views/tested/device/group/components/selectDevice.vue @@ -97,11 +97,27 @@ // 判断是否需要加入设备使用状态查询条件 const data = { ...listQuery.value, - usageStatusList: [], + usageStatusList: [] as string[], } - // if ($props.needStatus) { - // statusType - // } + if ($props.needStatus) { + switch ($props.statusType) { + case '1': + data.usageStatusList = ['0', '1', '4'] + break + case '2': + data.usageStatusList = ['1', '3'] + break + case '3': + data.usageStatusList = ['0', '4'] + break + case '4': + data.usageStatusList = ['0', '1', '3', '4'] + break + case '5': + data.usageStatusList = ['0', '1'] + break + } + } getInfoListPage(data, '全部').then((response) => { list.value = response.data.rows total.value = parseInt(response.data.total) diff --git a/src/views/tested/device/info/components/detail.vue b/src/views/tested/device/info/components/detail.vue index 542a3a0..ee83bc9 100644 --- a/src/views/tested/device/info/components/detail.vue +++ b/src/views/tested/device/info/components/detail.vue @@ -94,6 +94,7 @@ const cancelForm = () => { baseRef.value.cancelForm() } +console.log(JSON.parse($route.query.row as string), 'row') @@ -140,7 +141,7 @@ - + diff --git a/src/views/tested/device/info/components/edit.vue b/src/views/tested/device/info/components/edit.vue index 19f9e65..6680670 100644 --- a/src/views/tested/device/info/components/edit.vue +++ b/src/views/tested/device/info/components/edit.vue @@ -490,7 +490,7 @@ - + diff --git a/src/views/tested/document/list/edit.vue b/src/views/tested/document/list/edit.vue index 2aa46c7..ea81bd0 100644 --- a/src/views/tested/document/list/edit.vue +++ b/src/views/tested/document/list/edit.vue @@ -40,7 +40,10 @@ const rules = ref({ fileName: [{ required: true, message: '文件名称必填', trigger: ['blur', 'change'] }], fileNo: [{ required: true, message: '文件号必填', trigger: ['blur', 'change'] }], - remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + fileType: [{ required: true, message: '文件类别必选', trigger: ['blur', 'change'] }], + implementationStatus: [{ required: true, message: '实施状态必选', trigger: ['blur', 'change'] }], + // remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + attachment: [{ required: true, message: '文件附件需上传', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +138,7 @@ fd.append('multipartFile', event.target.files[0]) uploadApi(fd).then((res) => { if (res.code === 200) { + ruleFormRef.value?.clearValidate('attachment') ruleForm.value.attachment = res.data[0] // 重置当前验证 ElMessage.success('文件上传成功') @@ -207,7 +211,7 @@ - + diff --git a/src/views/tested/document/list/index.vue b/src/views/tested/document/list/index.vue index 0ac7cf3..fea4112 100644 --- a/src/views/tested/document/list/index.vue +++ b/src/views/tested/document/list/index.vue @@ -3,6 +3,8 @@ import { reactive, ref } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' import { delDocument, getListPage } from '@/api/eqpt/document/index' +import { urlToBlob } from '@/utils/download' +import { getPhotoUrl } from '@/api/system/tool' const { proxy } = getCurrentInstance() as any const listQuery = reactive({ fileNo: '', @@ -112,8 +114,12 @@ }) } // 下载 -const download = () => { - +const download = (row: any) => { + // 获取文件地址 + // downloadFile + getPhotoUrl(row.attachment).then((res) => { + urlToBlob(res.data, row.fileName) + }) } @@ -149,7 +155,7 @@ 删除 - + 下载 diff --git a/src/views/tested/status/delay/components/list.vue b/src/views/tested/status/delay/components/list.vue index 69e664f..5603bf1 100644 --- a/src/views/tested/status/delay/components/list.vue +++ b/src/views/tested/status/delay/components/list.vue @@ -268,13 +268,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 @@ -304,7 +309,7 @@ 取消 删除 diff --git a/src/views/tested/subpackage/certificate/components/edit.vue b/src/views/tested/subpackage/certificate/components/edit.vue index abe1c68..b5c12c6 100644 --- a/src/views/tested/subpackage/certificate/components/edit.vue +++ b/src/views/tested/subpackage/certificate/components/edit.vue @@ -51,8 +51,10 @@ certificateName: [{ required: true, message: '证书名称必填', trigger: ['blur', 'change'] }], subcontractorNo: [{ required: true, message: '检测单位编号必填', trigger: ['blur', 'change'] }], equipmentNo: [{ required: true, message: '受检设备编号必填', trigger: ['blur', 'change'] }], - meterIdentify: [{ required: true, message: '计量标识必选', trigger: ['blur', 'change'] }], - originalRecord: [{ required: true, message: '原始记录附件需上传', trigger: ['blur', 'change'] }], + checkDate: [{ required: true, message: '检定(校准)日期必填', trigger: ['blur', 'change'] }], + // meterIdentify: [{ required: true, message: '计量标识必选', trigger: ['blur', 'change'] }], + // originalRecord: [{ required: true, message: '原始记录附件需上传', trigger: ['blur', 'change'] }], + certificateReport: [{ required: true, message: '证书报告附件需上传', trigger: ['blur', 'change'] }], certificateValid: [{ required: true, message: '证书有效期必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 @@ -149,8 +151,8 @@ // certificateReport originalRecord ruleForm.value[uploadFlag.value] = res.data[0] // 重置当前验证 - if (uploadFlag.value === 'originalRecord') { - ruleFormRef.value?.clearValidate('minioFileName') + if (uploadFlag.value === 'certificateReport') { + ruleFormRef.value?.clearValidate('certificateReport') } ElMessage.success('文件上传成功') diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/src/views/tested/MeasurementPlan/plan/components/list.vue b/src/views/tested/MeasurementPlan/plan/components/list.vue index ea18fd7..893e7d5 100644 --- a/src/views/tested/MeasurementPlan/plan/components/list.vue +++ b/src/views/tested/MeasurementPlan/plan/components/list.vue @@ -73,11 +73,6 @@ value: 'createTime', align: 'center', }, - { - text: '审批状态', - value: 'approvalStatusName', - align: 'center', - }, ]) const list = ref([]) const total = ref(0) @@ -284,13 +279,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index 6078532..c56b23f 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -63,14 +63,14 @@ const rules = ref({ deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], - customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, message: '电话必填', trigger: ['blur', 'change'] }], maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], - // undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], - // undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +135,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.list.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', @@ -251,7 +255,7 @@ - + diff --git a/src/views/tested/device/group/components/edit.vue b/src/views/tested/device/group/components/edit.vue index cf4e526..63d61c8 100644 --- a/src/views/tested/device/group/components/edit.vue +++ b/src/views/tested/device/group/components/edit.vue @@ -67,6 +67,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', diff --git a/src/views/tested/device/group/components/selectDevice.vue b/src/views/tested/device/group/components/selectDevice.vue index 659a406..6571938 100644 --- a/src/views/tested/device/group/components/selectDevice.vue +++ b/src/views/tested/device/group/components/selectDevice.vue @@ -97,11 +97,27 @@ // 判断是否需要加入设备使用状态查询条件 const data = { ...listQuery.value, - usageStatusList: [], + usageStatusList: [] as string[], } - // if ($props.needStatus) { - // statusType - // } + if ($props.needStatus) { + switch ($props.statusType) { + case '1': + data.usageStatusList = ['0', '1', '4'] + break + case '2': + data.usageStatusList = ['1', '3'] + break + case '3': + data.usageStatusList = ['0', '4'] + break + case '4': + data.usageStatusList = ['0', '1', '3', '4'] + break + case '5': + data.usageStatusList = ['0', '1'] + break + } + } getInfoListPage(data, '全部').then((response) => { list.value = response.data.rows total.value = parseInt(response.data.total) diff --git a/src/views/tested/device/info/components/detail.vue b/src/views/tested/device/info/components/detail.vue index 542a3a0..ee83bc9 100644 --- a/src/views/tested/device/info/components/detail.vue +++ b/src/views/tested/device/info/components/detail.vue @@ -94,6 +94,7 @@ const cancelForm = () => { baseRef.value.cancelForm() } +console.log(JSON.parse($route.query.row as string), 'row') @@ -140,7 +141,7 @@ - + diff --git a/src/views/tested/device/info/components/edit.vue b/src/views/tested/device/info/components/edit.vue index 19f9e65..6680670 100644 --- a/src/views/tested/device/info/components/edit.vue +++ b/src/views/tested/device/info/components/edit.vue @@ -490,7 +490,7 @@ - + diff --git a/src/views/tested/document/list/edit.vue b/src/views/tested/document/list/edit.vue index 2aa46c7..ea81bd0 100644 --- a/src/views/tested/document/list/edit.vue +++ b/src/views/tested/document/list/edit.vue @@ -40,7 +40,10 @@ const rules = ref({ fileName: [{ required: true, message: '文件名称必填', trigger: ['blur', 'change'] }], fileNo: [{ required: true, message: '文件号必填', trigger: ['blur', 'change'] }], - remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + fileType: [{ required: true, message: '文件类别必选', trigger: ['blur', 'change'] }], + implementationStatus: [{ required: true, message: '实施状态必选', trigger: ['blur', 'change'] }], + // remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + attachment: [{ required: true, message: '文件附件需上传', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +138,7 @@ fd.append('multipartFile', event.target.files[0]) uploadApi(fd).then((res) => { if (res.code === 200) { + ruleFormRef.value?.clearValidate('attachment') ruleForm.value.attachment = res.data[0] // 重置当前验证 ElMessage.success('文件上传成功') @@ -207,7 +211,7 @@ - + diff --git a/src/views/tested/document/list/index.vue b/src/views/tested/document/list/index.vue index 0ac7cf3..fea4112 100644 --- a/src/views/tested/document/list/index.vue +++ b/src/views/tested/document/list/index.vue @@ -3,6 +3,8 @@ import { reactive, ref } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' import { delDocument, getListPage } from '@/api/eqpt/document/index' +import { urlToBlob } from '@/utils/download' +import { getPhotoUrl } from '@/api/system/tool' const { proxy } = getCurrentInstance() as any const listQuery = reactive({ fileNo: '', @@ -112,8 +114,12 @@ }) } // 下载 -const download = () => { - +const download = (row: any) => { + // 获取文件地址 + // downloadFile + getPhotoUrl(row.attachment).then((res) => { + urlToBlob(res.data, row.fileName) + }) } @@ -149,7 +155,7 @@ 删除 - + 下载 diff --git a/src/views/tested/status/delay/components/list.vue b/src/views/tested/status/delay/components/list.vue index 69e664f..5603bf1 100644 --- a/src/views/tested/status/delay/components/list.vue +++ b/src/views/tested/status/delay/components/list.vue @@ -268,13 +268,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 @@ -304,7 +309,7 @@ 取消 删除 diff --git a/src/views/tested/subpackage/certificate/components/edit.vue b/src/views/tested/subpackage/certificate/components/edit.vue index abe1c68..b5c12c6 100644 --- a/src/views/tested/subpackage/certificate/components/edit.vue +++ b/src/views/tested/subpackage/certificate/components/edit.vue @@ -51,8 +51,10 @@ certificateName: [{ required: true, message: '证书名称必填', trigger: ['blur', 'change'] }], subcontractorNo: [{ required: true, message: '检测单位编号必填', trigger: ['blur', 'change'] }], equipmentNo: [{ required: true, message: '受检设备编号必填', trigger: ['blur', 'change'] }], - meterIdentify: [{ required: true, message: '计量标识必选', trigger: ['blur', 'change'] }], - originalRecord: [{ required: true, message: '原始记录附件需上传', trigger: ['blur', 'change'] }], + checkDate: [{ required: true, message: '检定(校准)日期必填', trigger: ['blur', 'change'] }], + // meterIdentify: [{ required: true, message: '计量标识必选', trigger: ['blur', 'change'] }], + // originalRecord: [{ required: true, message: '原始记录附件需上传', trigger: ['blur', 'change'] }], + certificateReport: [{ required: true, message: '证书报告附件需上传', trigger: ['blur', 'change'] }], certificateValid: [{ required: true, message: '证书有效期必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 @@ -149,8 +151,8 @@ // certificateReport originalRecord ruleForm.value[uploadFlag.value] = res.data[0] // 重置当前验证 - if (uploadFlag.value === 'originalRecord') { - ruleFormRef.value?.clearValidate('minioFileName') + if (uploadFlag.value === 'certificateReport') { + ruleFormRef.value?.clearValidate('certificateReport') } ElMessage.success('文件上传成功') diff --git a/src/views/tested/subpackage/certificate/index.vue b/src/views/tested/subpackage/certificate/index.vue index a99d6e8..563a579 100644 --- a/src/views/tested/subpackage/certificate/index.vue +++ b/src/views/tested/subpackage/certificate/index.vue @@ -125,6 +125,7 @@ } // 删除 const delHandler = (row: any) => { + console.log(row, 'row') ElMessageBox.confirm( '确认删除吗?', '确认', @@ -134,7 +135,7 @@ type: 'warning', }, ).then(() => { - deleteCertificate(row.id).then((res) => { + deleteCertificate(row).then((res) => { ElMessage.success('操作成功') search() }) diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/src/views/tested/MeasurementPlan/plan/components/list.vue b/src/views/tested/MeasurementPlan/plan/components/list.vue index ea18fd7..893e7d5 100644 --- a/src/views/tested/MeasurementPlan/plan/components/list.vue +++ b/src/views/tested/MeasurementPlan/plan/components/list.vue @@ -73,11 +73,6 @@ value: 'createTime', align: 'center', }, - { - text: '审批状态', - value: 'approvalStatusName', - align: 'center', - }, ]) const list = ref([]) const total = ref(0) @@ -284,13 +279,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index 6078532..c56b23f 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -63,14 +63,14 @@ const rules = ref({ deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], - customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, message: '电话必填', trigger: ['blur', 'change'] }], maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], - // undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], - // undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +135,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.list.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', @@ -251,7 +255,7 @@ - + diff --git a/src/views/tested/device/group/components/edit.vue b/src/views/tested/device/group/components/edit.vue index cf4e526..63d61c8 100644 --- a/src/views/tested/device/group/components/edit.vue +++ b/src/views/tested/device/group/components/edit.vue @@ -67,6 +67,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', diff --git a/src/views/tested/device/group/components/selectDevice.vue b/src/views/tested/device/group/components/selectDevice.vue index 659a406..6571938 100644 --- a/src/views/tested/device/group/components/selectDevice.vue +++ b/src/views/tested/device/group/components/selectDevice.vue @@ -97,11 +97,27 @@ // 判断是否需要加入设备使用状态查询条件 const data = { ...listQuery.value, - usageStatusList: [], + usageStatusList: [] as string[], } - // if ($props.needStatus) { - // statusType - // } + if ($props.needStatus) { + switch ($props.statusType) { + case '1': + data.usageStatusList = ['0', '1', '4'] + break + case '2': + data.usageStatusList = ['1', '3'] + break + case '3': + data.usageStatusList = ['0', '4'] + break + case '4': + data.usageStatusList = ['0', '1', '3', '4'] + break + case '5': + data.usageStatusList = ['0', '1'] + break + } + } getInfoListPage(data, '全部').then((response) => { list.value = response.data.rows total.value = parseInt(response.data.total) diff --git a/src/views/tested/device/info/components/detail.vue b/src/views/tested/device/info/components/detail.vue index 542a3a0..ee83bc9 100644 --- a/src/views/tested/device/info/components/detail.vue +++ b/src/views/tested/device/info/components/detail.vue @@ -94,6 +94,7 @@ const cancelForm = () => { baseRef.value.cancelForm() } +console.log(JSON.parse($route.query.row as string), 'row') @@ -140,7 +141,7 @@ - + diff --git a/src/views/tested/device/info/components/edit.vue b/src/views/tested/device/info/components/edit.vue index 19f9e65..6680670 100644 --- a/src/views/tested/device/info/components/edit.vue +++ b/src/views/tested/device/info/components/edit.vue @@ -490,7 +490,7 @@ - + diff --git a/src/views/tested/document/list/edit.vue b/src/views/tested/document/list/edit.vue index 2aa46c7..ea81bd0 100644 --- a/src/views/tested/document/list/edit.vue +++ b/src/views/tested/document/list/edit.vue @@ -40,7 +40,10 @@ const rules = ref({ fileName: [{ required: true, message: '文件名称必填', trigger: ['blur', 'change'] }], fileNo: [{ required: true, message: '文件号必填', trigger: ['blur', 'change'] }], - remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + fileType: [{ required: true, message: '文件类别必选', trigger: ['blur', 'change'] }], + implementationStatus: [{ required: true, message: '实施状态必选', trigger: ['blur', 'change'] }], + // remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + attachment: [{ required: true, message: '文件附件需上传', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +138,7 @@ fd.append('multipartFile', event.target.files[0]) uploadApi(fd).then((res) => { if (res.code === 200) { + ruleFormRef.value?.clearValidate('attachment') ruleForm.value.attachment = res.data[0] // 重置当前验证 ElMessage.success('文件上传成功') @@ -207,7 +211,7 @@ - + diff --git a/src/views/tested/document/list/index.vue b/src/views/tested/document/list/index.vue index 0ac7cf3..fea4112 100644 --- a/src/views/tested/document/list/index.vue +++ b/src/views/tested/document/list/index.vue @@ -3,6 +3,8 @@ import { reactive, ref } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' import { delDocument, getListPage } from '@/api/eqpt/document/index' +import { urlToBlob } from '@/utils/download' +import { getPhotoUrl } from '@/api/system/tool' const { proxy } = getCurrentInstance() as any const listQuery = reactive({ fileNo: '', @@ -112,8 +114,12 @@ }) } // 下载 -const download = () => { - +const download = (row: any) => { + // 获取文件地址 + // downloadFile + getPhotoUrl(row.attachment).then((res) => { + urlToBlob(res.data, row.fileName) + }) } @@ -149,7 +155,7 @@ 删除 - + 下载 diff --git a/src/views/tested/status/delay/components/list.vue b/src/views/tested/status/delay/components/list.vue index 69e664f..5603bf1 100644 --- a/src/views/tested/status/delay/components/list.vue +++ b/src/views/tested/status/delay/components/list.vue @@ -268,13 +268,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 @@ -304,7 +309,7 @@ 取消 删除 diff --git a/src/views/tested/subpackage/certificate/components/edit.vue b/src/views/tested/subpackage/certificate/components/edit.vue index abe1c68..b5c12c6 100644 --- a/src/views/tested/subpackage/certificate/components/edit.vue +++ b/src/views/tested/subpackage/certificate/components/edit.vue @@ -51,8 +51,10 @@ certificateName: [{ required: true, message: '证书名称必填', trigger: ['blur', 'change'] }], subcontractorNo: [{ required: true, message: '检测单位编号必填', trigger: ['blur', 'change'] }], equipmentNo: [{ required: true, message: '受检设备编号必填', trigger: ['blur', 'change'] }], - meterIdentify: [{ required: true, message: '计量标识必选', trigger: ['blur', 'change'] }], - originalRecord: [{ required: true, message: '原始记录附件需上传', trigger: ['blur', 'change'] }], + checkDate: [{ required: true, message: '检定(校准)日期必填', trigger: ['blur', 'change'] }], + // meterIdentify: [{ required: true, message: '计量标识必选', trigger: ['blur', 'change'] }], + // originalRecord: [{ required: true, message: '原始记录附件需上传', trigger: ['blur', 'change'] }], + certificateReport: [{ required: true, message: '证书报告附件需上传', trigger: ['blur', 'change'] }], certificateValid: [{ required: true, message: '证书有效期必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 @@ -149,8 +151,8 @@ // certificateReport originalRecord ruleForm.value[uploadFlag.value] = res.data[0] // 重置当前验证 - if (uploadFlag.value === 'originalRecord') { - ruleFormRef.value?.clearValidate('minioFileName') + if (uploadFlag.value === 'certificateReport') { + ruleFormRef.value?.clearValidate('certificateReport') } ElMessage.success('文件上传成功') diff --git a/src/views/tested/subpackage/certificate/index.vue b/src/views/tested/subpackage/certificate/index.vue index a99d6e8..563a579 100644 --- a/src/views/tested/subpackage/certificate/index.vue +++ b/src/views/tested/subpackage/certificate/index.vue @@ -125,6 +125,7 @@ } // 删除 const delHandler = (row: any) => { + console.log(row, 'row') ElMessageBox.confirm( '确认删除吗?', '确认', @@ -134,7 +135,7 @@ type: 'warning', }, ).then(() => { - deleteCertificate(row.id).then((res) => { + deleteCertificate(row).then((res) => { ElMessage.success('操作成功') search() }) diff --git a/src/views/tested/subpackage/directory/components/certificateTable.vue b/src/views/tested/subpackage/directory/components/certificateTable.vue index 8f89914..79b93b5 100644 --- a/src/views/tested/subpackage/directory/components/certificateTable.vue +++ b/src/views/tested/subpackage/directory/components/certificateTable.vue @@ -101,7 +101,7 @@ - + 增加行 diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/src/views/tested/MeasurementPlan/plan/components/list.vue b/src/views/tested/MeasurementPlan/plan/components/list.vue index ea18fd7..893e7d5 100644 --- a/src/views/tested/MeasurementPlan/plan/components/list.vue +++ b/src/views/tested/MeasurementPlan/plan/components/list.vue @@ -73,11 +73,6 @@ value: 'createTime', align: 'center', }, - { - text: '审批状态', - value: 'approvalStatusName', - align: 'center', - }, ]) const list = ref([]) const total = ref(0) @@ -284,13 +279,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index 6078532..c56b23f 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -63,14 +63,14 @@ const rules = ref({ deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], - customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, message: '电话必填', trigger: ['blur', 'change'] }], maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], - // undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], - // undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +135,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.list.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', @@ -251,7 +255,7 @@ - + diff --git a/src/views/tested/device/group/components/edit.vue b/src/views/tested/device/group/components/edit.vue index cf4e526..63d61c8 100644 --- a/src/views/tested/device/group/components/edit.vue +++ b/src/views/tested/device/group/components/edit.vue @@ -67,6 +67,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', diff --git a/src/views/tested/device/group/components/selectDevice.vue b/src/views/tested/device/group/components/selectDevice.vue index 659a406..6571938 100644 --- a/src/views/tested/device/group/components/selectDevice.vue +++ b/src/views/tested/device/group/components/selectDevice.vue @@ -97,11 +97,27 @@ // 判断是否需要加入设备使用状态查询条件 const data = { ...listQuery.value, - usageStatusList: [], + usageStatusList: [] as string[], } - // if ($props.needStatus) { - // statusType - // } + if ($props.needStatus) { + switch ($props.statusType) { + case '1': + data.usageStatusList = ['0', '1', '4'] + break + case '2': + data.usageStatusList = ['1', '3'] + break + case '3': + data.usageStatusList = ['0', '4'] + break + case '4': + data.usageStatusList = ['0', '1', '3', '4'] + break + case '5': + data.usageStatusList = ['0', '1'] + break + } + } getInfoListPage(data, '全部').then((response) => { list.value = response.data.rows total.value = parseInt(response.data.total) diff --git a/src/views/tested/device/info/components/detail.vue b/src/views/tested/device/info/components/detail.vue index 542a3a0..ee83bc9 100644 --- a/src/views/tested/device/info/components/detail.vue +++ b/src/views/tested/device/info/components/detail.vue @@ -94,6 +94,7 @@ const cancelForm = () => { baseRef.value.cancelForm() } +console.log(JSON.parse($route.query.row as string), 'row') @@ -140,7 +141,7 @@ - + diff --git a/src/views/tested/device/info/components/edit.vue b/src/views/tested/device/info/components/edit.vue index 19f9e65..6680670 100644 --- a/src/views/tested/device/info/components/edit.vue +++ b/src/views/tested/device/info/components/edit.vue @@ -490,7 +490,7 @@ - + diff --git a/src/views/tested/document/list/edit.vue b/src/views/tested/document/list/edit.vue index 2aa46c7..ea81bd0 100644 --- a/src/views/tested/document/list/edit.vue +++ b/src/views/tested/document/list/edit.vue @@ -40,7 +40,10 @@ const rules = ref({ fileName: [{ required: true, message: '文件名称必填', trigger: ['blur', 'change'] }], fileNo: [{ required: true, message: '文件号必填', trigger: ['blur', 'change'] }], - remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + fileType: [{ required: true, message: '文件类别必选', trigger: ['blur', 'change'] }], + implementationStatus: [{ required: true, message: '实施状态必选', trigger: ['blur', 'change'] }], + // remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + attachment: [{ required: true, message: '文件附件需上传', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +138,7 @@ fd.append('multipartFile', event.target.files[0]) uploadApi(fd).then((res) => { if (res.code === 200) { + ruleFormRef.value?.clearValidate('attachment') ruleForm.value.attachment = res.data[0] // 重置当前验证 ElMessage.success('文件上传成功') @@ -207,7 +211,7 @@ - + diff --git a/src/views/tested/document/list/index.vue b/src/views/tested/document/list/index.vue index 0ac7cf3..fea4112 100644 --- a/src/views/tested/document/list/index.vue +++ b/src/views/tested/document/list/index.vue @@ -3,6 +3,8 @@ import { reactive, ref } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' import { delDocument, getListPage } from '@/api/eqpt/document/index' +import { urlToBlob } from '@/utils/download' +import { getPhotoUrl } from '@/api/system/tool' const { proxy } = getCurrentInstance() as any const listQuery = reactive({ fileNo: '', @@ -112,8 +114,12 @@ }) } // 下载 -const download = () => { - +const download = (row: any) => { + // 获取文件地址 + // downloadFile + getPhotoUrl(row.attachment).then((res) => { + urlToBlob(res.data, row.fileName) + }) } @@ -149,7 +155,7 @@ 删除 - + 下载 diff --git a/src/views/tested/status/delay/components/list.vue b/src/views/tested/status/delay/components/list.vue index 69e664f..5603bf1 100644 --- a/src/views/tested/status/delay/components/list.vue +++ b/src/views/tested/status/delay/components/list.vue @@ -268,13 +268,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 @@ -304,7 +309,7 @@ 取消 删除 diff --git a/src/views/tested/subpackage/certificate/components/edit.vue b/src/views/tested/subpackage/certificate/components/edit.vue index abe1c68..b5c12c6 100644 --- a/src/views/tested/subpackage/certificate/components/edit.vue +++ b/src/views/tested/subpackage/certificate/components/edit.vue @@ -51,8 +51,10 @@ certificateName: [{ required: true, message: '证书名称必填', trigger: ['blur', 'change'] }], subcontractorNo: [{ required: true, message: '检测单位编号必填', trigger: ['blur', 'change'] }], equipmentNo: [{ required: true, message: '受检设备编号必填', trigger: ['blur', 'change'] }], - meterIdentify: [{ required: true, message: '计量标识必选', trigger: ['blur', 'change'] }], - originalRecord: [{ required: true, message: '原始记录附件需上传', trigger: ['blur', 'change'] }], + checkDate: [{ required: true, message: '检定(校准)日期必填', trigger: ['blur', 'change'] }], + // meterIdentify: [{ required: true, message: '计量标识必选', trigger: ['blur', 'change'] }], + // originalRecord: [{ required: true, message: '原始记录附件需上传', trigger: ['blur', 'change'] }], + certificateReport: [{ required: true, message: '证书报告附件需上传', trigger: ['blur', 'change'] }], certificateValid: [{ required: true, message: '证书有效期必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 @@ -149,8 +151,8 @@ // certificateReport originalRecord ruleForm.value[uploadFlag.value] = res.data[0] // 重置当前验证 - if (uploadFlag.value === 'originalRecord') { - ruleFormRef.value?.clearValidate('minioFileName') + if (uploadFlag.value === 'certificateReport') { + ruleFormRef.value?.clearValidate('certificateReport') } ElMessage.success('文件上传成功') diff --git a/src/views/tested/subpackage/certificate/index.vue b/src/views/tested/subpackage/certificate/index.vue index a99d6e8..563a579 100644 --- a/src/views/tested/subpackage/certificate/index.vue +++ b/src/views/tested/subpackage/certificate/index.vue @@ -125,6 +125,7 @@ } // 删除 const delHandler = (row: any) => { + console.log(row, 'row') ElMessageBox.confirm( '确认删除吗?', '确认', @@ -134,7 +135,7 @@ type: 'warning', }, ).then(() => { - deleteCertificate(row.id).then((res) => { + deleteCertificate(row).then((res) => { ElMessage.success('操作成功') search() }) diff --git a/src/views/tested/subpackage/directory/components/certificateTable.vue b/src/views/tested/subpackage/directory/components/certificateTable.vue index 8f89914..79b93b5 100644 --- a/src/views/tested/subpackage/directory/components/certificateTable.vue +++ b/src/views/tested/subpackage/directory/components/certificateTable.vue @@ -101,7 +101,7 @@ - + 增加行 diff --git a/src/views/tested/subpackage/directory/components/edit.vue b/src/views/tested/subpackage/directory/components/edit.vue index a92af02..c4e50ab 100644 --- a/src/views/tested/subpackage/directory/components/edit.vue +++ b/src/views/tested/subpackage/directory/components/edit.vue @@ -14,7 +14,7 @@ import { uploadApi } from '@/api/system/notice' import useUserStore from '@/store/modules/user' import { getUserDept } from '@/api/system/user' -import { cancelDirectory, editDirectory, getDetail, submitDirectory } from '@/api/eqpt/subpackage/directory' +import { cancelDirectory, deleteDirectory, editDirectory, getDetail, submitDirectory } from '@/api/eqpt/subpackage/directory' const $route = useRoute() const $router = useRouter() const userStore = useUserStore() @@ -79,27 +79,82 @@ const certificateList = ref() const radio = ref('基本信息') // 表单1验证规则 +const checkPhone = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^1[3456789]\d{9}$/.test(value))) { + callback(new Error('请输入正确手机号')) + } + else { + callback() + } +} +const checkEmail = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/.test(value))) { + callback(new Error('请输入正确邮箱')) + } + else { + callback() + } +} +const checkPostcode = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^[1-9]\d{5}$/.test(value))) { + callback(new Error('请输入正确邮编')) + } + else { + callback() + } +} +const checkFax = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^(\d{3,4}-)?\d{7,8}$/.test(value))) { + callback(new Error('请输入正确传真')) + } + else { + callback() + } +} +const checkBankNumber = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^(\d{3,4}-)?\d{7,8}$/.test(value))) { + callback(new Error('请输入正确传真')) + } + else { + callback() + } +} const rules = ref({ subcontractorNo: [{ required: true, message: '分包方编号必填', trigger: ['blur', 'change'] }], companyName: [{ required: true, message: '单位名称必填', trigger: ['blur', 'change'] }], - companySimpleName: [{ required: true, message: '单位简称必填', trigger: ['blur', 'change'] }], - businessContent: [{ required: true, message: '业务内容必填', trigger: ['blur', 'change'] }], - scale: [{ required: true, message: '规模必选', trigger: ['blur', 'change'] }], - businessScale: [{ required: true, message: '业务规模必选', trigger: ['blur', 'change'] }], - performanceRating: [{ required: true, message: '履约评级必选', trigger: ['blur', 'change'] }], - overallEvaluation: [{ required: true, message: '整体评价必选', trigger: ['blur', 'change'] }], - taxNumber: [{ required: true, message: '税号必填', trigger: ['blur', 'change'] }], - bankAccount: [{ required: true, message: '银行账户名必填', trigger: ['blur', 'change'] }], - bankNumber: [{ required: true, message: '银行账号必填', trigger: ['blur', 'change'] }], - postcode: [{ required: true, message: '邮编必填', trigger: ['blur', 'change'] }], - directorName: [{ required: true, message: '联系人必填', trigger: ['blur', 'change'] }], - contactNumber: [{ required: true, message: '联系电话必填', trigger: ['blur', 'change'] }], - fax: [{ required: true, message: '传真必填', trigger: ['blur', 'change'] }], - telephone: [{ required: true, message: '手机号必填', trigger: ['blur', 'change'] }], - email: [{ required: true, message: '邮箱必填', trigger: ['blur', 'change'] }], - address: [{ required: true, message: '地址必填', trigger: ['blur', 'change'] }], - invoiceAddress: [{ required: true, message: '开票用地址必填', trigger: ['blur', 'change'] }], - testAbility: [{ required: true, message: '测试能力必填', trigger: ['blur', 'change'] }], + // companySimpleName: [{ required: true, message: '单位简称必填', trigger: ['blur', 'change'] }], + // businessContent: [{ required: true, message: '业务内容必填', trigger: ['blur', 'change'] }], + // scale: [{ required: true, message: '规模必选', trigger: ['blur', 'change'] }], + // businessScale: [{ required: true, message: '业务规模必选', trigger: ['blur', 'change'] }], + // performanceRating: [{ required: true, message: '履约评级必选', trigger: ['blur', 'change'] }], + // overallEvaluation: [{ required: true, message: '整体评价必选', trigger: ['blur', 'change'] }], + // taxNumber: [{ required: true, message: '税号必填', trigger: ['blur', 'change'] }], + // bankAccount: [{ required: true, message: '银行账户名必填', trigger: ['blur', 'change'] }], + // bankNumber: [{ required: false, validator: checkEmail, trigger: ['blur', 'change'] }], + postcode: [{ required: false, validator: checkBankNumber, trigger: ['blur', 'change'] }], + // directorName: [{ required: true, message: '联系人必填', trigger: ['blur', 'change'] }], + // contactNumber: [{ required: true, message: '联系电话必填', trigger: ['blur', 'change'] }], + fax: [{ required: false, validator: checkFax, trigger: ['blur', 'change'] }], + telephone: [{ required: false, validator: checkPhone, trigger: ['blur', 'change'] }], + email: [{ required: false, validator: checkEmail, trigger: ['blur', 'change'] }], + // address: [{ required: true, message: '地址必填', trigger: ['blur', 'change'] }], + // invoiceAddress: [{ required: true, message: '开票用地址必填', trigger: ['blur', 'change'] }], + // testAbility: [{ required: true, message: '测试能力必填', trigger: ['blur', 'change'] }], }) // 获取下拉框数据 @@ -180,7 +235,7 @@ certificateList: [], // 分包证书 staffList: personRef.value.list, // 分包人员 } - editDirectory(data).then((res) => { + editDirectory(data, $route.query.statusName as string).then((res) => { submitId.value = res.data if (statusName === '已取消' || statusName === '未通过') { submitDirectory({ id: submitId.value, formId: SCHEDULE.SUBCONTRACTOR_APPROVAL }).then((res) => { @@ -188,6 +243,10 @@ close() }) } + if (statusName === '全部') { + ElMessage.success('保存成功') + close() + } else { ElMessage.success('保存成功') } @@ -240,7 +299,7 @@ type: 'warning', }, ).then(() => { - deleteDirectory({ id: ruleForm.value.id }).then((res) => { + deleteDirectory({ id: ruleForm.value.id }, $route.query.statusName as string).then((res) => { ElMessage.success('操作成功') close() }) @@ -315,7 +374,7 @@ 编辑 - + 提交 @@ -340,7 +399,8 @@ - + + @@ -514,6 +574,9 @@ + + + diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/src/views/tested/MeasurementPlan/plan/components/list.vue b/src/views/tested/MeasurementPlan/plan/components/list.vue index ea18fd7..893e7d5 100644 --- a/src/views/tested/MeasurementPlan/plan/components/list.vue +++ b/src/views/tested/MeasurementPlan/plan/components/list.vue @@ -73,11 +73,6 @@ value: 'createTime', align: 'center', }, - { - text: '审批状态', - value: 'approvalStatusName', - align: 'center', - }, ]) const list = ref([]) const total = ref(0) @@ -284,13 +279,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index 6078532..c56b23f 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -63,14 +63,14 @@ const rules = ref({ deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], - customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, message: '电话必填', trigger: ['blur', 'change'] }], maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], - // undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], - // undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +135,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.list.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', @@ -251,7 +255,7 @@ - + diff --git a/src/views/tested/device/group/components/edit.vue b/src/views/tested/device/group/components/edit.vue index cf4e526..63d61c8 100644 --- a/src/views/tested/device/group/components/edit.vue +++ b/src/views/tested/device/group/components/edit.vue @@ -67,6 +67,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', diff --git a/src/views/tested/device/group/components/selectDevice.vue b/src/views/tested/device/group/components/selectDevice.vue index 659a406..6571938 100644 --- a/src/views/tested/device/group/components/selectDevice.vue +++ b/src/views/tested/device/group/components/selectDevice.vue @@ -97,11 +97,27 @@ // 判断是否需要加入设备使用状态查询条件 const data = { ...listQuery.value, - usageStatusList: [], + usageStatusList: [] as string[], } - // if ($props.needStatus) { - // statusType - // } + if ($props.needStatus) { + switch ($props.statusType) { + case '1': + data.usageStatusList = ['0', '1', '4'] + break + case '2': + data.usageStatusList = ['1', '3'] + break + case '3': + data.usageStatusList = ['0', '4'] + break + case '4': + data.usageStatusList = ['0', '1', '3', '4'] + break + case '5': + data.usageStatusList = ['0', '1'] + break + } + } getInfoListPage(data, '全部').then((response) => { list.value = response.data.rows total.value = parseInt(response.data.total) diff --git a/src/views/tested/device/info/components/detail.vue b/src/views/tested/device/info/components/detail.vue index 542a3a0..ee83bc9 100644 --- a/src/views/tested/device/info/components/detail.vue +++ b/src/views/tested/device/info/components/detail.vue @@ -94,6 +94,7 @@ const cancelForm = () => { baseRef.value.cancelForm() } +console.log(JSON.parse($route.query.row as string), 'row') @@ -140,7 +141,7 @@ - + diff --git a/src/views/tested/device/info/components/edit.vue b/src/views/tested/device/info/components/edit.vue index 19f9e65..6680670 100644 --- a/src/views/tested/device/info/components/edit.vue +++ b/src/views/tested/device/info/components/edit.vue @@ -490,7 +490,7 @@ - + diff --git a/src/views/tested/document/list/edit.vue b/src/views/tested/document/list/edit.vue index 2aa46c7..ea81bd0 100644 --- a/src/views/tested/document/list/edit.vue +++ b/src/views/tested/document/list/edit.vue @@ -40,7 +40,10 @@ const rules = ref({ fileName: [{ required: true, message: '文件名称必填', trigger: ['blur', 'change'] }], fileNo: [{ required: true, message: '文件号必填', trigger: ['blur', 'change'] }], - remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + fileType: [{ required: true, message: '文件类别必选', trigger: ['blur', 'change'] }], + implementationStatus: [{ required: true, message: '实施状态必选', trigger: ['blur', 'change'] }], + // remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + attachment: [{ required: true, message: '文件附件需上传', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +138,7 @@ fd.append('multipartFile', event.target.files[0]) uploadApi(fd).then((res) => { if (res.code === 200) { + ruleFormRef.value?.clearValidate('attachment') ruleForm.value.attachment = res.data[0] // 重置当前验证 ElMessage.success('文件上传成功') @@ -207,7 +211,7 @@ - + diff --git a/src/views/tested/document/list/index.vue b/src/views/tested/document/list/index.vue index 0ac7cf3..fea4112 100644 --- a/src/views/tested/document/list/index.vue +++ b/src/views/tested/document/list/index.vue @@ -3,6 +3,8 @@ import { reactive, ref } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' import { delDocument, getListPage } from '@/api/eqpt/document/index' +import { urlToBlob } from '@/utils/download' +import { getPhotoUrl } from '@/api/system/tool' const { proxy } = getCurrentInstance() as any const listQuery = reactive({ fileNo: '', @@ -112,8 +114,12 @@ }) } // 下载 -const download = () => { - +const download = (row: any) => { + // 获取文件地址 + // downloadFile + getPhotoUrl(row.attachment).then((res) => { + urlToBlob(res.data, row.fileName) + }) } @@ -149,7 +155,7 @@ 删除 - + 下载 diff --git a/src/views/tested/status/delay/components/list.vue b/src/views/tested/status/delay/components/list.vue index 69e664f..5603bf1 100644 --- a/src/views/tested/status/delay/components/list.vue +++ b/src/views/tested/status/delay/components/list.vue @@ -268,13 +268,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 @@ -304,7 +309,7 @@ 取消 删除 diff --git a/src/views/tested/subpackage/certificate/components/edit.vue b/src/views/tested/subpackage/certificate/components/edit.vue index abe1c68..b5c12c6 100644 --- a/src/views/tested/subpackage/certificate/components/edit.vue +++ b/src/views/tested/subpackage/certificate/components/edit.vue @@ -51,8 +51,10 @@ certificateName: [{ required: true, message: '证书名称必填', trigger: ['blur', 'change'] }], subcontractorNo: [{ required: true, message: '检测单位编号必填', trigger: ['blur', 'change'] }], equipmentNo: [{ required: true, message: '受检设备编号必填', trigger: ['blur', 'change'] }], - meterIdentify: [{ required: true, message: '计量标识必选', trigger: ['blur', 'change'] }], - originalRecord: [{ required: true, message: '原始记录附件需上传', trigger: ['blur', 'change'] }], + checkDate: [{ required: true, message: '检定(校准)日期必填', trigger: ['blur', 'change'] }], + // meterIdentify: [{ required: true, message: '计量标识必选', trigger: ['blur', 'change'] }], + // originalRecord: [{ required: true, message: '原始记录附件需上传', trigger: ['blur', 'change'] }], + certificateReport: [{ required: true, message: '证书报告附件需上传', trigger: ['blur', 'change'] }], certificateValid: [{ required: true, message: '证书有效期必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 @@ -149,8 +151,8 @@ // certificateReport originalRecord ruleForm.value[uploadFlag.value] = res.data[0] // 重置当前验证 - if (uploadFlag.value === 'originalRecord') { - ruleFormRef.value?.clearValidate('minioFileName') + if (uploadFlag.value === 'certificateReport') { + ruleFormRef.value?.clearValidate('certificateReport') } ElMessage.success('文件上传成功') diff --git a/src/views/tested/subpackage/certificate/index.vue b/src/views/tested/subpackage/certificate/index.vue index a99d6e8..563a579 100644 --- a/src/views/tested/subpackage/certificate/index.vue +++ b/src/views/tested/subpackage/certificate/index.vue @@ -125,6 +125,7 @@ } // 删除 const delHandler = (row: any) => { + console.log(row, 'row') ElMessageBox.confirm( '确认删除吗?', '确认', @@ -134,7 +135,7 @@ type: 'warning', }, ).then(() => { - deleteCertificate(row.id).then((res) => { + deleteCertificate(row).then((res) => { ElMessage.success('操作成功') search() }) diff --git a/src/views/tested/subpackage/directory/components/certificateTable.vue b/src/views/tested/subpackage/directory/components/certificateTable.vue index 8f89914..79b93b5 100644 --- a/src/views/tested/subpackage/directory/components/certificateTable.vue +++ b/src/views/tested/subpackage/directory/components/certificateTable.vue @@ -101,7 +101,7 @@ - + 增加行 diff --git a/src/views/tested/subpackage/directory/components/edit.vue b/src/views/tested/subpackage/directory/components/edit.vue index a92af02..c4e50ab 100644 --- a/src/views/tested/subpackage/directory/components/edit.vue +++ b/src/views/tested/subpackage/directory/components/edit.vue @@ -14,7 +14,7 @@ import { uploadApi } from '@/api/system/notice' import useUserStore from '@/store/modules/user' import { getUserDept } from '@/api/system/user' -import { cancelDirectory, editDirectory, getDetail, submitDirectory } from '@/api/eqpt/subpackage/directory' +import { cancelDirectory, deleteDirectory, editDirectory, getDetail, submitDirectory } from '@/api/eqpt/subpackage/directory' const $route = useRoute() const $router = useRouter() const userStore = useUserStore() @@ -79,27 +79,82 @@ const certificateList = ref() const radio = ref('基本信息') // 表单1验证规则 +const checkPhone = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^1[3456789]\d{9}$/.test(value))) { + callback(new Error('请输入正确手机号')) + } + else { + callback() + } +} +const checkEmail = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/.test(value))) { + callback(new Error('请输入正确邮箱')) + } + else { + callback() + } +} +const checkPostcode = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^[1-9]\d{5}$/.test(value))) { + callback(new Error('请输入正确邮编')) + } + else { + callback() + } +} +const checkFax = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^(\d{3,4}-)?\d{7,8}$/.test(value))) { + callback(new Error('请输入正确传真')) + } + else { + callback() + } +} +const checkBankNumber = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^(\d{3,4}-)?\d{7,8}$/.test(value))) { + callback(new Error('请输入正确传真')) + } + else { + callback() + } +} const rules = ref({ subcontractorNo: [{ required: true, message: '分包方编号必填', trigger: ['blur', 'change'] }], companyName: [{ required: true, message: '单位名称必填', trigger: ['blur', 'change'] }], - companySimpleName: [{ required: true, message: '单位简称必填', trigger: ['blur', 'change'] }], - businessContent: [{ required: true, message: '业务内容必填', trigger: ['blur', 'change'] }], - scale: [{ required: true, message: '规模必选', trigger: ['blur', 'change'] }], - businessScale: [{ required: true, message: '业务规模必选', trigger: ['blur', 'change'] }], - performanceRating: [{ required: true, message: '履约评级必选', trigger: ['blur', 'change'] }], - overallEvaluation: [{ required: true, message: '整体评价必选', trigger: ['blur', 'change'] }], - taxNumber: [{ required: true, message: '税号必填', trigger: ['blur', 'change'] }], - bankAccount: [{ required: true, message: '银行账户名必填', trigger: ['blur', 'change'] }], - bankNumber: [{ required: true, message: '银行账号必填', trigger: ['blur', 'change'] }], - postcode: [{ required: true, message: '邮编必填', trigger: ['blur', 'change'] }], - directorName: [{ required: true, message: '联系人必填', trigger: ['blur', 'change'] }], - contactNumber: [{ required: true, message: '联系电话必填', trigger: ['blur', 'change'] }], - fax: [{ required: true, message: '传真必填', trigger: ['blur', 'change'] }], - telephone: [{ required: true, message: '手机号必填', trigger: ['blur', 'change'] }], - email: [{ required: true, message: '邮箱必填', trigger: ['blur', 'change'] }], - address: [{ required: true, message: '地址必填', trigger: ['blur', 'change'] }], - invoiceAddress: [{ required: true, message: '开票用地址必填', trigger: ['blur', 'change'] }], - testAbility: [{ required: true, message: '测试能力必填', trigger: ['blur', 'change'] }], + // companySimpleName: [{ required: true, message: '单位简称必填', trigger: ['blur', 'change'] }], + // businessContent: [{ required: true, message: '业务内容必填', trigger: ['blur', 'change'] }], + // scale: [{ required: true, message: '规模必选', trigger: ['blur', 'change'] }], + // businessScale: [{ required: true, message: '业务规模必选', trigger: ['blur', 'change'] }], + // performanceRating: [{ required: true, message: '履约评级必选', trigger: ['blur', 'change'] }], + // overallEvaluation: [{ required: true, message: '整体评价必选', trigger: ['blur', 'change'] }], + // taxNumber: [{ required: true, message: '税号必填', trigger: ['blur', 'change'] }], + // bankAccount: [{ required: true, message: '银行账户名必填', trigger: ['blur', 'change'] }], + // bankNumber: [{ required: false, validator: checkEmail, trigger: ['blur', 'change'] }], + postcode: [{ required: false, validator: checkBankNumber, trigger: ['blur', 'change'] }], + // directorName: [{ required: true, message: '联系人必填', trigger: ['blur', 'change'] }], + // contactNumber: [{ required: true, message: '联系电话必填', trigger: ['blur', 'change'] }], + fax: [{ required: false, validator: checkFax, trigger: ['blur', 'change'] }], + telephone: [{ required: false, validator: checkPhone, trigger: ['blur', 'change'] }], + email: [{ required: false, validator: checkEmail, trigger: ['blur', 'change'] }], + // address: [{ required: true, message: '地址必填', trigger: ['blur', 'change'] }], + // invoiceAddress: [{ required: true, message: '开票用地址必填', trigger: ['blur', 'change'] }], + // testAbility: [{ required: true, message: '测试能力必填', trigger: ['blur', 'change'] }], }) // 获取下拉框数据 @@ -180,7 +235,7 @@ certificateList: [], // 分包证书 staffList: personRef.value.list, // 分包人员 } - editDirectory(data).then((res) => { + editDirectory(data, $route.query.statusName as string).then((res) => { submitId.value = res.data if (statusName === '已取消' || statusName === '未通过') { submitDirectory({ id: submitId.value, formId: SCHEDULE.SUBCONTRACTOR_APPROVAL }).then((res) => { @@ -188,6 +243,10 @@ close() }) } + if (statusName === '全部') { + ElMessage.success('保存成功') + close() + } else { ElMessage.success('保存成功') } @@ -240,7 +299,7 @@ type: 'warning', }, ).then(() => { - deleteDirectory({ id: ruleForm.value.id }).then((res) => { + deleteDirectory({ id: ruleForm.value.id }, $route.query.statusName as string).then((res) => { ElMessage.success('操作成功') close() }) @@ -315,7 +374,7 @@ 编辑 - + 提交 @@ -340,7 +399,8 @@ - + + @@ -514,6 +574,9 @@ + + + diff --git a/src/views/tested/subpackage/directory/components/list.vue b/src/views/tested/subpackage/directory/components/list.vue index 9014135..94984b0 100644 --- a/src/views/tested/subpackage/directory/components/list.vue +++ b/src/views/tested/subpackage/directory/components/list.vue @@ -163,7 +163,7 @@ type: 'warning', }, ).then(() => { - deleteDirectory({ id: row.id }).then((res) => { + deleteDirectory({ id: row.id }, $props.statusName).then((res) => { ElMessage.success('操作成功') search() }) @@ -261,6 +261,11 @@ :list-loading="listLoading" :is-showmulti-select="false" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/src/views/tested/MeasurementPlan/plan/components/list.vue b/src/views/tested/MeasurementPlan/plan/components/list.vue index ea18fd7..893e7d5 100644 --- a/src/views/tested/MeasurementPlan/plan/components/list.vue +++ b/src/views/tested/MeasurementPlan/plan/components/list.vue @@ -73,11 +73,6 @@ value: 'createTime', align: 'center', }, - { - text: '审批状态', - value: 'approvalStatusName', - align: 'center', - }, ]) const list = ref([]) const total = ref(0) @@ -284,13 +279,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index 6078532..c56b23f 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -63,14 +63,14 @@ const rules = ref({ deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], - customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, message: '电话必填', trigger: ['blur', 'change'] }], maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], - // undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], - // undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +135,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.list.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', @@ -251,7 +255,7 @@ - + diff --git a/src/views/tested/device/group/components/edit.vue b/src/views/tested/device/group/components/edit.vue index cf4e526..63d61c8 100644 --- a/src/views/tested/device/group/components/edit.vue +++ b/src/views/tested/device/group/components/edit.vue @@ -67,6 +67,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', diff --git a/src/views/tested/device/group/components/selectDevice.vue b/src/views/tested/device/group/components/selectDevice.vue index 659a406..6571938 100644 --- a/src/views/tested/device/group/components/selectDevice.vue +++ b/src/views/tested/device/group/components/selectDevice.vue @@ -97,11 +97,27 @@ // 判断是否需要加入设备使用状态查询条件 const data = { ...listQuery.value, - usageStatusList: [], + usageStatusList: [] as string[], } - // if ($props.needStatus) { - // statusType - // } + if ($props.needStatus) { + switch ($props.statusType) { + case '1': + data.usageStatusList = ['0', '1', '4'] + break + case '2': + data.usageStatusList = ['1', '3'] + break + case '3': + data.usageStatusList = ['0', '4'] + break + case '4': + data.usageStatusList = ['0', '1', '3', '4'] + break + case '5': + data.usageStatusList = ['0', '1'] + break + } + } getInfoListPage(data, '全部').then((response) => { list.value = response.data.rows total.value = parseInt(response.data.total) diff --git a/src/views/tested/device/info/components/detail.vue b/src/views/tested/device/info/components/detail.vue index 542a3a0..ee83bc9 100644 --- a/src/views/tested/device/info/components/detail.vue +++ b/src/views/tested/device/info/components/detail.vue @@ -94,6 +94,7 @@ const cancelForm = () => { baseRef.value.cancelForm() } +console.log(JSON.parse($route.query.row as string), 'row') @@ -140,7 +141,7 @@ - + diff --git a/src/views/tested/device/info/components/edit.vue b/src/views/tested/device/info/components/edit.vue index 19f9e65..6680670 100644 --- a/src/views/tested/device/info/components/edit.vue +++ b/src/views/tested/device/info/components/edit.vue @@ -490,7 +490,7 @@ - + diff --git a/src/views/tested/document/list/edit.vue b/src/views/tested/document/list/edit.vue index 2aa46c7..ea81bd0 100644 --- a/src/views/tested/document/list/edit.vue +++ b/src/views/tested/document/list/edit.vue @@ -40,7 +40,10 @@ const rules = ref({ fileName: [{ required: true, message: '文件名称必填', trigger: ['blur', 'change'] }], fileNo: [{ required: true, message: '文件号必填', trigger: ['blur', 'change'] }], - remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + fileType: [{ required: true, message: '文件类别必选', trigger: ['blur', 'change'] }], + implementationStatus: [{ required: true, message: '实施状态必选', trigger: ['blur', 'change'] }], + // remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + attachment: [{ required: true, message: '文件附件需上传', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +138,7 @@ fd.append('multipartFile', event.target.files[0]) uploadApi(fd).then((res) => { if (res.code === 200) { + ruleFormRef.value?.clearValidate('attachment') ruleForm.value.attachment = res.data[0] // 重置当前验证 ElMessage.success('文件上传成功') @@ -207,7 +211,7 @@ - + diff --git a/src/views/tested/document/list/index.vue b/src/views/tested/document/list/index.vue index 0ac7cf3..fea4112 100644 --- a/src/views/tested/document/list/index.vue +++ b/src/views/tested/document/list/index.vue @@ -3,6 +3,8 @@ import { reactive, ref } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' import { delDocument, getListPage } from '@/api/eqpt/document/index' +import { urlToBlob } from '@/utils/download' +import { getPhotoUrl } from '@/api/system/tool' const { proxy } = getCurrentInstance() as any const listQuery = reactive({ fileNo: '', @@ -112,8 +114,12 @@ }) } // 下载 -const download = () => { - +const download = (row: any) => { + // 获取文件地址 + // downloadFile + getPhotoUrl(row.attachment).then((res) => { + urlToBlob(res.data, row.fileName) + }) } @@ -149,7 +155,7 @@ 删除 - + 下载 diff --git a/src/views/tested/status/delay/components/list.vue b/src/views/tested/status/delay/components/list.vue index 69e664f..5603bf1 100644 --- a/src/views/tested/status/delay/components/list.vue +++ b/src/views/tested/status/delay/components/list.vue @@ -268,13 +268,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 @@ -304,7 +309,7 @@ 取消 删除 diff --git a/src/views/tested/subpackage/certificate/components/edit.vue b/src/views/tested/subpackage/certificate/components/edit.vue index abe1c68..b5c12c6 100644 --- a/src/views/tested/subpackage/certificate/components/edit.vue +++ b/src/views/tested/subpackage/certificate/components/edit.vue @@ -51,8 +51,10 @@ certificateName: [{ required: true, message: '证书名称必填', trigger: ['blur', 'change'] }], subcontractorNo: [{ required: true, message: '检测单位编号必填', trigger: ['blur', 'change'] }], equipmentNo: [{ required: true, message: '受检设备编号必填', trigger: ['blur', 'change'] }], - meterIdentify: [{ required: true, message: '计量标识必选', trigger: ['blur', 'change'] }], - originalRecord: [{ required: true, message: '原始记录附件需上传', trigger: ['blur', 'change'] }], + checkDate: [{ required: true, message: '检定(校准)日期必填', trigger: ['blur', 'change'] }], + // meterIdentify: [{ required: true, message: '计量标识必选', trigger: ['blur', 'change'] }], + // originalRecord: [{ required: true, message: '原始记录附件需上传', trigger: ['blur', 'change'] }], + certificateReport: [{ required: true, message: '证书报告附件需上传', trigger: ['blur', 'change'] }], certificateValid: [{ required: true, message: '证书有效期必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 @@ -149,8 +151,8 @@ // certificateReport originalRecord ruleForm.value[uploadFlag.value] = res.data[0] // 重置当前验证 - if (uploadFlag.value === 'originalRecord') { - ruleFormRef.value?.clearValidate('minioFileName') + if (uploadFlag.value === 'certificateReport') { + ruleFormRef.value?.clearValidate('certificateReport') } ElMessage.success('文件上传成功') diff --git a/src/views/tested/subpackage/certificate/index.vue b/src/views/tested/subpackage/certificate/index.vue index a99d6e8..563a579 100644 --- a/src/views/tested/subpackage/certificate/index.vue +++ b/src/views/tested/subpackage/certificate/index.vue @@ -125,6 +125,7 @@ } // 删除 const delHandler = (row: any) => { + console.log(row, 'row') ElMessageBox.confirm( '确认删除吗?', '确认', @@ -134,7 +135,7 @@ type: 'warning', }, ).then(() => { - deleteCertificate(row.id).then((res) => { + deleteCertificate(row).then((res) => { ElMessage.success('操作成功') search() }) diff --git a/src/views/tested/subpackage/directory/components/certificateTable.vue b/src/views/tested/subpackage/directory/components/certificateTable.vue index 8f89914..79b93b5 100644 --- a/src/views/tested/subpackage/directory/components/certificateTable.vue +++ b/src/views/tested/subpackage/directory/components/certificateTable.vue @@ -101,7 +101,7 @@ - + 增加行 diff --git a/src/views/tested/subpackage/directory/components/edit.vue b/src/views/tested/subpackage/directory/components/edit.vue index a92af02..c4e50ab 100644 --- a/src/views/tested/subpackage/directory/components/edit.vue +++ b/src/views/tested/subpackage/directory/components/edit.vue @@ -14,7 +14,7 @@ import { uploadApi } from '@/api/system/notice' import useUserStore from '@/store/modules/user' import { getUserDept } from '@/api/system/user' -import { cancelDirectory, editDirectory, getDetail, submitDirectory } from '@/api/eqpt/subpackage/directory' +import { cancelDirectory, deleteDirectory, editDirectory, getDetail, submitDirectory } from '@/api/eqpt/subpackage/directory' const $route = useRoute() const $router = useRouter() const userStore = useUserStore() @@ -79,27 +79,82 @@ const certificateList = ref() const radio = ref('基本信息') // 表单1验证规则 +const checkPhone = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^1[3456789]\d{9}$/.test(value))) { + callback(new Error('请输入正确手机号')) + } + else { + callback() + } +} +const checkEmail = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/.test(value))) { + callback(new Error('请输入正确邮箱')) + } + else { + callback() + } +} +const checkPostcode = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^[1-9]\d{5}$/.test(value))) { + callback(new Error('请输入正确邮编')) + } + else { + callback() + } +} +const checkFax = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^(\d{3,4}-)?\d{7,8}$/.test(value))) { + callback(new Error('请输入正确传真')) + } + else { + callback() + } +} +const checkBankNumber = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^(\d{3,4}-)?\d{7,8}$/.test(value))) { + callback(new Error('请输入正确传真')) + } + else { + callback() + } +} const rules = ref({ subcontractorNo: [{ required: true, message: '分包方编号必填', trigger: ['blur', 'change'] }], companyName: [{ required: true, message: '单位名称必填', trigger: ['blur', 'change'] }], - companySimpleName: [{ required: true, message: '单位简称必填', trigger: ['blur', 'change'] }], - businessContent: [{ required: true, message: '业务内容必填', trigger: ['blur', 'change'] }], - scale: [{ required: true, message: '规模必选', trigger: ['blur', 'change'] }], - businessScale: [{ required: true, message: '业务规模必选', trigger: ['blur', 'change'] }], - performanceRating: [{ required: true, message: '履约评级必选', trigger: ['blur', 'change'] }], - overallEvaluation: [{ required: true, message: '整体评价必选', trigger: ['blur', 'change'] }], - taxNumber: [{ required: true, message: '税号必填', trigger: ['blur', 'change'] }], - bankAccount: [{ required: true, message: '银行账户名必填', trigger: ['blur', 'change'] }], - bankNumber: [{ required: true, message: '银行账号必填', trigger: ['blur', 'change'] }], - postcode: [{ required: true, message: '邮编必填', trigger: ['blur', 'change'] }], - directorName: [{ required: true, message: '联系人必填', trigger: ['blur', 'change'] }], - contactNumber: [{ required: true, message: '联系电话必填', trigger: ['blur', 'change'] }], - fax: [{ required: true, message: '传真必填', trigger: ['blur', 'change'] }], - telephone: [{ required: true, message: '手机号必填', trigger: ['blur', 'change'] }], - email: [{ required: true, message: '邮箱必填', trigger: ['blur', 'change'] }], - address: [{ required: true, message: '地址必填', trigger: ['blur', 'change'] }], - invoiceAddress: [{ required: true, message: '开票用地址必填', trigger: ['blur', 'change'] }], - testAbility: [{ required: true, message: '测试能力必填', trigger: ['blur', 'change'] }], + // companySimpleName: [{ required: true, message: '单位简称必填', trigger: ['blur', 'change'] }], + // businessContent: [{ required: true, message: '业务内容必填', trigger: ['blur', 'change'] }], + // scale: [{ required: true, message: '规模必选', trigger: ['blur', 'change'] }], + // businessScale: [{ required: true, message: '业务规模必选', trigger: ['blur', 'change'] }], + // performanceRating: [{ required: true, message: '履约评级必选', trigger: ['blur', 'change'] }], + // overallEvaluation: [{ required: true, message: '整体评价必选', trigger: ['blur', 'change'] }], + // taxNumber: [{ required: true, message: '税号必填', trigger: ['blur', 'change'] }], + // bankAccount: [{ required: true, message: '银行账户名必填', trigger: ['blur', 'change'] }], + // bankNumber: [{ required: false, validator: checkEmail, trigger: ['blur', 'change'] }], + postcode: [{ required: false, validator: checkBankNumber, trigger: ['blur', 'change'] }], + // directorName: [{ required: true, message: '联系人必填', trigger: ['blur', 'change'] }], + // contactNumber: [{ required: true, message: '联系电话必填', trigger: ['blur', 'change'] }], + fax: [{ required: false, validator: checkFax, trigger: ['blur', 'change'] }], + telephone: [{ required: false, validator: checkPhone, trigger: ['blur', 'change'] }], + email: [{ required: false, validator: checkEmail, trigger: ['blur', 'change'] }], + // address: [{ required: true, message: '地址必填', trigger: ['blur', 'change'] }], + // invoiceAddress: [{ required: true, message: '开票用地址必填', trigger: ['blur', 'change'] }], + // testAbility: [{ required: true, message: '测试能力必填', trigger: ['blur', 'change'] }], }) // 获取下拉框数据 @@ -180,7 +235,7 @@ certificateList: [], // 分包证书 staffList: personRef.value.list, // 分包人员 } - editDirectory(data).then((res) => { + editDirectory(data, $route.query.statusName as string).then((res) => { submitId.value = res.data if (statusName === '已取消' || statusName === '未通过') { submitDirectory({ id: submitId.value, formId: SCHEDULE.SUBCONTRACTOR_APPROVAL }).then((res) => { @@ -188,6 +243,10 @@ close() }) } + if (statusName === '全部') { + ElMessage.success('保存成功') + close() + } else { ElMessage.success('保存成功') } @@ -240,7 +299,7 @@ type: 'warning', }, ).then(() => { - deleteDirectory({ id: ruleForm.value.id }).then((res) => { + deleteDirectory({ id: ruleForm.value.id }, $route.query.statusName as string).then((res) => { ElMessage.success('操作成功') close() }) @@ -315,7 +374,7 @@ 编辑 - + 提交 @@ -340,7 +399,8 @@ - + + @@ -514,6 +574,9 @@ + + + diff --git a/src/views/tested/subpackage/directory/components/list.vue b/src/views/tested/subpackage/directory/components/list.vue index 9014135..94984b0 100644 --- a/src/views/tested/subpackage/directory/components/list.vue +++ b/src/views/tested/subpackage/directory/components/list.vue @@ -163,7 +163,7 @@ type: 'warning', }, ).then(() => { - deleteDirectory({ id: row.id }).then((res) => { + deleteDirectory({ id: row.id }, $props.statusName).then((res) => { ElMessage.success('操作成功') search() }) @@ -261,6 +261,11 @@ :list-loading="listLoading" :is-showmulti-select="false" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + diff --git a/src/views/tested/subpackage/review/components/edit.vue b/src/views/tested/subpackage/review/components/edit.vue index 1e9693d..1f9b402 100644 --- a/src/views/tested/subpackage/review/components/edit.vue +++ b/src/views/tested/subpackage/review/components/edit.vue @@ -71,6 +71,12 @@ predictStartTime: [{ required: true, message: '预计开始时间必选', trigger: ['blur', 'change'] }], predictEndTime: [{ required: true, message: '预计结束时间必选', trigger: ['blur', 'change'] }], subcontractReason: [{ required: true, message: '分包原因必选', trigger: ['blur', 'change'] }], + contact: [{ required: true, message: '联系人必填', trigger: ['blur', 'change'] }], + contactNumber: [{ required: true, message: '联系电话必填', trigger: ['blur', 'change'] }], + labAccreditation: [{ required: true, message: '实验室认可情况必填', trigger: ['blur', 'change'] }], + traceability: [{ required: true, message: '溯源性必填', trigger: ['blur', 'change'] }], + testMethod: [{ required: true, message: '测试方法必填', trigger: ['blur', 'change'] }], + technicalAbility: [{ required: true, message: '技术能力必填', trigger: ['blur', 'change'] }], }) // 获取下拉框数据 @@ -304,7 +310,7 @@ diff --git a/.env.development b/.env.development index 35bd2f1..52b6555 100644 --- a/.env.development +++ b/.env.development @@ -2,8 +2,8 @@ VITE_APP_TITLE = 计量信息系统 # 接口请求地址,会设置到 axios 的 baseURL 参数上 # VITE_APP_API_BASEURL = http://139.198.29.133:8089 -# VITE_APP_API_BASEURL = http://111.198.10.15:21611 -VITE_APP_API_BASEURL = http://192.168.8.107:5909 +VITE_APP_API_BASEURL = http://111.198.10.15:21611 +# VITE_APP_API_BASEURL = http://192.168.8.107:5909 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 VITE_APP_DEBUG_TOOL = diff --git a/public/config/config.json b/public/config/config.json index 0127d2f..3bd0a89 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,4 +1,4 @@ { "title":"计量业务系统", - "baseUrl": "http://192.168.8.107:5909" + "baseUrl": "http://111.198.10.15:21611" } diff --git a/src/api/approval.ts b/src/api/approval.ts new file mode 100644 index 0000000..3a4f688 --- /dev/null +++ b/src/api/approval.ts @@ -0,0 +1,18 @@ +// 审批接口 +import request from './index' + +// 设备审批记录 +export function fetchApprovalDevice(params: object) { + return request({ + url: '/equipment/approval/equipmentLog', + method: 'get', + params, + }) +} +export function fetchApproval(params: object) { + return request({ + url: '/approval/operate/approvalLog', + method: 'get', + params, + }) +} diff --git a/src/api/eqpt/subpackage/directory.ts b/src/api/eqpt/subpackage/directory.ts index e1bbc12..c4066d0 100644 --- a/src/api/eqpt/subpackage/directory.ts +++ b/src/api/eqpt/subpackage/directory.ts @@ -2,7 +2,7 @@ * 分包名录管理接口 */ import request from '@/api/index' - +const $route = useRoute() // 不同状态列表分页 export function getListPage(params: object, statusName: string) { if (statusName === '全部') { @@ -43,12 +43,22 @@ }) } // 保存编辑 -export function editDirectory(data: object) { - return request({ - url: '/subcontractor/approval/saveOrUpdate', - method: 'post', - data, - }) +export function editDirectory(data: object, type: string) { + console.log($route, 'route') + if (type === '全部' && window.location.href.includes('update')) { + return request({ + url: '/subcontractor/update', + method: 'post', + data, + }) + } + else { + return request({ + url: '/subcontractor/approval/saveOrUpdate', + method: 'post', + data, + }) + } } // 提交 export function submitDirectory(data: object) { @@ -59,11 +69,19 @@ }) } // 删除记录 -export function deleteDirectory(data: object) { - return request({ - url: `/subcontractor/remove?id=${data.id}`, - method: 'post', - }) +export function deleteDirectory(data: object, type: string) { + if (type === '全部') { + return request({ + url: `/subcontractor/remove?id=${data.id}`, + method: 'post', + }) + } + else { + return request({ + url: `/subcontractor/approval/delete?id=${data.id}`, + method: 'post', + }) + } } // 取消 export function cancelDirectory(data: object) { diff --git a/src/components.d.ts b/src/components.d.ts index ace8c08..bb75c7a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,6 +13,8 @@ AppContainer: typeof import('./components/AppContainer/index.vue')['default'] ApprovalDialog: typeof import('./components/Approval/ApprovalDialog.vue')['default'] ApprovalRecord: typeof import('./components/ApprovalRecord/ApprovalRecord.vue')['default'] + ApprovalRecordTable: typeof import('./components/ApprovalRecord/ApprovalRecordTable.vue')['default'] + ApprovalRecordTableDevice: typeof import('./components/ApprovalRecord/ApprovalRecordTableDevice.vue')['default'] ApproverDrawer: typeof import('./components/drawer/approverDrawer.vue')['default'] Auth: typeof import('./components/Auth/index.vue')['default'] AuthAll: typeof import('./components/AuthAll/index.vue')['default'] diff --git a/src/components/ApprovalRecord/ApprovalRecordTable.vue b/src/components/ApprovalRecord/ApprovalRecordTable.vue new file mode 100644 index 0000000..fb29223 --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTable.vue @@ -0,0 +1,158 @@ + + + + + + + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + diff --git a/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue new file mode 100644 index 0000000..8e2887a --- /dev/null +++ b/src/components/ApprovalRecord/ApprovalRecordTableDevice.vue @@ -0,0 +1,173 @@ + + + + + + + + 审批类型:{{ item.approvalTypeName }} + + + + {{ scope.row.nodeNumber + 1 }} + + + + + + + diff --git a/src/components/ApprovalRecord/approval-interface.ts b/src/components/ApprovalRecord/approval-interface.ts new file mode 100644 index 0000000..b950897 --- /dev/null +++ b/src/components/ApprovalRecord/approval-interface.ts @@ -0,0 +1,12 @@ +export interface IList { + assigneeName: string // 审批人姓名 + cindex?: number + type: string // 状态 + finishTime: string // 审批时间 + comment: string // 审批意见 + nodeNumber: number // 节点号 + approvalStatus: string // 审批类型 + duration: string // 用时 + approvalLogs?: any[] + approvalLogsList?: any[] +} diff --git a/src/views/tested/MeasurementPlan/early/components/detail.vue b/src/views/tested/MeasurementPlan/early/components/detail.vue index e4e2a22..f310a7e 100644 --- a/src/views/tested/MeasurementPlan/early/components/detail.vue +++ b/src/views/tested/MeasurementPlan/early/components/detail.vue @@ -101,6 +101,7 @@ + diff --git a/src/views/tested/MeasurementPlan/early/components/list.vue b/src/views/tested/MeasurementPlan/early/components/list.vue index 717ed4d..8d313ea 100644 --- a/src/views/tested/MeasurementPlan/early/components/list.vue +++ b/src/views/tested/MeasurementPlan/early/components/list.vue @@ -279,7 +279,7 @@ - {{ scope.row.approvalStatus }} + {{ scope.row.approvalStatusName }} @@ -288,7 +288,7 @@ 查看 编辑 @@ -318,7 +318,7 @@ 取消 删除 diff --git a/src/views/tested/MeasurementPlan/plan/components/detail.vue b/src/views/tested/MeasurementPlan/plan/components/detail.vue index 835df8b..80d63db 100644 --- a/src/views/tested/MeasurementPlan/plan/components/detail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/detail.vue @@ -120,7 +120,8 @@ - + + diff --git a/src/views/tested/MeasurementPlan/plan/components/edit.vue b/src/views/tested/MeasurementPlan/plan/components/edit.vue index df1d62b..567362e 100644 --- a/src/views/tested/MeasurementPlan/plan/components/edit.vue +++ b/src/views/tested/MeasurementPlan/plan/components/edit.vue @@ -77,17 +77,9 @@ } } else { - // 基本信息 const data = JSON.parse($route.query.row as string) + ruleForm.value.year = String(currentYear.value) typeFlag.value = data.planType - ruleForm.value = { - ...data, - equipmentIds: [], - } - // 获取计划列表 - getInfoList(data.id, '').then((res) => { - ruleForm.value.equipmentIds = res.data - }) // 判断是否追加计划 if ($route.query.append) { // 修改计量计划为追加 @@ -97,7 +89,20 @@ ruleForm.value.createUserName = userStore.name ruleForm.value.createDeptId = userStore.deptId ruleForm.value.createDeptName = userStore.deptName + if (typeFlag.value === '0') { + ruleForm.value.planName = '2023年年度计量计划' + } + return } + // 基本信息 + ruleForm.value = { + ...data, + equipmentIds: [], + } + // 获取计划列表 + getInfoList(data.id, '').then((res) => { + ruleForm.value.equipmentIds = res.data + }) // detailPlan(data.id).then((res) => { // // ruleForm.value = res.data // console.log(res.data, '基本信息') @@ -137,11 +142,11 @@ type: 'warning', }, ).then((_res) => { - if ($route.query.category as string === 'season') { + if ($route.query.category as string === 'season' || typeFlag.value === '1') { ruleForm.value.planName = `${currentYear.value}年第${ruleForm.value.season}季度计量计划` ruleForm.value.planType = '1' } - else if ($route.query.category as string === 'month') { + else if ($route.query.category as string === 'month' || typeFlag.value === '2') { ruleForm.value.planName = `${currentYear.value}年${ruleForm.value.month}月月度计量计划` ruleForm.value.planType = '2' } @@ -302,10 +307,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 diff --git a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue index 0e5d0af..e7c3cd2 100644 --- a/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue +++ b/src/views/tested/MeasurementPlan/plan/components/infoDetail.vue @@ -65,10 +65,10 @@ - {{ currentYear }}年第 季度计量计划 + {{ currentYear }}年第 季度计量计划 - {{ currentYear }}年 月月度计量计划 + {{ currentYear }}年 月月度计量计划 @@ -93,8 +93,8 @@ diff --git a/src/views/tested/MeasurementPlan/plan/components/list.vue b/src/views/tested/MeasurementPlan/plan/components/list.vue index ea18fd7..893e7d5 100644 --- a/src/views/tested/MeasurementPlan/plan/components/list.vue +++ b/src/views/tested/MeasurementPlan/plan/components/list.vue @@ -73,11 +73,6 @@ value: 'createTime', align: 'center', }, - { - text: '审批状态', - value: 'approvalStatusName', - align: 'center', - }, ]) const list = ref([]) const total = ref(0) @@ -284,13 +279,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 diff --git a/src/views/tested/MeasurementPlan/task/components/edit.vue b/src/views/tested/MeasurementPlan/task/components/edit.vue index 6078532..c56b23f 100644 --- a/src/views/tested/MeasurementPlan/task/components/edit.vue +++ b/src/views/tested/MeasurementPlan/task/components/edit.vue @@ -63,14 +63,14 @@ const rules = ref({ deliverer: [{ required: true, message: '送检人必填', trigger: ['blur', 'change'] }], customerAddress: [{ required: true, message: '委托方地址必填', trigger: ['blur', 'change'] }], - customerPhone: [{ required: true, validator: checkPhone, trigger: ['blur', 'change'] }], + customerPhone: [{ required: true, message: '电话必填', trigger: ['blur', 'change'] }], maintainMajor: [{ required: true, message: '检修专业必填', trigger: ['blur', 'change'] }], planDeliverTime: [{ required: true, message: '预计送达时间必选', trigger: ['blur', 'change'] }], requireOverTime: [{ required: true, message: '要求检完时间必选', trigger: ['blur', 'change'] }], isUrgent: [{ required: true, message: '是否加急必选', trigger: ['blur', 'change'] }], measureCompany: [{ required: true, message: '检定(校准)单位必填', trigger: ['blur', 'change'] }], - // undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], - // undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], + undertakerName: [{ required: true, message: '承接人必填', trigger: ['blur', 'change'] }], + undertakeTime: [{ required: true, message: '承接时间必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +135,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.list.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', @@ -251,7 +255,7 @@ - + diff --git a/src/views/tested/device/group/components/edit.vue b/src/views/tested/device/group/components/edit.vue index cf4e526..63d61c8 100644 --- a/src/views/tested/device/group/components/edit.vue +++ b/src/views/tested/device/group/components/edit.vue @@ -67,6 +67,10 @@ if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid && tableRef.value.checkCertificateList()) { + if (!tableRef.value.length) { + ElMessage.warning('请先选择设备') + return + } ElMessageBox.confirm( '确认保存吗?', '提示', diff --git a/src/views/tested/device/group/components/selectDevice.vue b/src/views/tested/device/group/components/selectDevice.vue index 659a406..6571938 100644 --- a/src/views/tested/device/group/components/selectDevice.vue +++ b/src/views/tested/device/group/components/selectDevice.vue @@ -97,11 +97,27 @@ // 判断是否需要加入设备使用状态查询条件 const data = { ...listQuery.value, - usageStatusList: [], + usageStatusList: [] as string[], } - // if ($props.needStatus) { - // statusType - // } + if ($props.needStatus) { + switch ($props.statusType) { + case '1': + data.usageStatusList = ['0', '1', '4'] + break + case '2': + data.usageStatusList = ['1', '3'] + break + case '3': + data.usageStatusList = ['0', '4'] + break + case '4': + data.usageStatusList = ['0', '1', '3', '4'] + break + case '5': + data.usageStatusList = ['0', '1'] + break + } + } getInfoListPage(data, '全部').then((response) => { list.value = response.data.rows total.value = parseInt(response.data.total) diff --git a/src/views/tested/device/info/components/detail.vue b/src/views/tested/device/info/components/detail.vue index 542a3a0..ee83bc9 100644 --- a/src/views/tested/device/info/components/detail.vue +++ b/src/views/tested/device/info/components/detail.vue @@ -94,6 +94,7 @@ const cancelForm = () => { baseRef.value.cancelForm() } +console.log(JSON.parse($route.query.row as string), 'row') @@ -140,7 +141,7 @@ - + diff --git a/src/views/tested/device/info/components/edit.vue b/src/views/tested/device/info/components/edit.vue index 19f9e65..6680670 100644 --- a/src/views/tested/device/info/components/edit.vue +++ b/src/views/tested/device/info/components/edit.vue @@ -490,7 +490,7 @@ - + diff --git a/src/views/tested/document/list/edit.vue b/src/views/tested/document/list/edit.vue index 2aa46c7..ea81bd0 100644 --- a/src/views/tested/document/list/edit.vue +++ b/src/views/tested/document/list/edit.vue @@ -40,7 +40,10 @@ const rules = ref({ fileName: [{ required: true, message: '文件名称必填', trigger: ['blur', 'change'] }], fileNo: [{ required: true, message: '文件号必填', trigger: ['blur', 'change'] }], - remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + fileType: [{ required: true, message: '文件类别必选', trigger: ['blur', 'change'] }], + implementationStatus: [{ required: true, message: '实施状态必选', trigger: ['blur', 'change'] }], + // remark: [{ required: true, message: '备注必填', trigger: ['blur', 'change'] }], + attachment: [{ required: true, message: '文件附件需上传', trigger: ['blur', 'change'] }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { @@ -135,6 +138,7 @@ fd.append('multipartFile', event.target.files[0]) uploadApi(fd).then((res) => { if (res.code === 200) { + ruleFormRef.value?.clearValidate('attachment') ruleForm.value.attachment = res.data[0] // 重置当前验证 ElMessage.success('文件上传成功') @@ -207,7 +211,7 @@ - + diff --git a/src/views/tested/document/list/index.vue b/src/views/tested/document/list/index.vue index 0ac7cf3..fea4112 100644 --- a/src/views/tested/document/list/index.vue +++ b/src/views/tested/document/list/index.vue @@ -3,6 +3,8 @@ import { reactive, ref } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' import { delDocument, getListPage } from '@/api/eqpt/document/index' +import { urlToBlob } from '@/utils/download' +import { getPhotoUrl } from '@/api/system/tool' const { proxy } = getCurrentInstance() as any const listQuery = reactive({ fileNo: '', @@ -112,8 +114,12 @@ }) } // 下载 -const download = () => { - +const download = (row: any) => { + // 获取文件地址 + // downloadFile + getPhotoUrl(row.attachment).then((res) => { + urlToBlob(res.data, row.fileName) + }) } @@ -149,7 +155,7 @@ 删除 - + 下载 diff --git a/src/views/tested/status/delay/components/list.vue b/src/views/tested/status/delay/components/list.vue index 69e664f..5603bf1 100644 --- a/src/views/tested/status/delay/components/list.vue +++ b/src/views/tested/status/delay/components/list.vue @@ -268,13 +268,18 @@ :list-loading="listLoading" :is-showmulti-select="true" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 @@ -304,7 +309,7 @@ 取消 删除 diff --git a/src/views/tested/subpackage/certificate/components/edit.vue b/src/views/tested/subpackage/certificate/components/edit.vue index abe1c68..b5c12c6 100644 --- a/src/views/tested/subpackage/certificate/components/edit.vue +++ b/src/views/tested/subpackage/certificate/components/edit.vue @@ -51,8 +51,10 @@ certificateName: [{ required: true, message: '证书名称必填', trigger: ['blur', 'change'] }], subcontractorNo: [{ required: true, message: '检测单位编号必填', trigger: ['blur', 'change'] }], equipmentNo: [{ required: true, message: '受检设备编号必填', trigger: ['blur', 'change'] }], - meterIdentify: [{ required: true, message: '计量标识必选', trigger: ['blur', 'change'] }], - originalRecord: [{ required: true, message: '原始记录附件需上传', trigger: ['blur', 'change'] }], + checkDate: [{ required: true, message: '检定(校准)日期必填', trigger: ['blur', 'change'] }], + // meterIdentify: [{ required: true, message: '计量标识必选', trigger: ['blur', 'change'] }], + // originalRecord: [{ required: true, message: '原始记录附件需上传', trigger: ['blur', 'change'] }], + certificateReport: [{ required: true, message: '证书报告附件需上传', trigger: ['blur', 'change'] }], certificateValid: [{ required: true, message: '证书有效期必选', trigger: ['blur', 'change'] }], }) // 表单验证规则 @@ -149,8 +151,8 @@ // certificateReport originalRecord ruleForm.value[uploadFlag.value] = res.data[0] // 重置当前验证 - if (uploadFlag.value === 'originalRecord') { - ruleFormRef.value?.clearValidate('minioFileName') + if (uploadFlag.value === 'certificateReport') { + ruleFormRef.value?.clearValidate('certificateReport') } ElMessage.success('文件上传成功') diff --git a/src/views/tested/subpackage/certificate/index.vue b/src/views/tested/subpackage/certificate/index.vue index a99d6e8..563a579 100644 --- a/src/views/tested/subpackage/certificate/index.vue +++ b/src/views/tested/subpackage/certificate/index.vue @@ -125,6 +125,7 @@ } // 删除 const delHandler = (row: any) => { + console.log(row, 'row') ElMessageBox.confirm( '确认删除吗?', '确认', @@ -134,7 +135,7 @@ type: 'warning', }, ).then(() => { - deleteCertificate(row.id).then((res) => { + deleteCertificate(row).then((res) => { ElMessage.success('操作成功') search() }) diff --git a/src/views/tested/subpackage/directory/components/certificateTable.vue b/src/views/tested/subpackage/directory/components/certificateTable.vue index 8f89914..79b93b5 100644 --- a/src/views/tested/subpackage/directory/components/certificateTable.vue +++ b/src/views/tested/subpackage/directory/components/certificateTable.vue @@ -101,7 +101,7 @@ - + 增加行 diff --git a/src/views/tested/subpackage/directory/components/edit.vue b/src/views/tested/subpackage/directory/components/edit.vue index a92af02..c4e50ab 100644 --- a/src/views/tested/subpackage/directory/components/edit.vue +++ b/src/views/tested/subpackage/directory/components/edit.vue @@ -14,7 +14,7 @@ import { uploadApi } from '@/api/system/notice' import useUserStore from '@/store/modules/user' import { getUserDept } from '@/api/system/user' -import { cancelDirectory, editDirectory, getDetail, submitDirectory } from '@/api/eqpt/subpackage/directory' +import { cancelDirectory, deleteDirectory, editDirectory, getDetail, submitDirectory } from '@/api/eqpt/subpackage/directory' const $route = useRoute() const $router = useRouter() const userStore = useUserStore() @@ -79,27 +79,82 @@ const certificateList = ref() const radio = ref('基本信息') // 表单1验证规则 +const checkPhone = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^1[3456789]\d{9}$/.test(value))) { + callback(new Error('请输入正确手机号')) + } + else { + callback() + } +} +const checkEmail = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/.test(value))) { + callback(new Error('请输入正确邮箱')) + } + else { + callback() + } +} +const checkPostcode = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^[1-9]\d{5}$/.test(value))) { + callback(new Error('请输入正确邮编')) + } + else { + callback() + } +} +const checkFax = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^(\d{3,4}-)?\d{7,8}$/.test(value))) { + callback(new Error('请输入正确传真')) + } + else { + callback() + } +} +const checkBankNumber = (rule: any, value: any, callback: any) => { + if (value === '') { + callback() + } + else if (!(/^(\d{3,4}-)?\d{7,8}$/.test(value))) { + callback(new Error('请输入正确传真')) + } + else { + callback() + } +} const rules = ref({ subcontractorNo: [{ required: true, message: '分包方编号必填', trigger: ['blur', 'change'] }], companyName: [{ required: true, message: '单位名称必填', trigger: ['blur', 'change'] }], - companySimpleName: [{ required: true, message: '单位简称必填', trigger: ['blur', 'change'] }], - businessContent: [{ required: true, message: '业务内容必填', trigger: ['blur', 'change'] }], - scale: [{ required: true, message: '规模必选', trigger: ['blur', 'change'] }], - businessScale: [{ required: true, message: '业务规模必选', trigger: ['blur', 'change'] }], - performanceRating: [{ required: true, message: '履约评级必选', trigger: ['blur', 'change'] }], - overallEvaluation: [{ required: true, message: '整体评价必选', trigger: ['blur', 'change'] }], - taxNumber: [{ required: true, message: '税号必填', trigger: ['blur', 'change'] }], - bankAccount: [{ required: true, message: '银行账户名必填', trigger: ['blur', 'change'] }], - bankNumber: [{ required: true, message: '银行账号必填', trigger: ['blur', 'change'] }], - postcode: [{ required: true, message: '邮编必填', trigger: ['blur', 'change'] }], - directorName: [{ required: true, message: '联系人必填', trigger: ['blur', 'change'] }], - contactNumber: [{ required: true, message: '联系电话必填', trigger: ['blur', 'change'] }], - fax: [{ required: true, message: '传真必填', trigger: ['blur', 'change'] }], - telephone: [{ required: true, message: '手机号必填', trigger: ['blur', 'change'] }], - email: [{ required: true, message: '邮箱必填', trigger: ['blur', 'change'] }], - address: [{ required: true, message: '地址必填', trigger: ['blur', 'change'] }], - invoiceAddress: [{ required: true, message: '开票用地址必填', trigger: ['blur', 'change'] }], - testAbility: [{ required: true, message: '测试能力必填', trigger: ['blur', 'change'] }], + // companySimpleName: [{ required: true, message: '单位简称必填', trigger: ['blur', 'change'] }], + // businessContent: [{ required: true, message: '业务内容必填', trigger: ['blur', 'change'] }], + // scale: [{ required: true, message: '规模必选', trigger: ['blur', 'change'] }], + // businessScale: [{ required: true, message: '业务规模必选', trigger: ['blur', 'change'] }], + // performanceRating: [{ required: true, message: '履约评级必选', trigger: ['blur', 'change'] }], + // overallEvaluation: [{ required: true, message: '整体评价必选', trigger: ['blur', 'change'] }], + // taxNumber: [{ required: true, message: '税号必填', trigger: ['blur', 'change'] }], + // bankAccount: [{ required: true, message: '银行账户名必填', trigger: ['blur', 'change'] }], + // bankNumber: [{ required: false, validator: checkEmail, trigger: ['blur', 'change'] }], + postcode: [{ required: false, validator: checkBankNumber, trigger: ['blur', 'change'] }], + // directorName: [{ required: true, message: '联系人必填', trigger: ['blur', 'change'] }], + // contactNumber: [{ required: true, message: '联系电话必填', trigger: ['blur', 'change'] }], + fax: [{ required: false, validator: checkFax, trigger: ['blur', 'change'] }], + telephone: [{ required: false, validator: checkPhone, trigger: ['blur', 'change'] }], + email: [{ required: false, validator: checkEmail, trigger: ['blur', 'change'] }], + // address: [{ required: true, message: '地址必填', trigger: ['blur', 'change'] }], + // invoiceAddress: [{ required: true, message: '开票用地址必填', trigger: ['blur', 'change'] }], + // testAbility: [{ required: true, message: '测试能力必填', trigger: ['blur', 'change'] }], }) // 获取下拉框数据 @@ -180,7 +235,7 @@ certificateList: [], // 分包证书 staffList: personRef.value.list, // 分包人员 } - editDirectory(data).then((res) => { + editDirectory(data, $route.query.statusName as string).then((res) => { submitId.value = res.data if (statusName === '已取消' || statusName === '未通过') { submitDirectory({ id: submitId.value, formId: SCHEDULE.SUBCONTRACTOR_APPROVAL }).then((res) => { @@ -188,6 +243,10 @@ close() }) } + if (statusName === '全部') { + ElMessage.success('保存成功') + close() + } else { ElMessage.success('保存成功') } @@ -240,7 +299,7 @@ type: 'warning', }, ).then(() => { - deleteDirectory({ id: ruleForm.value.id }).then((res) => { + deleteDirectory({ id: ruleForm.value.id }, $route.query.statusName as string).then((res) => { ElMessage.success('操作成功') close() }) @@ -315,7 +374,7 @@ 编辑 - + 提交 @@ -340,7 +399,8 @@ - + + @@ -514,6 +574,9 @@ + + + diff --git a/src/views/tested/subpackage/directory/components/list.vue b/src/views/tested/subpackage/directory/components/list.vue index 9014135..94984b0 100644 --- a/src/views/tested/subpackage/directory/components/list.vue +++ b/src/views/tested/subpackage/directory/components/list.vue @@ -163,7 +163,7 @@ type: 'warning', }, ).then(() => { - deleteDirectory({ id: row.id }).then((res) => { + deleteDirectory({ id: row.id }, $props.statusName).then((res) => { ElMessage.success('操作成功') search() }) @@ -261,6 +261,11 @@ :list-loading="listLoading" :is-showmulti-select="false" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + diff --git a/src/views/tested/subpackage/review/components/edit.vue b/src/views/tested/subpackage/review/components/edit.vue index 1e9693d..1f9b402 100644 --- a/src/views/tested/subpackage/review/components/edit.vue +++ b/src/views/tested/subpackage/review/components/edit.vue @@ -71,6 +71,12 @@ predictStartTime: [{ required: true, message: '预计开始时间必选', trigger: ['blur', 'change'] }], predictEndTime: [{ required: true, message: '预计结束时间必选', trigger: ['blur', 'change'] }], subcontractReason: [{ required: true, message: '分包原因必选', trigger: ['blur', 'change'] }], + contact: [{ required: true, message: '联系人必填', trigger: ['blur', 'change'] }], + contactNumber: [{ required: true, message: '联系电话必填', trigger: ['blur', 'change'] }], + labAccreditation: [{ required: true, message: '实验室认可情况必填', trigger: ['blur', 'change'] }], + traceability: [{ required: true, message: '溯源性必填', trigger: ['blur', 'change'] }], + testMethod: [{ required: true, message: '测试方法必填', trigger: ['blur', 'change'] }], + technicalAbility: [{ required: true, message: '技术能力必填', trigger: ['blur', 'change'] }], }) // 获取下拉框数据 @@ -304,7 +310,7 @@ diff --git a/src/views/tested/subpackage/review/components/list.vue b/src/views/tested/subpackage/review/components/list.vue index 675251d..9329660 100644 --- a/src/views/tested/subpackage/review/components/list.vue +++ b/src/views/tested/subpackage/review/components/list.vue @@ -254,13 +254,18 @@ :list-loading="listLoading" :is-showmulti-select="false" @change="changePage" > + + + {{ scope.row.approvalStatusName }} + + 查看 编辑 @@ -290,7 +295,7 @@ 取消 删除