From 0ad6179b81055464444f59ab8835925f49d3d01e Mon Sep 17 00:00:00 2001 From: Timothy Yin Date: Tue, 21 Jan 2025 00:47:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(profile):=20=E8=B5=84=E6=96=99=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E5=8F=AF=E4=BF=AE=E6=94=B9=E5=AD=97=E6=AE=B5=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/profile.vue | 60 +++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/pages/profile.vue b/pages/profile.vue index 6d44259..59d6240 100644 --- a/pages/profile.vue +++ b/pages/profile.vue @@ -38,8 +38,7 @@ const currentTab = computed({ }) const editProfileSchema = object({ - nickname: string(), - email: string().notRequired().email('请输入正确的邮箱地址'), + username: string().required('请输入姓名'), sex: number().required('请选择性别'), company: string().required('请输入公司名称'), }) @@ -47,8 +46,7 @@ const editProfileSchema = object({ type EditProfileSchema = InferType const editProfileState = reactive({ - nickname: loginState.user?.nickname || '', - email: loginState.user?.email || '', + username: loginState.user?.username || '', sex: loginState.user.sex || 0, company: loginState.user?.company || '', }) @@ -56,13 +54,26 @@ const editProfileState = reactive({ const isEditProfileModified = ref(false) const onEditProfileSubmit = (event: FormSubmitEvent) => { + let payload: Partial & AuthedRequest = { + token: loginState.token!, + user_id: loginState.user.id, + // 排除 username 字段,因为如果 username 未修改,后端会返回错误 + ...Object.fromEntries( + Object.entries(event.data).filter(([key]) => key !== 'username') + ), + } + + // 如果用户名有变化,需要额外传递 username 字段 + if (event.data.username !== loginState.user.username) { + payload = { + ...payload, + username: event.data.username, + } + } + useFetchWrapped & AuthedRequest, BaseResponse<{}>>( 'App.User_User.EditProfile', - { - token: loginState.token!, - user_id: loginState.user.id, - ...(event.data as UserSchema), - } + payload ) .then((res) => { if (res.ret === 200) { @@ -215,28 +226,21 @@ const onChangePasswordSubmit = ( > -

- {{ loginState.user?.username }} -

- +
-

- {{ loginState.user?.mobile }} -

- -
- - + - - -