From b5b0e7348d251c288b10633808d3d56c04cd5112 Mon Sep 17 00:00:00 2001 From: Baobhan Sith <80159437+Heavrnl@users.noreply.github.com> Date: Wed, 23 Apr 2025 16:51:02 +0800 Subject: [PATCH] update --- package-lock.json | 26 + packages/frontend/package.json | 2 + packages/frontend/src/locales/en.json | 6 + packages/frontend/src/locales/zh.json | 6 + packages/frontend/src/stores/audit.store.ts | 14 +- packages/frontend/src/views/AuditLogView.vue | 60 +- packages/frontend/src/views/SettingsView.vue | 1053 +++++++----------- 7 files changed, 501 insertions(+), 666 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0b52753..e541914 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1475,6 +1475,23 @@ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", "license": "MIT" }, + "node_modules/@types/lodash": { + "version": "4.17.16", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.16.tgz", + "integrity": "sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", @@ -4328,6 +4345,13 @@ "node": ">=8" } }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "dev": true, + "license": "MIT" + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -7385,8 +7409,10 @@ "xterm-addon-web-links": "^0.9.0" }, "devDependencies": { + "@types/lodash-es": "^4.17.12", "@types/splitpanes": "^2.2.6", "@vitejs/plugin-vue": "^4.2.0", + "lodash-es": "^4.17.21", "typescript": "^5.0.0", "vite": "^5.2.0", "vue-tsc": "^2.2.8" diff --git a/packages/frontend/package.json b/packages/frontend/package.json index 083f4e7..60f0bbc 100644 --- a/packages/frontend/package.json +++ b/packages/frontend/package.json @@ -29,8 +29,10 @@ "xterm-addon-web-links": "^0.9.0" }, "devDependencies": { + "@types/lodash-es": "^4.17.12", "@types/splitpanes": "^2.2.6", "@vitejs/plugin-vue": "^4.2.0", + "lodash-es": "^4.17.21", "typescript": "^5.0.0", "vite": "^5.2.0", "vue-tsc": "^2.2.8" diff --git a/packages/frontend/src/locales/en.json b/packages/frontend/src/locales/en.json index f18e66e..33a482c 100644 --- a/packages/frontend/src/locales/en.json +++ b/packages/frontend/src/locales/en.json @@ -434,6 +434,12 @@ }, "settings": { "title": "Settings", + "category": { + "security": "Security Settings", + "appearance": "Appearance Settings", + "workspace": "Workspace Settings", + "system": "System Settings" + }, "changePassword": { "title": "Change Password", "currentPassword": "Current Password:", diff --git a/packages/frontend/src/locales/zh.json b/packages/frontend/src/locales/zh.json index b416d4b..a05bbd3 100644 --- a/packages/frontend/src/locales/zh.json +++ b/packages/frontend/src/locales/zh.json @@ -434,6 +434,12 @@ }, "settings": { "title": "设置", + "category": { + "security": "安全设置", + "appearance": "外观设置", + "workspace": "工作区设置", + "system": "系统设置" + }, "changePassword": { "title": "修改密码", "currentPassword": "当前密码:", diff --git a/packages/frontend/src/stores/audit.store.ts b/packages/frontend/src/stores/audit.store.ts index 4d66230..64f6a75 100644 --- a/packages/frontend/src/stores/audit.store.ts +++ b/packages/frontend/src/stores/audit.store.ts @@ -11,7 +11,12 @@ export const useAuditLogStore = defineStore('auditLog', () => { const currentPage = ref(1); const logsPerPage = ref(50); // Default page size - const fetchLogs = async (page: number = 1, filters: { actionType?: AuditLogActionType, startDate?: number, endDate?: number } = {}) => { + // Updated fetchLogs to accept searchTerm and actionType directly + const fetchLogs = async ( + page: number = 1, + searchTerm?: string, + actionType?: AuditLogActionType | '' // Allow empty string from select + ) => { isLoading.value = true; error.value = null; currentPage.value = page; @@ -21,10 +26,11 @@ export const useAuditLogStore = defineStore('auditLog', () => { const params: Record = { limit: logsPerPage.value, offset: offset, - ...filters // Spread filter parameters + // Add new filter parameters if they have values + ...(searchTerm && { search: searchTerm }), + ...(actionType && { action_type: actionType }), }; - // Remove undefined filter values - Object.keys(params).forEach(key => params[key] === undefined && delete params[key]); + // No need to remove undefined keys here as we conditionally add them const response = await apiClient.get('/audit-logs', { params }); // 使用 apiClient logs.value = response.data.logs; diff --git a/packages/frontend/src/views/AuditLogView.vue b/packages/frontend/src/views/AuditLogView.vue index af36fb0..4e2bca4 100644 --- a/packages/frontend/src/views/AuditLogView.vue +++ b/packages/frontend/src/views/AuditLogView.vue @@ -5,7 +5,29 @@ {{ $t('auditLog.title') }} - + +
+
+ + +
+
+ + +
+
+ +
+
+
{{ $t('common.loading') }} @@ -76,14 +98,35 @@ +]]>