feat: 系统配置 + 用户签名
- 新增 sys_config 表,存储应用版本号、标语、描述 - 关于小菜弹窗版本号改为从数据库动态获取 - 用户表新增 slogan 字段(个性签名) - 编辑资料页面支持修改签名 - 管理后台新增系统配置管理页面 - 更新 CLAUDE.md 文档
This commit is contained in:
@@ -10,6 +10,10 @@ export const useUserStore = defineStore('user', () => {
|
||||
return userInfo.value?.nickname || uni.getStorageSync('xc:nickname') || '小菜'
|
||||
})
|
||||
|
||||
const slogan = computed(() => {
|
||||
return userInfo.value?.slogan || '记账小能手'
|
||||
})
|
||||
|
||||
const avatarUrl = computed(() => {
|
||||
const filename = userInfo.value?.avatar_url || uni.getStorageSync('xc:avatar_url') || ''
|
||||
if (!filename) return ''
|
||||
@@ -28,10 +32,17 @@ export const useUserStore = defineStore('user', () => {
|
||||
}
|
||||
}
|
||||
|
||||
async function updateProfile(nickname: string) {
|
||||
await api.updateNickname(nickname)
|
||||
if (userInfo.value) userInfo.value.nickname = nickname
|
||||
uni.setStorageSync('xc:nickname', nickname)
|
||||
async function updateProfile(data: { nickname?: string; slogan?: string }) {
|
||||
const nickname = data.nickname ?? userInfo.value?.nickname ?? ''
|
||||
const slogan = data.slogan ?? userInfo.value?.slogan ?? ''
|
||||
await api.updateNickname(nickname, slogan)
|
||||
if (userInfo.value) {
|
||||
if (data.nickname !== undefined) userInfo.value.nickname = data.nickname
|
||||
if (data.slogan !== undefined) userInfo.value.slogan = data.slogan
|
||||
}
|
||||
if (data.nickname !== undefined) {
|
||||
uni.setStorageSync('xc:nickname', data.nickname)
|
||||
}
|
||||
}
|
||||
|
||||
async function uploadAvatar(filePath: string) {
|
||||
@@ -41,5 +52,5 @@ export const useUserStore = defineStore('user', () => {
|
||||
return avatarUrl.value
|
||||
}
|
||||
|
||||
return { userInfo, nickname, avatarUrl, fetchUserInfo, updateProfile, uploadAvatar }
|
||||
return { userInfo, nickname, slogan, avatarUrl, fetchUserInfo, updateProfile, uploadAvatar }
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user