1 line
35 KiB
Plaintext
1 line
35 KiB
Plaintext
{"version":3,"sources":["pages/mall/consumer/settings.uvue","uni_modules/ak-req/ak-req.uts","pages/mall/consumer/index.uvue","pages/user/change-password.uvue","pages/user/login.uvue","pages/user/boot.uvue","pages/user/center.uvue"],"sourcesContent":["<!-- 设置页面 -->\r\n<template>\r\n\t<view class=\"settings-page\">\r\n\t\t<!-- 顶部栏 -->\r\n\t\t<!--<view class=\"settings-header\" :style=\"{ paddingTop: statusBarHeight + 'px' }\">\r\n\t\t\t<text class=\"back-btn\" @click=\"goBack\">‹</text>\r\n\t\t\t<text class=\"header-title\">设置</text>\r\n\t\t</view>-->\r\n\r\n\t\t<scroll-view class=\"settings-content\" scroll-y>\r\n\t\t\t<!-- 账户设置 -->\r\n\t\t\t<view class=\"settings-section\">\r\n\t\t\t\t<text class=\"section-title\">账户设置</text>\r\n\t\t\t\t<view class=\"section-list\">\r\n\t\t\t\t\t<view class=\"list-item\" @click=\"goToProfile\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">👤</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">个人资料</text>\r\n\t\t\t\t\t\t<text class=\"item-arrow\">›</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"list-item\" @click=\"goToAddressList\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">📍</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">收货地址</text>\r\n\t\t\t\t\t\t<text class=\"item-arrow\">›</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"list-item\" @click=\"changePassword\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">🔒</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">修改密码</text>\r\n\t\t\t\t\t\t<text class=\"item-arrow\">›</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"list-item\" @click=\"bindPhone\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">📱</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">手机绑定</text>\r\n\t\t\t\t\t\t<view class=\"item-right\">\r\n\t\t\t\t\t\t\t<text class=\"item-status\" :class=\"{ bound: userInfo.phone }\">\r\n\t\t\t\t\t\t\t\t{{ userInfo.phone ? '已绑定' : '未绑定' }}\r\n\t\t\t\t\t\t\t</text>\r\n\t\t\t\t\t\t\t<text class=\"item-arrow\">›</text>\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"list-item\" @click=\"bindEmail\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">📧</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">邮箱绑定</text>\r\n\t\t\t\t\t\t<view class=\"item-right\">\r\n\t\t\t\t\t\t\t<text class=\"item-status\" :class=\"{ bound: userInfo.email }\">\r\n\t\t\t\t\t\t\t\t{{ userInfo.email ? '已绑定' : '未绑定' }}\r\n\t\t\t\t\t\t\t</text>\r\n\t\t\t\t\t\t\t<text class=\"item-arrow\">›</text>\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\r\n\t\t\t<!-- 消息通知 -->\r\n\t\t\t<view class=\"settings-section\">\r\n\t\t\t\t<text class=\"section-title\">消息通知</text>\r\n\t\t\t\t<view class=\"section-list\">\r\n\t\t\t\t\t<view class=\"list-item\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">🔔</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">订单消息</text>\r\n\t\t\t\t\t\t<switch class=\"settings-switch\" :checked=\"notifications.order\" @change=\"toggleNotification('order')\" />\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"list-item\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">🎁</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">促销活动</text>\r\n\t\t\t\t\t\t<switch class=\"settings-switch\" :checked=\"notifications.promotion\" @change=\"toggleNotification('promotion')\" />\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"list-item\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">⭐</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">评价提醒</text>\r\n\t\t\t\t\t\t<switch class=\"settings-switch\" :checked=\"notifications.review\" @change=\"toggleNotification('review')\" />\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\r\n\t\t\t<!-- 隐私设置 -->\r\n\t\t\t<view class=\"settings-section\">\r\n\t\t\t\t<text class=\"section-title\">隐私设置</text>\r\n\t\t\t\t<view class=\"section-list\">\r\n\t\t\t\t\t<view class=\"list-item\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">👁️</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">隐藏购物记录</text>\r\n\t\t\t\t\t\t<switch class=\"settings-switch\" :checked=\"privacy.hidePurchase\" @change=\"togglePrivacy('hidePurchase')\" />\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"list-item\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">🔍</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">允许通过手机号找到我</text>\r\n\t\t\t\t\t\t<switch class=\"settings-switch\" :checked=\"privacy.allowSearchByPhone\" @change=\"togglePrivacy('allowSearchByPhone')\" />\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"list-item\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">💬</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">接收商家消息</text>\r\n\t\t\t\t\t\t<switch class=\"settings-switch\" :checked=\"privacy.receiveMerchantMsg\" @change=\"togglePrivacy('receiveMerchantMsg')\" />\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\r\n\t\t\t<!-- 通用设置 -->\r\n\t\t\t<view class=\"settings-section\">\r\n\t\t\t\t<text class=\"section-title\">通用设置</text>\r\n\t\t\t\t<view class=\"section-list\">\r\n\t\t\t\t\t<view class=\"list-item\" @click=\"clearCache\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">🗑️</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">清除缓存</text>\r\n\t\t\t\t\t\t<view class=\"item-right\">\r\n\t\t\t\t\t\t\t<text class=\"item-cache\">{{ cacheSize }}</text>\r\n\t\t\t\t\t\t\t<text class=\"item-arrow\">›</text>\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"list-item\" @click=\"changeLanguage\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">🌐</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">语言设置</text>\r\n\t\t\t\t\t\t<view class=\"item-right\">\r\n\t\t\t\t\t\t\t<text class=\"item-status\">{{ currentLanguage }}</text>\r\n\t\t\t\t\t\t\t<text class=\"item-arrow\">›</text>\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"list-item\" @click=\"changeTheme\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">🎨</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">主题设置</text>\r\n\t\t\t\t\t\t<view class=\"item-right\">\r\n\t\t\t\t\t\t\t<text class=\"item-status\">{{ currentTheme }}</text>\r\n\t\t\t\t\t\t\t<text class=\"item-arrow\">›</text>\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\r\n\t\t\t<!-- 我的服务 -->\r\n\t\t\t<view class=\"settings-section\">\r\n\t\t\t\t<text class=\"section-title\">我的服务</text>\r\n\t\t\t\t<view class=\"section-list\">\r\n\t\t\t\t\t<view class=\"list-item\" @click=\"goToMyReviews\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">📝</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">我的评价</text>\r\n\t\t\t\t\t\t<text class=\"item-arrow\">›</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\r\n\t\t\t<!-- 关于我们 -->\r\n\t\t\t<view class=\"settings-section\">\r\n\t\t\t\t<text class=\"section-title\">关于我们</text>\r\n\t\t\t\t<view class=\"section-list\">\r\n\t\t\t\t\t<view class=\"list-item\" @click=\"aboutUs\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">ℹ️</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">关于商城</text>\r\n\t\t\t\t\t\t<text class=\"item-arrow\">›</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"list-item\" @click=\"userAgreement\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">📜</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">用户协议</text>\r\n\t\t\t\t\t\t<text class=\"item-arrow\">›</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"list-item\" @click=\"privacyPolicy\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">🛡️</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">隐私政策</text>\r\n\t\t\t\t\t\t<text class=\"item-arrow\">›</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"list-item\" @click=\"checkUpdate\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">🔄</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">检查更新</text>\r\n\t\t\t\t\t\t<view class=\"item-right\">\r\n\t\t\t\t\t\t\t<text class=\"item-status\">{{ appVersion }}</text>\r\n\t\t\t\t\t\t\t<text class=\"item-arrow\">›</text>\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\r\n\t\t\t<!-- 客服与反馈 -->\r\n\t\t\t<view class=\"settings-section\">\r\n\t\t\t\t<text class=\"section-title\">客服与反馈</text>\r\n\t\t\t\t<view class=\"section-list\">\r\n\t\t\t\t\t<view class=\"list-item\" @click=\"contactService\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">💬</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">联系客服</text>\r\n\t\t\t\t\t\t<text class=\"item-arrow\">›</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"list-item\" @click=\"feedback\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">📝</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">意见反馈</text>\r\n\t\t\t\t\t\t<text class=\"item-arrow\">›</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"list-item\" @click=\"rateApp\">\r\n\t\t\t\t\t\t<text class=\"item-icon\">⭐</text>\r\n\t\t\t\t\t\t<text class=\"item-text\">给个好评</text>\r\n\t\t\t\t\t\t<text class=\"item-arrow\">›</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\r\n\t\t\t<!-- 退出登录 -->\r\n\t\t\t<view class=\"logout-section\">\r\n\t\t\t\t<button class=\"logout-btn\" @click=\"logout\">退出登录</button>\r\n\t\t\t</view>\r\n\r\n\t\t\t<!-- 账号注销 -->\r\n\t\t\t<view class=\"delete-account-section\">\r\n\t\t\t\t<text class=\"delete-account\" @click=\"deleteAccount\">注销账号</text>\r\n\t\t\t</view>\r\n\t\t</scroll-view>\r\n\t</view>\r\n</template>\r\n\r\n<script setup lang=\"uts\">\r\nimport { ref, onMounted } from 'vue'\r\nimport { onBackPress } from '@dcloudio/uni-app'\r\nimport supa from '@/components/supadb/aksupainstance.uts'\r\n\r\n// 拦截返回事件,强制跳转到个人中心页\r\nonBackPress((options) => {\r\n\t// 无论是什么触发的返回(系统返回键或导航栏返回按钮),都跳转到profile\r\n\t// 注意:onBackPress 只能在 page 中使用,component 中无效\r\n\tuni.switchTab({\r\n\t\turl: '/pages/mall/consumer/profile'\r\n\t})\r\n\t// 返回 true 表示阻止默认返回行为\r\n\treturn true\r\n})\r\n\r\ntype UserType = {\r\n\tid: string\r\n\tphone: string | null\r\n\temail: string | null\r\n\tnickname: string | null\r\n\tavatar_url: string | null\r\n}\r\n\r\ntype NotificationType = {\r\n\torder: boolean\r\n\tpromotion: boolean\r\n\treview: boolean\r\n}\r\n\r\ntype PrivacyType = {\r\n\thidePurchase: boolean\r\n\tallowSearchByPhone: boolean\r\n\treceiveMerchantMsg: boolean\r\n}\r\n\r\nconst userInfo = ref<UserType>({\r\n\tid: '',\r\n\tphone: null,\r\n\temail: null,\r\n\tnickname: null,\r\n\tavatar_url: null\r\n})\r\nconst notifications = ref<NotificationType>({\r\n\torder: true,\r\n\tpromotion: true,\r\n\treview: true\r\n})\r\nconst privacy = ref<PrivacyType>({\r\n\thidePurchase: false,\r\n\tallowSearchByPhone: true,\r\n\treceiveMerchantMsg: true\r\n})\r\nconst cacheSize = ref<string>('0.0 MB')\r\nconst currentLanguage = ref<string>('简体中文')\r\nconst currentTheme = ref<string>('自动')\r\nconst appVersion = ref<string>('1.0.0')\r\n\r\nconst statusBarHeight = ref(0)\r\n\r\n// 生命周期\r\nonMounted(() => {\r\n\tconst systemInfo = uni.getSystemInfoSync()\r\n\tstatusBarHeight.value = systemInfo.statusBarHeight\r\n\tloadUserInfo()\r\n\tloadSettings()\r\n})\r\n\r\n// 加载用户信息\r\nconst loadUserInfo = () => {\r\n\tconst userStore = uni.getStorageSync('userInfo')\r\n\tif (userStore) {\r\n\t\tuserInfo.value = userStore\r\n\t}\r\n}\r\n\r\n// 加载设置\r\nconst loadSettings = () => {\r\n\t// 从本地存储加载设置\r\n\tconst savedNotifications = uni.getStorageSync('userNotifications')\r\n\tif (savedNotifications) {\r\n\t\tnotifications.value = savedNotifications\r\n\t}\r\n\t\r\n\tconst savedPrivacy = uni.getStorageSync('userPrivacy')\r\n\tif (savedPrivacy) {\r\n\t\tprivacy.value = savedPrivacy\r\n\t}\r\n\t\r\n\t// 计算缓存大小\r\n\tcalculateCacheSize()\r\n\t\r\n\t// 获取应用版本\r\n\t// @ts-ignore\r\n\tconst appInfo = uni.getAppBaseInfo()\r\n\tif (appInfo?.appVersion) {\r\n\t\tappVersion.value = appInfo.appVersion\r\n\t}\r\n}\r\n\r\n// 计算缓存大小\r\nconst calculateCacheSize = () => {\r\n\t// 这里应该计算实际缓存大小,这里使用模拟数据\r\n\tcacheSize.value = '12.5 MB'\r\n}\r\n\r\n// 跳转到个人资料\r\nconst goToProfile = () => {\r\n\tuni.navigateTo({\r\n\t\turl: '/pages/user/profile'\r\n\t})\r\n}\r\n\r\n// 跳转到地址管理\r\nconst goToAddressList = () => {\r\n\tuni.navigateTo({\r\n\t\turl: '/pages/mall/consumer/address-list'\r\n\t})\r\n}\r\n\r\n// 修改密码\r\nconst changePassword = () => {\r\n\tuni.navigateTo({\r\n\t\turl: '/pages/user/change-password'\r\n\t})\r\n}\r\n\r\n// 绑定手机\r\nconst bindPhone = () => {\r\n\tuni.navigateTo({\r\n\t\turl: '/pages/user/bind-phone'\r\n\t})\r\n}\r\n\r\n// 绑定邮箱\r\nconst bindEmail = () => {\r\n\tuni.navigateTo({\r\n\t\turl: '/pages/user/bind-email'\r\n\t})\r\n}\r\n\r\n// 切换通知设置\r\nconst toggleNotification = (type: keyof NotificationType) => {\r\n\tnotifications.value[type] = !notifications.value[type]\r\n\tuni.setStorageSync('userNotifications', notifications.value)\r\n}\r\n\r\n// 切换隐私设置\r\nconst togglePrivacy = (type: keyof PrivacyType) => {\r\n\tprivacy.value[type] = !privacy.value[type]\r\n\tuni.setStorageSync('userPrivacy', privacy.value)\r\n}\r\n\r\n// 清除缓存\r\nconst clearCache = () => {\r\n\tuni.showModal({\r\n\t\ttitle: '清除缓存',\r\n\t\tcontent: `确定要清除 ${cacheSize.value} 缓存吗?`,\r\n\t\tsuccess: (res) => {\r\n\t\t\tif (res.confirm) {\r\n\t\t\t\t// 这里应该清除实际缓存\r\n\t\t\t\tuni.showLoading({\r\n\t\t\t\t\ttitle: '清除中...'\r\n\t\t\t\t})\r\n\t\t\t\t\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tcacheSize.value = '0.0 MB'\r\n\t\t\t\t\tuni.hideLoading()\r\n\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\ttitle: '缓存已清除',\r\n\t\t\t\t\t\ticon: 'success'\r\n\t\t\t\t\t})\r\n\t\t\t\t}, 1000)\r\n\t\t\t}\r\n\t\t}\r\n\t})\r\n}\r\n\r\n// 切换语言\r\nconst changeLanguage = () => {\r\n\tuni.showActionSheet({\r\n\t\titemList: ['简体中文', 'English', '日本語'],\r\n\t\tsuccess: (res) => {\r\n\t\t\tconst languages = ['简体中文', 'English', '日本語']\r\n\t\t\tcurrentLanguage.value = languages[res.tapIndex]\r\n\t\t\tuni.setStorageSync('appLanguage', currentLanguage.value)\r\n\t\t\t\r\n\t\t\tuni.showToast({\r\n\t\t\t\ttitle: '语言已切换',\r\n\t\t\t\ticon: 'success'\r\n\t\t\t})\r\n\t\t}\r\n\t})\r\n}\r\n\r\n// 切换主题\r\nconst changeTheme = () => {\r\n\tuni.showActionSheet({\r\n\t\titemList: ['自动', '浅色模式', '深色模式'],\r\n\t\tsuccess: (res) => {\r\n\t\t\tconst themes = ['自动', '浅色模式', '深色模式']\r\n\t\t\tcurrentTheme.value = themes[res.tapIndex]\r\n\t\t\tuni.setStorageSync('appTheme', currentTheme.value)\r\n\t\t\t\r\n\t\t\tuni.showToast({\r\n\t\t\t\ttitle: '主题已切换',\r\n\t\t\t\ticon: 'success'\r\n\t\t\t})\r\n\t\t}\r\n\t})\r\n}\r\n\r\n// 我的评价\r\nconst goToMyReviews = () => {\r\n\t// 跳转到订单列表的已完成或者是评价相关的页面\r\n\tuni.navigateTo({\r\n\t\turl: '/pages/mall/consumer/orders?status=completed'\r\n\t})\r\n}\r\n\r\n// 关于我们\r\nconst aboutUs = () => {\r\n\tuni.navigateTo({\r\n\t\turl: '/pages/user/terms?type=about'\r\n\t})\r\n}\r\n\r\n// 用户协议\r\nconst userAgreement = () => {\r\n\tuni.navigateTo({\r\n\t\turl: '/pages/user/terms?type=agreement'\r\n\t})\r\n}\r\n\r\n// 隐私政策\r\nconst privacyPolicy = () => {\r\n\tuni.navigateTo({\r\n\t\turl: '/pages/user/terms?type=privacy'\r\n\t})\r\n}\r\n\r\n// 检查更新\r\nconst checkUpdate = () => {\r\n\tuni.showLoading({\r\n\t\ttitle: '检查更新中...'\r\n\t})\r\n\t\r\n\tsetTimeout(() => {\r\n\t\tuni.hideLoading()\r\n\t\tuni.showModal({\r\n\t\t\ttitle: '检查更新',\r\n\t\t\tcontent: '当前已是最新版本',\r\n\t\t\tshowCancel: false\r\n\t\t})\r\n\t}, 1000)\r\n}\r\n\r\n// 联系客服\r\nconst contactService = () => {\r\n\tuni.navigateTo({\r\n\t\turl: '/pages/mall/consumer/chat'\r\n\t})\r\n}\r\n\r\n// 意见反馈\r\nconst feedback = () => {\r\n\tuni.navigateTo({\r\n\t\turl: '/pages/info/feedback'\r\n\t})\r\n}\r\n\r\n// 给个好评\r\nconst rateApp = () => {\r\n\t// 这里应该跳转到应用商店评分\r\n\tuni.showModal({\r\n\t\ttitle: '给个好评',\r\n\t\tcontent: '如果喜欢我们的应用,请给个好评吧!',\r\n\t\tconfirmText: '去评分',\r\n\t\tsuccess: (res) => {\r\n\t\t\tif (res.confirm) {\r\n\t\t\t\t// 跳转到应用商店\r\n\t\t\t\t// @ts-ignore\r\n\t\t\t\tuni.navigateToMiniProgram({\r\n\t\t\t\t\tappId: 'wx1234567890', // 示例AppID\r\n\t\t\t\t\tfail: () => {\r\n\t\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\t\ttitle: '跳转失败',\r\n\t\t\t\t\t\t\ticon: 'none'\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\t})\r\n}\r\n\r\n// 退出登录\r\nconst logout = () => {\r\n\tuni.showModal({\r\n\t\ttitle: '退出登录',\r\n\t\tcontent: '确定要退出登录吗?',\r\n\t\tsuccess: async (res) => {\r\n\t\t\tif (res.confirm) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tuni.showLoading({\r\n\t\t\t\t\t\ttitle: '正在退出...'\r\n\t\t\t\t\t})\r\n\t\t\t\t\t// 调用登出接口\r\n\t\t\t\t\tconst { error } = await supa.auth.signOut()\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (error !== null) {\r\n\t\t\t\t\t\tconsole.error('登出失败:', error)\r\n\t\t\t\t\t\t// 即使失败也继续清除本地状态\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t// 清除本地存储的用户信息\r\n\t\t\t\t\tuni.removeStorageSync('userInfo')\r\n\t\t\t\t\tuni.removeStorageSync('user_id')\r\n\t\t\t\t\tuni.removeStorageSync('access_token')\r\n\t\t\t\t\t\r\n\t\t\t\t\tuni.hideLoading()\r\n\t\t\t\t\t\r\n\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\ttitle: '已退出登录',\r\n\t\t\t\t\t\ticon: 'success'\r\n\t\t\t\t\t})\r\n\t\t\t\t\t\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tuni.reLaunch({\r\n\t\t\t\t\t\t\turl: '/pages/user/login'\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}, 1000)\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tuni.hideLoading()\r\n\t\t\t\t\tconsole.error('Logout Exception:', e)\r\n\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\ttitle: '退出异常',\r\n\t\t\t\t\t\ticon: 'none'\r\n\t\t\t\t\t})\r\n\t\t\t\t\t// 强制退出\r\n\t\t\t\t\tuni.removeStorageSync('userInfo')\r\n\t\t\t\t\tuni.reLaunch({\r\n\t\t\t\t\t\turl: '/pages/user/login'\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t})\r\n}\r\n// 注销账号\r\nconst deleteAccount = () => {\r\n\tuni.showModal({\r\n\t\ttitle: '注销账号',\r\n\t\tcontent: '确定要注销账号吗?此操作不可恢复,所有数据将被删除!',\r\n\t\tconfirmText: '注销',\r\n\t\tconfirmColor: '#ff4757',\r\n\t\tsuccess: async (res) => {\r\n\t\t\tif (res.confirm) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tuni.showLoading({\r\n\t\t\t\t\t\ttitle: '注销中...'\r\n\t\t\t\t\t})\r\n \r\n let userId = userInfo.value.getString('id')\r\n if (userId == null) {\r\n const storageId = uni.getStorageSync('user_id')\r\n userId = (storageId != null) ? storageId as string : null\r\n }\r\n \r\n if (userId != null) {\r\n try {\r\n // 标记用户状态为注销 (status=3)\r\n await supa\r\n .from('ml_user_profiles')\r\n .update({ status: 3 })\r\n .eq('user_id', userId)\r\n } catch(e) {\r\n console.error('Update status failed', e)\r\n }\r\n \r\n // 登出\r\n await supa.auth.signOut()\r\n }\r\n\t\t\t\t\t\r\n\t\t\t\t\t// 清除本地存储\r\n\t\t\t\t\tuni.removeStorageSync('userInfo')\r\n\t\t\t\t\tuni.removeStorageSync('user_id')\r\n\t\t\t\t\tuni.removeStorageSync('access_token')\r\n\t\t\t\t\t\r\n\t\t\t\t\t// 提示并跳转\r\n\t\t\t\t\tuni.hideLoading()\r\n\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\ttitle: '账号已注销',\r\n\t\t\t\t\t\ticon: 'success',\r\n\t\t\t\t\t\tduration: 2000\r\n\t\t\t\t\t})\r\n\t\t\t\t\t\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tuni.reLaunch({\r\n\t\t\t\t\t\t\turl: '/pages/user/login'\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}, 1500)\r\n\t\t\t\t\t\r\n\t\t\t\t} catch (err) {\r\n\t\t\t\t\tuni.hideLoading()\r\n\t\t\t\t\tconsole.error('注销账号失败:', err)\r\n\t\t\t\t\tuni.showToast({\r\n\t\t\t\t\t\ttitle: '注销失败',\r\n\t\t\t\t\t\ticon: 'none'\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t})\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n/* 响应式布局优化 */\r\n.section-list {\r\n\tdisplay: flex;\r\n\tflex-direction: row;\r\n\tflex-wrap: wrap;\r\n\tjustify-content: flex-start;\r\n}\r\n\r\n.list-item {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tpadding: 15px;\r\n\tborder-bottom: 1px solid #f5f5f5;\r\n\tbackground-color: #ffffff;\r\n\t\r\n\t/* 手机端每行显示4个,自适应排到下一行 */\r\n\twidth: 25%;\r\n\tflex-direction: column; /* 内容改为垂直排列,图标在上文字在下 */\r\n\tjustify-content: center;\r\n\ttext-align: center;\r\n\tbox-sizing: border-box;\r\n\tborder-right: 1px solid #f5f5f5; /* 添加右边框分隔 */\r\n}\r\n\r\n.item-icon {\r\n\tfont-size: 24px;\r\n\tmargin-right: 0; /* 移除右侧间距 */\r\n\tmargin-bottom: 5px; /* 添加底部间距 */\r\n}\r\n\r\n.item-text {\r\n\tfont-size: 12px;\r\n\tcolor: #333333;\r\n\t/* 文字太长可能需要处理,这里暂时不做截断 */\r\n}\r\n\r\n.item-arrow {\r\n\tdisplay: none; /* 网格模式下通常不需要箭头 */\r\n}\r\n\r\n.item-right {\r\n\tdisplay: none; /* 简化显示,隐藏右侧状态/箭头等复杂内容 */\r\n}\r\n\r\n/* 针对 switch 组件的特殊处理,如果需要显示开关,可能需要调整布局 */\r\n.settings-switch {\r\n\ttransform: scale(0.7);\r\n\tmargin-top: 5px;\r\n}\r\n\r\n/* 屏幕宽度大于 480px (大屏手机/平板/PC) 时,启用更宽的网格布局或列表布局 */\r\n@media screen and (min-width: 480px) {\r\n\t.list-item {\r\n\t\twidth: 47%; /* width: calc(50% - 10px); REPLACED */\r\n\t\tmargin: 5px;\r\n\t\tborder: 1px solid #f0f0f0;\r\n\t\tborder-radius: 8px;\r\n\t\tborder-bottom: 1px solid #f0f0f0; \r\n\t\tflex-direction: row; /* 恢复水平排列 */\r\n\t\ttext-align: left;\r\n\t\tjustify-content: flex-start;\r\n\t}\r\n\t\r\n\t.item-icon {\r\n\t\tmargin-right: 15px;\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n\t\r\n\t.item-text {\r\n\t\tfont-size: 14px;\r\n\t}\r\n\t\r\n\t.item-arrow, .item-right {\r\n\t\tdisplay: flex; /* 恢复显示 */\r\n\t\tmargin-left: auto; /* 推到右侧 */\r\n\t}\r\n}\r\n\r\n/* 增加针对手机横屏的媒体查询 */\r\n@media screen and (orientation: landscape) and (max-height: 500px) {\r\n .list-item {\r\n\t\twidth: 22%; /* width: calc(25% - 10px); REPLACED */\r\n\t\tmargin: 5px;\r\n\t\tborder: 1px solid #f0f0f0;\r\n\t\tborder-radius: 8px;\r\n flex-direction: column;\r\n\t}\r\n}\r\n\r\n/* 屏幕宽度大于 1024px (大屏PC) 时 */\r\n@media screen and (min-width: 1024px) {\r\n\t.settings-page {\r\n\t\tflex-direction: row; /* 整体左右布局 */\r\n\t}\r\n\r\n\t.settings-header {\r\n\t\tdisplay: none;\r\n\t}\r\n\t\r\n\t.settings-content {\r\n\t\twidth: 100%;\r\n\t\tmax-width: 1200px;\r\n\t\tmargin: 0 auto;\r\n\t\tpadding: 20px;\r\n\t}\r\n\t\r\n\t.list-item {\r\n\t\twidth: 31%; /* width: calc(33.33% - 10px); REPLACED */\r\n\t\tflex-direction: row; /* PC端保持水平排列 */\r\n justify-content: flex-start;\r\n text-align: left;\r\n\t}\r\n \r\n .item-icon {\r\n\t\tmargin-right: 15px;\r\n\t\tmargin-bottom: 0;\r\n\t}\r\n \r\n .item-arrow, .item-right {\r\n\t\tdisplay: flex;\r\n margin-left: auto;\r\n\t}\r\n}\r\n\r\n.settings-page {\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\theight: 100%;\r\n\tbackground-color: #f5f5f5;\r\n}\r\n\r\n.settings-header {\r\n\tbackground-color: #ffffff;\r\n\tpadding: 15px;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tborder-bottom: 1px solid #e5e5e5;\r\n}\r\n\r\n.back-btn {\r\n\tfont-size: 24px;\r\n\tcolor: #333333;\r\n\tpadding: 5px;\r\n\tmargin-right: 15px;\r\n}\r\n\r\n.header-title {\r\n\tfont-size: 18px;\r\n\tfont-weight: bold;\r\n\tcolor: #333333;\r\n}\r\n\r\n.settings-content {\r\n\tflex: 1;\r\n}\r\n\r\n.settings-section {\r\n\tbackground-color: #ffffff;\r\n\tmargin-bottom: 10px;\r\n\tpadding: 15px;\r\n}\r\n\r\n.section-title {\r\n\tfont-size: 16px;\r\n\tfont-weight: bold;\r\n\tcolor: #333333;\r\n\tmargin-bottom: 15px;\r\n}\r\n\r\n/* 删除多余的 .section-list 定义 */\r\n/* 删除多余的 .list-item 定义 */\r\n/* 删除多余的 .list-item:last-child 定义 */\r\n\r\n.item-icon {\r\n\tfont-size: 20px;\r\n\tmargin-right: 15px;\r\n}\r\n\r\n.item-text {\r\n\tflex: 1;\r\n\tfont-size: 14px;\r\n\tcolor: #333333;\r\n}\r\n\r\n.item-arrow {\r\n\tcolor: #999999;\r\n\tfont-size: 16px;\r\n\tmargin-left: 10px;\r\n}\r\n\r\n.item-right {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n}\r\n\r\n.item-status {\r\n\tfont-size: 12px;\r\n\tcolor: #999999;\r\n\tmargin-right: 10px;\r\n}\r\n\r\n.item-status.bound {\r\n\tcolor: #4caf50;\r\n}\r\n\r\n.item-cache {\r\n\tfont-size: 12px;\r\n\tcolor: #999999;\r\n\tmargin-right: 10px;\r\n}\r\n\r\n.logout-section {\r\n\tbackground-color: #ffffff;\r\n\tmargin-top: 10px;\r\n\tpadding: 15px;\r\n}\r\n\r\n.logout-btn {\r\n\tbackground-color: #ffffff;\r\n\tcolor: #ff4757;\r\n\theight: 45px;\r\n\tborder: 1px solid #ff4757;\r\n\tborder-radius: 22.5px;\r\n\tfont-size: 16px;\r\n\tfont-weight: bold;\r\n}\r\n\r\n.delete-account-section {\r\n\tbackground-color: #ffffff;\r\n\tpadding: 20px 15px;\r\n\ttext-align: center;\r\n}\r\n\r\n.delete-account {\r\n\tcolor: #999999;\r\n\tfont-size: 14px;\r\n}/* text-decoration: underline; REMOVED */\r\n</style>\r\n",null,null,null,null,null,null],"names":[],"mappings":"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"} |