From 68aba1ad0c07f806d09a849c10f20a9901d48083 Mon Sep 17 00:00:00 2001
From: yvan <8574526@qq.com>
Date: Sat, 23 Aug 2025 09:45:00 +0800
Subject: [PATCH 01/13] 1
---
pages.json | 2 +-
uni.scss | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/pages.json b/pages.json
index a0dd145..f2161e2 100644
--- a/pages.json
+++ b/pages.json
@@ -262,7 +262,7 @@
"easycom": {
"autoscan": true,
"custom": {
- "^u-(.*)": "uview-ui-next/components/u-$1/u-$1.vue"
+ "^u-(.*)": "@/uni_modules/uview-next/components/u-$1/u-$1.vue"
}
},
"tabBar": {
diff --git a/uni.scss b/uni.scss
index 98457d1..7d6d6d8 100644
--- a/uni.scss
+++ b/uni.scss
@@ -76,7 +76,6 @@ $uni-color-paragraph: #3F536E; // 文章段落颜色
$uni-font-size-paragraph:15px;
/* uView UI主题变量 */
-@import "uview-ui-next/theme.scss";
@import '@/uni_modules/uview-next/theme.scss';
/* 项目公共样式 */
From 2459662c5a06cf1bae716b6f3be8e944bb86463f Mon Sep 17 00:00:00 2001
From: yvan <8574526@qq.com>
Date: Sat, 23 Aug 2025 10:26:42 +0800
Subject: [PATCH 02/13] 1
---
pages/profile/profile.vue | 724 +++++++++++++++++++++++++++++++++++++-
1 file changed, 712 insertions(+), 12 deletions(-)
diff --git a/pages/profile/profile.vue b/pages/profile/profile.vue
index ce129c8..acafb98 100644
--- a/pages/profile/profile.vue
+++ b/pages/profile/profile.vue
@@ -2,7 +2,7 @@
-
+
+
+
+ 👋
+
- {{ userInfo.nickName || '点击登录' }}
+ {{ userInfo.nickName || '点击头像登录' }}
{{ userInfo.nickName ? '已登录' : '未登录' }}
已使用 {{ loginDays }} 天
-
- {{ userInfo.nickName ? '⚙️' : '👋' }}
+
+ ⚙️
@@ -149,11 +153,68 @@
+
+
+
+
+
+ 头像
+
+
+ 点击选择头像
+
+
+
+ 昵称
+
+
+ {{ nicknameTips }}
+
+
+
+
+
+
From b8ee12f68d34ff6412c6d9b910b9688aa42499a2 Mon Sep 17 00:00:00 2001
From: yvan <8574526@qq.com>
Date: Sat, 23 Aug 2025 18:04:38 +0800
Subject: [PATCH 10/13] 1
---
pages/assistant/assistant.vue | 101 +++++++++++++++++++++++++++++++++-
1 file changed, 98 insertions(+), 3 deletions(-)
diff --git a/pages/assistant/assistant.vue b/pages/assistant/assistant.vue
index 4e03a55..90c4268 100644
--- a/pages/assistant/assistant.vue
+++ b/pages/assistant/assistant.vue
@@ -40,7 +40,9 @@
- {{ message.content }}
+
+
+
@@ -55,7 +57,9 @@
- {{ message.content }}
+
+
+
{{ message.time }}
@@ -120,7 +124,7 @@ export default {
messageList: [
{
type: 'ai',
- content: '您好!我是您的宠物AI助手🐾\n\n我可以为您解答关于宠物饲养、健康、训练、营养等方面的问题。有什么可以帮助您的吗?',
+ content: '您好!我是您的宠物AI助手🐾\n\n我可以为您解答关于宠物饲养、健康、训练、营养等方面的问题。\n\n**我能帮你做什么:**\n- 🍖 **饮食建议**:营养搭配、食物选择\n- 🏥 **健康咨询**:症状分析、预防措施 \n- 🎾 **训练指导**:行为纠正、技能训练\n- 💡 **日常护理**:清洁、美容、环境\n\n有什么想了解的吗?',
time: this.getCurrentTime()
}
],
@@ -572,10 +576,101 @@ export default {
color: #333333;
}
+/* Markdown样式优化 */
+.message-text .u-markdown {
+ font-size: 26rpx;
+ line-height: 1.5;
+}
+
+/* 重置Markdown内部样式 */
+.message-text .u-markdown :deep(p) {
+ margin: 0;
+ padding: 0;
+ font-size: 26rpx;
+ line-height: 1.5;
+ color: #333333;
+}
+
+.message-text .u-markdown :deep(h1),
+.message-text .u-markdown :deep(h2),
+.message-text .u-markdown :deep(h3),
+.message-text .u-markdown :deep(h4),
+.message-text .u-markdown :deep(h5),
+.message-text .u-markdown :deep(h6) {
+ margin: 8rpx 0 4rpx 0;
+ font-weight: 600;
+ color: #FF8A80;
+}
+
+.message-text .u-markdown :deep(ul),
+.message-text .u-markdown :deep(ol) {
+ margin: 8rpx 0;
+ padding-left: 32rpx;
+}
+
+.message-text .u-markdown :deep(li) {
+ margin: 4rpx 0;
+ font-size: 26rpx;
+ line-height: 1.5;
+}
+
+.message-text .u-markdown :deep(code) {
+ background: rgba(255, 138, 128, 0.1);
+ padding: 2rpx 8rpx;
+ border-radius: 6rpx;
+ font-size: 24rpx;
+ color: #FF8A80;
+}
+
+.message-text .u-markdown :deep(pre) {
+ background: rgba(255, 138, 128, 0.05);
+ padding: 16rpx;
+ border-radius: 12rpx;
+ margin: 8rpx 0;
+ overflow-x: auto;
+}
+
+.message-text .u-markdown :deep(blockquote) {
+ border-left: 6rpx solid #FF8A80;
+ padding-left: 16rpx;
+ margin: 8rpx 0;
+ color: #666;
+ font-style: italic;
+}
+
.message-bubble.user .message-text {
color: #ffffff;
}
+/* 用户消息的Markdown样式 */
+.message-bubble.user .message-text .u-markdown :deep(p),
+.message-bubble.user .message-text .u-markdown :deep(li) {
+ color: #ffffff;
+}
+
+.message-bubble.user .message-text .u-markdown :deep(h1),
+.message-bubble.user .message-text .u-markdown :deep(h2),
+.message-bubble.user .message-text .u-markdown :deep(h3),
+.message-bubble.user .message-text .u-markdown :deep(h4),
+.message-bubble.user .message-text .u-markdown :deep(h5),
+.message-bubble.user .message-text .u-markdown :deep(h6) {
+ color: #ffffff;
+}
+
+.message-bubble.user .message-text .u-markdown :deep(code) {
+ background: rgba(255, 255, 255, 0.2);
+ color: #ffffff;
+}
+
+.message-bubble.user .message-text .u-markdown :deep(pre) {
+ background: rgba(255, 255, 255, 0.1);
+}
+
+.message-bubble.user .message-text .u-markdown :deep(blockquote) {
+ border-left-color: #ffffff;
+ color: rgba(255, 255, 255, 0.8);
+}
+
.message-time {
margin-top: 8rpx;
font-size: 20rpx;
From 23123f3f9ac649554c5fa5bb34bb06d3c97c204a Mon Sep 17 00:00:00 2001
From: yvan <8574526@qq.com>
Date: Fri, 5 Sep 2025 17:35:21 +0800
Subject: [PATCH 11/13] 1
---
http/api/PROFILE_OPTIMIZATION_REPORT.md | 249 +++++++++++++++
http/api/auth.js | 397 ++++++++++++++++++++++++
http/api/index.js | 30 ++
pages/OPTIMIZATION_REPORT.md | 163 ++++++++++
pages/auth/phone-auth.vue | 368 ++++++++++++++++++++++
utils/loginState.js | 242 +++++++++++++++
6 files changed, 1449 insertions(+)
create mode 100644 http/api/PROFILE_OPTIMIZATION_REPORT.md
create mode 100644 http/api/auth.js
create mode 100644 http/api/index.js
create mode 100644 pages/OPTIMIZATION_REPORT.md
create mode 100644 pages/auth/phone-auth.vue
create mode 100644 utils/loginState.js
diff --git a/http/api/PROFILE_OPTIMIZATION_REPORT.md b/http/api/PROFILE_OPTIMIZATION_REPORT.md
new file mode 100644
index 0000000..011e20c
--- /dev/null
+++ b/http/api/PROFILE_OPTIMIZATION_REPORT.md
@@ -0,0 +1,249 @@
+# Profile.js 深层次优化报告
+
+## 优化概览
+
+对 `http/api/profile.js` 文件进行了深层次的细致优化,显著提升了代码质量、可维护性和开发体验。
+
+## 1. 方法复用优化 ✅
+
+### 重复模式识别与提取
+**优化前的问题:**
+- 每个API方法都有相似的配置结构
+- 重复的 `custom` 配置合并逻辑
+- 不一致的默认参数处理
+
+**优化后的解决方案:**
+```javascript
+// 提取了5个通用请求执行器
+const executeGetRequest = (url, params, template, config) => { ... }
+const executePostRequest = (url, data, template, loadingText, config) => { ... }
+const executePutRequest = (url, data, template, loadingText, config) => { ... }
+const executeDeleteRequest = (url, data, template, loadingText, config) => { ... }
+
+// 统一的配置生成器
+const createRequestConfig = (template, customConfig, loadingText) => { ... }
+```
+
+### 配置模板化
+创建了4种标准配置模板:
+- `AUTHENTICATED_QUERY`: 需要认证的查询(无loading)
+- `AUTHENTICATED_QUERY_WITH_LOADING`: 需要认证的查询(有loading)
+- `AUTHENTICATED_UPDATE`: 需要认证的更新操作
+- `AUTHENTICATED_DELETE`: 需要认证的删除操作
+
+## 2. 样式和配置复用 ✅
+
+### 统一的配置常量
+```javascript
+const DEFAULT_CONFIG_TEMPLATES = {
+ AUTHENTICATED_QUERY: {
+ auth: true,
+ loading: false,
+ toast: true
+ },
+ // ... 其他模板
+}
+
+const LOADING_TEXTS = {
+ UPDATING_USER_INFO: '正在更新用户信息...',
+ SAVING_PROFILE: '正在保存...',
+ DELETING_ACCOUNT: '正在注销账户...',
+ UPLOADING_AVATAR: '正在上传头像...',
+ LOADING_DATA: '正在加载...'
+}
+```
+
+### 配置复用效果对比
+**优化前:**
+```javascript
+export const updateUserInfo = (userInfo, config = {}) => {
+ return uni.$u.http.put('/user/info', userInfo, {
+ custom: {
+ auth: true,
+ loading: true,
+ loadingText: '正在更新用户信息...',
+ ...config.custom
+ },
+ ...config
+ })
+}
+```
+
+**优化后:**
+```javascript
+export const updateUserInfo = (userInfo, config = {}) => {
+ return executePutRequest('/user/info', userInfo, 'AUTHENTICATED_UPDATE', LOADING_TEXTS.UPDATING_USER_INFO, config)
+}
+```
+
+## 3. 代码结构优化 ✅
+
+### 功能分组重构
+将API方法按功能进行了清晰的分组:
+
+1. **用户信息相关API**
+ - `getUserInfo()` - 获取用户基本信息
+ - `updateUserInfo()` - 更新用户基本信息
+ - `getUserPets()` - 获取用户宠物列表
+
+2. **用户统计相关API**
+ - `getUserStats()` - 获取用户统计数据
+
+3. **账户管理相关API**
+ - `deleteAccount()` - 注销用户账户
+
+4. **用户资料完善相关API**
+ - `completeUserProfile()` - 完善用户资料信息
+
+5. **头像上传相关API**
+ - `uploadAvatar()` - 上传用户头像
+
+6. **用户偏好设置相关API** (新增)
+ - `getUserPreferences()` - 获取用户偏好设置
+ - `updateUserPreferences()` - 更新用户偏好设置
+
+7. **用户活动记录相关API** (新增)
+ - `getUserActivities()` - 获取用户活动记录
+
+### JSDoc注释标准化
+**优化前:**
+```javascript
+/**
+ * 获取用户信息
+ * @param {Object} config 自定义配置
+ * @returns {Promise}
+ */
+```
+
+**优化后:**
+```javascript
+/**
+ * 获取用户基本信息
+ * @description 获取当前登录用户的基本信息,包括昵称、头像、个人资料等
+ * @param {Object} [config={}] 自定义请求配置
+ * @param {Object} [config.custom] 自定义请求选项
+ * @param {boolean} [config.custom.loading] 是否显示loading,默认true
+ * @param {boolean} [config.custom.toast] 是否显示错误提示,默认true
+ * @returns {Promise