添加修改用户名功能

This commit is contained in:
yzy committed 2026-01-20 18:10:52 +08:00
1 parent a5f3947188
commit 9392fe9938
1 file changed
+67 -4
+67 -4
View File
@@ -16,7 +16,7 @@
import { import {
getUserInfo,updateNickname getUserInfo,updateNickname,uploadAvatar
} from './api.js'; } from './api.js';
import { import {
useUserStore useUserStore
@@ -127,9 +127,50 @@
//弹窗控制 //弹窗控制
const show = ref(false) const show = ref(false)
const showPopup = () =>{ const newNickname = ref('')
const showPopup = () => {
newNickname.value = userName.value || ''
show.value = true show.value = true
} }
// 关闭弹窗方法
const hidePopup = () => {
show.value = false
}
// 确认修改用户名
const confirmUpdateNickname = async () => {
if (!newNickname.value.trim()) {
uni.showToast({
title: 'Username cannot be empty',
icon: 'none'
})
return
}
try {
const res = await updateNickname({ nickname: newNickname.value })
if (res.data) {
userName.value = newNickname.value
userStore.updateUserInfo('nickname', newNickname.value)
hidePopup()
uni.showToast({
title: 'Update success',
icon: 'success'
})
} else {
uni.showToast({
title: 'Update failed',
icon: 'none'
})
}
} catch (error) {
uni.showToast({
title: 'Update failed',
icon: 'none'
})
}
}
</script> </script>
<template> <template>
@@ -318,8 +359,30 @@
</view> </view>
<u-popup v-model="show" mode="center" border-radius="10" closeable> <u-popup :show="show" @close="hidePopup" round="10" :closeable="true">
hello <view class="p-6 w-64">
<view class="text-lg font-bold mb-4 text-center">Edit Username</view>
<input
v-model="newNickname"
class="border border-gray-300 rounded-lg p-3 mb-4"
placeholder="Enter new username"
maxlength="20"
/>
<view class="flex gap-3">
<button
class="flex-1 py-2 rounded-lg bg-gray-200 text-gray-700"
@click="hidePopup"
>
Cancel
</button>
<button
class="flex-1 py-2 rounded-lg bg-theme text-white"
@click="confirmUpdateNickname"
>
Confirm
</button>
</view>
</view>
</u-popup> </u-popup>
<CustomTabBar /> <CustomTabBar />