diff --git a/src/api/admin/log.ts b/src/api/admin/log.ts new file mode 100644 index 0000000..a427f85 --- /dev/null +++ b/src/api/admin/log.ts @@ -0,0 +1,46 @@ +import request from '@/utils/http' + +export class logService { + // 更新日志-列表 + static getChangelogList(params: Api.Common.PaginatingParams) { + return request.get({ + url: '/admin/update/log/list', + params + }) + } + // 更新日志-添加 + static addChangelog(params: any) { + return request.post({ + url: '/admin/update/log/store', + params + }) + } + // 更新日志-删除 + static deleteChangelog(params: any) { + return request.post({ + url: '/admin/update/log/destroy', + params + }) + } + // 更新日志-详情 + static detailChangelog(params: any) { + return request.get({ + url: '/admin/update/log/show', + params + }) + } + // 更新日志-修改 + static updateChangelog(params: any) { + return request.post({ + url: '/admin/update/log/update', + params + }) + } + //操作日志-列表 + static getOperationLogList(params: Api.Common.PaginatingParams) { + return request.get({ + url: '/admin/op/log/list', + params + }) + } +} diff --git a/src/views/admin/approval/stocking_auth_detil.vue b/src/views/admin/approval/stocking_auth_detil.vue index 645178c..1d7a29c 100644 --- a/src/views/admin/approval/stocking_auth_detil.vue +++ b/src/views/admin/approval/stocking_auth_detil.vue @@ -10,43 +10,17 @@
-
- - 上传合同 -
-
-
-
- -
- {{ contractFile.name }} - - 预览 - -
-
-
-
- -
-
- {{ contractFile.name }} - - 下载 - -
-
-
-
- - 暂无合同文件 -
-
+ +
+ + +
+ +
+ + +
+
@@ -178,6 +152,7 @@ import { usePdfPreview } from '@/composables/usePdfPreview' import OrderDetailContent from '@/components/custom/OrderDetailContent.vue' import ProcurementDetailView from '@/components/custom/ProcurementDetailView.vue' + import FilePreview from '@/components/custom/FilePreview.vue' import type { OrderData } from '@/composables/useOrderDetailDialog' import { router } from '@/router' defineOptions({ name: 'AdminStockingAuthDetil' }) @@ -258,7 +233,20 @@ } // 合同文件 - const contractFile = ref<{ name: string; url: string; file_name: string } | null>(null) + // 文件数据 + const contractFiles = ref>([]) + const piFiles = ref>([]) + const waterBillFiles = ref>([]) + + // 处理文件数据 + const processFiles = (files: any[], type: string) => { + if (!files || !Array.isArray(files)) return [] + return files.map((file: any) => ({ + name: `${type}文件`, + url: file.file_full_url || file.file_url, + file_name: file.file_url + })) + } function extractFileName(pathOrUrl: string | undefined | null): string { if (!pathOrUrl) return '合同文件' try { @@ -291,13 +279,26 @@ orderData.contract_file_url = list orderDialog.orderData = orderData } - // 合同文件 - if (res?.contract) { - contractFile.value = { - name: '合同文件', - url: res.contract_url || res.contract, - file_name: res.contract - } + // 处理合同文件 + const file_list = res?.file_list + if (file_list?.contract) { + contractFiles.value = processFiles(file_list.contract, '合同') + } else { + contractFiles.value = [] + } + + // 处理PI文件 + if (file_list?.pi_doc) { + piFiles.value = processFiles(file_list.pi_doc, 'PI') + } else { + piFiles.value = [] + } + + // 处理水单文件 + if (file_list?.transaction_slip) { + waterBillFiles.value = processFiles(file_list.transaction_slip, '水单') + } else { + waterBillFiles.value = [] } // 审批记录(兼容多种字段) const resstockapprovallogs = await manageService.stockapprovallogs({ instance_id: instance_id }) diff --git a/src/views/admin/log/changelog.vue b/src/views/admin/log/changelog.vue new file mode 100644 index 0000000..1bb89d0 --- /dev/null +++ b/src/views/admin/log/changelog.vue @@ -0,0 +1,287 @@ + + + + + diff --git a/src/views/admin/system/operationlog.vue b/src/views/admin/system/operationlog.vue new file mode 100644 index 0000000..3fe50ce --- /dev/null +++ b/src/views/admin/system/operationlog.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/src/views/crmpc/approval/auth_detil.vue b/src/views/crmpc/approval/auth_detil.vue index 8dedd00..36c192d 100644 --- a/src/views/crmpc/approval/auth_detil.vue +++ b/src/views/crmpc/approval/auth_detil.vue @@ -8,45 +8,19 @@
- +
-
- - 上传合同 -
-
-
-
- -
- {{ contractFile.name }} - - 预览 - -
-
-
-
- -
-
- {{ contractFile.name }} - - 下载 - -
-
-
-
- - 暂无合同文件 -
-
+ +
+ + +
+ +
+ + +
+
@@ -169,6 +143,7 @@ import { usePdfPreview } from '@/composables/usePdfPreview' import OrderDetailContent from '@/components/custom/OrderDetailContent.vue' import ProcurementDetailView from '@/components/custom/ProcurementDetailView.vue' + import FilePreview from '@/components/custom/FilePreview.vue' import type { OrderData } from '@/composables/useOrderDetailDialog' import { router } from '@/router' defineOptions({ name: 'CrmApprovalDetail' }) @@ -249,7 +224,20 @@ } // 合同文件 - const contractFile = ref<{ name: string; url: string; file_name: string } | null>(null) + // 文件数据 + const contractFiles = ref>([]) + const piFiles = ref>([]) + const waterBillFiles = ref>([]) + + // 处理文件数据 + const processFiles = (files: any[], type: string) => { + if (!files || !Array.isArray(files)) return [] + return files.map((file: any) => ({ + name: `${type}文件`, + url: file.file_full_url || file.file_url, + file_name: file.file_url + })) + } function extractFileName(pathOrUrl: string | undefined | null): string { if (!pathOrUrl) return '合同文件' try { @@ -283,12 +271,24 @@ orderDialog.orderData = orderData } // 合同文件 - if (res?.contract) { - contractFile.value = { - name: '合同文件', - url: res.contract_url || res.contract, - file_name: res.contract - } + // 处理合同文件 + const file_list = res?.file_list + if (file_list?.contract) { + contractFiles.value = processFiles(file_list.contract, '合同') + } else { + contractFiles.value = [] + } + // 处理PI文件 + if (file_list?.pi_doc) { + piFiles.value = processFiles(file_list.pi_doc, 'PI') + } else { + piFiles.value = [] + } + // 处理水单文件 + if (file_list?.transaction_slip) { + waterBillFiles.value = processFiles(file_list.transaction_slip, '水单') + } else { + waterBillFiles.value = [] } // 审批记录(兼容多种字段) const resstockapprovallogs = await CrmService.stockapprovallogs({ instance_id: instance_id })