diff --git a/Admin.NET/Admin.NET.Core/Service/Job/SysJobService.cs b/Admin.NET/Admin.NET.Core/Service/Job/SysJobService.cs
index d8792ecf..99307b60 100644
--- a/Admin.NET/Admin.NET.Core/Service/Job/SysJobService.cs
+++ b/Admin.NET/Admin.NET.Core/Service/Job/SysJobService.cs
@@ -356,4 +356,15 @@ public class SysJobService : IDynamicApiController, ITransient
.OrderByDescending(u => u.Id)
.ToPagedListAsync(input.Page, input.PageSize);
}
+
+ ///
+ /// 清空作业触发器运行记录 🔖
+ ///
+ ///
+ [ApiDescriptionSettings(Name = "ClearJobTriggerRecord"), HttpPost]
+ [DisplayName("清空作业触发器运行记录")]
+ public void ClearJobTriggerRecord()
+ {
+ _sysJobTriggerRecordRep.AsSugarClient().DbMaintenance.TruncateTable();
+ }
}
\ No newline at end of file
diff --git a/Web/src/api-services/apis/sys-job-api.ts b/Web/src/api-services/apis/sys-job-api.ts
index 9ce0c07c..546e8222 100644
--- a/Web/src/api-services/apis/sys-job-api.ts
+++ b/Web/src/api-services/apis/sys-job-api.ts
@@ -225,6 +225,49 @@ export const SysJobApiAxiosParamCreator = function (configuration?: Configuratio
options: localVarRequestOptions,
};
},
+ /**
+ *
+ * @summary 清空作业触发器运行记录 🔖
+ * @param {*} [options] Override http request option.
+ * @throws {RequiredError}
+ */
+ apiSysJobClearJobTriggerRecordPost: async (options: AxiosRequestConfig = {}): Promise => {
+ const localVarPath = `/api/sysJob/clearJobTriggerRecord`;
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
+ const localVarUrlObj = new URL(localVarPath, 'https://example.com');
+ let baseOptions;
+ if (configuration) {
+ baseOptions = configuration.baseOptions;
+ }
+ const localVarRequestOptions :AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options};
+ const localVarHeaderParameter = {} as any;
+ const localVarQueryParameter = {} as any;
+
+ // authentication Bearer required
+ // http bearer authentication required
+ if (configuration && configuration.accessToken) {
+ const accessToken = typeof configuration.accessToken === 'function'
+ ? await configuration.accessToken()
+ : await configuration.accessToken;
+ localVarHeaderParameter["Authorization"] = "Bearer " + accessToken;
+ }
+
+ const query = new URLSearchParams(localVarUrlObj.search);
+ for (const key in localVarQueryParameter) {
+ query.set(key, localVarQueryParameter[key]);
+ }
+ for (const key in options.params) {
+ query.set(key, options.params[key]);
+ }
+ localVarUrlObj.search = (new URLSearchParams(query)).toString();
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
+
+ return {
+ url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
+ options: localVarRequestOptions,
+ };
+ },
/**
*
* @summary 删除作业 ⏰
@@ -1080,6 +1123,19 @@ export const SysJobApiFp = function(configuration?: Configuration) {
return axios.request(axiosRequestArgs);
};
},
+ /**
+ *
+ * @summary 清空作业触发器运行记录 🔖
+ * @param {*} [options] Override http request option.
+ * @throws {RequiredError}
+ */
+ async apiSysJobClearJobTriggerRecordPost(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise>> {
+ const localVarAxiosArgs = await SysJobApiAxiosParamCreator(configuration).apiSysJobClearJobTriggerRecordPost(options);
+ return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
+ const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
+ return axios.request(axiosRequestArgs);
+ };
+ },
/**
*
* @summary 删除作业 ⏰
@@ -1361,6 +1417,15 @@ export const SysJobApiFactory = function (configuration?: Configuration, basePat
async apiSysJobCancelSleepPost(options?: AxiosRequestConfig): Promise> {
return SysJobApiFp(configuration).apiSysJobCancelSleepPost(options).then((request) => request(axios, basePath));
},
+ /**
+ *
+ * @summary 清空作业触发器运行记录 🔖
+ * @param {*} [options] Override http request option.
+ * @throws {RequiredError}
+ */
+ async apiSysJobClearJobTriggerRecordPost(options?: AxiosRequestConfig): Promise> {
+ return SysJobApiFp(configuration).apiSysJobClearJobTriggerRecordPost(options).then((request) => request(axios, basePath));
+ },
/**
*
* @summary 删除作业 ⏰
@@ -1579,6 +1644,16 @@ export class SysJobApi extends BaseAPI {
public async apiSysJobCancelSleepPost(options?: AxiosRequestConfig) : Promise> {
return SysJobApiFp(this.configuration).apiSysJobCancelSleepPost(options).then((request) => request(this.axios, this.basePath));
}
+ /**
+ *
+ * @summary 清空作业触发器运行记录 🔖
+ * @param {*} [options] Override http request option.
+ * @throws {RequiredError}
+ * @memberof SysJobApi
+ */
+ public async apiSysJobClearJobTriggerRecordPost(options?: AxiosRequestConfig) : Promise> {
+ return SysJobApiFp(this.configuration).apiSysJobClearJobTriggerRecordPost(options).then((request) => request(this.axios, this.basePath));
+ }
/**
*
* @summary 删除作业 ⏰
diff --git a/Web/src/api-services/models/add-notice-input.ts b/Web/src/api-services/models/add-notice-input.ts
index efd3d760..0af164dd 100644
--- a/Web/src/api-services/models/add-notice-input.ts
+++ b/Web/src/api-services/models/add-notice-input.ts
@@ -86,6 +86,14 @@ export interface AddNoticeInput {
*/
isDelete?: boolean;
+ /**
+ * 租户Id
+ *
+ * @type {number}
+ * @memberof AddNoticeInput
+ */
+ tenantId?: number | null;
+
/**
* 标题
*
diff --git a/Web/src/api-services/models/sys-job-trigger-record.ts b/Web/src/api-services/models/sys-job-trigger-record.ts
index 97dcc9fd..1d2f674c 100644
--- a/Web/src/api-services/models/sys-job-trigger-record.ts
+++ b/Web/src/api-services/models/sys-job-trigger-record.ts
@@ -76,7 +76,7 @@ export interface SysJobTriggerRecord {
status?: TriggerStatus;
/**
- * 本次执行结果
+ * 执行结果
*
* @type {string}
* @memberof SysJobTriggerRecord
@@ -84,7 +84,7 @@ export interface SysJobTriggerRecord {
result?: string | null;
/**
- * 本次执行耗时
+ * 执行耗时
*
* @type {number}
* @memberof SysJobTriggerRecord
diff --git a/Web/src/api-services/models/sys-notice.ts b/Web/src/api-services/models/sys-notice.ts
index aa3d90bc..89ab32e2 100644
--- a/Web/src/api-services/models/sys-notice.ts
+++ b/Web/src/api-services/models/sys-notice.ts
@@ -86,6 +86,14 @@ export interface SysNotice {
*/
isDelete?: boolean;
+ /**
+ * 租户Id
+ *
+ * @type {number}
+ * @memberof SysNotice
+ */
+ tenantId?: number | null;
+
/**
* 标题
*
diff --git a/Web/src/api-services/models/update-notice-input.ts b/Web/src/api-services/models/update-notice-input.ts
index 4366782a..742dcc85 100644
--- a/Web/src/api-services/models/update-notice-input.ts
+++ b/Web/src/api-services/models/update-notice-input.ts
@@ -86,6 +86,14 @@ export interface UpdateNoticeInput {
*/
isDelete?: boolean;
+ /**
+ * 租户Id
+ *
+ * @type {number}
+ * @memberof UpdateNoticeInput
+ */
+ tenantId?: number | null;
+
/**
* 标题
*
diff --git a/Web/src/layout/navBars/topBar/user.vue b/Web/src/layout/navBars/topBar/user.vue
index c51e2629..c794c750 100644
--- a/Web/src/layout/navBars/topBar/user.vue
+++ b/Web/src/layout/navBars/topBar/user.vue
@@ -76,7 +76,7 @@
{{ $t('message.user.dropdown2') }}
{{ $t('message.user.dropdown3') }}
{{ $t('message.layout.threeIsLockScreen') }}
- {{ $t('message.user.dropdown5') }}
+ {{ $t('message.user.dropdown5') }}
diff --git a/Web/src/views/system/job/index.vue b/Web/src/views/system/job/index.vue
index 319c57e2..6bd1e848 100644
--- a/Web/src/views/system/job/index.vue
+++ b/Web/src/views/system/job/index.vue
@@ -216,7 +216,9 @@
-
+
+ 清空
+
@@ -569,13 +571,13 @@ const optionsRecord = useVxeTable(
}
);
-// 查询api
+// 查询api-作业触发器运行记录
const handleQueryRecordApi = async (page: VxeGridPropTypes.ProxyAjaxQueryPageParams, sort: VxeGridPropTypes.ProxyAjaxQuerySortCheckedParams) => {
const params = Object.assign(state.recordPageParam, { page: page.currentPage, pageSize: page.pageSize, field: sort.field, order: sort.order, descStr: 'desc' }) as PageJobTriggerRecordInput;
return getAPI(SysJobApi).apiSysJobPageJobTriggerRecordPost(params);
};
-// 查询操作
+// 查询操作-作业触发器运行记录
const handleQueryRecord = async () => {
await xGridRecord.value?.commitProxy('query');
};
@@ -591,6 +593,23 @@ const gridEventsRecord: VxeGridListeners = {
state.recordPageParam.defaultSort = { field: field, order: order!, descStr: 'desc' };
},
};
+
+// 清空作业触发器运行记录
+const handleClearJobTriggerRecord = async () => {
+ ElMessageBox.confirm(`确定要清空日志?`, '提示', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then(async () => {
+ optionsRecord.loading = true;
+ await getAPI(SysJobApi).apiSysJobClearJobTriggerRecordPost();
+ optionsRecord.loading = false;
+ ElMessage.success('清空成功');
+ await handleQueryRecord();
+ })
+ .catch(() => {});
+};