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 89e96760f..c8daffbaf 100644 --- a/packages/libs/lib-server/src/system/settings/service/models.ts +++ b/packages/libs/lib-server/src/system/settings/service/models.ts @@ -64,6 +64,7 @@ export class SysPublicSettings extends BaseSettings { type: string; title: string; addonId: number; + icon?: string; }> = {}; notice?: string; 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 4134621de..1d6a248f2 100644 --- a/packages/ui/certd-client/src/store/settings/api.basic.ts +++ b/packages/ui/certd-client/src/store/settings/api.basic.ts @@ -85,6 +85,7 @@ export type SysPublicSetting = { type: string; title: string; addonId: number; + icon?: string; } >; // 系统通知 diff --git a/packages/ui/certd-client/src/views/certd/mine/api.ts b/packages/ui/certd-client/src/views/certd/mine/api.ts index c30fb7d78..5cabbd16c 100644 --- a/packages/ui/certd-client/src/views/certd/mine/api.ts +++ b/packages/ui/certd-client/src/views/certd/mine/api.ts @@ -68,20 +68,23 @@ export async function GetOauthProviders() { }); } -export async function UnbindOauth(type: string) { +export async function UnbindOauth(type: string, subtype?: string) { return await request({ url: "/oauth/unbind", method: "POST", - data: { type }, + data: { + type: subtype ? `${type}:${subtype}` : type, + }, }); } -export async function OauthBoundUrl(type: string) { +export async function OauthBoundUrl(type: string, subtype?: string) { return await request({ url: "/oauth/login", method: "POST", data: { type, + subtype, forType: "bind", }, }); diff --git a/packages/ui/certd-client/src/views/certd/mine/user-profile.vue b/packages/ui/certd-client/src/views/certd/mine/user-profile.vue index c7160cae3..8fb3e8145 100644 --- a/packages/ui/certd-client/src/views/certd/mine/user-profile.vue +++ b/packages/ui/certd-client/src/views/certd/mine/user-profile.vue @@ -78,11 +78,11 @@ 未绑定 - + 解绑 - + 绑定 @@ -214,7 +214,7 @@ async function loadOauthProviders() { const computedOauthBounds = computed(() => { const list = oauthProviders.value.map(item => { - const bound = oauthBounds.value.find(bound => bound.type === item.name); + const bound = oauthBounds.value.find(bound => bound.type === buildOauthBoundType(item)); return { ...item, bound, @@ -223,20 +223,24 @@ const computedOauthBounds = computed(() => { return list; }); -async function unbind(type: string) { +function buildOauthBoundType(item: any) { + return item.subtype ? `${item.name}:${item.subtype}` : item.name; +} + +async function unbind(item: any) { Modal.confirm({ title: "确认解绑吗?", okText: "确认", okType: "danger", onOk: async () => { - await api.UnbindOauth(type); + await api.UnbindOauth(item.name, item.subtype); await loadOauthBounds(); }, }); } -async function bind(type: string) { - const res = await api.OauthBoundUrl(type); +async function bind(item: any) { + const res = await api.OauthBoundUrl(item.name, item.subtype); const loginUrl = res.loginUrl; window.location.href = loginUrl; } diff --git a/packages/ui/certd-client/src/views/framework/oauth/api.ts b/packages/ui/certd-client/src/views/framework/oauth/api.ts index 1c5ab8ae5..2149b767a 100644 --- a/packages/ui/certd-client/src/views/framework/oauth/api.ts +++ b/packages/ui/certd-client/src/views/framework/oauth/api.ts @@ -2,7 +2,7 @@ import { request } from "/src/api/service"; const apiPrefix = "/oauth"; -export async function OauthLogin(type: string, forType?: string, from?: string) { +export async function OauthLogin(type: string, forType?: string, from?: string, subtype?: string) { return await request({ url: apiPrefix + `/login`, method: "post", @@ -10,6 +10,7 @@ export async function OauthLogin(type: string, forType?: string, from?: string) type, forType: forType || "login", from: from || "web", + subtype, }, }); } diff --git a/packages/ui/certd-client/src/views/framework/oauth/oauth-footer.vue b/packages/ui/certd-client/src/views/framework/oauth/oauth-footer.vue index 00f3a97a9..c76738684 100644 --- a/packages/ui/certd-client/src/views/framework/oauth/oauth-footer.vue +++ b/packages/ui/certd-client/src/views/framework/oauth/oauth-footer.vue @@ -5,8 +5,8 @@
-