From d6b3142a02b7e93805ce0bef7263f4ea56506dc8 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Wed, 15 Jan 2025 01:26:23 +0800 Subject: [PATCH] chore: --- .../src/system/basic/service/encryptor.ts | 4 +- .../src/router/source/modules/certd.ts | 37 +++-- .../src/views/certd/open/openkey/api.ts | 2 +- .../src/views/certd/open/openkey/crud.tsx | 142 +++++------------- .../src/views/certd/open/openkey/index.vue | 7 +- .../openapi/base-open-controller.ts | 2 +- .../user/open/open-key-controller.ts | 3 +- .../modules/open/service/open-key-service.ts | 28 ++-- 8 files changed, 77 insertions(+), 148 deletions(-) diff --git a/packages/libs/lib-server/src/system/basic/service/encryptor.ts b/packages/libs/lib-server/src/system/basic/service/encryptor.ts index ee9fe3a55..2c8252a73 100644 --- a/packages/libs/lib-server/src/system/basic/service/encryptor.ts +++ b/packages/libs/lib-server/src/system/basic/service/encryptor.ts @@ -2,8 +2,8 @@ import crypto from 'crypto'; export class Encryptor { secretKey: Buffer; - constructor(encryptSecret: string) { - this.secretKey = Buffer.from(encryptSecret, 'base64'); + constructor(encryptSecret: string, encoding: BufferEncoding = 'base64') { + this.secretKey = Buffer.from(encryptSecret, encoding); } // 加密函数 encrypt(text: string) { diff --git a/packages/ui/certd-client/src/router/source/modules/certd.ts b/packages/ui/certd-client/src/router/source/modules/certd.ts index e54ad0e79..1855fe51b 100644 --- a/packages/ui/certd-client/src/router/source/modules/certd.ts +++ b/packages/ui/certd-client/src/router/source/modules/certd.ts @@ -40,6 +40,17 @@ export const certdResources = [ cache: true } }, + { + title: "证书仓库", + name: "CertStore", + path: "/certd/monitor/cert", + component: "/certd/monitor/cert/index.vue", + meta: { + icon: "ion:shield-checkmark-outline", + auth: true, + isMenu: true + } + }, { title: "站点证书监控", name: "SiteCertMonitor", @@ -80,21 +91,6 @@ export const certdResources = [ auth: true } }, - { - title: "证书仓库", - name: "CertStore", - path: "/certd/monitor/cert", - component: "/certd/monitor/cert/index.vue", - meta: { - show: () => { - const settingStore = useSettingStore(); - return settingStore.isPlus; - }, - icon: "ion:shield-checkmark-outline", - auth: true, - isMenu: true - } - }, { title: "授权管理", name: "AccessManager", @@ -106,6 +102,17 @@ export const certdResources = [ cache: true } }, + { + title: "OpenKey", + name: "OpenKey", + path: "/certd/open/openkey", + component: "/certd/open/openkey/index.vue", + meta: { + icon: "ion:disc-outline", + auth: true, + cache: true + } + }, { title: "通知设置", name: "NotificationManager", diff --git a/packages/ui/certd-client/src/views/certd/open/openkey/api.ts b/packages/ui/certd-client/src/views/certd/open/openkey/api.ts index a27c42117..e4c41ca9d 100644 --- a/packages/ui/certd-client/src/views/certd/open/openkey/api.ts +++ b/packages/ui/certd-client/src/views/certd/open/openkey/api.ts @@ -1,7 +1,7 @@ import { request } from "/src/api/service"; export function createApi() { - const apiPrefix = "/open/cert"; + const apiPrefix = "/open/key"; return { async GetList(query: any) { return await request({ diff --git a/packages/ui/certd-client/src/views/certd/open/openkey/crud.tsx b/packages/ui/certd-client/src/views/certd/open/openkey/crud.tsx index b269699ae..0c9424bb6 100644 --- a/packages/ui/certd-client/src/views/certd/open/openkey/crud.tsx +++ b/packages/ui/certd-client/src/views/certd/open/openkey/crud.tsx @@ -3,6 +3,7 @@ import { useI18n } from "vue-i18n"; import { AddReq, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, EditReq, UserPageQuery, UserPageRes } from "@fast-crud/fast-crud"; import { pipelineGroupApi } from "./api"; import dayjs from "dayjs"; +import { Modal } from "ant-design-vue"; export default function ({ crudExpose, context }: CreateCrudOptionsProps): CreateCrudOptionsRet { const { t } = useI18n(); @@ -35,6 +36,9 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat editRequest, delRequest }, + search: { + show: false + }, form: { labelCol: { //固定label宽度 @@ -50,15 +54,31 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat width: 600 } }, - actionbar: { show: false }, + actionbar: { + buttons: { + add: { + text: "生成新的Key", + click() { + Modal.confirm({ + title: "确认", + content: "确定要生成新的Key?", + async onOk() { + await api.AddObj({}); + await crudExpose.doRefresh(); + } + }); + } + } + } + }, rowHandle: { width: 200, fixed: "right", buttons: { - view: { show: false }, + view: { show: true }, copy: { show: false }, edit: { show: false }, - remove: { show: false } + remove: { show: true } } }, columns: { @@ -79,125 +99,39 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat show: false } }, - // domain: { - // title: "主域名", - // search: { - // show: true - // }, - // type: "text", - // form: { - // show: false - // }, - // column: { - // width: 180, - // sorter: true, - // component: { - // name: "fs-values-format" - // } - // } - // }, - domains: { - title: "全部域名", + keyId: { + title: "KeyId", search: { show: false }, + form: { + show: false + }, type: "text", - form: { - rules: [{ required: true, message: "请输入域名" }] - }, column: { - width: 450, - sorter: true, - component: { - name: "fs-values-format", - color: "auto" - } + width: 200, + sorter: true } }, - domainCount: { - title: "域名数量", - type: "number", + keySecret: { + title: "KeySecret", + type: "text", form: { show: false }, column: { - width: 120, - sorter: true, - show: false + width: 550, + sorter: true } }, - "pipeline.title": { - title: "已关联流水线", - search: { show: false }, - type: "link", - form: { - show: false - }, - column: { - width: 280, - sorter: true, - component: {} - } - }, - applyTime: { - title: "申请时间", - search: { - show: false - }, + createTime: { + title: "创建时间", type: "datetime", - form: { + search: { show: false }, - column: { - sorter: true - } - }, - expiresTime: { - title: "过期时间", - search: { - show: true - }, - type: "date", form: { show: false - }, - column: { - sorter: true, - cellRender({ value }) { - if (!value) { - return "-"; - } - const expireDate = dayjs(value).format("YYYY-MM-DD"); - const leftDays = dayjs(value).diff(dayjs(), "day"); - const color = leftDays < 20 ? "red" : "#389e0d"; - const percent = (leftDays / 90) * 100; - return `${leftDays}天`} />; - } - } - }, - fromType: { - title: "来源", - search: { - show: true - }, - type: "text", - form: { show: false }, - column: { - width: 100, - sorter: true - } - }, - certProvider: { - title: "证书颁发机构", - search: { - show: true - }, - type: "text", - form: { - show: false - }, - column: { - width: 400 } } } diff --git a/packages/ui/certd-client/src/views/certd/open/openkey/index.vue b/packages/ui/certd-client/src/views/certd/open/openkey/index.vue index 7a4a9e345..2f5097ac5 100644 --- a/packages/ui/certd-client/src/views/certd/open/openkey/index.vue +++ b/packages/ui/certd-client/src/views/certd/open/openkey/index.vue @@ -1,10 +1,7 @@