From 588f577a14b2a51663d43f3bf2f303862d65b932 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 29 九月 2025 09:15:53 +0800
Subject: [PATCH] feat: 短信
---
src/views/TraceIdLogManage/DbAuditLogs.vue | 230 +++++
.eslintrc-auto-import.json | 5
src/services/api/typings.d.ts | 548 ++++++++++++-
src/views/TraceIdLogManage/components/ThreeResourceLogsView.vue | 105 +-
src/views/EnterpriseManage/components/WechatConfigureView.vue | 16
src/views/TraceIdLogManage/components/ResourceLogsView.vue | 106 +-
src/views/TraceIdLogManage/components/JsonViewerDialog.vue | 31
src/constants/enterprise.ts | 5
src/services/api/enterpriseWallet.ts | 12
src/views/System/SmsSettingManage.vue | 215 +++++
src/services/api/sms.ts | 42 +
src/views/TraceIdLogManage/components/DbAuditLogsView.vue | 75 -
src/views/TraceIdLogManage/components/ExceptionLogsView.vue | 27
src/services/api/index.ts | 6
src/views/TraceIdLogManage/ThreeResourceLogs.vue | 281 +++++++
src/views/TraceIdLogManage/ResourceLogs.vue | 281 +++++++
src/services/api/electronSign.ts | 21
auto-imports.d.ts | 12
src/constants/apiEnum.ts | 76 +
src/views/TraceIdLogManage/ExceptionLogs.vue | 185 ++++
src/services/api/logRecords.ts | 39 +
src/services/api/ocrUtils.ts | 12
22 files changed, 2,006 insertions(+), 324 deletions(-)
diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json
index e20962f..0fb83b8 100644
--- a/.eslintrc-auto-import.json
+++ b/.eslintrc-auto-import.json
@@ -27,6 +27,7 @@
"EnumClientType": true,
"EnumClientTypeText": true,
"EnumCodeUrlScene": true,
+ "EnumConsoleLogAccess": true,
"EnumContractTemplateStatus": true,
"EnumContractTemplateStatusText": true,
"EnumContractTemplateStatusTextForEnterpriseFilter": true,
@@ -39,6 +40,7 @@
"EnumDbAuditOperateText": true,
"EnumElectronSignAccess": true,
"EnumElectronSignAccessText": true,
+ "EnumElectronSignVerifyType": true,
"EnumEnterpriseCostStatus": true,
"EnumEnterpriseCostType": true,
"EnumEnterpriseRealMethod": true,
@@ -52,6 +54,7 @@
"EnumEnterpriseWalletSignStatusText": true,
"EnumEnterpriseWalletTransactionType": true,
"EnumGetEnterpriseEmployeesQuerySignContractStatus": true,
+ "EnumLogLevel": true,
"EnumMenuType": true,
"EnumMenuVisitLevel": true,
"EnumOcrAccess": true,
@@ -78,6 +81,8 @@
"EnumSettlementCycleText": true,
"EnumSmsAccess": true,
"EnumSmsAccessText": true,
+ "EnumSmsAccessTextUseInSms": true,
+ "EnumSmsStatus": true,
"EnumTaskCheckReceiveStatus": true,
"EnumTaskCheckReceiveStatusText": true,
"EnumTaskRecommendStatus": true,
diff --git a/auto-imports.d.ts b/auto-imports.d.ts
index 3399137..9d158b2 100644
--- a/auto-imports.d.ts
+++ b/auto-imports.d.ts
@@ -29,6 +29,7 @@
const EnumClientType: typeof import('./src/constants/apiEnum')['EnumClientType']
const EnumClientTypeText: typeof import('./src/constants/apiEnumText')['EnumClientTypeText']
const EnumCodeUrlScene: typeof import('./src/constants/apiEnum')['EnumCodeUrlScene']
+ const EnumConsoleLogAccess: typeof import('./src/constants/apiEnum')['EnumConsoleLogAccess']
const EnumContractTemplateStatus: typeof import('./src/constants/apiEnum')['EnumContractTemplateStatus']
const EnumContractTemplateStatusText: typeof import('./src/constants/electronSign')['EnumContractTemplateStatusText']
const EnumContractTemplateStatusTextForEnterpriseFilter: typeof import('./src/constants/electronSign')['EnumContractTemplateStatusTextForEnterpriseFilter']
@@ -41,6 +42,7 @@
const EnumDbAuditOperateText: typeof import('./src/constants/apiEnumText')['EnumDbAuditOperateText']
const EnumElectronSignAccess: typeof import('./src/constants/apiEnum')['EnumElectronSignAccess']
const EnumElectronSignAccessText: typeof import('./src/constants/electronSign')['EnumElectronSignAccessText']
+ const EnumElectronSignVerifyType: typeof import('./src/constants/apiEnum')['EnumElectronSignVerifyType']
const EnumEnterpriseCostStatus: typeof import('./src/constants/apiEnum')['EnumEnterpriseCostStatus']
const EnumEnterpriseCostType: typeof import('./src/constants/apiEnum')['EnumEnterpriseCostType']
const EnumEnterpriseRealMethod: typeof import('./src/constants/apiEnum')['EnumEnterpriseRealMethod']
@@ -55,6 +57,7 @@
const EnumEnterpriseWalletTransactionStatus: typeof import('./src/constants/apiEnum')['EnumEnterpriseWalletTransactionStatus']
const EnumEnterpriseWalletTransactionType: typeof import('./src/constants/apiEnum')['EnumEnterpriseWalletTransactionType']
const EnumGetEnterpriseEmployeesQuerySignContractStatus: typeof import('./src/constants/apiEnum')['EnumGetEnterpriseEmployeesQuerySignContractStatus']
+ const EnumLogLevel: typeof import('./src/constants/apiEnum')['EnumLogLevel']
const EnumMenuType: typeof import('./src/constants/apiEnum')['EnumMenuType']
const EnumMenuVisitLevel: typeof import('./src/constants/apiEnum')['EnumMenuVisitLevel']
const EnumOcrAccess: typeof import('./src/constants/apiEnum')['EnumOcrAccess']
@@ -82,6 +85,8 @@
const EnumSettlementCycleText: typeof import('./src/constants/task')['EnumSettlementCycleText']
const EnumSmsAccess: typeof import('./src/constants/apiEnum')['EnumSmsAccess']
const EnumSmsAccessText: typeof import('./src/constants/enterprise')['EnumSmsAccessText']
+ const EnumSmsAccessTextUseInSms: typeof import('./src/constants/enterprise')['EnumSmsAccessTextUseInSms']
+ const EnumSmsStatus: typeof import('./src/constants/apiEnum')['EnumSmsStatus']
const EnumTaskCheckReceiveStatus: typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']
const EnumTaskCheckReceiveStatusText: typeof import('./src/constants/task')['EnumTaskCheckReceiveStatusText']
const EnumTaskRecommendStatus: typeof import('./src/constants/apiEnum')['EnumTaskRecommendStatus']
@@ -271,7 +276,7 @@
export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
import('vue')
// @ts-ignore
- export type { EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserBankCardAccess, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus, EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserBankCardAccess, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus } from './src/constants/apiEnum'
+ export type { EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumConsoleLogAccess, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumElectronSignVerifyType, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsStatus, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserBankCardAccess, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus, EnumBillingMethod, EnumClientType, EnumCodeUrlScene, EnumConsoleLogAccess, EnumContractTemplateStatus, EnumContractTemplateValueRecorder, EnumContractTemplateValueType, EnumDataSource, EnumDbAuditOperate, EnumElectronSignAccess, EnumElectronSignVerifyType, EnumEnterpriseCostStatus, EnumEnterpriseCostType, EnumEnterpriseRealMethod, EnumEnterpriseWalletAccess, EnumEnterpriseWalletExpandindirectOrderFileType, EnumEnterpriseWalletExpandindirectOrderScene, EnumEnterpriseWalletExpandindirectOrderStatus, EnumEnterpriseWalletSignStatus, EnumEnterpriseWalletTransactionType, EnumGetEnterpriseEmployeesQuerySignContractStatus, EnumLogLevel, EnumMenuType, EnumMenuVisitLevel, EnumOcrAccess, EnumPagedListOrder, EnumPayAccess, EnumPersonalFreeTime, EnumPersonalJobSeekingStatus, EnumPersonalRealMethod, EnumPersonalUserRealStatus, EnumRealAccess, EnumResourceController, EnumResourceMethod, EnumRoleWebApiDataPower, EnumSettlementCycle, EnumSmsAccess, EnumSmsStatus, EnumTaskCheckReceiveStatus, EnumTaskRecommendStatus, EnumTaskReleaseStatus, EnumTaskSettlementOrderStatus, EnumTaskSettlementStatus, EnumTaskStatus, EnumTaskUserArrangeStatus, EnumTaskUserHireStatus, EnumTaskUserSignContractStatus, EnumTaskUserSubmitCheckReceiveStatus, EnumUserBankCardAccess, EnumUserGender, EnumUserRealMethod, EnumUserStatus, EnumUserType, EnumUserWalletTransactionType, EnumWalletTransactionStatus, GetPersonalApplyTaskInfosQueryStatus, GetPersonalHireTaskInfosQueryStatus, GetTaskInfoQueryResultApplyButton, GetTaskInfoQueryResultHireButton, SettlementReceiveStatus } from './src/constants/apiEnum'
import('./src/constants/apiEnum')
// @ts-ignore
export type { FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum, FlexWorkerEleSignEnum, FlexTaskWorkerHireEnum } from './src/constants/cPerson'
@@ -339,6 +344,7 @@
readonly EnumClientType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumClientType']>
readonly EnumClientTypeText: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumClientTypeText']>
readonly EnumCodeUrlScene: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumCodeUrlScene']>
+ readonly EnumConsoleLogAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumConsoleLogAccess']>
readonly EnumContractTemplateStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumContractTemplateStatus']>
readonly EnumContractTemplateStatusText: UnwrapRef<typeof import('./src/constants/electronSign')['EnumContractTemplateStatusText']>
readonly EnumContractTemplateStatusTextForEnterpriseFilter: UnwrapRef<typeof import('./src/constants/electronSign')['EnumContractTemplateStatusTextForEnterpriseFilter']>
@@ -351,6 +357,7 @@
readonly EnumDbAuditOperateText: UnwrapRef<typeof import('./src/constants/apiEnumText')['EnumDbAuditOperateText']>
readonly EnumElectronSignAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumElectronSignAccess']>
readonly EnumElectronSignAccessText: UnwrapRef<typeof import('./src/constants/electronSign')['EnumElectronSignAccessText']>
+ readonly EnumElectronSignVerifyType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumElectronSignVerifyType']>
readonly EnumEnterpriseCostStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCostStatus']>
readonly EnumEnterpriseCostType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseCostType']>
readonly EnumEnterpriseRealMethod: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseRealMethod']>
@@ -364,6 +371,7 @@
readonly EnumEnterpriseWalletSignStatusText: UnwrapRef<typeof import('./src/constants/enterprise')['EnumEnterpriseWalletSignStatusText']>
readonly EnumEnterpriseWalletTransactionType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumEnterpriseWalletTransactionType']>
readonly EnumGetEnterpriseEmployeesQuerySignContractStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumGetEnterpriseEmployeesQuerySignContractStatus']>
+ readonly EnumLogLevel: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumLogLevel']>
readonly EnumMenuType: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumMenuType']>
readonly EnumMenuVisitLevel: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumMenuVisitLevel']>
readonly EnumOcrAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumOcrAccess']>
@@ -390,6 +398,8 @@
readonly EnumSettlementCycleText: UnwrapRef<typeof import('./src/constants/task')['EnumSettlementCycleText']>
readonly EnumSmsAccess: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSmsAccess']>
readonly EnumSmsAccessText: UnwrapRef<typeof import('./src/constants/enterprise')['EnumSmsAccessText']>
+ readonly EnumSmsAccessTextUseInSms: UnwrapRef<typeof import('./src/constants/enterprise')['EnumSmsAccessTextUseInSms']>
+ readonly EnumSmsStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumSmsStatus']>
readonly EnumTaskCheckReceiveStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskCheckReceiveStatus']>
readonly EnumTaskCheckReceiveStatusText: UnwrapRef<typeof import('./src/constants/task')['EnumTaskCheckReceiveStatusText']>
readonly EnumTaskRecommendStatus: UnwrapRef<typeof import('./src/constants/apiEnum')['EnumTaskRecommendStatus']>
diff --git a/src/constants/apiEnum.ts b/src/constants/apiEnum.ts
index 3407d01..e869b1b 100644
--- a/src/constants/apiEnum.ts
+++ b/src/constants/apiEnum.ts
@@ -19,6 +19,8 @@
PcWeb = 10,
/**寰俊灏忕▼搴� */
Wxmp = 20,
+ /**H5鐧诲綍 */
+ H5 = 30,
}
/** 缂栧彿鍦板潃鍦烘櫙 */
@@ -27,6 +29,14 @@
InviteElectronSign = 1,
/**绛剧害鍦板潃 */
ElectronSignUrl = 10,
+}
+
+/** 鎺у埗鍙版棩蹇楅�氶亾 */
+export enum EnumConsoleLogAccess {
+ /**鍚庣 */
+ Back = 10,
+ /**鍓嶇 */
+ Front = 20,
}
/** 鍚堝悓鍒剁増鐘舵�� */
@@ -77,6 +87,14 @@
BestSign = 10,
/**鏀粯瀹濅俊浠荤 */
AlipaySign = 20,
+}
+
+/** 鐢靛瓙绛炬牎楠岀被鍨� */
+export enum EnumElectronSignVerifyType {
+ /**鐭俊 */
+ SMS = 10,
+ /**浜鸿劯 */
+ Face = 20,
}
/** 浼佷笟鐢ㄩ噺鎵h垂鐘舵�� */
@@ -189,6 +207,22 @@
Pass = 30,
}
+/** 鏃ュ織绾у埆 */
+export enum EnumLogLevel {
+ /**璺熻釜 */
+ Trace = 10,
+ /**璋冭瘯 */
+ Debug = 20,
+ /**淇℃伅 */
+ Information = 30,
+ /**璀﹀憡 */
+ Warning = 40,
+ /**閿欒 */
+ Error = 50,
+ /**涓ラ噸 */
+ Critical = 60,
+}
+
/** 鑿滃崟绫诲瀷 */
export enum EnumMenuType {
/**鑿滃崟 */
@@ -217,6 +251,8 @@
export enum EnumOcrAccess {
/**鐧惧害 */
Baidu = 10,
+ /**涓婁笂绛� */
+ BestSign = 20,
}
/** 鍒嗛〉鍒楄〃鎺掑簭 */
@@ -309,28 +345,30 @@
CommonServerLogRecords = 7,
/**鍚屾鏁版嵁搴� */
CommonServerSyncDatabase = 8,
+ /**鐭俊宸ュ叿 */
+ CommonServerSmsUtils = 9,
/**鐢ㄦ埛璁よ瘉 */
- UserServerAuth = 9,
+ UserServerAuth = 10,
/**鐢ㄦ埛鑿滃崟 */
- UserServerMenu = 10,
+ UserServerMenu = 11,
/**鐢ㄦ埛璧勬簮 */
- UserServerResource = 11,
+ UserServerResource = 12,
/**鐢ㄦ埛瑙掕壊 */
- UserServerRole = 12,
+ UserServerRole = 13,
/**鐢ㄦ埛淇℃伅 */
- UserServerUser = 13,
+ UserServerUser = 14,
/**鐢靛瓙绛� */
- UserServerElectronSign = 14,
+ UserServerElectronSign = 15,
/**鐢ㄦ埛绠�鍘� */
- UserServerUserResume = 15,
+ UserServerUserResume = 16,
/**浼佷笟淇℃伅 */
- UserServerEnterprise = 16,
+ UserServerEnterprise = 17,
/**浼佷笟閽卞寘 */
- UserServerEnterpriseWallet = 17,
+ UserServerEnterpriseWallet = 18,
/**鐏靛伐淇℃伅 */
- UserServerEnterpriseEmployee = 18,
+ UserServerEnterpriseEmployee = 19,
/**鐢靛瓙绛� */
- ElectronSignServerElectronSign = 19,
+ ElectronSignServerElectronSign = 20,
}
/** 璧勬簮璇锋眰鏂瑰紡 */
@@ -375,8 +413,24 @@
/** 鐭俊閫氶亾 */
export enum EnumSmsAccess {
+ /**鏃� */
+ None = 0,
/**闃块噷浜戠煭淇� */
AliyunSms = 10,
+ /**璇氱珛涓� */
+ ChengLiYe = 20,
+}
+
+/** 鐭俊鐘舵�� */
+export enum EnumSmsStatus {
+ /**寰呭彂閫� */
+ Wait = 0,
+ /**鍙戦�佷腑 */
+ InProcess = 10,
+ /**鍙戦�佹垚鍔� */
+ Success = 20,
+ /**鍙戦�佸け璐� */
+ Fail = 30,
}
/** 浠诲姟缁撶畻鐘舵�� */
diff --git a/src/constants/enterprise.ts b/src/constants/enterprise.ts
index f12b706..be49de0 100644
--- a/src/constants/enterprise.ts
+++ b/src/constants/enterprise.ts
@@ -74,6 +74,11 @@
[EnumSmsAccess.AliyunSms]: '闃块噷浜�',
};
+export const EnumSmsAccessTextUseInSms = {
+ [EnumSmsAccess.AliyunSms]: '闃块噷浜�',
+ [EnumSmsAccess.ChengLiYe]: '璇氱珛涓�',
+};
+
export const EnumRealAccessText = {
[EnumRealAccess.BestSign]: '涓婁笂绛�',
[EnumRealAccess.AlipaySign]: '鏀粯瀹濅俊浠荤',
diff --git a/src/services/api/electronSign.ts b/src/services/api/electronSign.ts
index abd2700..8b63a80 100644
--- a/src/services/api/electronSign.ts
+++ b/src/services/api/electronSign.ts
@@ -166,8 +166,6 @@
method: 'GET',
params: {
...params,
- request: undefined,
- ...params['request'],
},
...(options || {}),
}
@@ -179,14 +177,17 @@
body: API.PersonalUserFaceRealCommand,
options?: API.RequestConfig
) {
- return request<string>('/api/user/electronSign/personalUserFaceReal', {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json-patch+json',
- },
- data: body,
- ...(options || {}),
- });
+ return request<API.PersonalUserFaceRealCommandResult>(
+ '/api/user/electronSign/personalUserFaceReal',
+ {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ }
+ );
}
/** 涓汉涓夎绱犲疄鍚嶈璇� POST /api/user/electronSign/personalUserIdentity3Real */
diff --git a/src/services/api/enterpriseWallet.ts b/src/services/api/enterpriseWallet.ts
index dc65418..3ccb9f2 100644
--- a/src/services/api/enterpriseWallet.ts
+++ b/src/services/api/enterpriseWallet.ts
@@ -330,15 +330,3 @@
}
);
}
-
-/** 娴嬭瘯闃块噷鏀粯 POST /api/user/enterpriseWallet/testAliPay */
-export async function testAliPay(body: API.TestAliPayCommand, options?: API.RequestConfig) {
- return request<string>('/api/user/enterpriseWallet/testAliPay', {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json-patch+json',
- },
- data: body,
- ...(options || {}),
- });
-}
diff --git a/src/services/api/index.ts b/src/services/api/index.ts
index 2d2b182..c27a0d6 100644
--- a/src/services/api/index.ts
+++ b/src/services/api/index.ts
@@ -5,10 +5,12 @@
import * as enterpriseEmployee from './enterpriseEmployee';
import * as user from './user';
import * as role from './role';
+import * as sms from './sms';
import * as ocrUtils from './ocrUtils';
import * as task from './task';
import * as enterprise from './enterprise';
import * as resource from './resource';
+import * as logRecords from './logRecords';
import * as dictionary from './dictionary';
import * as enterpriseWallet from './enterpriseWallet';
import * as codeUrl from './codeUrl';
@@ -18,17 +20,18 @@
import * as taskCheckReceive from './taskCheckReceive';
import * as taskUser from './taskUser';
import * as menu from './menu';
-import * as logRecords from './logRecords';
import * as fileUtils from './fileUtils';
import * as syncDatabase from './syncDatabase';
export default {
enterpriseEmployee,
user,
role,
+ sms,
ocrUtils,
task,
enterprise,
resource,
+ logRecords,
dictionary,
enterpriseWallet,
codeUrl,
@@ -38,7 +41,6 @@
taskCheckReceive,
taskUser,
menu,
- logRecords,
fileUtils,
syncDatabase,
};
diff --git a/src/services/api/logRecords.ts b/src/services/api/logRecords.ts
index 0cb3919..4780141 100644
--- a/src/services/api/logRecords.ts
+++ b/src/services/api/logRecords.ts
@@ -2,6 +2,18 @@
// @ts-ignore
import { request } from '@/utils/request';
+/** 鎺у埗鍙版棩蹇楀垎椤靛垪琛ㄦ煡璇� POST /api/common/logRecords/getConsoleLogs */
+export async function getConsoleLogs(body: API.GetConsoleLogsQuery, options?: API.RequestConfig) {
+ return request<API.GetConsoleLogsQueryResult>('/api/common/logRecords/getConsoleLogs', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
/** 鏌ヨ鏁版嵁搴撳璁℃棩蹇楀垎椤靛垪琛� POST /api/common/logRecords/getDbAuditLogs */
export async function getDbAuditLogs(body: API.GetDbAuditLogsQuery, options?: API.RequestConfig) {
return request<API.GetDbAuditLogsQueryResult>('/api/common/logRecords/getDbAuditLogs', {
@@ -32,6 +44,18 @@
/** 璧勬簮鏃ュ織鍒嗛〉鍒楄〃鏌ヨ POST /api/common/logRecords/getResourceLogs */
export async function getResourceLogs(body: API.GetResourceLogsQuery, options?: API.RequestConfig) {
return request<API.GetResourceLogsQueryResult>('/api/common/logRecords/getResourceLogs', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** 鏌ヨ鐭俊鏃ュ織 POST /api/common/logRecords/getSmsLogs */
+export async function getSmsLogs(body: API.GetSmsLogsQuery, options?: API.RequestConfig) {
+ return request<API.GetSmsLogsQueryResult>('/api/common/logRecords/getSmsLogs', {
method: 'POST',
headers: {
'Content-Type': 'application/json-patch+json',
@@ -85,3 +109,18 @@
...(options || {}),
});
}
+
+/** 淇濆瓨鍓嶇鏃ュ織 POST /api/common/logRecords/saveFrontConsoleLog */
+export async function saveFrontConsoleLog(
+ body: API.SaveFrontConsoleLogCommand,
+ options?: API.RequestConfig
+) {
+ return request<string>('/api/common/logRecords/saveFrontConsoleLog', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
diff --git a/src/services/api/ocrUtils.ts b/src/services/api/ocrUtils.ts
index 75d1669..c342ddd 100644
--- a/src/services/api/ocrUtils.ts
+++ b/src/services/api/ocrUtils.ts
@@ -2,6 +2,18 @@
// @ts-ignore
import { request } from '@/utils/request';
+/** 鏌ヨ閾惰鍗¤瘑鍒� POST /api/common/ocrUtils/getBankOcr */
+export async function getBankOcr(body: API.GetBankOcrCommand, options?: API.RequestConfig) {
+ return request<API.GetBankOcrCommandResult>('/api/common/ocrUtils/getBankOcr', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
/** 鏂囧瓧璇嗗埆韬唤璇佽儗闈� POST /api/common/ocrUtils/getIdentityBackOcr */
export async function getIdentityBackOcr(
body: API.GetIdentityBackOcrCommand,
diff --git a/src/services/api/sms.ts b/src/services/api/sms.ts
new file mode 100644
index 0000000..5a65279
--- /dev/null
+++ b/src/services/api/sms.ts
@@ -0,0 +1,42 @@
+/* eslint-disable */
+// @ts-ignore
+import { request } from '@/utils/request';
+
+/** 鏌ヨ鐭俊閰嶇疆 POST /api/common/sms/getSmsSetting */
+export async function getSmsSetting(body: API.GetSmsSettingQuery, options?: API.RequestConfig) {
+ return request<API.GetSmsSettingQueryResult>('/api/common/sms/getSmsSetting', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** 淇濆瓨鐭俊閰嶇疆 POST /api/common/sms/saveSmsSetting */
+export async function saveSmsSetting(body: API.SaveSmsSettingCommand, options?: API.RequestConfig) {
+ return request<string>('/api/common/sms/saveSmsSetting', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
+/** 璇氱珛涓氱煭淇″钩鍙板洖浼犻�氱煡 POST /api/common/sms/smsChengLiYeNotify */
+export async function smsChengLiYeNotify(
+ body: API.SmsChengLiYeNotifyCommand,
+ options?: API.RequestConfig
+) {
+ return request<boolean>('/api/common/sms/smsChengLiYeNotify', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
diff --git a/src/services/api/typings.d.ts b/src/services/api/typings.d.ts
index 93aa633..80e7e2c 100644
--- a/src/services/api/typings.d.ts
+++ b/src/services/api/typings.d.ts
@@ -161,6 +161,8 @@
}
interface APIgetPersonalUserBankCardParams {
+ /** 鐏靛伐Id */
+ enterpriseEmployeeId?: string;
/** 閫氶亾 */
access?: EnumUserBankCardAccess;
}
@@ -173,8 +175,8 @@
}
interface APIgetPersonalUserRealResultParams {
- /** 鏌ヨ涓汉瀹炲悕缁撴灉 */
- request?: GetPersonalUserRealResultQuery;
+ /** 鐏靛伐Id */
+ enterpriseEmployeeId?: string;
}
interface APIgetPersonalUserTransactionParams {
@@ -550,6 +552,8 @@
PcWeb = 10,
/**寰俊灏忕▼搴� */
Wxmp = 20,
+ /**H5鐧诲綍 */
+ H5 = 30,
}
enum EnumCodeUrlScene {
@@ -557,6 +561,13 @@
InviteElectronSign = 1,
/**绛剧害鍦板潃 */
ElectronSignUrl = 10,
+ }
+
+ enum EnumConsoleLogAccess {
+ /**鍚庣 */
+ Back = 10,
+ /**鍓嶇 */
+ Front = 20,
}
enum EnumContractTemplateStatus {
@@ -601,6 +612,13 @@
BestSign = 10,
/**鏀粯瀹濅俊浠荤 */
AlipaySign = 20,
+ }
+
+ enum EnumElectronSignVerifyType {
+ /**鐭俊 */
+ SMS = 10,
+ /**浜鸿劯 */
+ Face = 20,
}
enum EnumEnterpriseCostStatus {
@@ -703,6 +721,21 @@
Pass = 30,
}
+ enum EnumLogLevel {
+ /**璺熻釜 */
+ Trace = 10,
+ /**璋冭瘯 */
+ Debug = 20,
+ /**淇℃伅 */
+ Information = 30,
+ /**璀﹀憡 */
+ Warning = 40,
+ /**閿欒 */
+ Error = 50,
+ /**涓ラ噸 */
+ Critical = 60,
+ }
+
enum EnumMenuType {
/**鑿滃崟 */
Menu = 10,
@@ -728,6 +761,8 @@
enum EnumOcrAccess {
/**鐧惧害 */
Baidu = 10,
+ /**涓婁笂绛� */
+ BestSign = 20,
}
enum EnumPagedListOrder {
@@ -812,28 +847,30 @@
CommonServerLogRecords = 7,
/**鍚屾鏁版嵁搴� */
CommonServerSyncDatabase = 8,
+ /**鐭俊宸ュ叿 */
+ CommonServerSmsUtils = 9,
/**鐢ㄦ埛璁よ瘉 */
- UserServerAuth = 9,
+ UserServerAuth = 10,
/**鐢ㄦ埛鑿滃崟 */
- UserServerMenu = 10,
+ UserServerMenu = 11,
/**鐢ㄦ埛璧勬簮 */
- UserServerResource = 11,
+ UserServerResource = 12,
/**鐢ㄦ埛瑙掕壊 */
- UserServerRole = 12,
+ UserServerRole = 13,
/**鐢ㄦ埛淇℃伅 */
- UserServerUser = 13,
+ UserServerUser = 14,
/**鐢靛瓙绛� */
- UserServerElectronSign = 14,
+ UserServerElectronSign = 15,
/**鐢ㄦ埛绠�鍘� */
- UserServerUserResume = 15,
+ UserServerUserResume = 16,
/**浼佷笟淇℃伅 */
- UserServerEnterprise = 16,
+ UserServerEnterprise = 17,
/**浼佷笟閽卞寘 */
- UserServerEnterpriseWallet = 17,
+ UserServerEnterpriseWallet = 18,
/**鐏靛伐淇℃伅 */
- UserServerEnterpriseEmployee = 18,
+ UserServerEnterpriseEmployee = 19,
/**鐢靛瓙绛� */
- ElectronSignServerElectronSign = 19,
+ ElectronSignServerElectronSign = 20,
}
enum EnumResourceMethod {
@@ -874,8 +911,23 @@
}
enum EnumSmsAccess {
+ /**鏃� */
+ None = 0,
/**闃块噷浜戠煭淇� */
AliyunSms = 10,
+ /**璇氱珛涓� */
+ ChengLiYe = 20,
+ }
+
+ enum EnumSmsStatus {
+ /**寰呭彂閫� */
+ Wait = 0,
+ /**鍙戦�佷腑 */
+ InProcess = 10,
+ /**鍙戦�佹垚鍔� */
+ Success = 20,
+ /**鍙戦�佸け璐� */
+ Fail = 30,
}
enum EnumTaskCheckReceiveStatus {
@@ -1112,6 +1164,24 @@
timestamp?: number;
}
+ interface FriendlyResultGetBankOcrCommandResult {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: GetBankOcrCommandResult;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
+ }
+
interface FriendlyResultGetCheckReceiveTaskQueryResult {
/** 璺熻釜Id */
traceId?: string;
@@ -1192,6 +1262,24 @@
/** 閿欒鐮� */
errorCode?: string;
data?: GetCodeUrlQueryResult;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
+ }
+
+ interface FriendlyResultGetConsoleLogsQueryResult {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: GetConsoleLogsQueryResult;
/** 鎵ц鎴愬姛 */
success?: boolean;
/** 閿欒淇℃伅 */
@@ -1858,6 +1946,42 @@
/** 閿欒鐮� */
errorCode?: string;
data?: GetSettlementTaskUsersQueryResult;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
+ }
+
+ interface FriendlyResultGetSmsLogsQueryResult {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: GetSmsLogsQueryResult;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
+ }
+
+ interface FriendlyResultGetSmsSettingQueryResult {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: GetSmsSettingQueryResult;
/** 鎵ц鎴愬姛 */
success?: boolean;
/** 閿欒淇℃伅 */
@@ -2604,6 +2728,24 @@
timestamp?: number;
}
+ interface FriendlyResultPersonalUserFaceRealCommandResult {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: PersonalUserFaceRealCommandResult;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
+ }
+
interface FriendlyResultRechargeEnterpriseWalletCommandResult {
/** 璺熻釜Id */
traceId?: string;
@@ -2706,7 +2848,7 @@
}
interface GetArrangeTaskUsersQueryResultItem {
- /** 浠诲姟浜哄憳Id */
+ /** 鐏靛伐Id */
id?: string;
/** 澶村儚 */
avatar?: string;
@@ -2737,6 +2879,21 @@
/** 宸ヤ綔缁忛獙 */
workExperience?: string;
arrangeStatus?: EnumTaskUserArrangeStatus;
+ }
+
+ interface GetBankOcrCommand {
+ access?: EnumOcrAccess;
+ /** 鍦烘櫙 */
+ scene?: string;
+ /** 閾炬帴鍦板潃 */
+ url?: string;
+ /** 鏄惁涓轰簯瀛樺偍鐩稿鍦板潃 */
+ isOssUrl?: boolean;
+ }
+
+ interface GetBankOcrCommandResult {
+ /** 鍗″彿 */
+ number?: string;
}
interface GetCheckReceiveTaskQuery {
@@ -2935,6 +3092,58 @@
paramValue5?: string;
}
+ interface GetConsoleLogsQuery {
+ access?: EnumConsoleLogAccess;
+ level?: EnumLogLevel;
+ /** 鍒涘缓鏃堕棿-璧峰 */
+ createdTimeBegin?: string;
+ /** 鍒涘缓鏃堕棿-鎴 */
+ createdTimeEnd?: string;
+ /** 鎿嶄綔浜� */
+ createdUser?: string;
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鍐呭 */
+ content?: string;
+ /** 閾炬帴鍦板潃 */
+ url?: string;
+ /** 浼犲弬 */
+ request?: string;
+ /** 鎵╁睍 */
+ ext?: string;
+ pageModel?: PagedListQueryPageModel;
+ }
+
+ interface GetConsoleLogsQueryResult {
+ pageModel?: PagedListQueryResultPageModel;
+ /** 鏁版嵁 */
+ data?: GetConsoleLogsQueryResultItem[];
+ }
+
+ interface GetConsoleLogsQueryResultItem {
+ /** Id */
+ id?: string;
+ /** 璺熻釜Id */
+ traceId?: string;
+ access?: EnumConsoleLogAccess;
+ level?: EnumLogLevel;
+ /** 鍐呭 */
+ content: string;
+ /** 鍫嗘爤璺熻釜 */
+ stackTrace?: string;
+ /** 閾炬帴鍦板潃 */
+ url?: string;
+ /** 浼犲弬 */
+ request?: string;
+ /** 鎵╁睍 */
+ ext?: string;
+ /** 瀹㈡埛IP鍦板潃 */
+ clientIpAddress?: string;
+ createdUser?: GetLogsQueryResultItemCreatedUser;
+ /** 鍒涘缓鏃堕棿 */
+ createdTime?: string;
+ }
+
interface GetContractTemplateEnterprisesQuery {
/** 鍏抽敭瀛� */
keywords?: string;
@@ -3010,14 +3219,23 @@
type GetCurrentLogierMenusQuery = Record<string, any>;
interface GetDbAuditLogsQuery {
- /** 璺熻釜Id */
- traceId?: string;
- /** 鍏抽敭瀛� */
- keywords?: string;
/** 鍒涘缓鏃堕棿-璧峰 */
createdTimeBegin?: string;
/** 鍒涘缓鏃堕棿-鎴 */
createdTimeEnd?: string;
+ /** 鎿嶄綔浜� */
+ createdUser?: string;
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 琛ㄥ悕 */
+ tableName?: string;
+ /** 涓婚敭 */
+ primaryKey?: string;
+ operate?: EnumDbAuditOperate;
+ /** 鏃у�� */
+ oldValues?: string;
+ /** 鏂板�� */
+ newValues?: string;
pageModel?: PagedListQueryPageModel;
}
@@ -3028,6 +3246,10 @@
}
interface GetDbAuditLogsQueryResultItem {
+ /** Id */
+ id?: string;
+ /** 璺熻釜Id */
+ traceId?: string;
/** 琛ㄥ悕 */
tableName?: string;
/** 涓婚敭 */
@@ -3037,7 +3259,7 @@
oldValues?: string;
/** 鏂板�� */
newValues?: string;
- createdUser?: GetResourceLogsQueryResultItemCreatedUser;
+ createdUser?: GetLogsQueryResultItemCreatedUser;
/** 鍒涘缓鏃堕棿 */
createdTime?: string;
}
@@ -3202,6 +3424,8 @@
enterpriseId?: string;
/** 鍏抽敭瀛� */
keywords?: string;
+ /** 閫氶亾 */
+ accesses?: EnumElectronSignAccess[];
status?: EnumContractTemplateStatus;
/** 瀹㈡埛涓婁紶鏃堕棿-璧峰 */
createdTimeBegin?: string;
@@ -3558,14 +3782,20 @@
}
interface GetExceptionLogsQuery {
- /** 璺熻釜Id */
- traceId?: string;
- /** 鍏抽敭瀛� */
- keywords?: string;
/** 鍒涘缓鏃堕棿-璧峰 */
createdTimeBegin?: string;
/** 鍒涘缓鏃堕棿-鎴 */
createdTimeEnd?: string;
+ /** 鎿嶄綔浜� */
+ createdUser?: string;
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 绫诲瀷 */
+ type?: string;
+ /** 浠g爜 */
+ code?: string;
+ /** 娑堟伅 */
+ message?: string;
pageModel?: PagedListQueryPageModel;
}
@@ -3576,6 +3806,10 @@
}
interface GetExceptionLogsQueryResultItem {
+ /** Id */
+ id?: string;
+ /** 璺熻釜Id */
+ traceId?: string;
/** 绫诲瀷 */
type?: string;
/** 浠g爜 */
@@ -3584,7 +3818,7 @@
message?: string;
/** 鍫嗘爤璺熻釜 */
stackTrace?: string;
- createdUser?: GetResourceLogsQueryResultItemCreatedUser;
+ createdUser?: GetLogsQueryResultItemCreatedUser;
/** 鍒涘缓鏃堕棿 */
createdTime?: string;
}
@@ -3635,6 +3869,20 @@
/** 鍦板潃 */
url?: string;
model?: BaiduOcrBusinessLicenseResultModel;
+ }
+
+ interface GetLogsQueryResultItemCreatedUser {
+ /** Id */
+ id?: string;
+ type?: EnumUserType;
+ /** 濮撳悕 */
+ name?: string;
+ /** 鐢ㄦ埛鍚� */
+ userName?: string;
+ /** 浼佷笟Id */
+ enterpriseId?: string;
+ /** 浼佷笟鍏ㄧО */
+ enterpriseName?: string;
}
interface GetMenuQueryResult {
@@ -3965,6 +4213,8 @@
interface GetPersonalUserBankCardQueryResult {
access?: EnumUserBankCardAccess;
+ /** 閾惰鍗$収鐗囧湴鍧� */
+ bankImageUrl?: string;
/** 閾惰鍗″彿 */
code?: string;
/** 鎵�灞為摱琛� */
@@ -4111,9 +4361,9 @@
signContractTime?: string;
}
- type GetPersonalUserRealResultQuery = Record<string, any>;
-
interface GetPersonalUserRealResultQueryResult {
+ /** 鐢ㄦ埛Id */
+ id?: string;
/** 鏄惁瀹炲悕 */
isReal?: boolean;
/** 瀹炲悕鏃堕棿 */
@@ -4298,14 +4548,29 @@
}
interface GetResourceLogsQuery {
- /** 璺熻釜Id */
- traceId?: string;
- /** 鍏抽敭瀛� */
- keywords?: string;
/** 鍒涘缓鏃堕棿-璧峰 */
createdTimeBegin?: string;
/** 鍒涘缓鏃堕棿-鎴 */
createdTimeEnd?: string;
+ /** 鎿嶄綔浜� */
+ createdUser?: string;
+ /** 璺熻釜Id */
+ traceId?: string;
+ method?: EnumResourceMethod;
+ /** 鍩熷悕 */
+ domain?: string;
+ /** 鍦板潃 */
+ path?: string;
+ /** 璇锋眰鍙傛暟 */
+ request?: string;
+ /** 鍝嶅簲缁撴灉 */
+ response?: string;
+ /** 鏄惁鎴愬姛 */
+ isSuccess?: boolean;
+ /** 瀹㈡埛绔疘P鍦板潃 */
+ clientIpAddress?: string;
+ /** 鏈�灏忚�楁椂姣鏁� */
+ elapsedMillisecondsMin?: number;
pageModel?: PagedListQueryPageModel;
}
@@ -4318,6 +4583,8 @@
interface GetResourceLogsQueryResultItem {
/** Id */
id?: string;
+ /** 璺熻釜Id */
+ traceId?: string;
method?: EnumResourceMethod;
/** 鍩熷悕 */
domain?: string;
@@ -4341,23 +4608,9 @@
consoleLogs?: string;
/** 鑰楁椂姣鏁� */
elapsedMilliseconds?: number;
- createdUser?: GetResourceLogsQueryResultItemCreatedUser;
+ createdUser?: GetLogsQueryResultItemCreatedUser;
/** 鍒涘缓鏃堕棿 */
createdTime?: string;
- }
-
- interface GetResourceLogsQueryResultItemCreatedUser {
- /** Id */
- id?: string;
- type?: EnumUserType;
- /** 濮撳悕 */
- name?: string;
- /** 鐢ㄦ埛鍚� */
- userName?: string;
- /** 浼佷笟Id */
- enterpriseId?: string;
- /** 浼佷笟鍏ㄧО */
- enterpriseName?: string;
}
interface GetResourcesQueryResultItem {
@@ -4576,6 +4829,89 @@
createdTime?: string;
/** 鐢靛瓙鏀舵嵁涓嬭浇閾炬帴 */
ereceiptDownloadOssUrl?: string;
+ }
+
+ interface GetSmsLogsQuery {
+ /** 鍒涘缓鏃堕棿-璧峰 */
+ createdTimeBegin?: string;
+ /** 鍒涘缓鏃堕棿-鎴 */
+ createdTimeEnd?: string;
+ /** 鎿嶄綔浜� */
+ createdUser?: string;
+ /** 璺熻釜Id */
+ traceId?: string;
+ access?: EnumSmsAccess;
+ /** 鎵嬫満鍙风爜 */
+ phoneNumber?: string;
+ /** 妯℃澘浠g爜 */
+ templateCode?: string;
+ /** 妯℃澘鍙傛暟 */
+ templateParam?: string;
+ /** 鏄惁浣跨敤 */
+ isUsed?: boolean;
+ status?: EnumSmsStatus;
+ pageModel?: PagedListQueryPageModel;
+ }
+
+ interface GetSmsLogsQueryResult {
+ pageModel?: PagedListQueryResultPageModel;
+ /** 鏁版嵁 */
+ data?: GetSmsLogsQueryResultItem[];
+ }
+
+ interface GetSmsLogsQueryResultItem {
+ /** Id */
+ id?: string;
+ /** 璺熻釜Id */
+ traceId?: string;
+ access?: EnumSmsAccess;
+ /** 鎵嬫満鍙风爜 */
+ phoneNumber?: string;
+ /** 妯℃澘浠g爜 */
+ templateCode?: string;
+ /** 妯℃澘鍙傛暟 */
+ templateParam?: string;
+ /** 鏈夋晥鏈� */
+ expiry?: string;
+ /** 鏄惁浣跨敤 */
+ isUsed?: boolean;
+ status?: EnumSmsStatus;
+ /** 璇锋眰Id */
+ requestId?: string;
+ /** 鍥炰紶浠g爜 */
+ code?: string;
+ /** 鍥炰紶娑堟伅 */
+ message?: string;
+ /** 鎿嶄綔浜篒d */
+ createdUserId?: string;
+ createdUser?: GetLogsQueryResultItemCreatedUser;
+ /** 鍒涘缓鏃堕棿 */
+ createdTime?: string;
+ }
+
+ type GetSmsSettingQuery = Record<string, any>;
+
+ interface GetSmsSettingQueryResult {
+ /** 鏄惁绂佺敤 */
+ isDisabled?: boolean;
+ /** 甯﹀嚭鍙傛暟 */
+ withoutParams?: boolean;
+ /** 姣忓垎閽熸渶澶ф暟閲� */
+ minutelyMaxCount?: number;
+ /** 姣忓皬鏃舵渶澶ф暟閲� */
+ hourlyMaxCount?: number;
+ /** 姣忓ぉ鏈�澶ф暟閲� */
+ dailyMaxCount?: number;
+ /** 閫氶亾閰嶇疆 */
+ accesses?: GetSmsSettingQueryResultAccess[];
+ }
+
+ interface GetSmsSettingQueryResultAccess {
+ access?: EnumSmsAccess;
+ /** 鏄惁绂佺敤 */
+ isDisabled?: boolean;
+ /** 鎺掑簭 */
+ sort?: number;
}
interface GetTaskEnterpriseQueryResult {
@@ -4861,14 +5197,29 @@
}
interface GetThreeResourceLogsQuery {
- /** 璺熻釜Id */
- traceId?: string;
- /** 鍏抽敭瀛� */
- keywords?: string;
/** 鍒涘缓鏃堕棿-璧峰 */
createdTimeBegin?: string;
/** 鍒涘缓鏃堕棿-鎴 */
createdTimeEnd?: string;
+ /** 鎿嶄綔浜� */
+ createdUser?: string;
+ /** 璺熻釜Id */
+ traceId?: string;
+ method?: EnumResourceMethod;
+ /** 鍩熷悕 */
+ domain?: string;
+ /** 鍦板潃 */
+ path?: string;
+ /** 璇锋眰鍙傛暟 */
+ request?: string;
+ /** 鍝嶅簲缁撴灉 */
+ response?: string;
+ /** 鏄惁鎴愬姛 */
+ isSuccess?: boolean;
+ /** 瀹㈡埛绔疘P鍦板潃 */
+ clientIpAddress?: string;
+ /** 鏈�灏忚�楁椂姣鏁� */
+ elapsedMillisecondsMin?: number;
pageModel?: PagedListQueryPageModel;
}
@@ -4881,6 +5232,8 @@
interface GetThreeResourceLogsQueryResultItem {
/** Id */
id?: string;
+ /** 璺熻釜Id */
+ traceId?: string;
method?: EnumResourceMethod;
/** 鍩熷悕 */
domain?: string;
@@ -4898,23 +5251,9 @@
isSuccess?: boolean;
/** 鑰楁椂姣鏁� */
elapsedMilliseconds?: number;
- createdUser?: GetThreeResourceLogsQueryResultItemCreatedUser;
+ createdUser?: GetLogsQueryResultItemCreatedUser;
/** 鍒涘缓鏃堕棿 */
createdTime?: string;
- }
-
- interface GetThreeResourceLogsQueryResultItemCreatedUser {
- /** Id */
- id?: string;
- type?: EnumUserType;
- /** 濮撳悕 */
- name?: string;
- /** 鐢ㄦ埛鍚� */
- userName?: string;
- /** 浼佷笟Id */
- enterpriseId?: string;
- /** 浼佷笟鍏ㄧО */
- enterpriseName?: string;
}
interface GetTraceIdLogQueryResult {
@@ -4926,6 +5265,8 @@
exceptionLogs?: GetExceptionLogsQueryResultItem[];
/** 鏁版嵁搴撳璁℃棩蹇� */
dbAuditLogs?: GetDbAuditLogsQueryResultItem[];
+ /** 鎺у埗鍙版棩蹇� */
+ consoleLogs?: GetConsoleLogsQueryResultItem[];
}
interface GetUserInfoRolesQueryResultItem {
@@ -5389,9 +5730,16 @@
id?: string;
/** 閭�绾︾煭淇$紪鍙凤紙浜岄�変竴锛� */
smsCode?: string;
+ /** 鍚堝悓妯℃澘Id锛堢绾﹀伐鍏锋椂浣跨敤锛� */
+ contractTemplateId?: string;
+ /** 绛剧害鏍¢獙绫诲瀷 */
+ verifyTypes?: EnumElectronSignVerifyType[];
+ /** 绛剧害瀹屾垚鍚庤皟鏁村湴鍧� */
+ returnUrl?: string;
}
interface PersonalUserElectronSignCommandResult {
+ userSignContractStatus?: EnumTaskUserSignContractStatus;
/** 绛剧讲鍚堝悓鐭摼鎺� */
signContractShortUrl?: string;
/** 绛剧讲鍚堝悓闀块摼鎺� */
@@ -5407,6 +5755,24 @@
identityImg: string;
/** 韬唤璇佸浗寰介潰 */
identityBackImg: string;
+ /** 浜鸿劯璇嗗埆鎴愬姛璋冩暣椤甸潰 */
+ faceRealCallbackUrl?: string;
+ }
+
+ interface PersonalUserFaceRealCommandResult {
+ /** 鐢ㄦ埛Id */
+ userId?: string;
+ /** 鐏靛伐Id */
+ enterpriseEmployeeId?: string;
+ userSignContractStatus?: EnumTaskUserSignContractStatus;
+ /** 鏄惁瀹炲悕 */
+ isReal?: boolean;
+ realMethod?: EnumUserRealMethod;
+ realStatus?: EnumPersonalUserRealStatus;
+ /** 鏄惁缁戝畾閾惰鍗� */
+ isBindBankCard?: boolean;
+ /** 浜鸿劯璇嗗埆鍦板潃 */
+ faceUrl?: string;
}
interface PersonalUserIdentity3RealCommand {
@@ -5601,6 +5967,22 @@
status?: EnumEnterpriseCostStatus;
}
+ interface SaveFrontConsoleLogCommand {
+ /** 璺熻釜Id */
+ traceId?: string;
+ level?: EnumLogLevel;
+ /** 鍐呭 */
+ content: string;
+ /** 鍫嗘爤璺熻釜 */
+ stackTrace?: string;
+ /** 閾炬帴鍦板潃 */
+ url?: string;
+ /** 浼犲弬 */
+ request?: string;
+ /** 鎵╁睍 */
+ ext?: string;
+ }
+
interface SaveMenuButtonCommand {
/** 鑿滃崟Id */
parentId?: string;
@@ -5725,7 +6107,11 @@
}
interface SavePersonalUserBankCardCommand {
+ /** 鐏靛伐Id */
+ enterpriseEmployeeId?: string;
access?: EnumUserBankCardAccess;
+ /** 閾惰鍗$収鐗囧湴鍧� */
+ bankImageUrl?: string;
/** 閾惰鍗″彿 */
code?: string;
/** 鎵�灞為摱琛� */
@@ -5754,6 +6140,29 @@
menuIds?: string[];
/** 璧勬簮 */
resources?: GetRoleQueryResultResource[];
+ }
+
+ interface SaveSmsSettingCommand {
+ /** 鏄惁绂佺敤 */
+ isDisabled?: boolean;
+ /** 甯﹀嚭鍙傛暟 */
+ withoutParams?: boolean;
+ /** 姣忓垎閽熸渶澶ф暟閲� */
+ minutelyMaxCount?: number;
+ /** 姣忓皬鏃舵渶澶ф暟閲� */
+ hourlyMaxCount?: number;
+ /** 姣忓ぉ鏈�澶ф暟閲� */
+ dailyMaxCount?: number;
+ /** 閫氶亾閰嶇疆 */
+ accesses?: SaveSmsSettingCommandAccess[];
+ }
+
+ interface SaveSmsSettingCommandAccess {
+ access?: EnumSmsAccess;
+ /** 鏄惁绂佺敤 */
+ isDisabled?: boolean;
+ /** 鎺掑簭 */
+ sort?: number;
}
interface SaveTaskInfoCommand {
@@ -5986,6 +6395,10 @@
interface SetTaskUserArrangeCommand {
/** 浠诲姟浜哄憳Id */
id?: string;
+ /** 浠诲姟Id */
+ taskInfoId?: string;
+ /** 鐏靛伐Id */
+ enterpriseEmployeeId?: string;
arrangeStatus?: EnumTaskUserArrangeStatus;
}
@@ -6014,6 +6427,8 @@
ids?: string[];
status?: EnumUserStatus;
}
+
+ type SmsChengLiYeNotifyCommand = Record<string, any>;
interface SmsLoginCommand {
/** 鎵嬫満鍙风爜 */
@@ -6167,11 +6582,6 @@
status?: EnumUserStatus;
/** 澶囨敞 */
remark?: string;
- }
-
- interface TestAliPayCommand {
- code?: string;
- freezeNo?: string;
}
interface UpdatePhoneNumberVerifyCodeCommand {
diff --git a/src/views/EnterpriseManage/components/WechatConfigureView.vue b/src/views/EnterpriseManage/components/WechatConfigureView.vue
index e2fd7b3..92ed870 100644
--- a/src/views/EnterpriseManage/components/WechatConfigureView.vue
+++ b/src/views/EnterpriseManage/components/WechatConfigureView.vue
@@ -50,11 +50,7 @@
<ProFormSelect v-model="form.name" :valueEnum="[]" placeholder="璇烽�夋嫨涓讳綋绫诲瀷">
</ProFormSelect>
</ProFormItemV2>
- <ProFormItemV2
- label="鍟嗘埛绠�绉�:"
- prop="name"
- :checkRules="[{ type: 'phone', message: '璇疯緭鍏ュ晢鎴风畝绉�' }]"
- >
+ <ProFormItemV2 label="鍟嗘埛绠�绉�:" prop="name" :checkRules="[{ message: '璇疯緭鍏ュ晢鎴风畝绉�' }]">
<ProFormText
:maxlength="64"
show-word-limit
@@ -101,17 +97,13 @@
<ProFormSelect v-model="form.name" :valueEnum="[]" placeholder="璇烽�夋嫨缁撶畻璐︽埛">
</ProFormSelect>
</ProFormItemV2>
- <ProFormItemV2
- label="寮�鎴烽摱琛�:"
- prop="name"
- :checkRules="[{ type: 'phone', message: '璇疯緭鍏ュ紑鎴烽摱琛�' }]"
- >
- <ProFormText :maxlength="64" v-model.trim="form.name" placeholder="璇疯緭鍏ュ紑鎴烽摱琛�" />
+ <ProFormItemV2 label="寮�鎴烽摱琛�:" prop="name" :checkRules="[{ message: '璇疯緭鍏ュ紑鎴烽摱琛�' }]">
+ <ProFormText v-model.trim="form.name" placeholder="璇疯緭鍏ュ紑鎴烽摱琛�" />
</ProFormItemV2>
<ProFormItemV2
label="閾惰璐﹀彿:"
prop="name"
- :checkRules="[{ type: 'tel', message: '璇疯緭鍏ラ摱琛岃处鍙�' }]"
+ :checkRules="[{ message: '璇疯緭鍏ラ摱琛岃处鍙�', type: 'bankCard' }]"
>
<ProFormText v-model.trim="form.name" placeholder="璇疯緭鍏ラ摱琛岃处鍙�" />
</ProFormItemV2>
diff --git a/src/views/System/SmsSettingManage.vue b/src/views/System/SmsSettingManage.vue
new file mode 100644
index 0000000..08b5b50
--- /dev/null
+++ b/src/views/System/SmsSettingManage.vue
@@ -0,0 +1,215 @@
+<template>
+ <LoadingLayout :loading="isLoading">
+ <AppContainer>
+ <PageFormLayout>
+ <ProForm :model="form" ref="formRef" label-width="120px" :is-read="isRead">
+ <ProFormCol>
+ <ProFormColItem :span="12">
+ <ProFormItemV2 label="鏄惁绂佺敤:" prop="isDisabled">
+ <ProFormRadio
+ v-model="form.isDisabled"
+ :value-enum="BooleanOptions"
+ :button-style="false"
+ ></ProFormRadio>
+ </ProFormItemV2>
+ </ProFormColItem>
+ </ProFormCol>
+ <ProFormCol>
+ <ProFormColItem :span="12">
+ <ProFormItemV2 label="甯﹀嚭鍙傛暟:" prop="withoutParams">
+ <ProFormRadio
+ v-model="form.withoutParams"
+ :value-enum="BooleanOptions"
+ :button-style="false"
+ ></ProFormRadio>
+ </ProFormItemV2>
+ </ProFormColItem>
+ </ProFormCol>
+ <ProFormCol>
+ <ProFormColItem :span="12">
+ <ProFormItemV2 label="姣忓垎閽熸渶澶ф暟閲�:" prop="minutelyMaxCount">
+ <ProFormInputNumber
+ :controls="false"
+ :min="0"
+ v-model="form.minutelyMaxCount"
+ placeholder="璇疯緭鍏�"
+ ></ProFormInputNumber>
+ </ProFormItemV2>
+ </ProFormColItem>
+ </ProFormCol>
+ <ProFormCol>
+ <ProFormColItem :span="12">
+ <ProFormItemV2 label="姣忓皬鏃舵渶澶ф暟閲�:" prop="hourlyMaxCount">
+ <ProFormInputNumber
+ :controls="false"
+ :min="0"
+ v-model="form.hourlyMaxCount"
+ placeholder="璇疯緭鍏�"
+ ></ProFormInputNumber>
+ </ProFormItemV2>
+ </ProFormColItem>
+ </ProFormCol>
+ <ProFormCol>
+ <ProFormColItem :span="12">
+ <ProFormItemV2 label="姣忓ぉ鏈�澶ф暟閲�:" prop="dailyMaxCount">
+ <ProFormInputNumber
+ :controls="false"
+ :min="0"
+ v-model="form.dailyMaxCount"
+ placeholder="璇疯緭鍏�"
+ ></ProFormInputNumber>
+ </ProFormItemV2>
+ </ProFormColItem>
+ </ProFormCol>
+ <ProFormCol>
+ <ProFormColItem :span="12">
+ <ProFormItemV2 label="閫氶亾閰嶇疆:" prop="accesses">
+ <div class="access-list">
+ <div class="access-item" v-for="(item, index) in form.accesses" :key="index">
+ <div class="access-item-label">
+ {{ EnumSmsAccessTextUseInSms[item.access] }}
+ </div>
+ <ProFormRadio
+ v-model="item.isDisabled"
+ :value-enum="BooleanOptions"
+ :button-style="false"
+ ></ProFormRadio>
+ <ProFormInputNumber
+ :controls="false"
+ :min="0"
+ v-model="item.sort"
+ placeholder="璇疯緭鍏�"
+ ></ProFormInputNumber>
+ </div>
+ </div>
+ </ProFormItemV2>
+ </ProFormColItem>
+ </ProFormCol>
+ </ProForm>
+ <template #footer>
+ <el-button type="primary" v-if="isRead" @click="isRead = false">缂栬緫</el-button>
+ <el-button type="primary" v-else @click="handleConfirm">纭</el-button>
+ </template>
+ </PageFormLayout>
+ </AppContainer>
+ </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import {
+ LoadingLayout,
+ AppContainer,
+ PageFormLayout,
+ ProForm,
+ ProFormCol,
+ ProFormColItem,
+ ProFormItemV2,
+ ProFormInputNumber,
+ ProFormRadio,
+} from '@bole-core/components';
+import { useQuery } from '@tanstack/vue-query';
+import * as smsServices from '@/services/api/sms';
+import { BooleanOptions, EnumSmsAccessTextUseInSms } from '@/constants';
+import { FormInstance } from 'element-plus';
+import { Message } from '@bole-core/core';
+
+defineOptions({
+ name: 'SmsSettingManage',
+});
+
+const form = reactive({
+ isDisabled: false,
+ withoutParams: false,
+ minutelyMaxCount: 0,
+ hourlyMaxCount: 0,
+ dailyMaxCount: 0,
+ accesses: [] as API.SaveSmsSettingCommandAccess[],
+});
+
+const isRead = ref(true);
+
+const { isLoading } = useQuery({
+ queryKey: ['smsServices/getSmsSetting'],
+ queryFn: async () => {
+ return await smsServices.getSmsSetting(
+ {},
+ {
+ showLoading: false,
+ }
+ );
+ },
+ placeholderData: () => ({} as API.GetSmsSettingQueryResult),
+ onSuccess(data) {
+ form.isDisabled = data.isDisabled;
+ form.withoutParams = data.withoutParams;
+ form.minutelyMaxCount = data.minutelyMaxCount;
+ form.hourlyMaxCount = data.hourlyMaxCount;
+ form.dailyMaxCount = data.dailyMaxCount;
+ form.accesses = data.accesses;
+ },
+});
+
+const formRef = ref<FormInstance>();
+
+function handleConfirm() {
+ if (!formRef.value) return;
+ formRef.value.validate((valid) => {
+ if (valid) {
+ submit();
+ } else {
+ return;
+ }
+ });
+}
+
+async function submit() {
+ try {
+ let params: API.SaveSmsSettingCommand = {
+ isDisabled: form.isDisabled,
+ withoutParams: form.withoutParams,
+ minutelyMaxCount: form.minutelyMaxCount,
+ hourlyMaxCount: form.hourlyMaxCount,
+ dailyMaxCount: form.dailyMaxCount,
+ accesses: form.accesses,
+ };
+ let res = await smsServices.saveSmsSetting(params);
+ if (res) {
+ Message.successMessage('鎿嶄綔鎴愬姛');
+ isRead.value = true;
+ }
+ } catch (error) {}
+}
+</script>
+
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+
+.access-list {
+ flex: 1;
+ min-width: 0;
+
+ :deep() {
+ .el-form-item__content {
+ flex-direction: column;
+ align-items: flex-start;
+ }
+ }
+}
+
+.access-item {
+ display: flex;
+ align-items: center;
+ margin-bottom: 10px;
+
+ .access-item-label {
+ margin-right: 20px;
+ word-break: keep-all;
+ }
+
+ :deep() {
+ .el-radio-group {
+ margin-right: 20px;
+ }
+ }
+}
+</style>
diff --git a/src/views/TraceIdLogManage/DbAuditLogs.vue b/src/views/TraceIdLogManage/DbAuditLogs.vue
new file mode 100644
index 0000000..9b62f3a
--- /dev/null
+++ b/src/views/TraceIdLogManage/DbAuditLogs.vue
@@ -0,0 +1,230 @@
+<template>
+ <LoadingLayout :loading="state.loading">
+ <AppContainer>
+ <ProTableQueryFilterBar @on-reset="reset">
+ <template #query>
+ <QueryFilterItem tip-content="鎿嶄綔">
+ <FieldRadio
+ v-model="extraParamState.operate"
+ :value-enum="EnumDbAuditOperateText"
+ buttonStyle
+ showAllBtn
+ :all-btn-value="null"
+ @change="getList()"
+ />
+ </QueryFilterItem>
+ <QueryFilterItem tip-content="鍒涘缓鏃堕棿">
+ <FieldDatePicker
+ v-model="extraParamState.createdTime"
+ type="daterange"
+ range-separator="~"
+ start-placeholder="寮�濮嬫椂闂�"
+ end-placeholder="缁撴潫鏃堕棿"
+ clearable
+ @change="getList()"
+ ></FieldDatePicker>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.createdUser"
+ style="width: 260px"
+ placeholder="鎿嶄綔浜篶reatedUser"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.traceId"
+ style="width: 260px"
+ placeholder="璺熻釜Id(traceId)"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.tableName"
+ style="width: 260px"
+ placeholder="琛ㄥ悕tableName"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.primaryKey"
+ style="width: 260px"
+ placeholder="涓婚敭primaryKey"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.oldValues"
+ style="width: 260px"
+ placeholder="鏃у�紀ldValues"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.newValues"
+ style="width: 260px"
+ placeholder="鏂板�糿ewValues"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ </template>
+ </ProTableQueryFilterBar>
+ <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
+ <template #oldValues="{ row }">
+ <el-button
+ v-if="row.oldValues"
+ type="primary"
+ link
+ @click="handleAdd({ json: { oldValues: JSON.parse(row.oldValues) } })"
+ >鏌ョ湅</el-button
+ >
+ </template>
+ <template #newValues="{ row }">
+ <el-button
+ v-if="row.newValues"
+ type="primary"
+ link
+ @click="handleAdd({ json: { newValues: JSON.parse(row.newValues) } })"
+ >鏌ョ湅</el-button
+ >
+ </template>
+ <template #createdUser="{ row }">
+ <el-button
+ v-if="row.createdUser"
+ type="primary"
+ link
+ @click="
+ handleAdd({ json: { createdUser: JSON.parse(JSON.stringify(row.createdUser)) } })
+ "
+ >鏌ョ湅</el-button
+ >
+ </template>
+ </ProTableV2>
+ <JsonViewerDialog v-bind="dialogProps" />
+ </AppContainer>
+ </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import {
+ ProTableQueryFilterBar,
+ SearchInput,
+ LoadingLayout,
+ AppContainer,
+ QueryFilterItem,
+ useTable,
+ ProTableV2,
+ FieldRadio,
+ FieldDatePicker,
+ useFormDialog,
+} from '@bole-core/components';
+import { EnumDbAuditOperateText } from '@/constants';
+import * as logRecordsServices from '@/services/api/logRecords';
+import { ModelValueType } from 'element-plus';
+import { format } from '@/utils';
+import JsonViewerDialog from './components/JsonViewerDialog.vue';
+
+defineOptions({
+ name: 'DbAuditLogs',
+});
+
+const operationBtnMap: Record<string, OperationBtnType> = {
+ detailBtn: { emits: { onClick: (role) => openDialog(role) } },
+};
+
+const { column, operationBtns } = useAccess({
+ operationBtnMap,
+});
+
+const BaseState = {
+ loading: true,
+};
+
+const state = reactive({ ...BaseState });
+
+onMounted(async () => {
+ await getList();
+ state.loading = false;
+});
+
+const {
+ getDataSource: getList,
+ proTableProps,
+ paginationState,
+ extraParamState,
+ reset,
+} = useTable(
+ async ({ pageIndex, pageSize }, extraParamState) => {
+ try {
+ let params: API.GetDbAuditLogsQuery = {
+ pageModel: {
+ rows: pageSize,
+ page: pageIndex,
+ // orderInput: extraParamState.orderInput,
+ },
+ createdTimeBegin: format(extraParamState.createdTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
+ createdTimeEnd: format(extraParamState.createdTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
+ createdUser: extraParamState.createdUser,
+ traceId: extraParamState.traceId,
+ tableName: extraParamState.tableName,
+ primaryKey: extraParamState.primaryKey,
+ operate: extraParamState.operate,
+ oldValues: extraParamState.oldValues,
+ newValues: extraParamState.newValues,
+ };
+ let res = await logRecordsServices.getDbAuditLogs(params, {
+ showLoading: !state.loading,
+ });
+ return res;
+ } catch (error) {}
+ },
+ {
+ defaultExtraParams: {
+ createdUser: '',
+ traceId: '',
+ operate: '' as any as EnumDbAuditOperate,
+ tableName: '',
+ primaryKey: '',
+ oldValues: '',
+ newValues: '',
+ createdTime: [] as unknown as ModelValueType,
+ orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }],
+ },
+ columnsRenderProps: {
+ createdTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
+ operate: { type: 'enum', valueEnum: EnumDbAuditOperateText },
+ },
+ }
+);
+
+const { dialogProps, handleAdd } = useFormDialog({
+ defaultFormParams: {
+ json: null,
+ },
+});
+
+function openDialog(row: API.GetDbAuditLogsQueryResultItem) {
+ handleAdd({
+ json: {
+ oldValues: JSON.parse(row.oldValues),
+ newValues: JSON.parse(row.newValues),
+ createdUser: JSON.parse(JSON.stringify(row.createdUser)),
+ },
+ });
+}
+</script>
+
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+</style>
diff --git a/src/views/TraceIdLogManage/ExceptionLogs.vue b/src/views/TraceIdLogManage/ExceptionLogs.vue
new file mode 100644
index 0000000..b6e0c69
--- /dev/null
+++ b/src/views/TraceIdLogManage/ExceptionLogs.vue
@@ -0,0 +1,185 @@
+<template>
+ <LoadingLayout :loading="state.loading">
+ <AppContainer>
+ <ProTableQueryFilterBar @on-reset="reset">
+ <template #query>
+ <QueryFilterItem tip-content="鍒涘缓鏃堕棿">
+ <FieldDatePicker
+ v-model="extraParamState.createdTime"
+ type="daterange"
+ range-separator="~"
+ start-placeholder="寮�濮嬫椂闂�"
+ end-placeholder="缁撴潫鏃堕棿"
+ clearable
+ @change="getList()"
+ ></FieldDatePicker>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.createdUser"
+ style="width: 260px"
+ placeholder="鎿嶄綔浜篶reatedUser"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.traceId"
+ style="width: 260px"
+ placeholder="璺熻釜Id(traceId)"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.type"
+ style="width: 260px"
+ placeholder="绫诲瀷type"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.code"
+ style="width: 260px"
+ placeholder="浠g爜code"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.message"
+ style="width: 260px"
+ placeholder="娑堟伅message"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ </template>
+ </ProTableQueryFilterBar>
+ <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
+ <template #createdUser="{ row }">
+ <el-button
+ v-if="row.createdUser"
+ type="primary"
+ link
+ @click="
+ handleAdd({ json: { createdUser: JSON.parse(JSON.stringify(row.createdUser)) } })
+ "
+ >鏌ョ湅</el-button
+ >
+ </template>
+ </ProTableV2>
+ <JsonViewerDialog v-bind="dialogProps" />
+ </AppContainer>
+ </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import {
+ ProTableQueryFilterBar,
+ SearchInput,
+ LoadingLayout,
+ AppContainer,
+ QueryFilterItem,
+ useTable,
+ ProTableV2,
+ FieldRadio,
+ FieldDatePicker,
+ useFormDialog,
+} from '@bole-core/components';
+import * as logRecordsServices from '@/services/api/logRecords';
+import { ModelValueType } from 'element-plus';
+import { format } from '@/utils';
+import JsonViewerDialog from './components/JsonViewerDialog.vue';
+
+defineOptions({
+ name: 'ExceptionLogs',
+});
+
+const operationBtnMap: Record<string, OperationBtnType> = {
+ detailBtn: { emits: { onClick: (role) => openDialog(role) } },
+};
+
+const { column, operationBtns } = useAccess({
+ operationBtnMap,
+});
+
+const BaseState = {
+ loading: true,
+};
+
+const state = reactive({ ...BaseState });
+
+onMounted(async () => {
+ await getList();
+ state.loading = false;
+});
+
+const {
+ getDataSource: getList,
+ proTableProps,
+ paginationState,
+ extraParamState,
+ reset,
+} = useTable(
+ async ({ pageIndex, pageSize }, extraParamState) => {
+ try {
+ let params: API.GetExceptionLogsQuery = {
+ pageModel: {
+ rows: pageSize,
+ page: pageIndex,
+ // orderInput: extraParamState.orderInput,
+ },
+ createdTimeBegin: format(extraParamState.createdTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
+ createdTimeEnd: format(extraParamState.createdTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
+ createdUser: extraParamState.createdUser,
+ traceId: extraParamState.traceId,
+ type: extraParamState.type,
+ code: extraParamState.code,
+ message: extraParamState.message,
+ };
+ let res = await logRecordsServices.getExceptionLogs(params, {
+ showLoading: !state.loading,
+ });
+ return res;
+ } catch (error) {}
+ },
+ {
+ defaultExtraParams: {
+ createdUser: '',
+ traceId: '',
+ type: '',
+ code: '',
+ message: '',
+ createdTime: [] as unknown as ModelValueType,
+ orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }],
+ },
+ columnsRenderProps: {
+ createdTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
+ },
+ }
+);
+
+const { dialogProps, handleAdd } = useFormDialog({
+ defaultFormParams: {
+ json: null,
+ },
+});
+
+function openDialog(row: API.GetResourceLogsQueryResultItem) {
+ handleAdd({
+ json: {
+ createdUser: JSON.parse(JSON.stringify(row.createdUser)),
+ },
+ });
+}
+</script>
+
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+</style>
diff --git a/src/views/TraceIdLogManage/ResourceLogs.vue b/src/views/TraceIdLogManage/ResourceLogs.vue
new file mode 100644
index 0000000..ff92f5e
--- /dev/null
+++ b/src/views/TraceIdLogManage/ResourceLogs.vue
@@ -0,0 +1,281 @@
+<template>
+ <LoadingLayout :loading="state.loading">
+ <AppContainer>
+ <ProTableQueryFilterBar @on-reset="reset">
+ <template #query>
+ <QueryFilterItem tip-content="鏄惁鎴愬姛">
+ <FieldRadio
+ v-model="extraParamState.isSuccess"
+ :value-enum="[
+ { label: '鎴愬姛', value: true },
+ { label: '澶辫触', value: false },
+ ]"
+ buttonStyle
+ showAllBtn
+ :all-btn-value="null"
+ @change="getList()"
+ />
+ </QueryFilterItem>
+ <QueryFilterItem tip-content="鍒涘缓鏃堕棿">
+ <FieldDatePicker
+ v-model="extraParamState.createdTime"
+ type="daterange"
+ range-separator="~"
+ start-placeholder="寮�濮嬫椂闂�"
+ end-placeholder="缁撴潫鏃堕棿"
+ clearable
+ @change="getList()"
+ ></FieldDatePicker>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.createdUser"
+ style="width: 260px"
+ placeholder="鎿嶄綔浜篶reatedUser"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.traceId"
+ style="width: 260px"
+ placeholder="璺熻釜Id(traceId)"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.domain"
+ style="width: 260px"
+ placeholder="鍩熷悕domain"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.path"
+ style="width: 260px"
+ placeholder="鍦板潃path"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.request"
+ style="width: 260px"
+ placeholder="璇锋眰鍙傛暟request"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.response"
+ style="width: 260px"
+ placeholder="鍝嶅簲缁撴灉response"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.clientIpAddress"
+ style="width: 260px"
+ placeholder="瀹㈡埛绔疘P鍦板潃clientIpAddress"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.elapsedMillisecondsMin"
+ style="width: 260px"
+ placeholder="鏈�灏忚�楁椂姣鏁癳lapsedMillisecondsMin"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ </template>
+ </ProTableQueryFilterBar>
+ <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
+ <template #requestHeaders="{ row }">
+ <el-button
+ v-if="row.requestHeaders"
+ type="primary"
+ link
+ @click="handleAdd({ json: { requestHeaders: JSON.parse(row.requestHeaders) } })"
+ >鏌ョ湅</el-button
+ >
+ </template>
+ <template #request="{ row }">
+ <el-button
+ v-if="row.request"
+ type="primary"
+ link
+ @click="handleAdd({ json: { request: JSON.parse(row.request) } })"
+ >鏌ョ湅</el-button
+ >
+ </template>
+ <template #responseHeaders="{ row }">
+ <el-button
+ v-if="row.responseHeaders"
+ type="primary"
+ link
+ @click="handleAdd({ json: { responseHeaders: JSON.parse(row.responseHeaders) } })"
+ >鏌ョ湅</el-button
+ >
+ </template>
+ <template #response="{ row }">
+ <el-button
+ v-if="row.response"
+ type="primary"
+ link
+ @click="handleAdd({ json: { response: JSON.parse(row.response) } })"
+ >鏌ョ湅</el-button
+ >
+ </template>
+ <template #createdUser="{ row }">
+ <el-button
+ v-if="row.createdUser"
+ type="primary"
+ link
+ @click="
+ handleAdd({ json: { createdUser: JSON.parse(JSON.stringify(row.createdUser)) } })
+ "
+ >鏌ョ湅</el-button
+ >
+ </template>
+ </ProTableV2>
+ <JsonViewerDialog v-bind="dialogProps" />
+ </AppContainer>
+ </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import {
+ ProTableQueryFilterBar,
+ SearchInput,
+ LoadingLayout,
+ AppContainer,
+ QueryFilterItem,
+ useTable,
+ ProTableV2,
+ FieldRadio,
+ FieldDatePicker,
+ useFormDialog,
+} from '@bole-core/components';
+import * as logRecordsServices from '@/services/api/logRecords';
+import { ModelValueType } from 'element-plus';
+import { format } from '@/utils';
+import JsonViewerDialog from './components/JsonViewerDialog.vue';
+
+defineOptions({
+ name: 'ResourceLogs',
+});
+
+const operationBtnMap: Record<string, OperationBtnType> = {
+ detailBtn: { emits: { onClick: (role) => openDialog(role) } },
+};
+
+const { column, operationBtns } = useAccess({
+ operationBtnMap,
+});
+
+const BaseState = {
+ loading: true,
+};
+
+const state = reactive({ ...BaseState });
+
+onMounted(async () => {
+ await getList();
+ state.loading = false;
+});
+
+const {
+ getDataSource: getList,
+ proTableProps,
+ paginationState,
+ extraParamState,
+ reset,
+} = useTable(
+ async ({ pageIndex, pageSize }, extraParamState) => {
+ try {
+ let params: API.GetResourceLogsQuery = {
+ pageModel: {
+ rows: pageSize,
+ page: pageIndex,
+ // orderInput: extraParamState.orderInput,
+ },
+ createdUser: extraParamState.createdUser,
+ createdTimeBegin: format(extraParamState.createdTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
+ createdTimeEnd: format(extraParamState.createdTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
+ traceId: extraParamState.traceId,
+ method: extraParamState.method,
+ domain: extraParamState.domain,
+ path: extraParamState.path,
+ request: extraParamState.request,
+ response: extraParamState.response,
+ isSuccess: extraParamState.isSuccess,
+ clientIpAddress: extraParamState.clientIpAddress,
+ elapsedMillisecondsMin: extraParamState.elapsedMillisecondsMin,
+ };
+ let res = await logRecordsServices.getResourceLogs(params, {
+ showLoading: !state.loading,
+ });
+ return res;
+ } catch (error) {}
+ },
+ {
+ defaultExtraParams: {
+ createdUser: '',
+ traceId: '',
+ method: '' as any as EnumResourceMethod,
+ domain: '',
+ path: '',
+ request: '',
+ response: '',
+ isSuccess: null as any as boolean,
+ clientIpAddress: '',
+ elapsedMillisecondsMin: null,
+ createdTime: [] as unknown as ModelValueType,
+ orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }],
+ },
+ columnsRenderProps: {
+ createdTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
+ method: { type: 'enum', valueEnum: EnumResourceMethodText },
+ isSuccess: {
+ formatter: (row: API.GetResourceLogsQueryResultItem) => {
+ return row.isSuccess ? '鏄�' : '鍚�';
+ },
+ },
+ },
+ }
+);
+
+const { dialogProps, handleAdd } = useFormDialog({
+ defaultFormParams: {
+ json: null,
+ },
+});
+
+function openDialog(row: API.GetResourceLogsQueryResultItem) {
+ handleAdd({
+ json: {
+ requestHeaders: JSON.parse(row.requestHeaders),
+ request: JSON.parse(row.request),
+ responseHeaders: JSON.parse(row.responseHeaders),
+ response: JSON.parse(row.response),
+ createdUser: JSON.parse(JSON.stringify(row.createdUser)),
+ },
+ });
+}
+</script>
+
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+</style>
diff --git a/src/views/TraceIdLogManage/ThreeResourceLogs.vue b/src/views/TraceIdLogManage/ThreeResourceLogs.vue
new file mode 100644
index 0000000..0f2115a
--- /dev/null
+++ b/src/views/TraceIdLogManage/ThreeResourceLogs.vue
@@ -0,0 +1,281 @@
+<template>
+ <LoadingLayout :loading="state.loading">
+ <AppContainer>
+ <ProTableQueryFilterBar @on-reset="reset">
+ <template #query>
+ <QueryFilterItem tip-content="鏄惁鎴愬姛">
+ <FieldRadio
+ v-model="extraParamState.isSuccess"
+ :value-enum="[
+ { label: '鎴愬姛', value: true },
+ { label: '澶辫触', value: false },
+ ]"
+ buttonStyle
+ showAllBtn
+ :all-btn-value="null"
+ @change="getList()"
+ />
+ </QueryFilterItem>
+ <QueryFilterItem tip-content="鍒涘缓鏃堕棿">
+ <FieldDatePicker
+ v-model="extraParamState.createdTime"
+ type="daterange"
+ range-separator="~"
+ start-placeholder="寮�濮嬫椂闂�"
+ end-placeholder="缁撴潫鏃堕棿"
+ clearable
+ @change="getList()"
+ ></FieldDatePicker>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.createdUser"
+ style="width: 260px"
+ placeholder="鎿嶄綔浜篶reatedUser"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.traceId"
+ style="width: 260px"
+ placeholder="璺熻釜Id(traceId)"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.domain"
+ style="width: 260px"
+ placeholder="鍩熷悕domain"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.path"
+ style="width: 260px"
+ placeholder="鍦板潃path"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.request"
+ style="width: 260px"
+ placeholder="璇锋眰鍙傛暟request"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.response"
+ style="width: 260px"
+ placeholder="鍝嶅簲缁撴灉response"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.clientIpAddress"
+ style="width: 260px"
+ placeholder="瀹㈡埛绔疘P鍦板潃clientIpAddress"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ <QueryFilterItem>
+ <SearchInput
+ v-model="extraParamState.elapsedMillisecondsMin"
+ style="width: 260px"
+ placeholder="鏈�灏忚�楁椂姣鏁癳lapsedMillisecondsMin"
+ @on-click-search="getList()"
+ >
+ </SearchInput>
+ </QueryFilterItem>
+ </template>
+ </ProTableQueryFilterBar>
+ <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
+ <template #requestHeaders="{ row }">
+ <el-button
+ v-if="row.requestHeaders"
+ type="primary"
+ link
+ @click="handleAdd({ json: { requestHeaders: JSON.parse(row.requestHeaders) } })"
+ >鏌ョ湅</el-button
+ >
+ </template>
+ <template #request="{ row }">
+ <el-button
+ v-if="row.request"
+ type="primary"
+ link
+ @click="handleAdd({ json: { request: JSON.parse(row.request) } })"
+ >鏌ョ湅</el-button
+ >
+ </template>
+ <template #responseHeaders="{ row }">
+ <el-button
+ v-if="row.responseHeaders"
+ type="primary"
+ link
+ @click="handleAdd({ json: { responseHeaders: JSON.parse(row.responseHeaders) } })"
+ >鏌ョ湅</el-button
+ >
+ </template>
+ <template #response="{ row }">
+ <el-button
+ v-if="row.response"
+ type="primary"
+ link
+ @click="handleAdd({ json: { response: JSON.parse(row.response) } })"
+ >鏌ョ湅</el-button
+ >
+ </template>
+ <template #createdUser="{ row }">
+ <el-button
+ v-if="row.createdUser"
+ type="primary"
+ link
+ @click="
+ handleAdd({ json: { createdUser: JSON.parse(JSON.stringify(row.createdUser)) } })
+ "
+ >鏌ョ湅</el-button
+ >
+ </template>
+ </ProTableV2>
+ <JsonViewerDialog v-bind="dialogProps" />
+ </AppContainer>
+ </LoadingLayout>
+</template>
+
+<script setup lang="ts">
+import {
+ ProTableQueryFilterBar,
+ SearchInput,
+ LoadingLayout,
+ AppContainer,
+ QueryFilterItem,
+ useTable,
+ ProTableV2,
+ FieldRadio,
+ FieldDatePicker,
+ useFormDialog,
+} from '@bole-core/components';
+import * as logRecordsServices from '@/services/api/logRecords';
+import { ModelValueType } from 'element-plus';
+import { format } from '@/utils';
+import JsonViewerDialog from './components/JsonViewerDialog.vue';
+
+defineOptions({
+ name: 'ThreeResourceLogs',
+});
+
+const operationBtnMap: Record<string, OperationBtnType> = {
+ detailBtn: { emits: { onClick: (role) => openDialog(role) } },
+};
+
+const { column, operationBtns } = useAccess({
+ operationBtnMap,
+});
+
+const BaseState = {
+ loading: true,
+};
+
+const state = reactive({ ...BaseState });
+
+onMounted(async () => {
+ await getList();
+ state.loading = false;
+});
+
+const {
+ getDataSource: getList,
+ proTableProps,
+ paginationState,
+ extraParamState,
+ reset,
+} = useTable(
+ async ({ pageIndex, pageSize }, extraParamState) => {
+ try {
+ let params: API.GetThreeResourceLogsQuery = {
+ pageModel: {
+ rows: pageSize,
+ page: pageIndex,
+ // orderInput: extraParamState.orderInput,
+ },
+ createdTimeBegin: format(extraParamState.createdTime?.[0] ?? '', 'YYYY-MM-DD 00:00:00'),
+ createdTimeEnd: format(extraParamState.createdTime?.[1] ?? '', 'YYYY-MM-DD 23:59:59'),
+ createdUser: extraParamState.createdUser,
+ traceId: extraParamState.traceId,
+ method: extraParamState.method,
+ domain: extraParamState.domain,
+ path: extraParamState.path,
+ request: extraParamState.request,
+ response: extraParamState.response,
+ isSuccess: extraParamState.isSuccess,
+ clientIpAddress: extraParamState.clientIpAddress,
+ elapsedMillisecondsMin: extraParamState.elapsedMillisecondsMin,
+ };
+ let res = await logRecordsServices.getThreeResourceLogs(params, {
+ showLoading: !state.loading,
+ });
+ return res;
+ } catch (error) {}
+ },
+ {
+ defaultExtraParams: {
+ createdUser: '',
+ traceId: '',
+ method: '' as any as EnumResourceMethod,
+ domain: '',
+ path: '',
+ request: '',
+ response: '',
+ isSuccess: null as any as boolean,
+ clientIpAddress: '',
+ elapsedMillisecondsMin: null,
+ createdTime: [] as unknown as ModelValueType,
+ orderInput: [{ property: 'createdTime', order: EnumPagedListOrder.Desc }],
+ },
+ columnsRenderProps: {
+ createdTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
+ method: { type: 'enum', valueEnum: EnumResourceMethodText },
+ isSuccess: {
+ formatter: (row: API.GetResourceLogsQueryResultItem) => {
+ return row.isSuccess ? '鏄�' : '鍚�';
+ },
+ },
+ },
+ }
+);
+
+const { dialogProps, handleAdd } = useFormDialog({
+ defaultFormParams: {
+ json: null,
+ },
+});
+
+function openDialog(row: API.GetResourceLogsQueryResultItem) {
+ handleAdd({
+ json: {
+ requestHeaders: JSON.parse(row.requestHeaders),
+ request: JSON.parse(row.request),
+ responseHeaders: JSON.parse(row.responseHeaders),
+ response: JSON.parse(row.response),
+ createdUser: JSON.parse(JSON.stringify(row.createdUser)),
+ },
+ });
+}
+</script>
+
+<style lang="scss" scoped>
+@use '@/style/common.scss' as *;
+</style>
diff --git a/src/views/TraceIdLogManage/components/DbAuditLogsView.vue b/src/views/TraceIdLogManage/components/DbAuditLogsView.vue
index 5d6f420..4521b6a 100644
--- a/src/views/TraceIdLogManage/components/DbAuditLogsView.vue
+++ b/src/views/TraceIdLogManage/components/DbAuditLogsView.vue
@@ -1,44 +1,4 @@
<template>
- <!-- <el-collapse v-model="activeName" accordion>
- <el-collapse-item
- v-for="item in dbAuditLogs"
- :key="item.createdTime"
- name="1"
- style="overflow: auto; max-height: 600px"
- >
- <ProForm :model="item" is-read>
- <ProFormItemV2 label="tableName:">
- {{ item.tableName }}
- </ProFormItemV2>
- <ProFormItemV2 label="primaryKey:">{{ item.primaryKey }} </ProFormItemV2>
- <ProFormItemV2 label="operate:"> {{ EnumDbAuditOperateText[item.operate] }}</ProFormItemV2>
- <ProFormItemV2 label="oldValues:" label-position="top">
- <json-viewer
- :copyable="true"
- :boxed="true"
- :value="JSON.parse(item.oldValues)"
- ></json-viewer>
- </ProFormItemV2>
- <ProFormItemV2 label="newValues:" label-position="top">
- <json-viewer
- :copyable="true"
- :boxed="true"
- :value="JSON.parse(item.newValues)"
- ></json-viewer>
- </ProFormItemV2>
- <ProFormItemV2 label="createdUser:">
- <json-viewer
- :copyable="true"
- :boxed="true"
- :value="JSON.parse(JSON.stringify(item.createdUser))"
- ></json-viewer>
- </ProFormItemV2>
- <ProFormItemV2 label="createdTime:">
- {{ format(item.createdTime, 'YYYY-MM-DD HH:mm:ss') }}</ProFormItemV2
- >
- </ProForm>
- </el-collapse-item>
- </el-collapse> -->
<AppContainer>
<ProTableV2
:columns="columns"
@@ -47,12 +7,18 @@
:column-render-map="columnsRenderProps"
>
<template #oldValues="{ row }">
- <el-button type="primary" link @click="handleAdd({ json: JSON.stringify(row.oldValues) })"
+ <el-button
+ type="primary"
+ link
+ @click="handleAdd({ json: { oldValues: JSON.parse(row.oldValues) } })"
>鏌ョ湅</el-button
>
</template>
<template #newValues="{ row }">
- <el-button type="primary" link @click="handleAdd({ json: JSON.stringify(row.newValues) })"
+ <el-button
+ type="primary"
+ link
+ @click="handleAdd({ json: { newValues: JSON.parse(row.newValues) } })"
>鏌ョ湅</el-button
>
</template>
@@ -60,7 +26,7 @@
<el-button
type="primary"
link
- @click="handleAdd({ json: JSON.parse(JSON.stringify(row.createdUser)) })"
+ @click="handleAdd({ json: { createdUser: JSON.parse(JSON.stringify(row.createdUser)) } })"
>鏌ョ湅</el-button
>
</template>
@@ -76,6 +42,7 @@
defineColumns,
ProTableV2Props,
useFormDialog,
+ defineOperationBtns,
} from '@bole-core/components';
import JsonViewerDialog from './JsonViewerDialog.vue';
@@ -107,6 +74,18 @@
}))
);
+const operationBtns = defineOperationBtns([
+ {
+ data: {
+ enCode: 'detailBtn',
+ name: '鏌ョ湅',
+ },
+ emits: {
+ onClick: (role) => openDialog(role),
+ },
+ },
+]);
+
const columnsRenderProps: ProTableV2Props['columnRenderMap'] = {
operate: { type: 'enum', valueEnum: EnumDbAuditOperateText },
createdTime: { type: 'date', format: 'YYYY-MM-DD HH:mm:ss' },
@@ -117,6 +96,16 @@
json: null,
},
});
+
+function openDialog(row: API.GetDbAuditLogsQueryResultItem) {
+ handleAdd({
+ json: {
+ oldValues: JSON.parse(row.oldValues),
+ newValues: JSON.parse(row.newValues),
+ createdUser: JSON.parse(JSON.stringify(row.createdUser)),
+ },
+ });
+}
</script>
<style lang="scss" scoped>
diff --git a/src/views/TraceIdLogManage/components/ExceptionLogsView.vue b/src/views/TraceIdLogManage/components/ExceptionLogsView.vue
index 1181afd..6625456 100644
--- a/src/views/TraceIdLogManage/components/ExceptionLogsView.vue
+++ b/src/views/TraceIdLogManage/components/ExceptionLogsView.vue
@@ -1,31 +1,4 @@
<template>
- <!-- <el-collapse v-model="activeName" accordion>
- <el-collapse-item
- v-for="item in exceptionLogs"
- :key="item.createdTime"
- name="1"
- style="overflow: auto; max-height: 600px"
- >
- <ProForm :model="item" is-read>
- <ProFormItemV2 label="type:">
- {{ item.type }}
- </ProFormItemV2>
- <ProFormItemV2 label="code:">{{ item.code }} </ProFormItemV2>
- <ProFormItemV2 label="message:"> {{ item.message }}</ProFormItemV2>
- <ProFormItemV2 label="stackTrace:"> {{ item.stackTrace }}</ProFormItemV2>
- <ProFormItemV2 label="createdUser:">
- <json-viewer
- :copyable="true"
- :boxed="true"
- :value="JSON.parse(JSON.stringify(item.createdUser))"
- ></json-viewer>
- </ProFormItemV2>
- <ProFormItemV2 label="createdTime:">
- {{ format(item.createdTime, 'YYYY-MM-DD HH:mm:ss') }}</ProFormItemV2
- >
- </ProForm>
- </el-collapse-item>
- </el-collapse> -->
<AppContainer>
<ProTableV2
:columns="columns"
diff --git a/src/views/TraceIdLogManage/components/JsonViewerDialog.vue b/src/views/TraceIdLogManage/components/JsonViewerDialog.vue
index 013001b..5346c74 100644
--- a/src/views/TraceIdLogManage/components/JsonViewerDialog.vue
+++ b/src/views/TraceIdLogManage/components/JsonViewerDialog.vue
@@ -1,12 +1,23 @@
<template>
<ProDialog title="鏌ョ湅" v-model="visible" destroy-on-close draggable>
- <json-viewer
- :copyable="true"
- :boxed="true"
- :preview-mode="true"
- :value="form.json"
- expanded
- ></json-viewer>
+ <ProForm :model="form" ref="dialogForm" label-width="120px">
+ <ProFormItemV2
+ v-for="(item, index) in jsonList"
+ :label="`${item}锛歚"
+ :key="index"
+ prop="electronSignAccesses"
+ required
+ >
+ <json-viewer
+ :copyable="true"
+ :boxed="true"
+ :preview-mode="true"
+ :value="form.json?.[item]"
+ expanded
+ ></json-viewer>
+ </ProFormItemV2>
+ </ProForm>
+
<template #footer>
<span class="dialog-footer">
<el-button @click="emit('onCancel')">鍙� 娑�</el-button>
@@ -17,7 +28,7 @@
</template>
<script setup lang="ts">
-import { ProDialog } from '@bole-core/components';
+import { ProDialog, ProForm, ProFormItemV2 } from '@bole-core/components';
import JsonViewer from 'vue-json-viewer';
defineOptions({
@@ -37,6 +48,10 @@
const form = defineModel<Form>('form');
+const jsonList = computed(() => {
+ return Object.keys(form.value.json);
+});
+
const emit = defineEmits<{
(e: 'onConfirm'): void;
(e: 'onCancel'): void;
diff --git a/src/views/TraceIdLogManage/components/ResourceLogsView.vue b/src/views/TraceIdLogManage/components/ResourceLogsView.vue
index 1c2096b..f7b9f3c 100644
--- a/src/views/TraceIdLogManage/components/ResourceLogsView.vue
+++ b/src/views/TraceIdLogManage/components/ResourceLogsView.vue
@@ -1,66 +1,4 @@
<template>
- <!-- <el-collapse v-model="activeName" accordion>
- <el-collapse-item
- v-for="item in resourceLogs"
- :key="item.id"
- name="1"
- style="overflow: auto; max-height: 600px"
- >
- <template #title>
- <el-button type="primary" @click="resend(item.id)" link>閲嶆柊鍙戦��</el-button>
- </template>
- <ProForm :model="item" is-read style="padding: 0 20px">
- <ProFormItemV2 label="method:">
- {{ EnumResourceMethodText[item.method] }}
- </ProFormItemV2>
- <ProFormItemV2 label="domain:">{{ item.domain }} </ProFormItemV2>
- <ProFormItemV2 label="path:"> {{ item.path }}</ProFormItemV2>
- <ProFormItemV2 label="requestHeaders:" label-position="top">
- <json-viewer
- :copyable="true"
- :boxed="true"
- :value="JSON.parse(item.requestHeaders)"
- ></json-viewer>
- </ProFormItemV2>
- <ProFormItemV2 label="request:" label-position="top">
- <json-viewer
- :copyable="true"
- :boxed="true"
- :value="JSON.parse(item.request)"
- ></json-viewer>
- </ProFormItemV2>
- <ProFormItemV2 label="responseHeaders:" label-position="top">
- <json-viewer
- :copyable="true"
- :boxed="true"
- :value="JSON.parse(item.responseHeaders)"
- ></json-viewer>
- </ProFormItemV2>
- <ProFormItemV2 label="response:" label-position="top">
- <json-viewer
- :copyable="true"
- :boxed="true"
- :value="JSON.parse(item.response)"
- ></json-viewer>
- </ProFormItemV2>
- <ProFormItemV2 label="isSuccess:"> {{ item.isSuccess ? '鏄�' : '鍚�' }}</ProFormItemV2>
- <ProFormItemV2 label="clientIpAddress:"> {{ item.clientIpAddress }}</ProFormItemV2>
- <ProFormItemV2 label="refererUrl:"> {{ item.refererUrl }}</ProFormItemV2>
- <ProFormItemV2 label="consoleLogs:"> {{ item.consoleLogs }}</ProFormItemV2>
- <ProFormItemV2 label="elapsedMilliseconds:"> {{ item.elapsedMilliseconds }}</ProFormItemV2>
- <ProFormItemV2 label="createdUser:">
- <json-viewer
- :copyable="true"
- :boxed="true"
- :value="JSON.parse(JSON.stringify(item.createdUser))"
- ></json-viewer>
- </ProFormItemV2>
- <ProFormItemV2 label="createdTime:">
- {{ format(item.createdTime, 'YYYY-MM-DD HH:mm:ss') }}</ProFormItemV2
- >
- </ProForm>
- </el-collapse-item>
- </el-collapse> -->
<AppContainer>
<ProTableV2
:columns="columns"
@@ -70,22 +8,34 @@
:column-render-map="columnsRenderProps"
>
<template #requestHeaders="{ row }">
- <el-button type="primary" link @click="handleAdd({ json: JSON.parse(row.requestHeaders) })"
+ <el-button
+ type="primary"
+ link
+ @click="handleAdd({ json: { requestHeaders: JSON.parse(row.requestHeaders) } })"
>鏌ョ湅</el-button
>
</template>
<template #request="{ row }">
- <el-button type="primary" link @click="handleAdd({ json: JSON.parse(row.request) })"
+ <el-button
+ type="primary"
+ link
+ @click="handleAdd({ json: { request: JSON.parse(row.request) } })"
>鏌ョ湅</el-button
>
</template>
<template #responseHeaders="{ row }">
- <el-button type="primary" link @click="handleAdd({ json: JSON.parse(row.responseHeaders) })"
+ <el-button
+ type="primary"
+ link
+ @click="handleAdd({ json: { responseHeaders: JSON.parse(row.responseHeaders) } })"
>鏌ョ湅</el-button
>
</template>
<template #response="{ row }">
- <el-button type="primary" link @click="handleAdd({ json: JSON.parse(row.response) })"
+ <el-button
+ type="primary"
+ link
+ @click="handleAdd({ json: { response: JSON.parse(row.response) } })"
>鏌ョ湅</el-button
>
</template>
@@ -93,7 +43,7 @@
<el-button
type="primary"
link
- @click="handleAdd({ json: JSON.parse(JSON.stringify(row.createdUser)) })"
+ @click="handleAdd({ json: { createdUser: JSON.parse(JSON.stringify(row.createdUser)) } })"
>鏌ョ湅</el-button
>
</template>
@@ -115,6 +65,7 @@
import * as logRecordsServices from '@/services/api/logRecords';
import { Message } from '@bole-core/core';
import JsonViewerDialog from './JsonViewerDialog.vue';
+import { request } from 'http';
defineOptions({
name: 'ResourceLogsView',
@@ -155,6 +106,15 @@
const operationBtns = defineOperationBtns([
{
data: {
+ enCode: 'detailBtn',
+ name: '鏌ョ湅',
+ },
+ emits: {
+ onClick: (role) => openDialog(role),
+ },
+ },
+ {
+ data: {
enCode: 'reSendBtn',
name: '閲嶆柊鍙戦��',
},
@@ -189,6 +149,18 @@
}
} catch (error) {}
}
+
+function openDialog(row: API.GetResourceLogsQueryResultItem) {
+ handleAdd({
+ json: {
+ requestHeaders: row.requestHeaders,
+ request: row.request,
+ responseHeaders: row.responseHeaders,
+ response: row.response,
+ createdUser: JSON.stringify(row.createdUser),
+ },
+ });
+}
</script>
<style lang="scss" scoped>
diff --git a/src/views/TraceIdLogManage/components/ThreeResourceLogsView.vue b/src/views/TraceIdLogManage/components/ThreeResourceLogsView.vue
index e650493..333817d 100644
--- a/src/views/TraceIdLogManage/components/ThreeResourceLogsView.vue
+++ b/src/views/TraceIdLogManage/components/ThreeResourceLogsView.vue
@@ -1,84 +1,40 @@
<template>
- <!-- <el-collapse v-model="activeName" accordion>
- <el-collapse-item
- v-for="item in threeResourceLogs"
- :key="item.id"
- name="1"
- style="overflow: auto; max-height: 600px"
- >
- <ProForm :model="item" is-read>
- <ProFormItemV2 label="method:">
- {{ EnumResourceMethodText[item.method] }}
- </ProFormItemV2>
- <ProFormItemV2 label="domain:">{{ item.domain }} </ProFormItemV2>
- <ProFormItemV2 label="path:"> {{ item.path }}</ProFormItemV2>
- <ProFormItemV2 label="requestHeaders:" label-position="top">
- <json-viewer
- :copyable="true"
- :boxed="true"
- :value="JSON.parse(item.requestHeaders)"
- ></json-viewer>
- </ProFormItemV2>
- <ProFormItemV2 label="request:" label-position="top">
- <json-viewer
- :copyable="true"
- :boxed="true"
- :value="JSON.parse(item.request)"
- ></json-viewer>
- </ProFormItemV2>
- <ProFormItemV2 label="responseHeaders:" label-position="top">
- <json-viewer
- :copyable="true"
- :boxed="true"
- :value="JSON.parse(item.responseHeaders)"
- ></json-viewer>
- </ProFormItemV2>
- <ProFormItemV2 label="response:" label-position="top">
- <json-viewer
- :copyable="true"
- :boxed="true"
- :value="JSON.parse(item.response)"
- ></json-viewer>
- </ProFormItemV2>
- <ProFormItemV2 label="isSuccess:"> {{ item.isSuccess ? '鏄�' : '鍚�' }}</ProFormItemV2>
- <ProFormItemV2 label="elapsedMilliseconds:"> {{ item.elapsedMilliseconds }}</ProFormItemV2>
- <ProFormItemV2 label="createdUser:">
- <json-viewer
- :copyable="true"
- :boxed="true"
- :value="JSON.parse(JSON.stringify(item.createdUser))"
- ></json-viewer>
- </ProFormItemV2>
- <ProFormItemV2 label="createdTime:">
- {{ format(item.createdTime, 'YYYY-MM-DD HH:mm:ss') }}</ProFormItemV2
- >
- </ProForm>
- </el-collapse-item>
- </el-collapse> -->
<AppContainer>
<ProTableV2
:columns="columns"
- :show-pagination="false"
+ :operationBtns="operationBtns"
:table-data="threeResourceLogs"
:column-render-map="columnsRenderProps"
>
<template #requestHeaders="{ row }">
- <el-button type="primary" link @click="handleAdd({ json: JSON.parse(row.requestHeaders) })"
+ <el-button
+ type="primary"
+ link
+ @click="handleAdd({ json: { requestHeaders: JSON.parse(row.requestHeaders) } })"
>鏌ョ湅</el-button
>
</template>
<template #request="{ row }">
- <el-button type="primary" link @click="handleAdd({ json: JSON.parse(row.request) })"
+ <el-button
+ type="primary"
+ link
+ @click="handleAdd({ json: { request: JSON.parse(row.request) } })"
>鏌ョ湅</el-button
>
</template>
<template #responseHeaders="{ row }">
- <el-button type="primary" link @click="handleAdd({ json: JSON.parse(row.responseHeaders) })"
+ <el-button
+ type="primary"
+ link
+ @click="handleAdd({ json: { responseHeaders: JSON.parse(row.responseHeaders) } })"
>鏌ョ湅</el-button
>
</template>
<template #response="{ row }">
- <el-button type="primary" link @click="handleAdd({ json: JSON.parse(row.response) })"
+ <el-button
+ type="primary"
+ link
+ @click="handleAdd({ json: { response: JSON.parse(row.response) } })"
>鏌ョ湅</el-button
>
</template>
@@ -86,7 +42,7 @@
<el-button
type="primary"
link
- @click="handleAdd({ json: JSON.parse(JSON.stringify(row.createdUser)) })"
+ @click="handleAdd({ json: { createdUser: JSON.parse(JSON.stringify(row.createdUser)) } })"
>鏌ョ湅</el-button
>
</template>
@@ -102,6 +58,7 @@
defineColumns,
ProTableV2Props,
useFormDialog,
+ defineOperationBtns,
} from '@bole-core/components';
import { EnumResourceMethodText } from '@/constants';
import JsonViewerDialog from './JsonViewerDialog.vue';
@@ -138,6 +95,18 @@
}))
);
+const operationBtns = defineOperationBtns([
+ {
+ data: {
+ enCode: 'detailBtn',
+ name: '鏌ョ湅',
+ },
+ emits: {
+ onClick: (role) => openDialog(role),
+ },
+ },
+]);
+
const columnsRenderProps: ProTableV2Props['columnRenderMap'] = {
method: { type: 'enum', valueEnum: EnumResourceMethodText },
isSuccess: {
@@ -153,4 +122,16 @@
json: null,
},
});
+
+function openDialog(row: API.GetResourceLogsQueryResultItem) {
+ handleAdd({
+ json: {
+ requestHeaders: JSON.parse(row.requestHeaders),
+ request: JSON.parse(row.request),
+ responseHeaders: JSON.parse(row.responseHeaders),
+ response: JSON.parse(row.response),
+ createdUser: JSON.parse(JSON.stringify(row.createdUser)),
+ },
+ });
+}
</script>
--
Gitblit v1.9.1