fix: bugs
This commit is contained in:
@@ -101,6 +101,66 @@
|
||||
option-value="value"
|
||||
/>
|
||||
</div>
|
||||
<div class="edit-profile__cell edit-profile__cell--third">
|
||||
<TextField
|
||||
v-model="form.childrenCount"
|
||||
name="childrenCount"
|
||||
label="تعداد فرزند"
|
||||
inputmode="numeric"
|
||||
:convert-digits="true"
|
||||
:error="errors.childrenCount"
|
||||
@blur="validateAt('childrenCount', form.childrenCount)"
|
||||
>
|
||||
<template #appendIcon>
|
||||
<SvgIcon name="users-three" :size="20" color="var(--color-thd-gray)" />
|
||||
</template>
|
||||
</TextField>
|
||||
</div>
|
||||
<div class="edit-profile__cell edit-profile__cell--third">
|
||||
<TextField
|
||||
v-model="form.virtualPhoneNumber"
|
||||
name="virtualPhoneNumber"
|
||||
label="شماره تلفن مجازی"
|
||||
inputmode="numeric"
|
||||
:convert-digits="true"
|
||||
:error="errors.virtualPhoneNumber"
|
||||
@blur="validateAt('virtualPhoneNumber', form.virtualPhoneNumber)"
|
||||
>
|
||||
<template #appendIcon>
|
||||
<SvgIcon name="phone" :size="20" color="var(--color-thd-gray)" />
|
||||
</template>
|
||||
</TextField>
|
||||
</div>
|
||||
<div class="edit-profile__cell edit-profile__cell--third">
|
||||
<TextField
|
||||
v-model="form.seminaryCode"
|
||||
name="seminaryCode"
|
||||
label="کد حوزوی"
|
||||
inputmode="numeric"
|
||||
:convert-digits="true"
|
||||
:error="errors.seminaryCode"
|
||||
@blur="validateAt('seminaryCode', form.seminaryCode)"
|
||||
>
|
||||
<template #appendIcon>
|
||||
<SvgIcon name="graduation-cap" :size="20" color="var(--color-thd-gray)" />
|
||||
</template>
|
||||
</TextField>
|
||||
</div>
|
||||
<div class="edit-profile__cell edit-profile__cell--third">
|
||||
<TextField
|
||||
v-model="form.seminaryServiceCenterCode"
|
||||
name="seminaryServiceCenterCode"
|
||||
label="کد مرکز خدمات حوزه"
|
||||
inputmode="numeric"
|
||||
:convert-digits="true"
|
||||
:error="errors.seminaryServiceCenterCode"
|
||||
@blur="validateAt('seminaryServiceCenterCode', form.seminaryServiceCenterCode)"
|
||||
>
|
||||
<template #appendIcon>
|
||||
<SvgIcon name="check-square" :size="20" color="var(--color-thd-gray)" />
|
||||
</template>
|
||||
</TextField>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<LineTitleBlock title="مشخصات محل سکونت" title-en="Address Details" />
|
||||
@@ -127,6 +187,21 @@
|
||||
:disabled="!form.provinceId"
|
||||
/>
|
||||
</div>
|
||||
<div class="edit-profile__cell edit-profile__cell--third">
|
||||
<TextField
|
||||
v-model="form.postalCode"
|
||||
name="postalCode"
|
||||
label="کد پستی"
|
||||
inputmode="numeric"
|
||||
:convert-digits="true"
|
||||
:error="errors.postalCode"
|
||||
@blur="validateAt('postalCode', form.postalCode)"
|
||||
>
|
||||
<template #appendIcon>
|
||||
<SvgIcon name="map-pin-simple-area" :size="20" color="var(--color-thd-gray)" />
|
||||
</template>
|
||||
</TextField>
|
||||
</div>
|
||||
<div class="edit-profile__cell edit-profile__cell--full">
|
||||
<TextareaField
|
||||
v-model="form.address"
|
||||
@@ -227,6 +302,8 @@ import { studentProfileSchema, studentResetPasswordSchema } from '@/features/stu
|
||||
import {
|
||||
authKeys,
|
||||
useGetMeQuery,
|
||||
useGetRegisterDataQuery,
|
||||
useSaveRegisterDataMutation,
|
||||
useUpdateProfileMutation,
|
||||
useUploadMediaMutation,
|
||||
} from '@/services/query/auth'
|
||||
@@ -262,6 +339,11 @@ const form = ref({
|
||||
provinceId: '',
|
||||
cityId: '',
|
||||
address: '',
|
||||
postalCode: '',
|
||||
virtualPhoneNumber: '',
|
||||
seminaryCode: '',
|
||||
seminaryServiceCenterCode: '',
|
||||
childrenCount: '',
|
||||
avatarMediaId: null,
|
||||
})
|
||||
|
||||
@@ -326,6 +408,24 @@ watch(
|
||||
{ immediate: true }
|
||||
)
|
||||
|
||||
const { data: registerData } = useGetRegisterDataQuery()
|
||||
|
||||
watch(
|
||||
registerData,
|
||||
(data) => {
|
||||
if (!data) return
|
||||
form.value = {
|
||||
...form.value,
|
||||
postalCode: data.postalCode || '',
|
||||
virtualPhoneNumber: data.virtualPhoneNumber || '',
|
||||
seminaryCode: data.seminaryCode || '',
|
||||
seminaryServiceCenterCode: data.seminaryServiceCenterCode || '',
|
||||
childrenCount: data.childrenCount ?? '',
|
||||
}
|
||||
},
|
||||
{ immediate: true }
|
||||
)
|
||||
|
||||
const uploadMutation = useUploadMediaMutation()
|
||||
|
||||
const onAvatarCropped = async (file) => {
|
||||
@@ -343,6 +443,7 @@ const onAvatarCropped = async (file) => {
|
||||
const onAvatarError = (msg) => toast.error(msg)
|
||||
|
||||
const updateMutation = useUpdateProfileMutation()
|
||||
const saveRegisterDataMutation = useSaveRegisterDataMutation()
|
||||
const resetPasswordMutation = useUpdateProfileMutation()
|
||||
|
||||
const onSubmit = async () => {
|
||||
@@ -359,7 +460,18 @@ const onSubmit = async () => {
|
||||
...(payload.avatarMediaId ? { avatarMediaId: payload.avatarMediaId } : {}),
|
||||
}
|
||||
await updateMutation.mutateAsync(body)
|
||||
await saveRegisterDataMutation.mutateAsync({
|
||||
postalCode: payload.postalCode || '',
|
||||
virtualPhoneNumber: payload.virtualPhoneNumber || '',
|
||||
seminaryCode: payload.seminaryCode || '',
|
||||
seminaryServiceCenterCode: payload.seminaryServiceCenterCode || '',
|
||||
childrenCount:
|
||||
payload.childrenCount == null || payload.childrenCount === ''
|
||||
? ''
|
||||
: Number(payload.childrenCount),
|
||||
})
|
||||
await queryClient.invalidateQueries({ queryKey: authKeys.me() })
|
||||
await queryClient.invalidateQueries({ queryKey: authKeys.registerData() })
|
||||
toast.success('پروفایل با موفقیت بهروز شد')
|
||||
router.push({ name: 'student-dashboard' })
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user