diff --git a/src/service/api/jobLog.ts b/src/service/api/jobLog.ts new file mode 100644 index 0000000..28c1567 --- /dev/null +++ b/src/service/api/jobLog.ts @@ -0,0 +1,50 @@ +import { request } from '../request'; + + +export function doGetjobLogList(params?: any) { + return request({ + url: '/schedule/job/log/list', + method: 'get', + params + }); +} + +export function doGetjobLogInfo(paramsId: any) { + return request({ + url: `/schedule/job/log/${paramsId}`, + method: 'get', + }); +} + +export function doDeleteJobLog(jobLogId: any) { + return request({ url: `/schedule/job/log/${jobLogId.join(',')}`, method: 'delete' }); +} + + +/** + * 清空调度日志 + * @returns object + */ +export function doCleanJobLog() { + return request({ + url: '/schedule/job/log/clean', + method: 'delete', + }); +} + +/** + * 定时任务调度日志列表导出 + * @returns bolb + */ +export function exportJobLog( +) { + return request({ + url: '/schedule/job/log/export', + method: 'post', + responseType: 'blob', + headers: { + "Authorization": "Bearer your_token_here", + "Accept": "application/json, text/plain, */*", + }, + }); +} diff --git a/src/typings/auto-imports.d.ts b/src/typings/auto-imports.d.ts index 7b675cb..0035e57 100644 --- a/src/typings/auto-imports.d.ts +++ b/src/typings/auto-imports.d.ts @@ -10,6 +10,7 @@ declare global { const $notification: typeof import('ant-design-vue')['notification'] const EffectScope: typeof import('vue')['EffectScope'] const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate'] + const addJob: typeof import('../service/api/job')['addJob'] const addPackage: typeof import('../service/api/auth')['addPackage'] const addRateLimit: typeof import('../service/api/auth')['addRateLimit'] const addThemeVarsToHtml: typeof import('../store/modules/theme/shared')['addThemeVarsToHtml'] @@ -24,7 +25,8 @@ declare global { const beforeAll: typeof import('vitest')['beforeAll'] const beforeEach: typeof import('vitest')['beforeEach'] const chai: typeof import('vitest')['chai'] - const checkReport: typeof import('../service/api/auth')['checkReport'] + const changeJobStatus: typeof import('../service/api/job')['changeJobStatus'] + const cleanJobLog: typeof import('../service/api/jobLog')['cleanJobLog'] const clearAuthStorage: typeof import('../store/modules/auth/shared')['clearAuthStorage'] const cloneDeep: typeof import('lodash-es')['cloneDeep'] const computed: typeof import('vue')['computed'] @@ -55,6 +57,7 @@ declare global { const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] const defineComponent: typeof import('vue')['defineComponent'] const defineStore: typeof import('pinia')['defineStore'] + const delJobLog: typeof import('../service/api/job')['delJobLog'] const deletePackage: typeof import('../service/api/auth')['deletePackage'] const describe: typeof import('vitest')['describe'] const doAddDept: typeof import('../service/api/dept')['doAddDept'] @@ -62,8 +65,10 @@ declare global { const doAddMenu: typeof import('../service/api/menu')['doAddMenu'] const doAddPost: typeof import('../service/api/post')['doAddPost'] const doCheckUserRepeat: typeof import('../service/api/auth')['doCheckUserRepeat'] + const doCleanJobLog: typeof import('../service/api/jobLog')['doCleanJobLog'] const doDeleteDept: typeof import('../service/api/dept')['doDeleteDept'] const doDeleteDict: typeof import('../service/api/dict')['doDeleteDict'] + const doDeleteJobLog: typeof import('../service/api/jobLog')['doDeleteJobLog'] const doDeleteLog: typeof import('../service/api/log')['doDeleteLog'] const doDeleteLogout: typeof import('../service/api/auth')['doDeleteLogout'] const doDeleteMenu: typeof import('../service/api/menu')['doDeleteMenu'] @@ -74,6 +79,7 @@ declare global { const doEditDict: typeof import('../service/api/dict')['doEditDict'] const doEditMenu: typeof import('../service/api/menu')['doEditMenu'] const doEditPost: typeof import('../service/api/post')['doEditPost'] + const doExportLog: typeof import('../service/api/log')['doExportLog'] const doGetAdminUserPostsAndRoles: typeof import('../service/api/user')['doGetAdminUserPostsAndRoles'] const doGetCheckCode: typeof import('../service/api/auth')['doGetCheckCode'] const doGetDeptInfo: typeof import('../service/api/dept')['doGetDeptInfo'] @@ -85,6 +91,7 @@ declare global { const doGetPostList: typeof import('../service/api/post')['doGetPostList'] const doGetRoleList: typeof import('../service/api/role')['doGetRoleList'] const doGetRoleMenuList: typeof import('../service/api/menu')['doGetRoleMenuList'] + const doGetType: typeof import('../service/api/dict')['doGetType'] const doGetUserDeptTree: typeof import('../service/api/user')['doGetUserDeptTree'] const doGetUserInfo: typeof import('../service/api/auth')['doGetUserInfo'] const doGetUserList: typeof import('../service/api/user')['doGetUserList'] @@ -92,6 +99,8 @@ declare global { const doGetUserRoutes: typeof import('../service/api/route')['doGetUserRoutes'] const doGetjobInfo: typeof import('../service/api/job')['doGetjobInfo'] const doGetjobList: typeof import('../service/api/job')['doGetjobList'] + const doGetjobLogInfo: typeof import('../service/api/jobLog')['doGetjobLogInfo'] + const doGetjobLogList: typeof import('../service/api/jobLog')['doGetjobLogList'] const doGetlogList: typeof import('../service/api/log')['doGetlogList'] const doPostRole: typeof import('../service/api/role')['doPostRole'] const doPostUser: typeof import('../service/api/user')['doPostUser'] @@ -102,6 +111,8 @@ declare global { const effectScope: typeof import('vue')['effectScope'] const emptyInfo: typeof import('../store/modules/auth/shared')['emptyInfo'] const expect: typeof import('vitest')['expect'] + const exportJob: typeof import('../service/api/job')['exportJob'] + const exportJobLog: typeof import('../service/api/jobLog')['exportJobLog'] const extendRef: typeof import('@vueuse/core')['extendRef'] const extractTabsByAllRoutes: typeof import('../store/modules/tab/shared')['extractTabsByAllRoutes'] const fetchCustomBackendError: typeof import('../service/api/auth')['fetchCustomBackendError'] @@ -192,6 +203,8 @@ declare global { const reactiveComputed: typeof import('@vueuse/core')['reactiveComputed'] const reactiveOmit: typeof import('@vueuse/core')['reactiveOmit'] const reactivePick: typeof import('@vueuse/core')['reactivePick'] + const readLoalXlsx: typeof import('../utils/execl-utils')['readLoalXlsx'] + const readSheet: typeof import('../utils/execl-utils')['readSheet'] const readonly: typeof import('vue')['readonly'] const ref: typeof import('vue')['ref'] const refAutoReset: typeof import('@vueuse/core')['refAutoReset'] @@ -204,6 +217,7 @@ declare global { const resolveComponent: typeof import('vue')['resolveComponent'] const resolveRef: typeof import('@vueuse/core')['resolveRef'] const resolveUnref: typeof import('@vueuse/core')['resolveUnref'] + const runJob: typeof import('../service/api/job')['runJob'] const sendCaptcha: typeof import('../service/api/auth')['sendCaptcha'] const sessionStg: typeof import('../utils/storage')['sessionStg'] const setActivePinia: typeof import('pinia')['setActivePinia'] @@ -245,6 +259,7 @@ declare global { const unref: typeof import('vue')['unref'] const unrefElement: typeof import('@vueuse/core')['unrefElement'] const until: typeof import('@vueuse/core')['until'] + const updateJob: typeof import('../service/api/job')['updateJob'] const updateLocaleOfGlobalMenus: typeof import('../store/modules/route/shared')['updateLocaleOfGlobalMenus'] const updatePackage: typeof import('../service/api/auth')['updatePackage'] const updateTabByI18nKey: typeof import('../store/modules/tab/shared')['updateTabByI18nKey'] @@ -440,6 +455,8 @@ declare global { const watchTriggerable: typeof import('@vueuse/core')['watchTriggerable'] const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter'] const whenever: typeof import('@vueuse/core')['whenever'] + const writeSheet: typeof import('../utils/execl-utils')['writeSheet'] + const xlsxUrl: typeof import('../utils/execl-utils')['xlsxUrl'] } // for type re-export declare global { diff --git a/src/typings/components.d.ts b/src/typings/components.d.ts index bce1817..3c7e633 100644 --- a/src/typings/components.d.ts +++ b/src/typings/components.d.ts @@ -50,6 +50,8 @@ declare module 'vue' { ASteps: typeof import('ant-design-vue/es')['Steps'] ASwitch: typeof import('ant-design-vue/es')['Switch'] ATable: typeof import('ant-design-vue/es')['Table'] + ATabPane: typeof import('ant-design-vue/es')['TabPane'] + ATabs: typeof import('ant-design-vue/es')['Tabs'] ATag: typeof import('ant-design-vue/es')['Tag'] ATextarea: typeof import('ant-design-vue/es')['Textarea'] ATooltip: typeof import('ant-design-vue/es')['Tooltip'] @@ -58,9 +60,12 @@ declare module 'vue' { BetterScroll: typeof import('./../components/custom/better-scroll.vue')['default'] ButtonIcon: typeof import('./../components/custom/button-icon.vue')['default'] CountTo: typeof import('./../components/custom/count-to.vue')['default'] + CronModal: typeof import('./../components/CronModal/index.vue')['default'] DarkModeContainer: typeof import('./../components/common/dark-mode-container.vue')['default'] + Day: typeof import('./../components/CronModal/components/Day.vue')['default'] ExceptionBase: typeof import('./../components/common/exception-base.vue')['default'] FullScreen: typeof import('./../components/common/full-screen.vue')['default'] + Hour: typeof import('./../components/CronModal/components/Hour.vue')['default'] IconAntDesignReloadOutlined: typeof import('~icons/ant-design/reload-outlined')['default'] IconAntDesignSettingOutlined: typeof import('~icons/ant-design/setting-outlined')['default'] IconGridiconsFullscreen: typeof import('~icons/gridicons/fullscreen')['default'] @@ -76,10 +81,13 @@ declare module 'vue' { LangSwitch: typeof import('./../components/common/lang-switch.vue')['default'] LookForward: typeof import('./../components/custom/look-forward.vue')['default'] MenuToggler: typeof import('./../components/common/menu-toggler.vue')['default'] + Minute: typeof import('./../components/CronModal/components/Minute.vue')['default'] + Month: typeof import('./../components/CronModal/components/Month.vue')['default'] PinToggler: typeof import('./../components/common/pin-toggler.vue')['default'] ReloadButton: typeof import('./../components/common/reload-button.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] + Second: typeof import('./../components/CronModal/components/Second.vue')['default'] SoybeanAvatar: typeof import('./../components/custom/soybean-avatar.vue')['default'] SvgIcon: typeof import('./../components/custom/svg-icon.vue')['default'] SystemLogo: typeof import('./../components/common/system-logo.vue')['default'] diff --git a/src/views/manage/task/log/index.vue b/src/views/manage/task/log/index.vue new file mode 100644 index 0000000..f19037c --- /dev/null +++ b/src/views/manage/task/log/index.vue @@ -0,0 +1,529 @@ + + + + +