日志文件下载功能,支持多实例

This commit is contained in:
2026-01-29 19:38:11 +08:00
parent 6e269ac987
commit 6ae5e62d42
3 changed files with 132 additions and 113 deletions
+14 -8
View File
@@ -3,12 +3,13 @@ import { useMessage } from '/@/hooks/web/useMessage';
const { createConfirm } = useMessage(); const { createConfirm } = useMessage();
enum Api { enum Api {
logFilesList = '/health-system/service/log/files', logFilesList = '/service/log/files',
logFilesDelete = '/health-system/service/log/file/delete', logFilesDelete = '/service/log/file/delete',
logFilesLDown = '/health-system/service/log/file/down', logFilesLDown = '/service/log/file/down',
} }
export const logFilesListApi = (params: any) => defHttp.get({ url: Api.logFilesList, params: params }); export const logFilesListApi = (params: any) => defHttp.get({ url: '/' + params.service + Api.logFilesList, params: params });
//文档删除 //文档删除
export const logFilesDeleteApi = (params: any, handleSuccess: Function) => { export const logFilesDeleteApi = (params: any, handleSuccess: Function) => {
createConfirm({ createConfirm({
@@ -18,10 +19,12 @@ export const logFilesDeleteApi = (params: any, handleSuccess: Function) => {
okText: '确认', okText: '确认',
cancelText: '取消', cancelText: '取消',
onOk: () => { onOk: () => {
const { service } = params;
const url = '/' + service + Api.logFilesDelete;
return defHttp return defHttp
.get( .get(
{ {
url: Api.logFilesDelete, url: url,
params, params,
}, },
{ joinParamsToUrl: true } { joinParamsToUrl: true }
@@ -32,12 +35,15 @@ export const logFilesDeleteApi = (params: any, handleSuccess: Function) => {
}, },
}); });
}; };
export const logFilesLDownApi = (params: any) => export const logFilesLDownApi = (params: any) => {
defHttp.get( const { service } = params;
const url = '/' + service + Api.logFilesLDown;
return defHttp.get(
{ {
url: Api.logFilesLDown, url: url,
params: params, params: params,
responseType: 'blob', responseType: 'blob',
}, },
{ isTransformResponse: false } { isTransformResponse: false }
); );
};
+18
View File
@@ -7,6 +7,24 @@ export const columns: BasicColumn[] = [
align: 'center', align: 'center',
width: 100, width: 100,
}, },
{
title: '最新修改时间',
dataIndex: 'lastModified',
align: 'center',
width: 100,
},
{
title: '文件大小',
dataIndex: 'fileSize',
align: 'center',
width: 100,
},
{
title: '实例地址',
dataIndex: 'instance',
align: 'center',
width: 100,
},
]; ];
export const searchFormSchema: FormSchema[] = [ export const searchFormSchema: FormSchema[] = [
{ {
+5 -10
View File
@@ -5,32 +5,26 @@
</template> </template>
</BasicTable> </BasicTable>
</template> </template>
<script setup lang="ts"> <script setup lang="ts" name="sys-log">
import BasicTable from '/@/components/Table/src/BasicTable.vue'; import BasicTable from '/@/components/Table/src/BasicTable.vue';
import { logFilesDeleteApi, logFilesLDownApi, logFilesListApi } from '/@/views/monitor/filelog/filelog.api'; import { logFilesDeleteApi, logFilesLDownApi, logFilesListApi } from '/@/views/monitor/filelog/filelog.api';
import { columns, searchFormSchema } from '/@/views/monitor/filelog/filelog.data'; import { columns, searchFormSchema } from '/@/views/monitor/filelog/filelog.data';
import { useListPage } from '/@/hooks/system/useListPage'; import { useListPage } from '/@/hooks/system/useListPage';
import { TableAction } from '/@/components/Table'; import { TableAction } from '/@/components/Table';
import { ref } from 'vue';
const data = ref(['a.txt']);
const { tableContext } = useListPage({ const { tableContext } = useListPage({
tableProps: { tableProps: {
api: logFilesListApi, api: logFilesListApi,
canResize: false, canResize: false,
columns, columns,
afterFetch: (v) => { beforeFetch: (params) => {
return v.map((item) => { params.service = getForm().getFieldsValue().service;
return { return params;
fileName: item,
};
});
}, },
formConfig: { formConfig: {
labelWidth: 120, labelWidth: 120,
schemas: searchFormSchema, schemas: searchFormSchema,
}, },
actionColumn: { actionColumn: {
fixed: 'right', fixed: 'right',
}, },
@@ -60,6 +54,7 @@
const params = { const params = {
filename: record.fileName, filename: record.fileName,
service: getForm().getFieldsValue().service, service: getForm().getFieldsValue().service,
instance: record.instance,
}; };
try { try {
const v = await logFilesLDownApi(params); const v = await logFilesLDownApi(params);