|
|
|
@ -9,6 +9,7 @@ const toast = useToast() |
|
|
|
|
|
|
|
type ProfileGet = { |
|
|
|
profile: { |
|
|
|
email: string | null |
|
|
|
nickname: string | null |
|
|
|
avatar: string | null |
|
|
|
avatarVisibility: string |
|
|
|
@ -27,6 +28,7 @@ type MeConfigGet = { |
|
|
|
} |
|
|
|
|
|
|
|
const state = reactive({ |
|
|
|
email: '', |
|
|
|
nickname: '', |
|
|
|
avatar: '', |
|
|
|
avatarVisibility: 'private', |
|
|
|
@ -184,6 +186,7 @@ async function load() { |
|
|
|
const p = profilePayload.profile |
|
|
|
const cfg = meCfgPayload.config |
|
|
|
state.nickname = p.nickname ?? '' |
|
|
|
state.email = p.email ?? '' |
|
|
|
state.avatar = p.avatar ?? '' |
|
|
|
state.avatarVisibility = p.avatarVisibility |
|
|
|
state.bioMarkdown = p.bioMarkdown ?? '' |
|
|
|
@ -219,6 +222,7 @@ async function save() { |
|
|
|
method: 'PUT', |
|
|
|
notify: false, |
|
|
|
body: { |
|
|
|
email: state.email.trim() || null, |
|
|
|
nickname: state.nickname || null, |
|
|
|
avatar: state.avatar || null, |
|
|
|
avatarVisibility: state.avatarVisibility, |
|
|
|
@ -327,6 +331,13 @@ async function save() { |
|
|
|
<UInput v-model="state.nickname" /> |
|
|
|
</UFormField> |
|
|
|
<UFormField |
|
|
|
label="邮箱" |
|
|
|
name="email" |
|
|
|
description="用于接收评论通知与测试邮件,留空表示不接收邮件通知。" |
|
|
|
> |
|
|
|
<UInput v-model="state.email" type="email" placeholder="you@example.com" /> |
|
|
|
</UFormField> |
|
|
|
<UFormField |
|
|
|
label="公开主页顶栏名称" |
|
|
|
name="publicHomeHeaderTitle" |
|
|
|
description="在 /@你的 slug 页面左上角显示。留空则使用全站站点名称。" |
|
|
|
|