From 46ae18ce307208e9ca80aa1477d3b680e3935c20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=AD=90=E6=97=BA?= <15039612+liu-ziwang123@user.noreply.gitee.com> Date: Mon, 4 Nov 2024 09:18:38 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:GetSalt=E5=87=BD=E6=95=B0=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=B1=BB=E5=9E=8B=E6=96=AD=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- godo/files/os.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/godo/files/os.go b/godo/files/os.go index 0ca7e2b..8f6f7de 100644 --- a/godo/files/os.go +++ b/godo/files/os.go @@ -364,7 +364,11 @@ func IsHavePwd(pwd string) bool { func GetSalt(r *http.Request) (string, error) { data, ishas := libs.GetConfig("salt") if ishas { - return data.(string), nil + // 断言成功则返回 + if salt, ok := data.(string); ok { + return salt, nil + } + return "", fmt.Errorf("类型断言失败,期望类型为 string") } salt := r.Header.Get("salt") if salt != "" { From b3840cfb488d93772dad0fd1f801e4966314c2eb Mon Sep 17 00:00:00 2001 From: qiutianhong Date: Mon, 4 Nov 2024 11:29:59 +0800 Subject: [PATCH 2/3] =?UTF-8?q?add=EF=BC=9A=E5=AE=8C=E5=96=84=E5=8D=95?= =?UTF-8?q?=E8=81=8A=E3=80=81=E7=BE=A4=E8=81=8A=EF=BC=8C=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=8F=91=E9=80=81=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/auto-imports.d.ts | 3 +- frontend/components.d.ts | 9 + frontend/src/components/chat/Chat.vue | 139 ++++- frontend/src/components/chat/ChatBox.vue | 56 +- frontend/src/components/chat/ChatMessage.vue | 151 ++++- frontend/src/components/chat/ChatMsgList.vue | 124 +++-- frontend/src/components/chat/ChatUserList.vue | 11 +- frontend/src/components/chat/chatUserInfo.vue | 8 +- frontend/src/hook/useComputer.ts | 2 +- frontend/src/stores/chat.ts | 516 +++++++++--------- frontend/src/stores/db.ts | 36 +- frontend/src/stores/notify.ts | 170 +++--- frontend/src/stores/upgrade.ts | 20 +- frontend/src/system/index.ts | 1 + 14 files changed, 742 insertions(+), 504 deletions(-) diff --git a/frontend/auto-imports.d.ts b/frontend/auto-imports.d.ts index eab6be6..d0c217f 100644 --- a/frontend/auto-imports.d.ts +++ b/frontend/auto-imports.d.ts @@ -3,6 +3,7 @@ // @ts-nocheck // noinspection JSUnusedGlobalSymbols // Generated by unplugin-auto-import +// biome-ignore lint: disable export {} declare global { const EffectScope: typeof import('vue')['EffectScope'] @@ -70,6 +71,6 @@ declare global { // for type re-export declare global { // @ts-ignore - export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue' + export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue' import('vue') } diff --git a/frontend/components.d.ts b/frontend/components.d.ts index fc576b9..3590eb4 100644 --- a/frontend/components.d.ts +++ b/frontend/components.d.ts @@ -50,6 +50,7 @@ declare module 'vue' { EditType: typeof import('./src/components/builtin/EditType.vue')['default'] ElAside: typeof import('element-plus/es')['ElAside'] ElAvatar: typeof import('element-plus/es')['ElAvatar'] + ElBadge: typeof import('element-plus/es')['ElBadge'] ElButton: typeof import('element-plus/es')['ElButton'] ElCard: typeof import('element-plus/es')['ElCard'] ElCarousel: typeof import('element-plus/es')['ElCarousel'] @@ -58,19 +59,27 @@ declare module 'vue' { ElContainer: typeof import('element-plus/es')['ElContainer'] ElDialog: typeof import('element-plus/es')['ElDialog'] ElDrawer: typeof import('element-plus/es')['ElDrawer'] + ElDropdown: typeof import('element-plus/es')['ElDropdown'] + ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] + ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu'] + ElEmpty: typeof import('element-plus/es')['ElEmpty'] ElFooter: typeof import('element-plus/es')['ElFooter'] ElForm: typeof import('element-plus/es')['ElForm'] ElFormItem: typeof import('element-plus/es')['ElFormItem'] ElHeader: typeof import('element-plus/es')['ElHeader'] ElIcon: typeof import('element-plus/es')['ElIcon'] + ElImage: typeof import('element-plus/es')['ElImage'] ElInput: typeof import('element-plus/es')['ElInput'] ElMain: typeof import('element-plus/es')['ElMain'] ElMenu: typeof import('element-plus/es')['ElMenu'] ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] + ElOption: typeof import('element-plus/es')['ElOption'] ElPagination: typeof import('element-plus/es')['ElPagination'] + ElPopover: typeof import('element-plus/es')['ElPopover'] ElProgress: typeof import('element-plus/es')['ElProgress'] ElRow: typeof import('element-plus/es')['ElRow'] ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] + ElSelect: typeof import('element-plus/es')['ElSelect'] ElTooltip: typeof import('element-plus/es')['ElTooltip'] ElTransfer: typeof import('element-plus/es')['ElTransfer'] ElTree: typeof import('element-plus/es')['ElTree'] diff --git a/frontend/src/components/chat/Chat.vue b/frontend/src/components/chat/Chat.vue index 5af16a2..4c80a01 100644 --- a/frontend/src/components/chat/Chat.vue +++ b/frontend/src/components/chat/Chat.vue @@ -25,6 +25,19 @@ data.value = generateData(); } }); + + function toggleSelectItem(item) { + const index = users.value.indexOf(item.key); + if (index === -1) { + users.value.push(item.key); + } else { + users.value.splice(index, 1); + } +} + +function removeItem(userId) { + users.value = users.value.filter((user) => user !== userId); +}