import { View, Text, Image, Input, Button } from '@tarojs/components' import Taro from '@tarojs/taro' import { useState, useEffect, useCallback } from 'react' import './index.scss' import { useThemeContext } from '../../context/ThemeContext' import { useSafeArea } from '../../hooks/useSafeArea' import { useStatusBar } from '../../hooks/useStatusBar' import ThemedPageMeta from '../../components/ThemedPageMeta' import { getUserInfo, setUserInfo, clearUserInfo, getAddressList, getDefaultAddress, type AddressItem } from '../../utils/store' const THEME_OPTIONS: { label: string; value: 'light' | 'dark' | 'auto' }[] = [ { label: '浅色模式', value: 'light' }, { label: '深色模式', value: 'dark' }, { label: '跟随系统', value: 'auto' } ] const MENU = [ { label: '个人信息', icon: '/icon/个人.png', action: (s: any) => s.setShowEdit(true) }, { label: '账号管理', icon: '/icon/账号管理.png', action: () => Taro.navigateTo({ url: '/pages/userDatabase/index' }) }, { label: '定制协议', icon: '/icon/定制协议.png', action: () => Taro.navigateTo({ url: '/pages/agreement/index' }) }, { label: '关于我们', icon: '/icon/关于我们.png', action: () => Taro.showToast({ title: '智绘微刻 v1.0', icon: 'none' }) } ] export default function SettingsPage() { const { theme, setTheme, resolvedTheme } = useThemeContext() const safe = useSafeArea() useStatusBar(resolvedTheme) const [user, setUser] = useState({}) const [editName, setEditName] = useState('') const [editAvatar, setEditAvatar] = useState('') const [showEdit, setShowEdit] = useState(false) const loadUser = () => { const u = getUserInfo() || {} setUser(u) setEditName(u.nickName || '') setEditAvatar(u.avatarUrl || '') } useEffect(() => { loadUser() }, []) const handleSaveInfo = () => { setUserInfo({ ...user, nickName: editName, avatarUrl: editAvatar }) Taro.showToast({ title: '修改成功', icon: 'success' }) setShowEdit(false) loadUser() } const handleLogout = () => { Taro.showModal({ title: '确认退出', content: '退出后将清空当前登录状态,确定吗?', success: (res) => { if (res.confirm) { clearUserInfo() Taro.switchTab({ url: '/pages/index/index' }) } } }) } const onChooseAvatar = (e: any) => { setEditAvatar(e.detail.avatarUrl || '') } return ( Taro.navigateBack()}>← 设置 {/* 用户卡片 */} setShowEdit(true)}> {user.avatarUrl ? ( ) : ( )} {user.nickName || '未登录'} ID: {user.openid ? user.openid.slice(-8) : '---'} {/* 主题设置 */} 外观 {THEME_OPTIONS.map(opt => ( setTheme(opt.value)} > {opt.label} {theme === opt.value && } ))} {theme === 'auto' && ( 当前跟随系统:{resolvedTheme === 'dark' ? '深色模式' : '浅色模式'} )} {/* 菜单列表 */} {MENU.map((item, idx) => ( item.action({ setShowEdit })}> {item.label} ))} {/* 退出登录 */} {user?.openid && ( 退出登录 )} {/* 编辑弹窗 */} {showEdit && ( 修改信息 setEditName(e.detail.value)} /> setShowEdit(false)}> 取消 保存 )} ) }