From a3e2d496e80dd4f5331978b1ad4805a1714c8df4 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期五, 04 七月 2025 10:20:14 +0800
Subject: [PATCH] 我的关注页面

---
 pages/mine/myAttention.vue |  132 ++++++++++++++++++++++++++++++++++++++++++++
 pages/tabbar/user/my.vue   |    2 
 pages.json                 |    8 ++
 api/user.js                |   13 ++++
 4 files changed, 154 insertions(+), 1 deletions(-)

diff --git a/api/user.js b/api/user.js
index 133f094..4aece02 100644
--- a/api/user.js
+++ b/api/user.js
@@ -77,3 +77,16 @@
   });
 }
 
+/**
+ * 鎴戠殑鍏虫敞鍒嗛〉
+ * 
+ * @param params
+ */
+ export function mySubscribePage(params) {
+  return http.request({
+    url: "/lmk/my-subscribe/page",
+    method: Method.GET,
+    needToken: true,
+	params: params
+  });
+}
\ No newline at end of file
diff --git a/pages.json b/pages.json
index a071262..fb8f8b7 100644
--- a/pages.json
+++ b/pages.json
@@ -827,6 +827,14 @@
 							"u-loadmore": "view"
 						}
 					}
+				},
+				{
+					"path" : "myAttention",
+					"style" : 
+					{
+						"navigationBarTitleText" : "鍏虫敞鍒楄〃",
+						"enablePullDownRefresh": true
+					}
 				}
 			]
 		},
diff --git a/pages/mine/myAttention.vue b/pages/mine/myAttention.vue
new file mode 100644
index 0000000..fdf1518
--- /dev/null
+++ b/pages/mine/myAttention.vue
@@ -0,0 +1,132 @@
+<template>
+  <view class="container">
+
+    <view class="user-list">
+      <view class="user-item" v-for="(user, index) in followList" :key="user.id">
+        <image class="avatar" :src="user.subscribeUserAvatar" @click="jumpToHome(user.subscribeUserId)" mode="aspectFill"></image>
+        <text class="nickname">{{user.subscribeUserNickname}}</text>
+        <button class="unfollow-btn" @click="handleUnfollow(user.subscribeUserId)">鍙栨秷鍏虫敞</button>
+      </view>
+      
+      <view v-if="followList.length === 0" class="empty-tip">
+        <text>鎮ㄨ繕娌℃湁鍏虫敞浠讳綍鐢ㄦ埛</text>
+      </view>
+    </view>
+  </view>
+</template>
+
+<script>
+	import {mySubscribePage} from "@/api/user.js"
+	import {unSubscribe} from "@/api/video.js"
+export default {
+  data() {
+    return {
+      followList: [],
+	  query: {
+		  pageNumber: 1,
+		  pageSize: 10
+	  }
+    }
+  },
+  onPullDownRefresh() {
+  	this.query.pageNumber = 1
+	this.getFollowList()
+  },
+  onLoad() {
+    // 椤甸潰鍔犺浇鏃惰幏鍙栧叧娉ㄥ垪琛�
+    this.getFollowList();
+  },
+  methods: {
+    // 鑾峰彇鍏虫敞鍒楄〃
+    getFollowList() {
+      mySubscribePage(this.query).then(res => {
+		  this.followList = res.data.data
+	  })
+    },
+    // 鍙栨秷鍏虫敞
+    handleUnfollow(userId) {
+      unSubscribe(userId).then(res => {
+		  this.getFollowList()
+	  })
+    },
+	// 璺宠浆TA鐨勪富椤�
+	jumpToHome(authorId) {
+		uni.navigateTo({
+			url: `/pages/video/home-page?authorId=${authorId}`
+		})
+	}
+  }
+}
+</script>
+
+<style lang="scss">
+.container {
+  padding: 20rpx;
+  background-color: #f7f7f7;
+  min-height: 100vh;
+}
+
+.header {
+  padding: 30rpx 0;
+  text-align: center;
+  
+  .title {
+    font-size: 36rpx;
+    font-weight: bold;
+    color: #333;
+  }
+}
+
+.user-list {
+  background-color: #fff;
+  border-radius: 12rpx;
+  overflow: hidden;
+  box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05);
+  
+  .user-item {
+    display: flex;
+    align-items: center;
+    padding: 20rpx 30rpx;
+    border-bottom: 1rpx solid #f0f0f0;
+    
+    &:last-child {
+      border-bottom: none;
+    }
+  }
+  
+  .avatar {
+    width: 80rpx;
+    height: 80rpx;
+    border-radius: 50%;
+    margin-right: 20rpx;
+  }
+  
+  .nickname {
+    flex: 1;
+    font-size: 32rpx;
+    color: #333;
+  }
+  
+  .unfollow-btn {
+    margin: 0;
+    padding: 0 20rpx;
+    height: 60rpx;
+    line-height: 60rpx;
+    font-size: 26rpx;
+    color: #666;
+    background-color: #f5f5f5;
+    border-radius: 30rpx;
+    
+    &::after {
+      border: none;
+    }
+  }
+  
+  .empty-tip {
+    padding: 40rpx 0;
+    text-align: center;
+    font-size: 28rpx;
+    color: #999;
+  }
+}
+</style>
\ No newline at end of file
diff --git a/pages/tabbar/user/my.vue b/pages/tabbar/user/my.vue
index 7d94e60..2bbfdd4 100644
--- a/pages/tabbar/user/my.vue
+++ b/pages/tabbar/user/my.vue
@@ -78,7 +78,7 @@
 	      </view>
 	      <view>瑙嗛涓婚〉</view>
 	    </view>
-	    <view class="order-item" @click="navigateTo('/pages/mine/myCollect')">
+	    <view class="order-item" @click="navigateTo('/pages/mine/myAttention')">
 	      <view>
 	        <text class="iconfont">&#xe66f;</text>
 	      </view>

--
Gitblit v1.8.0