From c9928dd4f6d25e2339ea1400f59ec58674a927a7 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 19 六月 2025 20:07:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 pages/mine/activity/reportActivity.vue |  202 ++++++++++++++++++++++++--------------------------
 1 files changed, 96 insertions(+), 106 deletions(-)

diff --git a/pages/mine/activity/reportActivity.vue b/pages/mine/activity/reportActivity.vue
index 26f3407..8fed83e 100644
--- a/pages/mine/activity/reportActivity.vue
+++ b/pages/mine/activity/reportActivity.vue
@@ -1,24 +1,24 @@
 <template>
 	<view class="wrapper">
+		
+		
+		<view style="height: 100rpx"></view>
 		<!-- 鍐呭鍖哄煙 -->
-		<scroll-view scroll-y class="content" style="height: 100vh;"   @scrolltolower="loadMore"
-			 :lower-threshold="100"
-			>
+		<scroll-view scroll-y class="content" style="height: 40vh;" @scrolltolower="loadMore" :lower-threshold="100">
 			<view class="waterfall">
 				<view class="column" v-for="(column, index) in columns" :key="index">
 					<!-- 閬嶅巻姣忓垪鍐呭 -->
 					<view class="item" v-for="(item, idx) in column" :key="item.id" @click="handleItemClick(item)">
 						<!-- 鍥剧墖绫诲瀷 -->
-						<image v-if="item.type === '鍥剧墖'" :src="getUrl(item.cover)" mode="widthFix" class="media"
-							@load="imageLoad" :data-item="item" :style="{ height: item.height + 'px' }" />
+						<image v-if="item.type === 'image'" :src="item.url" mode="widthFix" class="media" @load="imageLoad"  :data-item="item"
+							:style="{ height: item.height + 'px' }" />
 
 						<!-- 瑙嗛绫诲瀷 -->
-						<video v-if="item.type === '瑙嗛'" :src="getUrl(item.cover)" class="media" controls
-							:poster="item.poster" @play="handleVideoPlay"
-							:style="{ height: item.height + 'px' }"></video>
+						<video v-if="item.type === 'video'" :src="item.url" class="media" controls :poster="item.poster"  :data-item="item"
+							@play="handleVideoPlay" :style="{ height: item.height + 'px' }"></video>
 
 						<!-- 鏂囧瓧绫诲瀷 -->
-						<view v-if="item.type === '鏂囧瓧'" class="text-content">
+						<view v-if="item.type === 'text'" class="text-content">
 							<text class="title">{{ item.cover }}</text>
 						</view>
 						<text class="title">{{ item.title }}</text>
@@ -26,26 +26,23 @@
 					</view>
 				</view>
 			</view>
-		<!-- 	<view style="height: 150rpx;"></view> -->
-			 <!-- 鏀硅繘鐨勫姞杞芥洿澶氭彁绀� -->
-			      <view class="load-more">
-			        <u-loadmore 
-			          v-if="mockData.length > 0"
-			          :status="loading ? 'loading' : noMore ? 'nomore' : 'loadmore'"
-			          :load-text="{
+			<!-- 	<view style="height: 150rpx;"></view> -->
+			<!-- 鏀硅繘鐨勫姞杞芥洿澶氭彁绀� -->
+			<view class="load-more">
+				<u-loadmore v-if="mockData.length > 0" :status="loading ? 'loading' : noMore ? 'nomore' : 'loadmore'"
+					:load-text="{
 			            loadmore: '涓婃媺鍔犺浇鏇村',
 			            loading: '姝e湪鍔犺浇',
 			            nomore: '娌℃湁鏇村浜�'
-			          }"
-			        />
-			      </view>
-				  <view style="height:150rpx">
-					  
-				  </view>
+			          }" />
+			</view>
+			<view style="height:150rpx">
+
+			</view>
 		</scroll-view>
 
-		
-	
+
+
 	</view>
 </template>
 
@@ -56,18 +53,11 @@
 	import {
 		getFilePreviewUrl
 	} from '@/api/common.js'
-	import UButton from '@/uview-components/uview-ui/components/u-button/u-button.vue';
-	import UImage from '@/uview-components/uview-ui/components/u-image/u-image.vue';
-	import ULoadmore from '@/uview-components/uview-ui/components/u-loadmore/u-loadmore.vue'
+	import '@/components/uview-components/uview-ui';
 	import {
 		getActivityReportList,
 	} from '@/api/activity.js';
 	export default {
-		components: {
-			UImage,
-			UButton,
-			ULoadmore
-		},
 		data() {
 			return {
 				columns: [
@@ -81,7 +71,7 @@
 				baseTextHeight: 120, // 鏂囧瓧鍩虹楂樺害
 				query: {
 					pageNumber: 1,
-					pageSize: 8,
+					pageSize: 10,
 				},
 				loading: false, // 鏄惁姝e湪鍔犺浇
 				noMore: false, // 鏄惁娌℃湁鏇村鏁版嵁
@@ -92,12 +82,6 @@
 			this.getActivityList();
 		},
 		methods: {
-			getUrl(params) {
-				getFilePreviewUrl(params).then(res => {
-					return res.data.data
-				})
-			},
-
 			/**
 			 * 涓嬫媺鍒锋柊鏃�
 			 */
@@ -108,62 +92,63 @@
 				this.getActivityList();
 			},
 			loadMore() {
-			  
-			  // 鏄剧ず鍔犺浇鐘舵��
-			  this.loading = true;
-			  
-			  // 寤惰繜鎵ц璁︰I鏈夊弽搴旀椂闂�
-			  setTimeout(() => {
-			    this.query.pageNumber += 1;
-			    this.getActivityList();
-			  }, 300);
+
+				// 鏄剧ず鍔犺浇鐘舵��
+				this.loading = true;
+
+				// 寤惰繜鎵ц璁︰I鏈夊弽搴旀椂闂�
+				setTimeout(() => {
+					this.query.pageNumber += 1;
+					this.getActivityList();
+				}, 300);
 			},
 			async getActivityList() {
-			  
-			  try {
-			    
-			    const res = await getActivityReportList(this.query);
-			    this.loading = false;
-			    if (res.statusCode === 200) {
-			      const newData = res.data.data.map(value => ({
-			        id: value.id,
-			        type: value.coverType,
-			        cover: value.cover,
-			        height: value.coverType === '鍥剧墖' ? this.baseImageHeight : 
-			               value.coverType === '瑙嗛' ? this.baseVideoHeight : this.baseTextHeight,
-			        title: value.activityName,
-			        content: value.activityContent,
-			        poster: '',
-			      }));
-			      
-			      // 鏇存柊鎬绘暟鎹噺
-			      this.total = res.data.total || 0;
-			      
-			      // 杩藉姞鎴栨浛鎹㈡暟鎹�
-			      this.mockData = this.query.pageNumber === 1 
-			        ? newData
-			        : [...this.mockData, ...newData];
-			      
-			      // 鍒ゆ柇鏄惁杩樻湁鏇村鏁版嵁
-			      this.noMore = newData.length < this.query.pageSize || 
-			                   this.mockData.length >= this.total;
-			      
-			      // 甯冨眬鏇存柊
-			      this.$nextTick(() => {
-			        this.layoutItems();
-			      });
-			    }
-			  } catch (error) {
-			    console.error('鍔犺浇澶辫触:', error);
-			    // 澶辫触鏃跺洖閫�椤电爜
-			    if (this.query.pageNumber > 1) {
-			      this.query.pageNumber -= 1;
-			    }
-			  } finally {
-			    this.loading = false;
-			    uni.hideLoading();
-			    uni.stopPullDownRefresh();
-			  }
+
+				try {
+
+					const res = await getActivityReportList(this.query);
+					this.loading = false;
+					if (res.statusCode === 200) {
+						const newData = res.data.data.map(value => ({
+							id: value.id,
+							type: value.coverType,
+							cover: value.cover,
+							height: value.coverType === 'image' ? this.baseImageHeight : value.coverType ===
+								'video' ? this.baseVideoHeight : this.baseTextHeight,
+							title: value.activityName,
+							content: value.activityContent,
+							poster: '',
+							url: value.url
+						}));
+
+						// 鏇存柊鎬绘暟鎹噺
+						this.total = res.data.total || 0;
+
+						// 杩藉姞鎴栨浛鎹㈡暟鎹�
+						this.mockData = this.query.pageNumber === 1 ?
+							newData :
+							[...this.mockData, ...newData];
+
+						// 鍒ゆ柇鏄惁杩樻湁鏇村鏁版嵁
+						this.noMore = newData.length < this.query.pageSize ||
+							this.mockData.length >= this.total;
+
+						// 甯冨眬鏇存柊
+						this.$nextTick(() => {
+							this.layoutItems();
+						});
+					}
+				} catch (error) {
+					console.error('鍔犺浇澶辫触:', error);
+					// 澶辫触鏃跺洖閫�椤电爜
+					if (this.query.pageNumber > 1) {
+						this.query.pageNumber -= 1;
+					}
+				} finally {
+					this.loading = false;
+					uni.hideLoading();
+					uni.stopPullDownRefresh();
+				}
 			},
 			// 鍥剧墖鍔犺浇瀹屾垚鍥炶皟
 			layoutItems() {
@@ -188,6 +173,10 @@
 				const ratio = height / width;
 				const item = e.currentTarget.dataset.item;
 
+				 if (!item) {
+						console.error('鏃犳硶鑾峰彇鍥剧墖椤规暟鎹�', e);
+						return;
+					}
 				// 閲嶆柊璁$畻瀹為檯鏄剧ず楂樺害
 				const viewWidth = uni.upx2px(345); // 灏唕px杞崲涓簆x
 				const viewHeight = viewWidth * ratio;
@@ -219,13 +208,14 @@
 
 <style lang="scss">
 	/* 鏂板鍔犺浇鏇村鏍峰紡 */
-		.load-more {
-			padding: 20rpx 0;
-			text-align: center;
-			color: #999;
-			font-size: 26rpx;
-			background-color: #f7f8fa;
-		}
+	.load-more {
+		padding: 20rpx 0;
+		text-align: center;
+		color: #999;
+		font-size: 26rpx;
+		background-color: #f7f8fa;
+	}
+
 	.btn-container {
 		display: flex;
 		justify-content: center;
@@ -249,12 +239,12 @@
 
 	/* 鍐呭鍖哄煙浼樺寲 */
 	.content {
-	  flex: 1;
-	  overflow: hidden;
-	  padding: 0 20rpx;
-	  box-sizing: border-box;
-	  /* 纭繚鍙互婊氬姩 */
-	  -webkit-overflow-scrolling: touch;
+		flex: 1;
+		overflow: hidden;
+		padding: 0 20rpx;
+		box-sizing: border-box;
+		/* 纭繚鍙互婊氬姩 */
+		-webkit-overflow-scrolling: touch;
 	}
 
 	/* 鐎戝竷娴佸竷灞�浼樺寲 */

--
Gitblit v1.8.0