From 64de355a134a0e17d469b10d704a0cbeaeb338d2 Mon Sep 17 00:00:00 2001 From: shizhongming Date: Sat, 10 Feb 2024 19:31:52 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E7=B3=BB=E7=BB=9F=E6=A8=A1=E5=9D=97):=20?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BC=82=E5=B8=B8=E4=BF=A1=E6=81=AF=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/SysExceptionListView.api.ts | 22 +++ .../exception/SysExceptionListView.config.ts | 160 ++++++++++++++++++ .../views/exception/SysExceptionListView.vue | 91 ++++++++++ .../components/ExceptionDetailModal.vue | 33 ++++ .../system/views/exception/lang/en_US.ts | 32 ++++ .../system/views/exception/lang/zh_CN.ts | 32 ++++ 6 files changed, 370 insertions(+) create mode 100644 src/modules/system/views/exception/SysExceptionListView.api.ts create mode 100644 src/modules/system/views/exception/SysExceptionListView.config.ts create mode 100644 src/modules/system/views/exception/SysExceptionListView.vue create mode 100644 src/modules/system/views/exception/components/ExceptionDetailModal.vue create mode 100644 src/modules/system/views/exception/lang/en_US.ts create mode 100644 src/modules/system/views/exception/lang/zh_CN.ts diff --git a/src/modules/system/views/exception/SysExceptionListView.api.ts b/src/modules/system/views/exception/SysExceptionListView.api.ts new file mode 100644 index 000000000..935cfab83 --- /dev/null +++ b/src/modules/system/views/exception/SysExceptionListView.api.ts @@ -0,0 +1,22 @@ +import { ApiServiceEnum, defHttp } from '@/utils/http/axios'; + +enum Api { + list = 'sys/exception/list', + getById = 'sys/exception/getById', +} + +export const listApi = (params) => { + return defHttp.post({ + service: ApiServiceEnum.SMART_SYSTEM, + url: Api.list, + data: params, + }); +}; + +export const getById = (id) => { + return defHttp.post({ + service: ApiServiceEnum.SMART_SYSTEM, + url: Api.getById, + data: id, + }); +}; diff --git a/src/modules/system/views/exception/SysExceptionListView.config.ts b/src/modules/system/views/exception/SysExceptionListView.config.ts new file mode 100644 index 000000000..969feb231 --- /dev/null +++ b/src/modules/system/views/exception/SysExceptionListView.config.ts @@ -0,0 +1,160 @@ +import type { SmartColumn, SmartSearchFormSchema } from '@/components/SmartTable'; +import { tableBooleanColumnClass } from '@/components/SmartTable'; + +export const getTableColumns = (): SmartColumn[] => { + return [ + { + type: 'checkbox', + width: 60, + align: 'center', + fixed: 'left', + }, + { + field: 'id', + visible: false, + title: '', + width: 120, + }, + { + field: 'exceptionMessage', + fixed: 'left', + title: '{system.views.exception.title.exceptionMessage}', + width: 200, + }, + { + field: 'requestIp', + title: '{system.views.exception.title.requestIp}', + width: 120, + }, + { + field: 'serverIp', + title: '{system.views.exception.title.serverIp}', + width: 120, + }, + { + field: 'requestPath', + title: '{system.views.exception.title.requestPath}', + width: 200, + }, + { + field: 'operateBy', + title: '{system.views.exception.title.operateUser}', + width: 120, + }, + { + field: 'createTime', + sortable: true, + title: '{common.table.createTime}', + width: 150, + }, + { + ...tableBooleanColumnClass('{system.views.exception.title.userFeedback}', 'userFeedback'), + width: 120, + sortable: true, + }, + { + field: 'feedbackMessage', + title: '{system.views.exception.title.feedbackMessage}', + width: 160, + }, + { + field: 'feedbackTime', + title: '{system.views.exception.title.feedbackTime}', + width: 150, + }, + { + ...tableBooleanColumnClass('{system.views.exception.title.resolved}', 'resolved'), + width: 120, + sortable: true, + }, + { + field: 'resolvedMessage', + title: '{system.views.exception.title.resolvedMessage}', + width: 160, + }, + { + field: 'resolvedUserId', + title: '{system.views.exception.title.resolvedUserId}', + width: 120, + }, + { + field: 'resolvedTime', + title: '{system.views.exception.title.resolvedTime}', + width: 150, + }, + { + title: '{common.table.operation}', + field: 'operation', + width: 120, + fixed: 'right', + slots: { + default: 'table-operation', + }, + }, + ]; +}; + +const getYesNoOptions = (t: Function) => { + return [ + { + label: t('common.form.yes'), + value: 1, + }, + { + label: t('common.form.no'), + value: 0, + }, + ]; +}; + +export const getSearchFormSchemas = (t: Function): SmartSearchFormSchema[] => { + return [ + { + label: t('system.views.exception.title.exceptionMessage'), + field: 'exceptionMessage', + component: 'Input', + searchSymbol: 'like', + componentProps: { + style: { width: '150px' }, + }, + }, + { + label: t('system.views.exception.title.requestIp'), + field: 'requestIp', + component: 'Input', + searchSymbol: 'like', + componentProps: { + style: { width: '150px' }, + }, + }, + { + label: t('system.views.exception.title.serverIp'), + field: 'serverIp', + component: 'Input', + searchSymbol: 'like', + componentProps: { + style: { width: '150px' }, + }, + }, + { + label: t('system.views.exception.title.userFeedback'), + field: 'userFeedback', + component: 'Select', + searchSymbol: '=', + componentProps: { + options: getYesNoOptions(t), + style: { width: '150px' }, + }, + }, + { + label: t('system.views.exception.title.resolved'), + field: 'resolved', + component: 'Select', + searchSymbol: '=', + componentProps: { + options: getYesNoOptions(t), + style: { width: '150px' }, + }, + }, + ]; +}; diff --git a/src/modules/system/views/exception/SysExceptionListView.vue b/src/modules/system/views/exception/SysExceptionListView.vue new file mode 100644 index 000000000..247cef71c --- /dev/null +++ b/src/modules/system/views/exception/SysExceptionListView.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/src/modules/system/views/exception/components/ExceptionDetailModal.vue b/src/modules/system/views/exception/components/ExceptionDetailModal.vue new file mode 100644 index 000000000..48b52d7b7 --- /dev/null +++ b/src/modules/system/views/exception/components/ExceptionDetailModal.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/src/modules/system/views/exception/lang/en_US.ts b/src/modules/system/views/exception/lang/en_US.ts new file mode 100644 index 000000000..727a9fc28 --- /dev/null +++ b/src/modules/system/views/exception/lang/en_US.ts @@ -0,0 +1,32 @@ +/** + * 系统异常信息 国际化信息 + */ +export default { + trans: true, + key: 'system.views.exception', + data: { + title: { + exceptionMessage: 'Error message', + requestIp: 'Request IP', + serverIp: 'Server IP', + requestPath: 'Request path', + operateUser: 'Operate user', + userFeedback: 'Feedback', + feedbackMessage: 'Feedback Message', + feedbackTime: 'Feedback time', + resolved: 'Resolved', + resolvedMessage: 'Resolved message', + resolvedUserId: 'Resolved user', + resolvedTime: 'Resolved time', + showStackTrace: 'Show stackTrace', + stackTrace: 'Stack trace', + }, + validate: {}, + rules: {}, + search: { + exceptionMessage: 'Please select the error message', + requestIp: 'Please select the request IP', + serverIp: 'Please select the server IP', + }, + }, +}; diff --git a/src/modules/system/views/exception/lang/zh_CN.ts b/src/modules/system/views/exception/lang/zh_CN.ts new file mode 100644 index 000000000..38bda3aeb --- /dev/null +++ b/src/modules/system/views/exception/lang/zh_CN.ts @@ -0,0 +1,32 @@ +/** + * 系统异常信息 国际化信息 + */ +export default { + trans: true, + key: 'system.views.exception', + data: { + title: { + exceptionMessage: '异常信息', + requestIp: '请求IP', + serverIp: '服务器IP', + requestPath: '请求路径', + operateUser: '操作人员', + userFeedback: '用户是否反馈', + feedbackMessage: '用户反馈信息', + feedbackTime: '反馈时间', + resolved: '是否已处理', + resolvedMessage: '处理信息', + resolvedUserId: '处理人员ID', + resolvedTime: '处理时间', + showStackTrace: '查看堆栈信息', + stackTrace: '堆栈信息', + }, + validate: {}, + rules: {}, + search: { + exceptionMessage: '请输入异常信息', + requestIp: '请输入请求IP', + serverIp: '请输入服务器IP', + }, + }, +};