From 04102f7237efefa744090ed7c25f7b5d0807b679 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Thu, 05 Feb 2026 18:11:57 +0800
Subject: [PATCH] 完成运营中心提现和运营中心权限管理

---
 mobile/pages/branch/activity/detail/detail.vue |  177 ++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 139 insertions(+), 38 deletions(-)

diff --git a/mobile/pages/branch/activity/detail/detail.vue b/mobile/pages/branch/activity/detail/detail.vue
index ba3cf90..65af4e1 100644
--- a/mobile/pages/branch/activity/detail/detail.vue
+++ b/mobile/pages/branch/activity/detail/detail.vue
@@ -40,9 +40,23 @@
 								</view>
 							</view>
 						</view>
-						<view class="activity-item" v-if="activityData.is_visit == 1">
-							<view class="gray6 f24">活动地点</view>
-							<view class="info">{{activityData.address}}</view>
+						<view class="activity-item d-b-c" v-if="activityData.address">
+							<view class="flex-1">
+								<view class="gray6 f24">活动地点</view>
+								<view class="info">{{activityData.address}}</view>
+							</view>
+							<view>
+								<view class="d-s-c contact ml20">
+									<view class="d-c-c d-c" @click="openLocation()">
+										<text class="iconfont icon-dizhi"></text>
+										<text class="text">导航</text>
+									</view>
+									<view class="d-c-c d-c ml20" @click="callPhone()">
+										<text class="iconfont icon-002dianhua"></text>
+										<text class="text">电话</text>
+									</view>
+								</view>
+							</view>
 						</view>
 						<view class="activity-item" v-if="activityData.is_visit == 1">
 							<view class="gray6 f24">走访企业</view>
@@ -57,17 +71,25 @@
 							<view class="gray6 f24">活动发起分会</view>
 							<view class="info">{{activityData.branch.name}}</view>
 						</view>
-						<view class="activity-item d-b-c">
+						<view class="activity-item">
 							<view>
-								<view class="gray6 f24">已报名人数</view>
-								<view class="info">{{activityData.total}}</view>
+								<view class="gray6 f24">已报名人员({{activityData.total}}人)</view>
+								<view class="info"></view>
 							</view>
-							<view class="avatar-list d-s-c">
-								<image :src="item.avatarUrl" mode="aspectFill" v-for="(item, index) in userList"
-									:key="index"></image>
-								<view class="more" v-if="activityData.total > 8"></view>
+							<view class="avatar-list d-s-c pt10">
+								<view class="d-c-c d-c avatar-item" v-for="(item, index) in userList" :key="index">
+									<image :src="item.avatarUrl" mode="aspectFill"></image>
+									<text class="text-ellipsis">{{item.real_name}}</text>
+								</view>
+								<view class="more d-c-c d-c" v-if="activityData.total > 5" @click="openUser">
+									<view class="d-c-c more-icon">
+										<text class="iconfont icon-gengduo"></text>
+									</view>
+									<text>更多</text>
+								</view>
 							</view>
 						</view>
+						
 						<!-- 活动结束图标 -->
 						<view class="status-image" v-if="activityData.status_text.status==2">
 							<image :src="remoteImg('finish')"></image>
@@ -106,29 +128,33 @@
 					<button class='modifyBnt' @click="showShare" v-else>分享给好友</button>
 				</view>
 				<block v-else>
-					<view class="d-c-c two-col-btn">
-						<!-- 如果已经报名 -->
-						<block v-if="activityData.is_reg">
-							<button class='modifyBnt disabled' @click="scanCode">您已报名</button>
-							<button class='modifyBnt' @click="onReg(true)" v-if="canReg==1">帮朋友报名</button>
+					<!-- 如果已经报名 -->
+					<view class="d-c-c two-col-btn" v-if="activityData.is_reg">
+						<button class='modifyBnt disabled' v-if="activityData.is_verify">您已签到</button>
+						<button class='modifyBnt disabled' v-else @click="scanCode">您已报名</button>
+						<button class='modifyBnt' @click="onReg(true)" v-if="canReg==1">帮朋友报名</button>
+						<block v-else>
+							<button class='modifyBnt' @click="showShare" v-if="activityData.is_verify">分享给好友</button>
 							<button class='modifyBnt' @click="scanCode" v-else>扫码签到</button>
 						</block>
-						<!-- 如果还没有报名 -->
-						<block v-else>
-							<view class="d-c-c two-col-btn" v-if="canReg==1">
-								<button class='modifyBnt' @click="onReg(false)">我要报名</button>
-								<button class='modifyBnt' @click="onReg(true)">帮朋友报名</button>
-							</view>
-							<button v-else-if="canReg==0" class='modifyBnt disabled'>报名未开始</button>
+					</view>
+					<!-- 如果还没有报名 -->
+					<block v-else>
+						<view class="d-c-c two-col-btn" v-if="canReg==1">
+							<button class='modifyBnt' @click="onReg(false)">我要报名</button>
+							<button class='modifyBnt' @click="onReg(true)">帮朋友报名</button>
+						</view>
+						<view class="d-c-c" v-else>
+							<button v-if="canReg==0" class='modifyBnt disabled'>报名未开始</button>
 							<button v-else-if="canReg==3" class='modifyBnt disabled'>已报满</button>
 							<button v-else class='modifyBnt disabled'>报名已结束</button>
-						</block>
-					</view>
+						</view>
+					</block>
 				</block>
 			</view>
 		</view>
 		<!-- 活动购物图标(仅在活动进行时显示) -->
-		<view class="shopping-box" @click="gotoPage('pages/branch/activity/product/index?activity_id='+activity_id)" v-if="activityData.is_visit && activityData.status_text.status == 1">
+		<view class="shopping-box" @click="gotoPage('pages/branch/activity/product/index?activity_id='+activity_id)" v-if="activityData.is_visit && activityData.status_text.status == 1 && activityData.is_verify">
 			<image :src="remoteImg('activity_shopping')"></image>
 		</view>
 		<!--报名成功弹窗-->
@@ -188,6 +214,8 @@
 		<AppShare :isAppShare="isAppShare" :appParams="appParams" @close="closeAppShare"></AppShare>
 		<!-- 打开活动相册 -->
 		<Album ref="album" :isOpenAlbum="isOpenAlbum" :activity_id="activity_id" @close="closeAlbumFunc"></Album>
+		<!-- 打开报名用户名单 -->
+		<User ref="user" :isOpenUser="isOpenUser" :activity_id="activity_id" @close="closeUserFunc"></User>
 	</view>
 </template>
 
@@ -201,13 +229,15 @@
 	import Album from './popup/album.vue'; // 相册
 	import uniPopup from '@/components/uni-popup.vue';
 	import utils from '@/common/utils.js';
+	import User from './popup/user.vue'; // 相册
 	export default {
 		components: {
 			RegForm,
 			AppShare,
 			Share,
 			Album,
-			uniPopup
+			uniPopup,
+			User,
 		},
 		data() {
 			return {
@@ -252,6 +282,7 @@
 				is_friend: false, // 是否是帮朋友报名
 				isShowVerify: false, // 核销选择框(针对核销时返回未报名的情况,选择是否有朋友帮报名)
 				verify_mobile: '', // 朋友帮报名填的手机号
+				isOpenUser: false, // 报名用户名单弹窗
 			}
 		},
 		onLoad(e) {
@@ -497,10 +528,12 @@
 
 			onReg(e) {
 				this.$refs.regForm.activityData = this.activityData;
+				/* this.$refs.regForm.branch_name = this.activityData.branch.name;
+				this.$refs.regForm.formData.branch_id = this.activityData.branch_id; */
 				this.is_friend = e;
-				if (this.activityData.fee > 0 || e) {
+				//if (this.activityData.fee > 0 || e || !this.activityData.is_member) {
 					this.isOpenReg = true;
-				} else {
+				/* } else {
 					uni.showModal({
 						title: '提示',
 						content: '确定要报名吗?',
@@ -510,7 +543,7 @@
 							}
 						}
 					});
-				}
+				} */
 			},
 
 			closeRegFunc(e) {
@@ -738,7 +771,56 @@
 				});
 				//#endif
 			},
+			
+			callPhone(){
+				uni.makePhoneCall({
+					phoneNumber: this.activityData.phone + ''
+				});
+			},
+			
+			/*导航*/
+			openLocation() {
+				let self = this;
+				uni.openLocation({
+					latitude: Number(this.activityData.latitude),
+					longitude: Number(this.activityData.longitude),
+					address: this.activityData.address
+				});
+			},
+			
+			// 打开报名名单
+			openUser() {
+				this.isOpenUser = true;
+			},
+			
+			closeUserFunc(e) {
+				this.isOpenUser = false;
+			},
 
+		},
+		onShareAppMessage() {
+			if (this.activityData) {
+				return {
+					title: `${this.activityData.name}`,
+					path: `/pages/plus/business/detail?activity_id=${this.activity_id}`
+				};
+			}
+			return {
+				title: '活动详情',
+				path: `/pages/plus/business/detail?activity_id=${this.activity_id}`
+			};
+		},
+		onShareTimeline() {
+			if (this.activityData) {
+				return {
+					title: `${this.activityData.name}`,
+					path: `/pages/plus/business/detail?activity_id=${this.activity_id}`
+				};
+			}
+			return {
+				title: '活动详情',
+				path: `/pages/plus/business/detail?activity_id=${this.activity_id}`
+			};
 		}
 	}
 </script>
@@ -812,26 +894,45 @@
 		}
 
 		.iconfont {
-			margin-right: 17rpx;
+			// margin-right: 17rpx;
 			font-size: 34rpx;
 		}
 
 		.activity-item {
 			.avatar-list {
+				.avatar-item {
+					width: 90rpx;
+					padding-right: 10rpx;
+				}
 				image {
 					width: 70rpx;
 					height: 70rpx;
 					border-radius: 70rpx;
-					border: 2rpx solid #ffffff;
-					margin-left: -20rpx;
 				}
 
 				.more {
-					position: relative;
-					width: 140rpx;
-					height: 70rpx;
-					margin-left: -140rpx;
-					background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, .9));
+					padding-left: 10rpx;
+					
+					.more-icon {
+						width: 70rpx;
+						height: 70rpx;
+						border-radius: 70rpx;
+						background: #f1f1f1;
+					}
+				}
+			}
+			
+			.contact {
+				.iconfont {
+					font-size: 30rpx;
+					// font-weight: bold;
+					color: #333333;
+					margin-right: 0;
+				}
+				
+				.text {
+					font-size: 24rpx;
+					color: #333333;
 				}
 			}
 		}
@@ -1167,7 +1268,7 @@
 			width: 180rpx;
 			height: 180rpx;
 			position: fixed;
-			bottom: 120rpx;
+			bottom: 130rpx;
 			right: 20rpx;
 			animation: pulse 0.8s infinite; /* 动画名称,持续时间,无限循环 */
 		}

--
Gitblit v1.9.2