From 6ac3bc564f407dad2cd0b0b0744e887387aa5da3 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Wed, 4 Jun 2025 23:00:37 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=94=AF=E6=8C=81=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=9C=89=E6=95=88=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/system/settings/service/models.ts | 1 + .../ui/certd-client/src/components/index.ts | 2 ++ .../src/components/valid-time-format.vue | 32 ++++++++++++++++++ .../src/store/settings/api.basic.ts | 1 + .../certd-client/src/store/user/api.user.ts | 2 ++ .../views/framework/home/dashboard/index.vue | 4 +++ .../src/views/sys/authority/user/crud.tsx | 33 +++++++++++++------ .../src/views/sys/settings/tabs/register.vue | 15 +++++++++ .../pipeline/service/pipeline-service.ts | 30 ++++++++++++++++- 9 files changed, 109 insertions(+), 11 deletions(-) create mode 100644 packages/ui/certd-client/src/components/valid-time-format.vue diff --git a/packages/libs/lib-server/src/system/settings/service/models.ts b/packages/libs/lib-server/src/system/settings/service/models.ts index e16ff77b..851c37d9 100644 --- a/packages/libs/lib-server/src/system/settings/service/models.ts +++ b/packages/libs/lib-server/src/system/settings/service/models.ts @@ -16,6 +16,7 @@ export class SysPublicSettings extends BaseSettings { static __access__ = 'public'; registerEnabled = false; + userValidTimeEnabled?:boolean = false; passwordLoginEnabled = true; usernameRegisterEnabled = true; mobileRegisterEnabled = false; diff --git a/packages/ui/certd-client/src/components/index.ts b/packages/ui/certd-client/src/components/index.ts index 008752a2..7f08df50 100644 --- a/packages/ui/certd-client/src/components/index.ts +++ b/packages/ui/certd-client/src/components/index.ts @@ -15,6 +15,7 @@ import PemInput from "./pem-input.vue"; import { defineAsyncComponent } from "vue"; import NotificationSelector from "../views/certd/notification/notification-selector/index.vue"; import EmailSelector from "./email-selector/index.vue"; +import ValidTimeFormat from "./valid-time-format.vue"; export default { install(app: any) { app.component( @@ -27,6 +28,7 @@ export default { app.component("TextEditable", TextEditable); app.component("FileInput", FileInput); app.component("PemInput", PemInput); + app.component("ValidTimeFormat", ValidTimeFormat); // app.component("CodeEditor", CodeEditor); app.component("CronLight", CronLight); diff --git a/packages/ui/certd-client/src/components/valid-time-format.vue b/packages/ui/certd-client/src/components/valid-time-format.vue new file mode 100644 index 00000000..2abfff72 --- /dev/null +++ b/packages/ui/certd-client/src/components/valid-time-format.vue @@ -0,0 +1,32 @@ + + + diff --git a/packages/ui/certd-client/src/store/settings/api.basic.ts b/packages/ui/certd-client/src/store/settings/api.basic.ts index b53a6409..d7a32866 100644 --- a/packages/ui/certd-client/src/store/settings/api.basic.ts +++ b/packages/ui/certd-client/src/store/settings/api.basic.ts @@ -30,6 +30,7 @@ export type PlusInfo = { }; export type SysPublicSetting = { registerEnabled?: boolean; + userValidTimeEnabled?: boolean; usernameRegisterEnabled?: boolean; mobileRegisterEnabled?: boolean; emailRegisterEnabled?: boolean; diff --git a/packages/ui/certd-client/src/store/user/api.user.ts b/packages/ui/certd-client/src/store/user/api.user.ts index 9e81b51b..bfd61d41 100644 --- a/packages/ui/certd-client/src/store/user/api.user.ts +++ b/packages/ui/certd-client/src/store/user/api.user.ts @@ -27,6 +27,8 @@ export interface UserInfoRes { avatar?: string; roleIds: number[]; isWeak?: boolean; + validTime?: number; + status?: number; } export interface LoginRes { diff --git a/packages/ui/certd-client/src/views/framework/home/dashboard/index.vue b/packages/ui/certd-client/src/views/framework/home/dashboard/index.vue index a542d407..d5a5e511 100644 --- a/packages/ui/certd-client/src/views/framework/home/dashboard/index.vue +++ b/packages/ui/certd-client/src/views/framework/home/dashboard/index.vue @@ -35,6 +35,10 @@ + diff --git a/packages/ui/certd-client/src/views/sys/authority/user/crud.tsx b/packages/ui/certd-client/src/views/sys/authority/user/crud.tsx index 7e8d23c2..25ff879d 100644 --- a/packages/ui/certd-client/src/views/sys/authority/user/crud.tsx +++ b/packages/ui/certd-client/src/views/sys/authority/user/crud.tsx @@ -3,6 +3,7 @@ import { AddReq, compute, CreateCrudOptionsProps, CreateCrudOptionsRet, DelReq, import { useUserStore } from "/@/store/user"; import { Modal, notification } from "ant-design-vue"; import dayjs from "dayjs"; +import { useSettingStore } from "/@/store/settings"; export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOptionsRet { const pageRequest = async (query: UserPageQuery): Promise => { @@ -22,6 +23,10 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti const userStore = useUserStore(); + const settingStore = useSettingStore(); + const userValidTimeEnabled = compute(() => { + return settingStore.sysPublic.userValidTimeEnabled === true; + }); return { crudOptions: { request: { @@ -213,20 +218,28 @@ export default function ({ crudExpose }: CreateCrudOptionsProps): CreateCrudOpti }, validTime: { title: "有效期", - type: ["date", "time-humanize"], + type: "date", + form: { + show: userValidTimeEnabled, + }, column: { align: "center", sorter: true, width: 100, - component: { - title: compute(({ row }) => { - return dayjs(row.validTime).format("YYYY-MM-DD"); - }), - useFormatGreater: 30000000000, - options: { - largest: 1, - units: ["y", "d", "h"], - }, + show: userValidTimeEnabled, + cellRender({ value }) { + if (value == null || value === 0) { + return ""; + } + if (value < dayjs().valueOf()) { + return 已过期; + } + const date = dayjs(value).format("YYYY-MM-DD"); + return ( + + + + ); }, }, valueBuilder({ value, row, key }) { diff --git a/packages/ui/certd-client/src/views/sys/settings/tabs/register.vue b/packages/ui/certd-client/src/views/sys/settings/tabs/register.vue index eb9ccec3..8f395eaa 100644 --- a/packages/ui/certd-client/src/views/sys/settings/tabs/register.vue +++ b/packages/ui/certd-client/src/views/sys/settings/tabs/register.vue @@ -11,6 +11,13 @@ + +
+ + +
+
有效期内用户可正常使用,失效后流水线将被停用
+