From faa28f88f954cba4c1dd29125562e5acd2fd99af Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Mon, 23 Dec 2024 00:24:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A5=97=E9=A4=90=E8=B4=AD=E4=B9=B0?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=98=93=E6=94=AF=E4=BB=98=E3=80=81=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E5=AE=9D=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/pipeline/src/core/run-history.ts | 13 + .../lib-server/src/basic/base-controller.ts | 8 + .../libs/lib-server/src/basic/base-service.ts | 1 + .../src/system/basic/service/file-service.ts | 2 +- .../src/system/basic/service/plus-service.ts | 2 +- .../settings/service/sys-settings-service.ts | 2 +- .../src/user/access/service/access-service.ts | 2 +- .../user/access/service/encrypt-service.ts | 2 +- packages/ui/certd-client/src/api/service.ts | 4 + .../src/components/expires-time-text.vue | 38 ++- .../src/layout/components/menu/index.tsx | 2 +- .../src/layout/layout-framework.vue | 2 +- .../src/router/source/modules/certd.ts | 223 +++++++----- .../src/router/source/modules/sys.ts | 4 +- .../src/store/modules/resource.ts | 1 + packages/ui/certd-client/src/style/certd.less | 8 + .../certd/access/access-selector/index.vue | 2 +- .../src/views/certd/cname/record/index.vue | 4 +- .../src/views/certd/monitor/cert/api.ts | 2 +- .../src/views/certd/monitor/cert/crud.tsx | 36 +- .../src/views/certd/monitor/cert/index.vue | 2 +- .../src/views/certd/monitor/site/api.ts | 2 +- .../src/views/certd/monitor/site/crud.tsx | 65 ++-- .../src/views/certd/payment/api.ts | 4 +- .../src/views/certd/payment/return.vue | 27 +- .../src/views/certd/pipeline/crud.tsx | 14 +- .../src/views/certd/suite/buy.vue | 38 ++- .../src/views/certd/suite/mine/api.ts | 54 +++ .../src/views/certd/suite/mine/crud.tsx | 323 ++++++++++++++++++ .../src/views/certd/suite/mine/index.vue | 30 ++ .../src/views/certd/suite/order-modal.vue | 51 ++- .../certd-client/src/views/certd/trade/api.ts | 12 +- .../src/views/certd/trade/crud.tsx | 29 +- .../src/views/sys/suite/product/crud.tsx | 8 +- .../sys/suite/product/duration-value.vue | 3 + .../views/sys/suite/product/price-input.vue | 28 +- .../src/views/sys/suite/trade/api.ts | 10 +- .../src/views/sys/suite/trade/crud.tsx | 266 +++++++-------- .../src/views/sys/suite/trade/index.vue | 9 +- .../monitor/cert-info-controller.ts | 26 +- .../monitor/site-info-controller.ts | 12 +- .../src/modules/auto/auto-init-site.ts | 2 +- .../src/modules/auto/auto-register-cron.ts | 2 +- .../certd-server/src/modules/auto/auto-z.ts | 2 +- .../modules/basic/service/email-service.ts | 2 +- .../cname/service/cname-provider-service.ts | 2 +- .../cname/service/cname-record-service.ts | 2 +- .../ui/certd-server/src/modules/db/index.ts | 2 +- .../mine/service/user-settings-service.ts | 2 +- .../src/modules/monitor/entity/cert-info.ts | 3 + .../certd-server/src/modules/monitor/index.ts | 5 + .../monitor/service/cert-info-service.ts | 25 +- .../service/builtin-plugin-service.ts | 2 +- .../pipeline/service/history-log-service.ts | 2 +- .../pipeline/service/history-service.ts | 2 +- .../pipeline/service/notification-service.ts | 2 +- .../service/pipeline-group-service.ts | 2 +- .../pipeline/service/pipeline-service.ts | 28 +- .../pipeline/service/storage-service.ts | 2 +- .../modules/pipeline/service/url-service.ts | 2 +- .../plugin/service/plugin-config-getter.ts | 2 +- .../plugin/service/plugin-config-service.ts | 2 +- .../modules/plugin/service/plugin-service.ts | 2 +- .../sys/authority/service/auth-service.ts | 2 +- .../authority/service/permission-service.ts | 2 +- .../service/role-permission-service.ts | 2 +- .../sys/authority/service/role-service.ts | 2 +- .../authority/service/user-role-service.ts | 2 +- .../sys/authority/service/user-service.ts | 2 +- 69 files changed, 1073 insertions(+), 407 deletions(-) create mode 100644 packages/ui/certd-client/src/views/certd/suite/mine/api.ts create mode 100644 packages/ui/certd-client/src/views/certd/suite/mine/crud.tsx create mode 100644 packages/ui/certd-client/src/views/certd/suite/mine/index.vue create mode 100644 packages/ui/certd-server/src/modules/monitor/index.ts diff --git a/packages/core/pipeline/src/core/run-history.ts b/packages/core/pipeline/src/core/run-history.ts index be7e1111..aa48ac3b 100644 --- a/packages/core/pipeline/src/core/run-history.ts +++ b/packages/core/pipeline/src/core/run-history.ts @@ -144,6 +144,19 @@ export class RunnableCollection { this.collection = map; } + static initPipelineRunnableType(pipeline: Pipeline) { + pipeline.runnableType = "pipeline"; + pipeline.stages.forEach((stage) => { + stage.runnableType = "stage"; + stage.tasks.forEach((task) => { + task.runnableType = "task"; + task.steps.forEach((step) => { + step.runnableType = "step"; + }); + }); + }); + } + static each(list: T[], exec: (item: Runnable) => void) { list.forEach((item) => { exec(item); diff --git a/packages/libs/lib-server/src/basic/base-controller.ts b/packages/libs/lib-server/src/basic/base-controller.ts index 77ea8ae6..44960e59 100644 --- a/packages/libs/lib-server/src/basic/base-controller.ts +++ b/packages/libs/lib-server/src/basic/base-controller.ts @@ -39,4 +39,12 @@ export abstract class BaseController { } return userId; } + + getLoginUser() { + const user = this.ctx.user; + if (user == null) { + throw new Error('Token已过期'); + } + return user; + } } diff --git a/packages/libs/lib-server/src/basic/base-service.ts b/packages/libs/lib-server/src/basic/base-service.ts index 5e393259..20c3a88c 100644 --- a/packages/libs/lib-server/src/basic/base-service.ts +++ b/packages/libs/lib-server/src/basic/base-service.ts @@ -148,6 +148,7 @@ export abstract class BaseService { page.limit = 20; } const qb = this.buildListQuery(pageReq); + qb.offset(page.offset).limit(page.limit); const list = await qb.getMany(); const total = await qb.getCount(); diff --git a/packages/libs/lib-server/src/system/basic/service/file-service.ts b/packages/libs/lib-server/src/system/basic/service/file-service.ts index 41f3cbaf..deb1a301 100644 --- a/packages/libs/lib-server/src/system/basic/service/file-service.ts +++ b/packages/libs/lib-server/src/system/basic/service/file-service.ts @@ -14,7 +14,7 @@ export const uploadTmpFileCacheKey = 'tmpfile_key_'; /** */ @Provide() -@Scope(ScopeEnum.Singleton) +@Scope(ScopeEnum.Request, { allowDowngrade: true }) export class FileService { async saveFile(userId: number, tmpCacheKey: any, permission: 'public' | 'private') { if (tmpCacheKey.startsWith(`/${permission}`)) { diff --git a/packages/libs/lib-server/src/system/basic/service/plus-service.ts b/packages/libs/lib-server/src/system/basic/service/plus-service.ts index 78d3b7b3..7472228f 100644 --- a/packages/libs/lib-server/src/system/basic/service/plus-service.ts +++ b/packages/libs/lib-server/src/system/basic/service/plus-service.ts @@ -5,7 +5,7 @@ import { SysInstallInfo, SysLicenseInfo, SysSettingsService } from '../../settin import { merge } from 'lodash-es'; @Provide() -@Scope(ScopeEnum.Singleton) +@Scope(ScopeEnum.Request, { allowDowngrade: true }) export class PlusService { @Inject() sysSettingsService: SysSettingsService; diff --git a/packages/libs/lib-server/src/system/settings/service/sys-settings-service.ts b/packages/libs/lib-server/src/system/settings/service/sys-settings-service.ts index 31517617..6fb8e001 100644 --- a/packages/libs/lib-server/src/system/settings/service/sys-settings-service.ts +++ b/packages/libs/lib-server/src/system/settings/service/sys-settings-service.ts @@ -12,7 +12,7 @@ import * as dns from 'node:dns'; * 设置 */ @Provide() -@Scope(ScopeEnum.Singleton) +@Scope(ScopeEnum.Request, { allowDowngrade: true }) export class SysSettingsService extends BaseService { @InjectEntityModel(SysSettingsEntity) repository: Repository; diff --git a/packages/libs/lib-server/src/user/access/service/access-service.ts b/packages/libs/lib-server/src/user/access/service/access-service.ts index 1b38c81b..86ac92b2 100644 --- a/packages/libs/lib-server/src/user/access/service/access-service.ts +++ b/packages/libs/lib-server/src/user/access/service/access-service.ts @@ -10,7 +10,7 @@ import { EncryptService } from './encrypt-service.js'; * 授权 */ @Provide() -@Scope(ScopeEnum.Singleton) +@Scope(ScopeEnum.Request, { allowDowngrade: true }) export class AccessService extends BaseService { @InjectEntityModel(AccessEntity) repository: Repository; diff --git a/packages/libs/lib-server/src/user/access/service/encrypt-service.ts b/packages/libs/lib-server/src/user/access/service/encrypt-service.ts index 5e787ec2..5cf0ec8b 100644 --- a/packages/libs/lib-server/src/user/access/service/encrypt-service.ts +++ b/packages/libs/lib-server/src/user/access/service/encrypt-service.ts @@ -6,7 +6,7 @@ import { SysPrivateSettings, SysSettingsService } from '../../../system/index.js * 授权 */ @Provide() -@Scope(ScopeEnum.Singleton) +@Scope(ScopeEnum.Request, { allowDowngrade: true }) export class EncryptService { secretKey: Buffer; diff --git a/packages/ui/certd-client/src/api/service.ts b/packages/ui/certd-client/src/api/service.ts index 6eaa291f..1834f6e2 100644 --- a/packages/ui/certd-client/src/api/service.ts +++ b/packages/ui/certd-client/src/api/service.ts @@ -25,6 +25,10 @@ function createService() { if (response.config.responseType === "blob") { return response; } + //@ts-ignore + if (response.config.returnResponse) { + return response; + } // dataAxios 是 axios 返回数据中的 data const dataAxios = response.data; diff --git a/packages/ui/certd-client/src/components/expires-time-text.vue b/packages/ui/certd-client/src/components/expires-time-text.vue index 55a72b6d..1fd2bdee 100644 --- a/packages/ui/certd-client/src/components/expires-time-text.vue +++ b/packages/ui/certd-client/src/components/expires-time-text.vue @@ -1,11 +1,13 @@ @@ -19,8 +21,32 @@ defineOptions({ const props = defineProps<{ value?: number; + mode?: "tag" | "text"; }>(); +const wrapperComp = computed(() => { + if (props.mode === "tag") { + return "a-tag"; + } + return "span"; +}); + +const color = computed(() => { + if (props.value == null) { + return ""; + } + if (props.value === -1) { + return "green"; + } + + //小于3天 红色 + if (dayjs().add(3, "day").valueOf() > props.value) { + return "red"; + } + + return "blue"; +}); + const label = computed(() => { if (props.value == null) { return ""; diff --git a/packages/ui/certd-client/src/layout/components/menu/index.tsx b/packages/ui/certd-client/src/layout/components/menu/index.tsx index 16f97e34..428e443c 100644 --- a/packages/ui/certd-client/src/layout/components/menu/index.tsx +++ b/packages/ui/certd-client/src/layout/components/menu/index.tsx @@ -153,7 +153,7 @@ export default defineComponent({ if (item.value instanceof Array) { return; } - keys.push(item.value.index); + keys.push(item.value.path); }); } }); diff --git a/packages/ui/certd-client/src/layout/layout-framework.vue b/packages/ui/certd-client/src/layout/layout-framework.vue index d843b3c8..223387c9 100644 --- a/packages/ui/certd-client/src/layout/layout-framework.vue +++ b/packages/ui/certd-client/src/layout/layout-framework.vue @@ -1,6 +1,6 @@