|
|
|
@ -32,76 +32,92 @@
|
|
|
|
|
import {
|
|
|
|
|
ref,
|
|
|
|
|
onMounted,
|
|
|
|
|
getCurrentInstance
|
|
|
|
|
getCurrentInstance,
|
|
|
|
|
computed
|
|
|
|
|
} from 'vue'
|
|
|
|
|
import {
|
|
|
|
|
userLogin,
|
|
|
|
|
uploadImageApi
|
|
|
|
|
uploadImageApi,
|
|
|
|
|
saveOrUpdateApi
|
|
|
|
|
} from '../../api/user.js'
|
|
|
|
|
|
|
|
|
|
import http from '../../common/http.js'
|
|
|
|
|
import {
|
|
|
|
|
userStore
|
|
|
|
|
} from '../../store/user.js';
|
|
|
|
|
const ustore = userStore()
|
|
|
|
|
// 获取当前组件实例
|
|
|
|
|
const instance = getCurrentInstance();
|
|
|
|
|
//昵称
|
|
|
|
|
const nickName = ref('微信用户')
|
|
|
|
|
const nickName = computed(() => {
|
|
|
|
|
if (ustore.nickName) {
|
|
|
|
|
return ustore.nickName
|
|
|
|
|
} else {
|
|
|
|
|
return ''
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
//头像
|
|
|
|
|
const avatarUrl = ref('/static/user.jpg')
|
|
|
|
|
//const avatarUrl = ref('/static/user.jpg')
|
|
|
|
|
const avatarUrl = computed(() => {
|
|
|
|
|
if (ustore.avatarUrl) {
|
|
|
|
|
return http.baseUrl + ustore.avatarUrl
|
|
|
|
|
} else {
|
|
|
|
|
return '/static/user.jpg'
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
// 页面加载时从缓存读取用户信息
|
|
|
|
|
onMounted(() => {
|
|
|
|
|
loadUserInfoFromStorage();
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const loadUserInfoFromStorage = () => {
|
|
|
|
|
const storedAvatar = uni.getStorageSync('avatarUrl')
|
|
|
|
|
const storedNickName = uni.getStorageSync('nickName')
|
|
|
|
|
|
|
|
|
|
if (storedAvatar && storedNickName) {
|
|
|
|
|
nickName.value = storedNickName
|
|
|
|
|
avatarUrl.value = storedAvatar
|
|
|
|
|
console.log('从缓存加载用户信息:', storedNickName, storedAvatar)
|
|
|
|
|
}
|
|
|
|
|
const storedAvatar = uni.getStorageSync('avatarUrl')
|
|
|
|
|
const storedNickName = uni.getStorageSync('nickName')
|
|
|
|
|
|
|
|
|
|
if (storedAvatar && storedNickName) {
|
|
|
|
|
nickName.value = storedNickName
|
|
|
|
|
avatarUrl.value = storedAvatar
|
|
|
|
|
console.log('从缓存加载用户信息:', storedNickName, storedAvatar)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const onChooseAvatar = async (e) => {
|
|
|
|
|
console.log('选择头像:', e)
|
|
|
|
|
const onChooseAvatar = (e) => {
|
|
|
|
|
console.log(e)
|
|
|
|
|
avatarUrl.value = e.detail.avatarUrl
|
|
|
|
|
|
|
|
|
|
// 上传头像到服务器
|
|
|
|
|
try {
|
|
|
|
|
const res = await uploadImageApi({
|
|
|
|
|
url: "/api/upload/uploadImage",
|
|
|
|
|
filePath: e.detail.avatarUrl
|
|
|
|
|
})
|
|
|
|
|
console.log('头像上传成功:', res)
|
|
|
|
|
|
|
|
|
|
// 保存头像URL到本地存储
|
|
|
|
|
uni.setStorageSync('avatarUrl', e.detail.avatarUrl);
|
|
|
|
|
} catch (err) {
|
|
|
|
|
console.error('头像上传失败:', err)
|
|
|
|
|
uni.showToast({
|
|
|
|
|
title: '头像上传失败',
|
|
|
|
|
icon: 'none'
|
|
|
|
|
//上传服务器
|
|
|
|
|
uploadImageApi({
|
|
|
|
|
url: "/api/upload/uploadImage",
|
|
|
|
|
filePath: e.detail.avatarUrl
|
|
|
|
|
}).then((res) => {
|
|
|
|
|
//图片上传成功,存到数据库
|
|
|
|
|
console.log(res)
|
|
|
|
|
let result = JSON.parse(res)
|
|
|
|
|
saveOrUpdateApi({
|
|
|
|
|
openid: uni.getStorageSync('openid'),
|
|
|
|
|
avatarUrl: result.data
|
|
|
|
|
}).then(res => {
|
|
|
|
|
console.log(res)
|
|
|
|
|
ustore.avatarUrl = result.data
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const onNickName = (e) => {
|
|
|
|
|
console.log('昵称输入:', e)
|
|
|
|
|
|
|
|
|
|
// 使用已定义的 instance 变量
|
|
|
|
|
uni.createSelectorQuery().in(instance)
|
|
|
|
|
console.log(e)
|
|
|
|
|
uni.createSelectorQuery().in(instance) // 注意这里要加上 in(this)
|
|
|
|
|
.select("#nickname-input")
|
|
|
|
|
.fields({
|
|
|
|
|
properties: ["value"],
|
|
|
|
|
})
|
|
|
|
|
.exec((res) => {
|
|
|
|
|
console.log('获取昵称结果:', res)
|
|
|
|
|
if (res && res[0] && res[0].value) {
|
|
|
|
|
nickName.value = res[0].value
|
|
|
|
|
console.log('设置昵称:', nickName.value)
|
|
|
|
|
|
|
|
|
|
// 保存昵称到本地存储
|
|
|
|
|
uni.setStorageSync('nickName', nickName.value);
|
|
|
|
|
}
|
|
|
|
|
console.log(res)
|
|
|
|
|
nickName.value = res?.[0]?.value
|
|
|
|
|
console.log('昵称', nickName.value)
|
|
|
|
|
saveOrUpdateApi({
|
|
|
|
|
openid: uni.getStorageSync('openid'),
|
|
|
|
|
nickName: res?.[0]?.value
|
|
|
|
|
}).then(res => {
|
|
|
|
|
console.log(res)
|
|
|
|
|
ustore.nickName = res?.[0]?.value
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|