wzx 1 năm trước cách đây
mục cha
commit
5c1e2146bc

+ 292 - 148
card/components/my-popup/my-popup.vue

@@ -1,13 +1,15 @@
 <template>
 	<uni-popup ref="popup" :mask-click="false" maskBackgroundColor="rgba(0, 0, 0, 0.6)">
-		<view class="popup">
-			<swiper ref="swiper" class="swiper" :current="swiperCurrent" @change="swiperChange"
-				:indicator-dots="dataList.length > 1" indicator-active-color="rgba(46, 133, 236, 1)" :autoplay="false"
-				:interval="5000">
-				<swiper-item v-for="(item, index) in dataList" :key="index">
-					<!-- 标题 + 图片 + 活动时间 + 活动简介 -->
-					<view v-if="item.type == 1" class="swiper-item-view uni-column">
-						<text class="swiper-item-title" v-html="item.data.title"></text>
+		<swiper ref="swiper" class="swiper" :style="getSwiperStyle()" :current="swiperCurrent"
+			@change="swiperChange" :indicator-dots="dataList.length > 1" indicator-active-color="rgba(46, 133, 236, 1)"
+			:autoplay="false" :interval="5000">
+			<swiper-item v-for="(item, index) in dataList" :key="index">
+
+				<!-- 标题 + 图片 + 活动时间 + 活动简介 -->
+				<view v-if="item.type == 1" class="swiper-item-view uni-column">
+					<text class="swiper-item-title" v-html="item.data.title"></text>
+
+					<view class="swiper-item-main uni-column uni-jcse">
 						<image mode="aspectFit" class="swiper-item-image" :src="item.data.img"></image>
 						<view class="swiper-item-time uni-row">
 							<image mode="aspectFit" class="clock" src="/static/default/clock.png"></image>
@@ -16,102 +18,174 @@
 						<view class="swiper-item-content uni-column">
 							<text class="introduce-content" v-html="item.data.content"></text>
 						</view>
-						<button v-if="index < dataList.length - 1" class="swiper-item-button" @click="swiperNext">继
-							续</button>
-						<button v-else class="swiper-item-button" @click="popupClose">确 定</button>
 					</view>
 
-					<!-- 标题 + 图片 -->
-					<view v-if="item.type == 2" class="swiper-item-view uni-column">
-						<text class="swiper-item-title" v-html="item.data.title"></text>
-						<image mode="aspectFit" style="height: 474rpx; margin-bottom: 50rpx;" :src="item.data.img">
+					<button v-if="index < dataList.length - 1" class="swiper-item-button" @click="swiperNext">继
+						续</button>
+					<button v-else class="swiper-item-button" @click="popupClose">确 定</button>
+				</view>
+
+				<!-- 标题 + 图片 -->
+				<view v-if="item.type == 2" class="swiper-item-view uni-column">
+					<text class="swiper-item-title" v-html="item.data.title"></text>
+
+					<view class="swiper-item-main uni-column">
+						<image mode="aspectFit" style="height: 237px; margin-top: 15px; margin-bottom: 25px;"
+							:src="item.data.img">
 						</image>
-						<button v-if="index < dataList.length - 1" class="swiper-item-button" @click="swiperNext">继
-							续</button>
-						<button v-else class="swiper-item-button" @click="popupClose">确 定</button>
 					</view>
 
-					<!-- 标题 + 图片 + 活动简介 -->
-					<view v-if="item.type == 3" class="swiper-item-view swiper-item-view-bg uni-column">
-						<text class="swiper-item-title" v-html="item.data.title"></text>
-						<image mode="aspectFit" style="height: 280rpx; margin-top: 50rpx;" :src="item.data.img"></image>
+					<button v-if="index < dataList.length - 1" class="swiper-item-button" @click="swiperNext">继
+						续</button>
+					<button v-else class="swiper-item-button" @click="popupClose">确 定</button>
+				</view>
+
+				<!-- 【成就-奖牌】 标题 + 图片 + 活动简介 -->
+				<view v-if="item.type == 3" class="swiper-item-view swiper-item-view-bg uni-column">
+					<text class="swiper-item-title" v-html="item.data.title"></text>
+
+					<view class="swiper-item-main uni-column uni-jcse">
+						<image mode="aspectFit" style="height: 140px; margin-top: 25px;" :src="item.data.img"></image>
 						<text class="swiper-item-content2" v-html="item.data.content"></text>
-						<button v-if="index < dataList.length - 1" class="swiper-item-button" @click="swiperNext">继
-							续</button>
-						<button v-else class="swiper-item-button" @click="popupClose">确 定</button>
 					</view>
 
-					<!-- 标题 + 图片 + 二维码 -->
-					<view v-if="item.type == 4" class="swiper-item-view swiper-item-view-bg2 uni-jct uni-column">
-						<text class="swiper-item-title" v-html="item.data.title"></text>
-						<image mode="aspectFit" style="height: 220rpx; margin-top: 10rpx;" :src="item.data.img"></image>
-						<text class="swiper-item-content3" v-html="item.data.content"></text>
-						<text class="swiper-item-content4">【{{item.data.sourceName}}】</text>
+					<button v-if="index < dataList.length - 1" class="swiper-item-button" @click="swiperNext">继
+						续</button>
+					<button v-else class="swiper-item-button" @click="popupClose">确 定</button>
+				</view>
+
+				<!-- 【成就-兑换】 标题 + 图片 + 二维码 -->
+				<view v-if="item.type == 4" class="swiper-item-view swiper-item-view-bg2 uni-jct uni-column">
+					<view v-if="item.data.sponsorsLogo" class="sponsorsLogo" :style="getSponsorsLogoStyle(item.data.sponsorsLogo)"></view>
+					<text class="swiper-item-title" v-html="item.data.title"></text>
+
+					<view class="swiper-item-main uni-column uni-jcse">
+						<view class="uni-column uni-jcse" style="height: 50px;">
+							<text class="swiper-item-content3" v-html="item.data.content"></text>
+							<text class="swiper-item-content4">【{{item.data.sourceName}}】</text>
+						</view>
+						<image class="swiper-item-image2" mode="aspectFit" :src="item.data.img"></image>
 						<template v-if="[1,3].includes(item.data.exState)">
-							<view v-if="item.data.expireTime > 0" class="swiper-item-content4">( 有效期至 {{fmtTime(item.data.expireTime, 3)}} 
-								<span v-if="item.data.exState == 3" style="color: #ffaa00;">已临期</span>
-							)</view>
-							<uv-qrcode ref="qrcode" size="200rpx"
-								:value="item.data.qrCode">
+							<!-- verfType: 兑换券展示类型  1 本系统核销  2 赞助商提供码核销 3 赞助商不提供码核销 -->
+							<uv-qrcode v-if="item.data.verfType==1" ref="qrcode" size="100px" :value="item.data.qrCode">
 								<!-- <template v-slot:loading>
-									<text style="color: green;">loading...</text>
-								</template> -->
+										<text style="color: green;">loading...</text>
+									</template> -->
 							</uv-qrcode>
+							<view v-if="item.data.verfType==2" class="swiper-item-couponNum">券码:{{item.data.otherSerCode}}</view>
+							<view v-if="item.data.expireTime > 0" class="swiper-item-content4" style="color: #ED0000;">( 有效期至
+								{{fmtTime(item.data.expireTime, 1)}}
+								<span v-if="item.data.exState == 3" style="color: #ffaa00; font-size: bold;">已临期</span>
+								)
+							</view>
+							<view v-if="item.data.cDesc.length > 0" class="swiper-item-desc" v-html="item.data.cDesc"></view>
 						</template>
-						<view v-if="item.data.exState == 2" class="uni-column uni-jcse" style="height: 200rpx;">
+						<view v-if="item.data.exState == 2" class="uni-column uni-jcse" style="height: 100px;">
 							<text style="color: red;">已兑换</text>
 							<text class="swiper-item-content4">( 兑换时间 {{fmtTime(item.data.exTime, 3)}} )</text>
 						</view>
-						<view v-if="item.data.exState == 4" class="uni-column uni-jcse" style="height: 200rpx;">
+						<view v-if="item.data.exState == 4" class="uni-column uni-jcse" style="height: 100px;">
 							<text style="color: red;">已过期</text>
-							<text v-if="item.data.expireTime > 0" class="swiper-item-content4">( 过期时间 {{fmtTime(item.data.expireTime, 3)}} )</text>
+							<text v-if="item.data.expireTime > 0" class="swiper-item-content4">( 过期时间
+								{{fmtTime(item.data.expireTime, 1)}} )</text>
 						</view>
-						<button v-if="index < dataList.length - 1" class="swiper-item-button" @click="swiperNext">继
-							续</button>
-						<button v-else class="swiper-item-button" @click="popupClose">关 闭</button>
 					</view>
-					
-					<!-- 标题 + 图片(点击图片打开地图APP进行地点定位) -->
-					<view v-if="item.type == 5" class="swiper-item-view uni-column">
-						<text class="swiper-item-title" v-html="item.data.title"></text>
-						<image mode="aspectFit" style="height: 474rpx; margin-bottom: 50rpx;" :src="item.data.img" @click="dealNavClick(item.data.point)">
+
+					<button v-if="index < dataList.length - 1" class="swiper-item-button" @click="swiperNext">继
+						续</button>
+					<button v-else class="swiper-item-button" @click="popupClose">关 闭</button>
+				</view>
+
+				<!-- 【兑换地点 - 单点】标题 + 图片(点击图片打开地图APP进行地点定位) -->
+				<view v-if="item.type == 5" class="swiper-item-view uni-column">
+					<text class="swiper-item-title" v-html="item.data.title"></text>
+
+					<view class="swiper-item-main uni-column">
+						<image mode="aspectFit" style="height: 237px; margin-top: 15px; margin-bottom: 25px;"
+							:src="item.data.img" @click="dealNavClick(item.data.point)">
 						</image>
-						<button v-if="index < dataList.length - 1" class="swiper-item-button" @click="swiperNext">继
-							续</button>
-						<button v-else class="swiper-item-button" @click="popupClose">确 定</button>
 					</view>
 
-					<!-- 通知 -->
-					<view v-if="item.type == 6" class="swiper-item-view uni-column">
-						<text class="swiper-item-title" v-html="item.data.title"></text>
+					<button v-if="index < dataList.length - 1" class="swiper-item-button" @click="swiperNext">继
+						续</button>
+					<button v-else class="swiper-item-button" @click="popupClose">确 定</button>
+				</view>
+
+				<!-- 通知 -->
+				<view v-if="item.type == 6" class="swiper-item-view uni-column">
+					<text class="swiper-item-title" v-html="item.data.title"></text>
+
+					<view class="swiper-item-main uni-column uni-jcse">
 						<!-- mqType 消息类型 2:卡片图片 3:卡片文字 -->
-						<image v-if="item.data.mqType == 2" mode="aspectFit" style="height: 474rpx; margin-bottom: 50rpx;" :src="item.data.message">
+						<image v-if="item.data.mqType == 2" mode="aspectFit"
+							style="height: 237px; margin-bottom: 25px;" :src="item.data.message">
 						</image>
-						<text v-if="item.data.mqType == 3" class="swiper-item-message" v-html="item.data.message"></text>
-						<button v-if="index < dataList.length - 1" class="swiper-item-button" @click="swiperNext">继
-							续</button>
-						<button v-else class="swiper-item-button" @click="popupClose">确 定</button>
+						<text v-if="item.data.mqType == 3" class="swiper-item-message"
+							v-html="item.data.message"></text>
 					</view>
-					
-					<!-- 标题 + HTML内容 + 图片(可为空) -->
-					<view v-if="item.type == 7" class="swiper-item-view uni-column">
-						<text class="swiper-item-title" v-html="item.data.title"></text>
+
+					<button v-if="index < dataList.length - 1" class="swiper-item-button" @click="swiperNext">继
+						续</button>
+					<button v-else class="swiper-item-button" @click="popupClose">确 定</button>
+				</view>
+
+				<!-- 标题 + HTML内容 + 图片(可为空) -->
+				<view v-if="item.type == 7" class="swiper-item-view uni-column">
+					<image v-if="item.data.topLogo" class="swiper-item-topLogo"
+						:style="getImageStyle(item.data.topLogo)" mode="aspectFit" :src="item.data.topLogo.src"></image>
+					<text class="swiper-item-title" v-html="item.data.title"></text>
+
+					<view class="swiper-item-main uni-column uni-jcse">
 						<view class="swiper-item-content5">
-							<text v-html="item.data.content"></text>
+							<view v-if="item.data.content" v-html="item.data.content"></view>
 							<view class="uni-row uni-jcse" style="margin-top: 20px;">
 								<image v-for="(item, index) in item.data.imageList" :key="index" mode="aspectFit"
 									:style="getImageStyle(item)" :src="item.src"></image>
 							</view>
+							<view v-if="item.data.memo" style="padding-top: 10px;" v-html="item.data.memo"></view>
+						</view>
+					</view>
+					
+					<image v-if="item.data.bottomLogo" class="swiper-item-bottomLogo" mode="aspectFit"
+						:style="getImageStyle(item.data.bottomLogo)" :src="item.data.bottomLogo.src"></image>
+
+					<button v-if="index < dataList.length - 1" class="swiper-item-button" @click="swiperNext">继
+						续</button>
+					<button v-else class="swiper-item-button" @click="popupClose">确 定</button>
+				</view>
+
+				<!-- 【兑换地点 - 多点】标题 + 头部图片 + 头部memo + 多点导航列表 + 底部memo -->
+				<view v-if="item.type == 8" class="swiper-item-view uni-column">
+					<text class="swiper-item-title" v-html="item.data.title"></text>
+					<image v-if="item.data.topImg" class="" :style="getImageStyle(item.data.topImg)" mode="aspectFit" :src="item.data.topImg.src"></image>
+					<view v-if="item.data.topMemo" v-html="item.data.topMemo"></view>
+
+					<view class="swiper-item-main uni-column uni-jcse">
+						<view class="swiper-item-content5">
+							<view v-if="item.data.content" v-html="item.data.content"></view>
+							<view class="uni-column uni-jcse" style="margin-top: 20px;">
+								<view class="uni-row uni-jcsb" style="width: 96%; line-height: 30px;" v-for="(point, index) in item.data.pointList" :key="index">
+									<view class="uni-row uni-jct" style="width: 80%;">
+										<!-- <text v-if="point.map" class="nowrap" v-html="point.map + ':'"></text> -->
+										<text v-if="point.name" class="nowrap" v-html="point.map ? (point.map + ':' + point.name) : point.name"></text>
+									</view>
+									<view class="uni-row uni-jcsa" style="width: 20%;" @click="dealNavClick(point)">
+										<image mode="aspectFit" style="width: 10px; height: 15px;" src="/static/common/nav2.png"></image>
+										<text class="" style="color: #E60012; font-size: 14px;" >导航</text>
+									</view>
+								</view>
+							</view>
+							<view v-if="item.data.bottomMemo" style="padding-top: 10px;" v-html="item.data.bottomMemo" @click="dealUrlClick(item.data.bottomMemoUrl)"></view>
 						</view>
-						
-						<button v-if="index < dataList.length - 1" class="swiper-item-button" @click="swiperNext">继
-							续</button>
-						<button v-else class="swiper-item-button" @click="popupClose">确 定</button>
 					</view>
 					
-				</swiper-item>
-			</swiper>
-		</view>
+					<button v-if="index < dataList.length - 1" class="swiper-item-button" @click="swiperNext">继
+						续</button>
+					<button v-else class="swiper-item-button" @click="popupClose">确 定</button>
+				</view>
+				
+			</swiper-item>
+		</swiper>
 	</uni-popup>
 </template>
 
@@ -129,6 +203,12 @@
 			teamType: {
 				type: Number,
 				default: -1
+			},
+			config: {
+				type: Object,
+				default: () => ({ 
+					height: ""
+				})
 			}
 		},
 		data() {
@@ -139,10 +219,18 @@
 			};
 		},
 		methods: {
+			getSwiperStyle() {
+				let styleStr = "";
+				if (this.config.height != undefined && this.config.height != "") {
+					styleStr += `height: ${this.config.height};`;
+					console.log("[getSwiperStyle] style:", styleStr);
+				}
+				return styleStr;
+			},
 			//当前轮播索引
 			swiperChange(e) {
 				const curIndex = e.detail.current;
-				// console.log("swiperChange", curIndex, this.swiperCurrent)
+				// console.log("swiperChange", curIndex, this.swiperCurrent);
 				this.swiperCurrent = curIndex;
 			},
 			swiperNext() {
@@ -172,13 +260,21 @@
 				// window.location.href = url;
 				tools.appAction(url);
 			},
+			dealUrlClick(url) {
+				if (url != undefined && url.length > 0) {
+					tools.appAction(url);	
+				}
+			},
 			getImageStyle(item) {
 				let styleStr = "";
-				const width = item.width ?? "180rpx";
-				const height = item.height ?? "180rpx";
+				const width = item.width ?? "90px";
+				const height = item.height ?? "90px";
 				styleStr = `width: ${width}; height: ${height};`;
 				return styleStr;
 			},
+			getSponsorsLogoStyle(bgurl) {
+				return `background-image: url("${bgurl}")`;
+			},
 			// getTeamName(teamType, teamIndex) {
 			// 	return teamName[teamType][teamIndex];
 			// },
@@ -191,157 +287,205 @@
 </script>
 
 <style lang="scss" scoped>
-	.acttime {
-		font-weight: 550;
-		color: #333333;
-		font-size: 30rpx;
-	}
-
-	.clock {
-		width: 30rpx;
-		height: 30rpx;
-		margin-right: 20rpx;
-	}
-
-	.introduce-content {
-		color: #333333;
-		font-size: 25rpx;
-		line-height: 36rpx;
-	}
 
-	.popup {
+	.swiper {
 		width: 90vw;
-		// height: 720rpx;
-		height: 920rpx;
+		height: 439px;
 		background-color: #FEFBF6;
-		border-radius: 50rpx;
+		border-radius: 25px;
 	}
 
-	.swiper {
-		height: 100%;
-	}
-
-	// .swiper-item {
-	// 	justify-content: space-between;
-	// 	/* background-color: lightblue; */
+	// ::v-deep uni-swiper-item {
+	// 	overflow: auto;
 	// }
 
 	.swiper-item-view {
-		height: 100%;
-		justify-content: space-between;
+		height: 95%;
+		padding-top: 25px;
+		// justify-content: space-between;
 	}
 
 	.swiper-item-view-bg {
 		background-image: url("/static/backgroud/top_colorbar.png"), url("/static/backgroud/oval.png");
 		background-repeat: no-repeat;
 		background-position-x: center;
-		background-position-y: 150rpx, 380rpx;
+		background-position-y: 75px, 190px;
 		background-size: 80%, 70%;
 	}
 
 	.swiper-item-view-bg2 {
-		background-image: url("/static/backgroud/oval.png");
-		background-repeat: no-repeat;
-		background-position-x: center;
-		background-position-y: 276rpx;
-		background-size: 66%;
+		// background-image: url("/static/backgroud/oval.png");
+		// background-repeat: no-repeat;
+		// background-position-x: center;
+		// background-position-y: 198px;
+		// background-size: 66%;
+	}
+
+	.swiper-item-topLogo {
+		width: 100px;
+		height: 100px;
+		margin-bottom: 18px;
+	}
+
+	.swiper-item-bottomLogo {
+		width: 100px;
+		height: 100px;
+		margin-bottom: 30px;
 	}
 
 	.swiper-item-title {
-		margin-top: 60rpx;
-		margin-bottom: 20rpx;
-		font-size: 40rpx;
+		margin-bottom: 10px;
+		font-size: 20px;
 		font-weight: 550;
 	}
 
+	.swiper-item-main {
+		width: 100%;
+		flex-grow: 1;
+	}
+
 	.swiper-item-image {
-		height: 300rpx;
+		height: 150px;
+	}
+
+	.swiper-item-image2 {
+		height: 110px;
+		// margin-top: 5px;
 	}
 
 	.swiper-item-time {
-		height: 65rpx;
-		margin-top: 20rpx;
-		padding: 0 50rpx;
+		height: 33px;
+		margin-top: 10px;
+		padding: 0 25px;
 		justify-content: space-evenly;
 		background-color: white;
 		border: 0.5px solid;
 		border-color: #e7e7e7;
-		border-radius: 40rpx;
+		border-radius: 20px;
 		box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.13);
 	}
 
 	.swiper-item-content {
 		width: 80%;
-		/* height: 100rpx; */
-		margin-top: 30rpx;
-		margin-bottom: 60rpx;
+		margin-top: 15px;
+		margin-bottom: 30px;
 		justify-content: start;
+		flex-grow: 1;
 	}
 
 	.swiper-item-content2 {
 		width: 80%;
-		/* height: 100rpx; */
-		margin-top: 30rpx;
-		margin-bottom: 20rpx;
+		margin-top: 60px;
+		margin-bottom: 10px;
 		// justify-content: center;
 		text-align: center;
-		font-size: 28rpx;
-		line-height: 80rpx;
+		font-size: 14px;
+		line-height: 40px;
+		flex-grow: 1;
 	}
 
 	.swiper-item-content3 {
 		width: 80%;
-		margin-top: 10rpx;
+		// margin-top: 5px;
 		text-align: center;
 	}
 
 	.swiper-item-content4 {
 		// width: 80%;
-		// margin-top: 10rpx;
 		text-align: center;
-		font-size: 24rpx;
+		font-size: 12px;
 	}
-	
+
 	.swiper-item-content5 {
 		width: 80%;
-		margin-top: 30rpx;
-		margin-bottom: 20rpx;
 		flex-grow: 1;
-		font-size: 26rpx;
-		line-height: 46rpx;
+		font-size: 14px;
+		line-height: 21px;
+		overflow-y: scroll;
 	}
 	
-	::v-deep li {
-		margin-bottom: 10rpx;
+	.swiper-item-couponNum {
+		font-size: 16px;
+		font-weight: 500;
+		color: #383838;
+	}
+
+	.swiper-item-desc {
+		width: 80%;
+		font-size: 12px;
+		font-weight: 400;
+		color: #818181;
 	}
 	
+	::v-deep li {
+		margin-bottom: 5px;
+	}
+
 	.swiper-item-message {
 		width: 80%;
-		/* height: 100rpx; */
-		margin-top: 20rpx;
-		margin-bottom: 20rpx;
+		margin-top: 10px;
+		margin-bottom: 10px;
 		// justify-content: center;
 		text-align: left;
-		font-size: 28rpx;
-		// line-height: 80rpx;
+		font-size: 14px;
+		line-height: 21px;
 		flex-grow: 1;
 	}
-	
+
 	.swiper-item-button {
 		width: 80%;
-		height: 76rpx;
-		margin-bottom: 50rpx;
+		height: 38px;
+		margin-bottom: 25px;
 		color: #ffffff;
 		/* font-weight: bold; */
-		line-height: 76rpx;
+		line-height: 38px;
 		background-color: #2e85ec;
 		border-radius: 27px;
 	}
 
-	::v-deep .uni-swiper-dots-horizontal {
-		bottom: 155rpx;
+	.acttime {
+		font-weight: 550;
+		color: #333333;
+		font-size: 15px;
+	}
+
+	.clock {
+		width: 15px;
+		height: 15px;
+		margin-right: 10px;
+	}
+
+	.introduce-content {
+		color: #333333;
+		font-size: 14px;
+		line-height: 21px;
+		flex-grow: 1;
+	}
+
+	.nowrap {
+		white-space: nowrap;
+		overflow: hidden;
+		text-overflow: ellipsis;
 	}
 	
+	.sponsorsLogo {
+		position: absolute;
+		width: 120px;
+		// width: 75px;
+		height: 75px;
+		left: 18px;
+		top: 8px;
+		background-position-x: left;
+		background-position-y: center;
+		background-repeat: no-repeat;
+		background-size: contain;
+		// background-size: 100% auto;
+	}
+	
+	::v-deep .uni-swiper-dots-horizontal {
+		bottom: 75px;
+	}
+
 	// ::v-deep .uni-swiper-dot-active {
 	// 	background: #ff870e !important;
 	// }

+ 2 - 2
card/manifest.json

@@ -2,8 +2,8 @@
     "name" : "card",
     "appid" : "__UNI__A61F96B",
     "description" : "",
-    "versionName" : "1.5.9",
-    "versionCode" : 159,
+    "versionName" : "1.6.5",
+    "versionCode" : 165,
     "transformPx" : false,
     /* 5+App特有相关 */
     "app-plus" : {

+ 39 - 17
card/pages/achievement/index2.vue

@@ -68,7 +68,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/achievement/index2
 							<view class="item uni-column"
 								:class="getConvertClass(item2.exState)"
 								v-for="(item2, index2) in item.aiRs" :key="index2" @click="showAchDetail(item2)">
-								<view class="item-medal" :style="getMedalStyle(item2.iconUrl)"></view>
+								<view class="item-exchange" :style="getMedalStyle(item2.iconUrl)"></view>
 								<view class="item-title uni-column">
 									<view class="item-title-ainame" style="margin-top: 3rpx;">{{item2.aiName}}</view>
 									<view class="item-title-ainame2">{{item2.sourceName}}</view>
@@ -83,10 +83,10 @@ https://oss-mbh5.colormaprun.com/card/#/pages/achievement/index2
 		</view>
 
 		<!-- 页面载入后,弹窗显示新获取的成就  -->
-		<my-popup ref="popupNewach" :dataList="popupDataList" @popup-close="onPopupNewachClose"></my-popup>
+		<my-popup ref="popupNewach" :config="popupConfig" :dataList="popupDataList" @popup-close="onPopupNewachClose"></my-popup>
 
 		<!-- 点击成就列表项后,弹窗显示对应的成就内容  -->
-		<my-popup ref="popupAchdet" :dataList="popupAchdet" @popup-close="onPopupAchdetClose"></my-popup>
+		<my-popup ref="popupAchdet" :config="popupConfig" :dataList="popupAchdet" @popup-close="onPopupAchdetClose"></my-popup>
 
 		<!-- <my-popup-map ref="mypopupmap" :point="point"></my-popup-map> -->
 
@@ -123,13 +123,16 @@ https://oss-mbh5.colormaprun.com/card/#/pages/achievement/index2
 
 				tabItems: ["挑战", "奖牌", "兑换"],
 				tabCurrent: 0,
+				popupConfig: {	// 弹窗配置
+					height: "460px"
+				},
 				popupDataList: [], // 弹窗数据:新获取的成就
 				popupAchdet: [], // 弹窗数据:用户点击的成就列表项
-				point: {
-					longitude: 117.022194,
-					latitude: 36.661612,
-					name: "泉城广场定向赛起始点",
-				},
+				// point: {
+				// 	longitude: 117.022194,
+				// 	latitude: 36.661612,
+				// 	name: "泉城广场定向赛起始点",
+				// },
 				interval: null,
 				showBack: false, // 是否在导航栏显示返回按钮
 			}
@@ -144,6 +147,8 @@ https://oss-mbh5.colormaprun.com/card/#/pages/achievement/index2
 			this.tabCurrent = parseInt(query["tabCurrent"] ?? 0);
 			this.showBack = query["tabCurrent"] >= 0 ? true : false;
 
+			// tools.removeCssCode();
+			
 			this.getMonthlyChallengeQuery();
 			this.getAchievementQuery();
 			this.getExchangeListQuery();
@@ -319,13 +324,20 @@ https://oss-mbh5.colormaprun.com/card/#/pages/achievement/index2
 								"type": 4,
 								"data": {
 									"title": "兑换",
-									"img": data.iconUrl,
-									"content": data.aiName,
-									"qrCode": data.qrCode,
-									"exState": data.exState,
-									"exTime": data.exTime,
-									"expireTime": data.expireTime,
-									"sourceName": data.sourceName,
+									"img": data.iconUrl,	// 对应图标url
+									"content": data.aiName,	// 兑换品Name
+									"aiTime": data.aiTime,	// 获得成就时间戳
+									"qrCode": data.qrCode,	// 本系统生成二维码对应字符串,已核销为空
+									"qrCodeExTime": data.qrCodeExTime,	// 二维码过期时间戳,已核销为0
+									"exState": data.exState,// 1 可兑 2 已兑 3 临期 4 过期
+									"exTime": data.exTime,	// 核销时间戳,未核销时间为0 
+									"expireTime": data.expireTime,	// 兑换过期时间,时间戳
+									"sourceName": data.sourceName,	// 兑换对应来源名称
+									"verfType": data.verfType,	// 兑换券展示类型  1 本系统核销  2 赞助商提供码核销 3 赞助商不提供码核销
+									"cName": data.cName,	// 对应赞助商名称
+									"cDesc": data.cDesc,	// 对应赞助商提供本兑换券简介
+									"otherSerCode": data.otherSerCode,	// verfType=2有效,赞助商提供数字码
+									"sponsorsLogo": data.cUrl,	// 对应赞助商图标
 								},
 							}];
 
@@ -461,12 +473,12 @@ https://oss-mbh5.colormaprun.com/card/#/pages/achievement/index2
 				// console.log("onTabClick: ", val);
 				this.tabCurrent = val;
 			},
-			test() {
+			/* test() {
 				// this.$refs.mypopupmap.popupOpen();
 				const url =
 					`action://to_map_app?title=${this.point.name}&latitude=${this.point.latitude}&longitude=${this.point.longitude}`;
 				tools.appAction(url);
-			}
+			} */
 		}
 	}
 </script>
@@ -583,6 +595,16 @@ https://oss-mbh5.colormaprun.com/card/#/pages/achievement/index2
 		background-size: auto 100%;
 	}
 
+	.item-exchange {
+		width: 20vw;
+		height: 20vw;
+		margin-top: 25rpx;
+		background-position-x: center;
+		background-position-y: center;
+		background-repeat: no-repeat;
+		background-size: 100% auto;
+	}
+	
 	.item-title {
 		width: 100%;
 		margin-top: 10rpx;

+ 9 - 1
card/pages/bm/style1/rankList.vue

@@ -55,7 +55,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style1/rankList
 				<button class="btnStart btnStart-disable" v-if="mcState==2">活动已结束</button>
 			</view>
 			
-			<my-popup ref="mypopup" :dataList="popupDataList" :acttime="acttime"></my-popup>
+			<my-popup ref="mypopup" :config="popupRuleConfig" :dataList="popupDataList" :acttime="acttime"></my-popup>
 			<my-popup ref="mypopupMessage" :dataList="popupMessageList"></my-popup>
 			
 		</view>
@@ -117,6 +117,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style1/rankList
 				tabActiveColor: "#2e85ec",
 				
 				cssTop: "",
+				popupRuleConfig: {}, // 规则弹窗配置
 				popupDataList: [],
 				popupMessageList: [],
 				// mqIdListStr: "", // 已读消息id列表 逗号分隔
@@ -256,6 +257,13 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style1/rankList
 					this.tabItems = ['总排名', '学生排名', '家长排名'];
 				}
 				
+				// 加载规则弹窗配置
+				const popupRuleConfig = config.popupRuleConfig;
+				if (popupRuleConfig != undefined) {
+					this.popupRuleConfig = popupRuleConfig;
+				}
+				// console.log("[loadConfig] popupRuleConfig:", this.popupRuleConfig);
+				
 				// 加载弹窗数据
 				const popupDataList = config.popupDataList;
 				// console.log("[loadConfig] popupDataList:", popupDataList);

+ 9 - 1
card/pages/bm/style1/signup.vue

@@ -31,7 +31,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style1/signup
 				<button class="btnSignup btnSignup-disable" v-if="mcState==2">活动已结束</button>
 			</view>
 
-			<my-popup ref="mypopup" :dataList="popupDataList" :acttime="acttime"></my-popup>
+			<my-popup ref="mypopup" :config="popupRuleConfig" :dataList="popupDataList" :acttime="acttime"></my-popup>
 
 			<uni-popup ref="alertDialog" type="dialog">
 				<uni-popup-dialog type="info" cancelText="取消" confirmText="确认" title="您选择的是:" @confirm="dialogConfirm"
@@ -97,6 +97,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style1/signup
 					title: "",
 					content: ""
 				},
+				popupRuleConfig: {}, // 规则弹窗配置
 				popupDataList: [],
 			}
 		},
@@ -238,6 +239,13 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style1/signup
 					}
 				}
 
+				// 加载规则弹窗配置
+				const popupRuleConfig = config.popupRuleConfig;
+				if (popupRuleConfig != undefined) {
+					this.popupRuleConfig = popupRuleConfig;
+				}
+				// console.log("[loadConfig] popupRuleConfig:", this.popupRuleConfig);
+				
 				// 加载弹窗数据
 				const popupDataList = config.popupDataList;
 				// console.log("[loadConfig] popupDataList:", popupDataList);

+ 9 - 1
card/pages/bm/style2/rankList.vue

@@ -35,7 +35,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style2/rankList
 				<!-- <button class="btnBack" @click="btnBack">返回</button> -->
 			</view>
 			
-			<my-popup ref="mypopup" :dataList="popupDataList" :acttime="acttime"></my-popup>
+			<my-popup ref="mypopup" :config="popupRuleConfig" :dataList="popupDataList" :acttime="acttime"></my-popup>
 			<my-popup ref="mypopupMessage" :dataList="popupMessageList"></my-popup>
 			
 		</view>
@@ -108,6 +108,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style2/rankList
 				
 				cssTop: "",
 				cssTopbarColor: "",
+				popupRuleConfig: {}, // 规则弹窗配置
 				popupDataList: [],
 				popupMessageList: [],
 				// mqIdListStr: "", // 已读消息id列表 逗号分隔
@@ -254,6 +255,13 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style2/rankList
 					this.tabActiveColor = tabActiveColor;
 				}
 				
+				// 加载规则弹窗配置
+				const popupRuleConfig = config.popupRuleConfig;
+				if (popupRuleConfig != undefined) {
+					this.popupRuleConfig = popupRuleConfig;
+				}
+				// console.log("[loadConfig] popupRuleConfig:", this.popupRuleConfig);
+				
 				// 加载弹窗数据
 				const popupDataList = config.popupDataList;
 				// console.log("[loadConfig] popupDataList:", popupDataList);

+ 9 - 1
card/pages/bm/style2/rankOverview.vue

@@ -50,7 +50,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style2/rankOverview
 					:showLine="pathListStyle.showLine"></my-pathList>
 			</view>
 
-			<my-popup ref="mypopup" :dataList="popupDataList" :acttime="acttime"></my-popup>
+			<my-popup ref="mypopup" :config="popupRuleConfig" :dataList="popupDataList" :acttime="acttime"></my-popup>
 			<!-- <my-popup-map ref="mypopupmap" :point="navPoint"></my-popup-map> -->
 		</view>
 	</view>
@@ -106,6 +106,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style2/rankOverview
 				cssTopbarColor: "",
 				pathList: {},
 				pathListStyle: {},
+				popupRuleConfig: {}, // 规则弹窗配置
 				popupDataList: [],
 				navPoint: {},
 			}
@@ -268,6 +269,13 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style2/rankOverview
 					this.pathListStyle = pathListStyle;
 				}
 
+				// 加载规则弹窗配置
+				const popupRuleConfig = config.popupRuleConfig;
+				if (popupRuleConfig != undefined) {
+					this.popupRuleConfig = popupRuleConfig;
+				}
+				// console.log("[loadConfig] popupRuleConfig:", this.popupRuleConfig);
+				
 				// 加载弹窗数据
 				const popupDataList = config.popupDataList;
 				// console.log("[loadConfig] popupDataList:", popupDataList);

+ 19 - 10
card/pages/bm/style2/signup.vue

@@ -16,7 +16,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style2/signup
 					<text class="acttime">{{acttime}}</text>
 				</view>
 
-				<input class="uni-input" maxlength="30" placeholder="请填写姓名" v-model="nickName" />
+				<input class="uni-input" maxlength="20" placeholder="请填写昵称或姓名" v-model="nickName" />
 
 				<view class="introduce uni-column">
 					<text class="introduce-title">{{introduce.title}}</text>
@@ -26,7 +26,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style2/signup
 				<button class="btnSignup btnSignup-disable" v-if="mcState==2">活动已结束</button>
 			</view>
 
-			<my-popup ref="mypopup" :dataList="popupDataList" :acttime="acttime"></my-popup>
+			<my-popup ref="mypopup" :config="popupRuleConfig" :dataList="popupDataList" :acttime="acttime"></my-popup>
 
 			<uni-popup ref="alertDialog" type="dialog">
 				<uni-popup-dialog type="info" cancelText="取消" confirmText="确认" title="您填写的姓名:" @confirm="dialogConfirm"
@@ -91,6 +91,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style2/signup
 					title: "",
 					content: ""
 				},
+				popupRuleConfig: {}, // 规则弹窗配置
 				popupDataList: [],
 			}
 		},
@@ -232,6 +233,13 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style2/signup
 					}
 				}
 
+				// 加载规则弹窗配置
+				const popupRuleConfig = config.popupRuleConfig;
+				if (popupRuleConfig != undefined) {
+					this.popupRuleConfig = popupRuleConfig;
+				}
+				// console.log("[loadConfig] popupRuleConfig:", this.popupRuleConfig);
+				
 				// 加载弹窗数据
 				const popupDataList = config.popupDataList;
 				// console.log("[loadConfig] popupDataList:", popupDataList);
@@ -555,10 +563,11 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style2/signup
 
 	.timebar {
 		width: 90%;
-		height: 65rpx;
-		margin-top: 20rpx;
-		padding: 0 30rpx;
-		justify-content: space-evenly;
+		height: 32px;
+		margin-top: 10px;
+		margin-bottom: 10px;
+		padding: 0 15px;
+		justify-content: center;
 		background: #ffffff;
 		border: 0.5px solid;
 		border-color: #e7e7e7;
@@ -569,13 +578,13 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style2/signup
 	.acttime {
 		font-weight: 550;
 		color: #333333;
-		font-size: 30rpx;
+		font-size: 15px;
 	}
 
 	.clock {
-		width: 30rpx;
-		height: 30rpx;
-		margin-right: 20rpx;
+		width: 15px;
+		height: 15px;
+		margin-right: 10px;
 	}
 
 	.uni-input {

+ 4 - 0
card/pages/bm/style3/cardconfig.md

@@ -72,6 +72,10 @@
 	"introduce": {
 		"title": "介绍:",
 		"content": " · 小飞龙定向赛再次来袭!这次有五个场地哟~\r\n · 神秘“蛋叔”闪亮登场~\r\n · 蛋叔放大招,百味豆换鸡蛋!\r\n · 时不可待!冲鸭!\r\n\r\n · 能不能把蛋叔整郁闷,就看你的啦~\r\n · 还等啥?火速报名吧!"
+	},
+	"activityRules": {
+		"title": "活动规则:",
+		"content": "<li>随时参赛、不限完赛次数、起点任选、实时排名 <li>起点 -各途经点 -结束点完整打卡为一次有效完赛"
 	}
 },
 "rankOverview": {

+ 20 - 2
card/pages/bm/style3/rankList.vue

@@ -49,8 +49,8 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style3/rankList
 				<!-- <button class="btnBack" @click="btnBack">返回</button> -->
 			</view>
 			
-			<my-popup ref="mypopup" :dataList="popupDataList" :acttime="acttime"></my-popup>
-			<my-popup ref="mypopupExchg" :dataList="popupExchgList"></my-popup>
+			<my-popup ref="mypopup" :config="popupRuleConfig" :dataList="popupDataList" :acttime="acttime"></my-popup>
+			<my-popup ref="mypopupExchg" :config="popupExchgConfig" :dataList="popupExchgList"></my-popup>
 			<my-popup ref="mypopupMessage" :dataList="popupMessageList"></my-popup>
 			
 		</view>
@@ -107,6 +107,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style3/rankList
 				
 				all_totalDistance: 0, // 赛事所有人累计里程,单位米
 				all_totalRightAnswerNum: 0, // 赛事所有人正确答题数(校园文化输出)
+				all_totalAnswerNum: 0, // 赛事所有人答题数(校园文化输出)
 				all_totalCp: 0, // 赛事中所有人打点数
 				all_totalSysPoint: 0, // 赛事中所有人百味豆
 				
@@ -129,6 +130,8 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style3/rankList
 				
 				cssTop: "",
 				cssTopbarColor: "",
+				popupRuleConfig: {}, // 规则弹窗配置
+				popupExchgConfig: {}, // 兑换地址弹窗配置
 				popupDataList: [],
 				popupExchgList: [],
 				popupMessageList: [],
@@ -303,6 +306,20 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style3/rankList
 					this.tabActiveColor = tabActiveColor;
 				}
 				
+				// 加载规则弹窗配置
+				const popupRuleConfig = config.popupRuleConfig;
+				if (popupRuleConfig != undefined) {
+					this.popupRuleConfig = popupRuleConfig;
+				}
+				// console.log("[loadConfig] popupRuleConfig:", this.popupRuleConfig);
+				
+				// 加载兑换地址弹窗配置
+				const popupExchgConfig = config.popupExchgConfig;
+				if (popupExchgConfig != undefined) {
+					this.popupExchgConfig = popupExchgConfig;
+				}
+				// console.log("[loadConfig] popupExchgConfig:", this.popupExchgConfig);
+				
 				// 加载弹窗数据
 				const popupDataList = config.popupDataList;
 				// console.log("[loadConfig] popupDataList:", popupDataList);
@@ -639,6 +656,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style3/rankList
 							const data = res.data.data;
 							this.all_totalDistance = data.totalDistance;
 							this.all_totalRightAnswerNum = data.totalRightAnswerNum;
+							this.all_totalAnswerNum = data.totalAnswerNum;
 							this.all_totalCp = data.totalCp;
 							this.all_totalSysPoint = data.totalSysPoint;
 						}

+ 9 - 1
card/pages/bm/style3/rankOverview.vue

@@ -49,7 +49,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style3/rankOverview
 				<my-pathList :style="pathListStyle.style" :pathList="pathList" :mcState="mcState" :showLine="pathListStyle.showLine"></my-pathList>
 			</view>
 
-			<my-popup ref="mypopup" :dataList="popupDataList" :acttime="acttime"></my-popup>
+			<my-popup ref="mypopup" :config="popupRuleConfig" :dataList="popupDataList" :acttime="acttime"></my-popup>
 			<!-- <my-popup-map ref="mypopupmap" :point="navPoint"></my-popup-map> -->
 		</view>
 	</view>
@@ -105,6 +105,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style3/rankOverview
 				cssTopbarColor: "",
 				pathList: {},
 				pathListStyle: {},
+				popupRuleConfig: {}, // 规则弹窗配置
 				popupDataList: [],
 				navPoint: {},
 			}
@@ -267,6 +268,13 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style3/rankOverview
 					this.pathListStyle = pathListStyle;
 				}
 
+				// 加载规则弹窗配置
+				const popupRuleConfig = config.popupRuleConfig;
+				if (popupRuleConfig != undefined) {
+					this.popupRuleConfig = popupRuleConfig;
+				}
+				// console.log("[loadConfig] popupRuleConfig:", this.popupRuleConfig);
+				
 				// 加载弹窗数据
 				const popupDataList = config.popupDataList;
 				// console.log("[loadConfig] popupDataList:", popupDataList);

+ 80 - 20
card/pages/bm/style3/signup.vue

@@ -16,17 +16,23 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style3/signup
 					<text class="acttime">{{acttime}}</text>
 				</view>
 
-				<input class="uni-input" maxlength="30" placeholder="请填写姓名" v-model="nickName" />
+				<input class="uni-input" maxlength="20" placeholder="请填写昵称或姓名" v-model="nickName" />
 
 				<view class="introduce uni-column">
 					<text class="introduce-title">{{introduce.title}}</text>
 					<text class="introduce-content" v-html="introduce.content"></text>
 				</view>
+				
+				<view v-if="activityRules.content.length > 0" class="activityRules uni-column">
+					<text class="activityRules-title">{{activityRules.title}}</text>
+					<text class="activityRules-content" v-html="activityRules.content"></text>
+				</view>
+				
 				<button class="btnSignup btnSignup-enable" v-if="mcState<=1" @click="btnSignup">报 名</button>
 				<button class="btnSignup btnSignup-disable" v-if="mcState==2">活动已结束</button>
 			</view>
 
-			<my-popup ref="mypopup" :dataList="popupDataList" :acttime="acttime"></my-popup>
+			<my-popup ref="mypopup" :config="popupRuleConfig" :dataList="popupDataList" :acttime="acttime"></my-popup>
 
 			<uni-popup ref="alertDialog" type="dialog">
 				<uni-popup-dialog type="info" cancelText="取消" confirmText="确认" title="您填写的姓名:" @confirm="dialogConfirm"
@@ -91,6 +97,11 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style3/signup
 					title: "",
 					content: ""
 				},
+				activityRules: {
+					title: "",
+					content: ""
+				},
+				popupRuleConfig: {}, // 规则弹窗配置
 				popupDataList: [],
 			}
 		},
@@ -232,6 +243,24 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style3/signup
 					}
 				}
 
+				// 加载活动规则
+				const activityRules = config.activityRules;
+				if (activityRules != undefined) {
+					if (activityRules.title != undefined) {
+						this.activityRules.title = activityRules.title;
+					}
+					if (activityRules.content != undefined) {
+						this.activityRules.content = activityRules.content;
+					}
+				}
+				
+				// 加载规则弹窗配置
+				const popupRuleConfig = config.popupRuleConfig;
+				if (popupRuleConfig != undefined) {
+					this.popupRuleConfig = popupRuleConfig;
+				}
+				// console.log("[loadConfig] popupRuleConfig:", this.popupRuleConfig);
+				
 				// 加载弹窗数据
 				const popupDataList = config.popupDataList;
 				// console.log("[loadConfig] popupDataList:", popupDataList);
@@ -347,6 +376,10 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style3/signup
 							"introduce": {
 								"title": "介绍:",
 								"content": "<li>领秀城社区欢乐定向赛来袭 \r\n <li>领秀城 A、B、C、D、E、F 区及商业街、贵和购物广场等8个起点任选。\r\n <li>跑的多,得蛋多,神秘蛋叔赞助!\r\n <li>还等什么?火速报名吧!\r\n <li>定向赛场上,每一个人都是主角~"
+							},
+							"activityRules": {
+								"title": "活动规则:",
+								"content": "<li>随时参赛、不限完赛次数、起点任选、实时排名 <li>起点 -各途经点 -结束点完整打卡为一次有效完赛"
 							}
 						}; */
 
@@ -567,7 +600,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style3/signup
 <style scoped>
 	.content {
 		width: 100vw;
-		height: 100vh;
+		min-height: 100vh;
 	}
 
 	.top-default {
@@ -594,10 +627,10 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style3/signup
 
 	.timebar {
 		width: 90%;
-		height: 65rpx;
-		margin-top: 20rpx;
-		padding: 0 30rpx;
-		justify-content: space-evenly;
+		height: 32px;
+		margin-top: 10px;
+		padding: 0 15px;
+		justify-content: center;
 		background: #ffffff;
 		border: 0.5px solid;
 		border-color: #e7e7e7;
@@ -608,20 +641,20 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style3/signup
 	.acttime {
 		font-weight: 550;
 		color: #333333;
-		font-size: 30rpx;
+		font-size: 15px;
 	}
 
 	.clock {
-		width: 30rpx;
-		height: 30rpx;
-		margin-right: 20rpx;
+		width: 15px;
+		height: 15px;
+		margin-right: 10px;
 	}
 
 	.uni-input {
 		width: 90%;
-		height: 85rpx;
-		/* margin-top: 30rpx; */
-		padding: 0 30rpx;
+		height: 43px;
+		margin-top: 15px;
+		padding: 0 15px;
 		background: #f1f1f1;
 		border-radius: 9px;
 	}
@@ -633,29 +666,56 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style3/signup
 
 	.introduce {
 		width: 100%;
-		margin-top: 10rpx;
-		margin-bottom: 30rpx;
+		margin-top: 10px;
+		margin-bottom: 10px;
 		align-items: flex-start;
 		justify-content: space-around;
 	}
 
 	.introduce-title {
 		color: #333333;
-		font-size: 30rpx;
-		line-height: 60rpx;
+		font-size: 15px;
+		line-height: 30px;
 		font-family: Source Han Sans CN;
 	}
 
 	.introduce-content {
 		color: #333333;
-		font-size: 25rpx;
-		line-height: 46rpx;
+		font-size: 13px;
+		line-height: 23px;
+		font-family: Source Han Sans CN;
+	}
+
+	.activityRules {
+		width: 100%;
+		margin-top: 5px;
+		margin-bottom: 10px;
+		padding: 10px 15px;
+		align-items: flex-start;
+		justify-content: space-around;
+		border-radius: 9px;
+		background: #EBEBEB;
+	}
+
+	.activityRules-title {
+		color: #333333;
+		font-size: 14px;
+		line-height: 25px;
+		font-weight: 500;
+		font-family: Source Han Sans CN;
+	}
+
+	.activityRules-content {
+		color: #333333;
+		font-size: 13px;
+		line-height: 23px;
 		font-family: Source Han Sans CN;
 	}
 
 	.btnSignup {
 		width: 100%;
 		height: 100rpx;
+		margin-top: 30rpx;
 		margin-bottom: 30rpx;
 		color: white;
 		font-weight: bold;

+ 593 - 59
card/pages/bm/style4/cardconfig.md

@@ -56,28 +56,191 @@ index卡片URL参数:type=团建活动&btnText=进入活动
 			background: #a43a07 !important;
 		}
 	",
-	"popupDataList": [{
+	"popupRuleConfig": {
+		"height": "500px"
+	},
+	"popupDataList": [
+		{
 			"type": 1,
 			"data": {
-				"title": "山大校园定向赛",
+				"title": "山大24级新生校园定向赛",
 				"img": "/static/logo/sddx.png",
-				"content": "  开学季来袭!山大校园定向赛燃情启幕!探索校园每一个角落,挑战智慧与体能,全校师生共同开启新学期活力篇章!等你来挑战!"
+				"content": "  开学季来袭!山大24级新生校园定向赛燃情启幕!探索校园每一个角落,挑战智慧与体能,全校师生共同开启新学期活力篇章!等你来挑战!"
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"topLogo": {
+					"src": "/static/logo/sddx.png",
+					"width": "80px",
+					"height": "80px"
+				},
+				"bottomLogo": {
+					"src": "/static/logo/inzone.png",
+					"width": "150px",
+					"height": "30px"
+				},
+				"title": "活动流程",
+				"content": "<br>① 起点打点 → ② 依次打点 → ③ 接受挑战 <br><br>④ 终点打点 → ⑤ 查看成绩 → ⑥ 赢取奖励",
+				"imageList": []
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"topLogo": {
+					"src": "/static/logo/sddx.png",
+					"width": "80px",
+					"height": "80px"
+				},
+				"bottomLogo": {
+					"src": "/static/logo/inzone.png",
+					"width": "150px",
+					"height": "30px"
+				},
+				"title": "赛事规则",
+				"content": "<p style='margin-bottom:12px;'>① 选择所在校区,参赛时间自由、路线随机</p> <p style='margin-bottom:12px;'>② 准确填报院系,共筑个人与院系荣耀</p> <p style='margin-bottom:12px;'>③ 打点1次1积分,途经点正确答题1积分,多次完赛,点数累加</p> <p style='margin-bottom:12px;'>④ 正常完赛累计积分,未完赛积分不计入</p>",
+				"imageList": []
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"topLogo": {
+					"src": "/static/logo/sddx.png",
+					"width": "80px",
+					"height": "80px"
+				},
+				"bottomLogo": {
+					"src": "/static/logo/inzone.png",
+					"width": "150px",
+					"height": "30px"
+				},
+				"title": "赛事奖励1",
+				"content": "团队奖:<br>院系累计积分前8名; <text style='color:red;'>奖励</text>:团队奖杯 <br><br>个人奖:<br>各校区累计积分前10名;<text style='color:red;'>奖励</text>:荣誉证书完赛者均可获得参赛证书。<br> <text style='color:#A6A6A6;'>(赛事结束后体育委员会自APP颁发)</text>",
+				"imageList": []
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"topLogo": {
+					"src": "/static/logo/sddx.png",
+					"width": "80px",
+					"height": "80px"
+				},
+				"bottomLogo": {
+					"src": "/static/logo/inzone.png",
+					"width": "150px",
+					"height": "30px"
+				},
+				"title": "赛事奖励2",
+				"content": "<p style='margin-bottom:12px;'>外部奖励:<br>各校区前10名获银座集团价值<text style='color:red;'>200元</text>进阶宠爱大礼。</p> <p style='margin-bottom:12px;'>完赛一次,可获银座价值<text style='color:red;'>50元</text>新生宠爱盲盒。<text style='color:#A6A6A6;'>(数量有限,发完为止)</text></p>每获25积分,可获银座<text style='color:red;'>100减10</text>优惠券1张。封顶5张,可与店内优惠叠加使用。<br><text style='color:#A6A6A6;'>(部分商品、特殊特例商品除外)</text>",
+				"imageList": []
 			}
 		},
+		{
+			"type": 7,
+			"data": {
+				"title": "安全提示",
+				"content": "<br><text style='color:#FFBA99; font-size: 20px; margin-right: 5px;'>●</text> 避免聚集,注意安全<br><br> <text style='color:#FFBA99; font-size: 20px; margin-right: 5px;'>●</text> 评估自身健康,适时参与<br><br> <text style='color:#FFBA99; font-size: 20px; margin-right: 5px;'>●</text> 注意交通与场地安全",
+				"imageList": [{
+					"src": "/static/backgroud/shanda.png",
+					"width": "300px",
+					"height": "150px"
+				}]
+			}
+		},								
 		{
 			"type": 2,
 			"data": {
-				"title": "规则",
-				"img": "/static/common/guize.png"
+				"title": "基本图例",
+				"img": "/static/common/jbtl.png"
 			}
-		}, {
+		},
+		{
 			"type": 2,
 			"data": {
-				"title": "奖励",
-				"img": "/static/common/jiangli.png"
+				"title": "基本标识",
+				"img": "/static/common/jbbs2.png"
 			}
 		},
-		"default"
+		{
+			"type": 7,
+			"data": {
+				"topLogo": {
+					"src": "/static/logo/sddx.png",
+					"width": "80px",
+					"height": "80px"
+				},
+				"bottomLogo": {
+					"src": "/static/logo/inzone.png",
+					"width": "150px",
+					"height": "30px"
+				},
+				"title": "山大定向赛咨询群",
+				"content": "",
+				"imageList": [{
+					"src": "/static/common/qrcode_sddxszxq.png",
+					"width": "116px",
+					"height": "116px"
+				}],
+				"memo": "<view style='display:block; text-align:center;'>赛事规程、流程、奖励咨询 <br><view style='color:#808080; font-size:12px'>(7*24小时解答)</view></view>"
+			}
+		},
+		{
+			"type": 8,
+			"data": {
+				"title": "兑换地点",
+				"topImg": {
+					"src": "/static/logo/inzone2.png",
+					"width": "72px",
+					"height": "72px"
+				},
+				"topMemo": "<view style='color:#E60012;font-size:14px;'>品质消费引领者 &nbsp; &nbsp; 美好生活推荐官</view>",
+				"bottomMemo": "<view style='display: block; margin-top: 20px; text-align: center; font-weight: 500; font-size: 14px;'>优惠券使用说明</view>",
+				"bottomMemoUrl": "https://oss-mbh5.colormaprun.com/page/explanation/inzone.html",
+				"pointList": [
+					{
+						"map": "中 心 校 区",
+						"name": "银座燕山店",
+						"longitude": 117.075174,
+						"latitude": 36.654108
+					},
+					{
+						"map": "洪家楼校区",
+						"name": "银座洪楼店",
+						"longitude": 117.062653,
+						"latitude": 36.684249
+					},
+					{
+						"map": "兴隆山校区",
+						"name": "银座七里山店",
+						"longitude": 117.004617,
+						"latitude": 36.613655
+					},
+					{
+						"map": "趵突泉校区",
+						"name": "银座泉城广场店",
+						"longitude": 117.023766,
+						"latitude": 36.661532
+					},
+					{
+						"map": "千佛山校区",
+						"name": "银座玉函店",
+						"longitude": 117.014735,
+						"latitude": 36.647098
+					},
+					{
+						"map": "软件园校区",
+						"name": "银座高新店",
+						"longitude": 117.122241,
+						"latitude": 36.682175
+					}
+				]
+			}
+		}
 	],
 	"introduce": {
 		"title": "介绍:",
@@ -111,7 +274,7 @@ index卡片URL参数:type=团建活动&btnText=进入活动
 		.topbar-color{
 			color: #ffffff;
 		}
-		.mid {
+		.mid{
 			margin-top: -40px !important;
 		}
 		.btnStartGame{
@@ -128,17 +291,18 @@ index卡片URL参数:type=团建活动&btnText=进入活动
 		}
 	",
 	"pathList": {
-		"row1": [{
+		 "row1": [
+			{
 				"type": 3,
 				"pathImg": "/static/common/sdzxxq.png",
 				"path": {
-					"ocaId": 1,
+					"ocaId": 9,
 					"mcType": 3
 				},
 				"navImg": "/static/common/nav.png",
 				"point": {
-					"longitude": 117.022194,
-					"latitude": 36.661612,
+					"longitude": 117.05842197272015,
+					"latitude": 36.6773045110179,
 					"name": "山大中心校区起始点"
 				}
 			},
@@ -146,28 +310,29 @@ index卡片URL参数:type=团建活动&btnText=进入活动
 				"type": 3,
 				"pathImg": "/static/common/sdbtqxq.png",
 				"path": {
-					"ocaId": 1,
+					"ocaId": 19,
 					"mcType": 3
 				},
 				"navImg": "/static/common/nav.png",
 				"point": {
-					"longitude": 117.022194,
-					"latitude": 36.661612,
+					"longitude": 117.01808165974633,
+					"latitude": 36.651520245517816,
 					"name": "山大趵突泉校区起始点"
 				}
 			}
 		],
-		"row2": [{
+		"row2": [
+			{
 				"type": 3,
 				"pathImg": "/static/common/sdhjlxq.png",
 				"path": {
-					"ocaId": 1,
+					"ocaId": 10,
 					"mcType": 3
 				},
 				"navImg": "/static/common/nav.png",
 				"point": {
-					"longitude": 117.022194,
-					"latitude": 36.661612,
+					"longitude": 117.06584701149195,
+					"latitude": 36.68711365814297,
 					"name": "山大洪家楼校区起始点"
 				}
 			},
@@ -175,74 +340,237 @@ index卡片URL参数:type=团建活动&btnText=进入活动
 				"type": 3,
 				"pathImg": "/static/common/sdrjyxq.png",
 				"path": {
-					"ocaId": 1,
+					"ocaId": 21,
 					"mcType": 3
 				},
 				"navImg": "/static/common/nav.png",
 				"point": {
-					"longitude": 117.022194,
-					"latitude": 36.661612,
+					"longitude": 117.1434547046918,
+					"latitude": 36.66680223258383,
 					"name": "山大软件园校区起始点"
 				}
 			}
 		],
-		"row3": [{
+		"row3": [
+			{
 				"type": 3,
 				"pathImg": "/static/common/sdxlsxq.png",
 				"path": {
-					"ocaId": 1,
+					"ocaId": 11,
 					"mcType": 3
 				},
 				"navImg": "/static/common/nav.png",
 				"point": {
-					"longitude": 117.022194,
-					"latitude": 36.661612,
-					"name": "山大兴隆校区起始点"
+					"longitude": 117.0517531094238,
+					"latitude": 36.598365483441846,
+					"name": "山大兴隆校区起始点"
 				}
 			},
 			{
 				"type": 3,
 				"pathImg": "/static/common/sdqfsxq.png",
 				"path": {
-					"ocaId": 1,
+					"ocaId": 20,
 					"mcType": 3
 				},
 				"navImg": "/static/common/nav.png",
 				"point": {
-					"longitude": 117.022194,
-					"latitude": 36.661612,
+					"longitude": 117.0281052458668,
+					"latitude": 36.64736827526403,
 					"name": "山大千佛山校区起始点"
 				}
 			}
 		]
 	},
-	"pathListStyle" : {
-		"showLine" : true,
+	"pathListStyle": {
+		"showLine": true,
 		"style": "justify-content: flex-start;"
 	},
-	"popupDataList": [{
+	"popupRuleConfig": {
+		"height": "500px"
+	},
+	"popupDataList": [
+		{
 			"type": 1,
 			"data": {
-				"title": "山大校园定向赛",
+				"title": "山大24级新生校园定向赛",
 				"img": "/static/logo/sddx.png",
-				"content": "  开学季来袭!山大校园定向赛燃情启幕!探索校园每一个角落,挑战智慧与体能,全校师生共同开启新学期活力篇章!等你来挑战!"
+				"content": "  开学季来袭!山大24级新生校园定向赛燃情启幕!探索校园每一个角落,挑战智慧与体能,全校师生共同开启新学期活力篇章!等你来挑战!"
 			}
 		},
+		{
+			"type": 7,
+			"data": {
+				"topLogo": {
+					"src": "/static/logo/sddx.png",
+					"width": "80px",
+					"height": "80px"
+				},
+				"bottomLogo": {
+					"src": "/static/logo/inzone.png",
+					"width": "150px",
+					"height": "30px"
+				},
+				"title": "活动流程",
+				"content": "<br>① 起点打点 → ② 依次打点 → ③ 接受挑战 <br><br>④ 终点打点 → ⑤ 查看成绩 → ⑥ 赢取奖励",
+				"imageList": []
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"topLogo": {
+					"src": "/static/logo/sddx.png",
+					"width": "80px",
+					"height": "80px"
+				},
+				"bottomLogo": {
+					"src": "/static/logo/inzone.png",
+					"width": "150px",
+					"height": "30px"
+				},
+				"title": "赛事规则",
+				"content": "<p style='margin-bottom:12px;'>① 选择所在校区,参赛时间自由、路线随机</p> <p style='margin-bottom:12px;'>② 准确填报院系,共筑个人与院系荣耀</p> <p style='margin-bottom:12px;'>③ 打点1次1积分,途经点正确答题1积分,多次完赛,点数累加</p> <p style='margin-bottom:12px;'>④ 正常完赛累计积分,未完赛积分不计入</p>",
+				"imageList": []
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"topLogo": {
+					"src": "/static/logo/sddx.png",
+					"width": "80px",
+					"height": "80px"
+				},
+				"bottomLogo": {
+					"src": "/static/logo/inzone.png",
+					"width": "150px",
+					"height": "30px"
+				},
+				"title": "赛事奖励1",
+				"content": "团队奖:<br>院系累计积分前8名; <text style='color:red;'>奖励</text>:团队奖杯 <br><br>个人奖:<br>各校区累计积分前10名;<text style='color:red;'>奖励</text>:荣誉证书完赛者均可获得参赛证书。<br> <text style='color:#A6A6A6;'>(赛事结束后体育委员会自APP颁发)</text>",
+				"imageList": []
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"topLogo": {
+					"src": "/static/logo/sddx.png",
+					"width": "80px",
+					"height": "80px"
+				},
+				"bottomLogo": {
+					"src": "/static/logo/inzone.png",
+					"width": "150px",
+					"height": "30px"
+				},
+				"title": "赛事奖励2",
+				"content": "<p style='margin-bottom:12px;'>外部奖励:<br>各校区前10名获银座集团价值<text style='color:red;'>200元</text>进阶宠爱大礼。</p> <p style='margin-bottom:12px;'>完赛一次,可获银座价值<text style='color:red;'>50元</text>新生宠爱盲盒。<text style='color:#A6A6A6;'>(数量有限,发完为止)</text></p>每获25积分,可获银座<text style='color:red;'>100减10</text>优惠券1张。封顶5张,可与店内优惠叠加使用。<br><text style='color:#A6A6A6;'>(部分商品、特殊特例商品除外)</text>",
+				"imageList": []
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "安全提示",
+				"content": "<br><text style='color:#FFBA99; font-size: 20px; margin-right: 5px;'>●</text> 避免聚集,注意安全<br><br> <text style='color:#FFBA99; font-size: 20px; margin-right: 5px;'>●</text> 评估自身健康,适时参与<br><br> <text style='color:#FFBA99; font-size: 20px; margin-right: 5px;'>●</text> 注意交通与场地安全",
+				"imageList": [{
+					"src": "/static/backgroud/shanda.png",
+					"width": "300px",
+					"height": "150px"
+				}]
+			}
+		},								
 		{
 			"type": 2,
 			"data": {
-				"title": "规则",
-				"img": "/static/common/guize.png"
+				"title": "基本图例",
+				"img": "/static/common/jbtl.png"
 			}
 		},
 		{
 			"type": 2,
 			"data": {
-				"title": "奖励",
-				"img": "/static/common/jiangli.png"
+				"title": "基本标识",
+				"img": "/static/common/jbbs2.png"
 			}
 		},
-		"default"
+		{
+			"type": 7,
+			"data": {
+				"topLogo": {
+					"src": "/static/logo/sddx.png",
+					"width": "80px",
+					"height": "80px"
+				},
+				"bottomLogo": {
+					"src": "/static/logo/inzone.png",
+					"width": "150px",
+					"height": "30px"
+				},
+				"title": "山大定向赛咨询群",
+				"content": "",
+				"imageList": [{
+					"src": "/static/common/qrcode_sddxszxq.png",
+					"width": "116px",
+					"height": "116px"
+				}],
+				"memo": "<view style='display:block; text-align:center;'>赛事规程、流程、奖励咨询 <br><view style='color:#808080; font-size:12px'>(7*24小时解答)</view></view>"
+			}
+		},
+		{
+			"type": 8,
+			"data": {
+				"title": "兑换地点",
+				"topImg": {
+					"src": "/static/logo/inzone2.png",
+					"width": "72px",
+					"height": "72px"
+				},
+				"topMemo": "<view style='color:#E60012;font-size:14px;'>品质消费引领者 &nbsp; &nbsp; 美好生活推荐官</view>",
+				"bottomMemo": "<view style='display: block; margin-top: 20px; text-align: center; font-weight: 500; font-size: 14px;'>优惠券使用说明</view>",
+				"bottomMemoUrl": "https://oss-mbh5.colormaprun.com/page/explanation/inzone.html",
+				"pointList": [
+					{
+						"map": "中 心 校 区",
+						"name": "银座燕山店",
+						"longitude": 117.075174,
+						"latitude": 36.654108
+					},
+					{
+						"map": "洪家楼校区",
+						"name": "银座洪楼店",
+						"longitude": 117.062653,
+						"latitude": 36.684249
+					},
+					{
+						"map": "兴隆山校区",
+						"name": "银座七里山店",
+						"longitude": 117.004617,
+						"latitude": 36.613655
+					},
+					{
+						"map": "趵突泉校区",
+						"name": "银座泉城广场店",
+						"longitude": 117.023766,
+						"latitude": 36.661532
+					},
+					{
+						"map": "千佛山校区",
+						"name": "银座玉函店",
+						"longitude": 117.014735,
+						"latitude": 36.647098
+					},
+					{
+						"map": "软件园校区",
+						"name": "银座高新店",
+						"longitude": 117.122241,
+						"latitude": 36.682175
+					}
+				]
+			}
+		}
 	]
 },
 "rankList": {
@@ -280,41 +608,247 @@ index卡片URL参数:type=团建活动&btnText=进入活动
 			background: #a43a07 !important;
 		}
 	",
-	"tabActiveColor": "#ff870d",
-	"popupDataList": [{
+	"tabActiveColor": "#a43a07",
+	"popupRuleConfig": {
+		"height": "500px"
+	},
+	"popupDataList": [								
+		{
 			"type": 1,
 			"data": {
-				"title": "山大校园定向赛",
+				"title": "山大24级新生校园定向赛",
 				"img": "/static/logo/sddx.png",
-				"content": "  开学季来袭!山大校园定向赛燃情启幕!探索校园每一个角落,挑战智慧与体能,全校师生共同开启新学期活力篇章!等你来挑战!"
+				"content": "  开学季来袭!山大24级新生校园定向赛燃情启幕!探索校园每一个角落,挑战智慧与体能,全校师生共同开启新学期活力篇章!等你来挑战!"
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"topLogo": {
+					"src": "/static/logo/sddx.png",
+					"width": "80px",
+					"height": "80px"
+				},
+				"bottomLogo": {
+					"src": "/static/logo/inzone.png",
+					"width": "150px",
+					"height": "30px"
+				},
+				"title": "活动流程",
+				"content": "<br>① 起点打点 → ② 依次打点 → ③ 接受挑战 <br><br>④ 终点打点 → ⑤ 查看成绩 → ⑥ 赢取奖励",
+				"imageList": []
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"topLogo": {
+					"src": "/static/logo/sddx.png",
+					"width": "80px",
+					"height": "80px"
+				},
+				"bottomLogo": {
+					"src": "/static/logo/inzone.png",
+					"width": "150px",
+					"height": "30px"
+				},
+				"title": "赛事规则",
+				"content": "<p style='margin-bottom:12px;'>① 选择所在校区,参赛时间自由、路线随机</p> <p style='margin-bottom:12px;'>② 准确填报院系,共筑个人与院系荣耀</p> <p style='margin-bottom:12px;'>③ 打点1次1积分,途经点正确答题1积分,多次完赛,点数累加</p> <p style='margin-bottom:12px;'>④ 正常完赛累计积分,未完赛积分不计入</p>",
+				"imageList": []
 			}
 		},
+		{
+			"type": 7,
+			"data": {
+				"topLogo": {
+					"src": "/static/logo/sddx.png",
+					"width": "80px",
+					"height": "80px"
+				},
+				"bottomLogo": {
+					"src": "/static/logo/inzone.png",
+					"width": "150px",
+					"height": "30px"
+				},
+				"title": "赛事奖励1",
+				"content": "团队奖:<br>院系累计积分前8名; <text style='color:red;'>奖励</text>:团队奖杯 <br><br>个人奖:<br>各校区累计积分前10名;<text style='color:red;'>奖励</text>:荣誉证书完赛者均可获得参赛证书。<br> <text style='color:#A6A6A6;'>(赛事结束后体育委员会自APP颁发)</text>",
+				"imageList": []
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"topLogo": {
+					"src": "/static/logo/sddx.png",
+					"width": "80px",
+					"height": "80px"
+				},
+				"bottomLogo": {
+					"src": "/static/logo/inzone.png",
+					"width": "150px",
+					"height": "30px"
+				},
+				"title": "赛事奖励2",
+				"content": "<p style='margin-bottom:12px;'>外部奖励:<br>各校区前10名获银座集团价值<text style='color:red;'>200元</text>进阶宠爱大礼。</p> <p style='margin-bottom:12px;'>完赛一次,可获银座价值<text style='color:red;'>50元</text>新生宠爱盲盒。<text style='color:#A6A6A6;'>(数量有限,发完为止)</text></p>每获25积分,可获银座<text style='color:red;'>100减10</text>优惠券1张。封顶5张,可与店内优惠叠加使用。<br><text style='color:#A6A6A6;'>(部分商品、特殊特例商品除外)</text>",
+				"imageList": []
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "安全提示",
+				"content": "<br><text style='color:#FFBA99; font-size: 20px; margin-right: 5px;'>●</text> 避免聚集,注意安全<br><br> <text style='color:#FFBA99; font-size: 20px; margin-right: 5px;'>●</text> 评估自身健康,适时参与<br><br> <text style='color:#FFBA99; font-size: 20px; margin-right: 5px;'>●</text> 注意交通与场地安全",
+				"imageList": [{
+					"src": "/static/backgroud/shanda.png",
+					"width": "300px",
+					"height": "150px"
+				}]
+			}
+		},								
 		{
 			"type": 2,
 			"data": {
-				"title": "规则",
-				"img": "/static/common/guize.png"
+				"title": "基本图例",
+				"img": "/static/common/jbtl.png"
 			}
 		},
 		{
 			"type": 2,
 			"data": {
-				"title": "奖励",
-				"img": "/static/common/jiangli.png"
+				"title": "基本标识",
+				"img": "/static/common/jbbs2.png"
 			}
 		},
-		"default"
+		{
+			"type": 7,
+			"data": {
+				"topLogo": {
+					"src": "/static/logo/sddx.png",
+					"width": "80px",
+					"height": "80px"
+				},
+				"bottomLogo": {
+					"src": "/static/logo/inzone.png",
+					"width": "150px",
+					"height": "30px"
+				},
+				"title": "山大定向赛咨询群",
+				"content": "",
+				"imageList": [{
+					"src": "/static/common/qrcode_sddxszxq.png",
+					"width": "116px",
+					"height": "116px"
+				}],
+				"memo": "<view style='display:block; text-align:center;'>赛事规程、流程、奖励咨询 <br><view style='color:#808080; font-size:12px'>(7*24小时解答)</view></view>"
+			}
+		},
+		{
+			"type": 8,
+			"data": {
+				"title": "兑换地点",
+				"topImg": {
+					"src": "/static/logo/inzone2.png",
+					"width": "72px",
+					"height": "72px"
+				},
+				"topMemo": "<view style='color:#E60012;font-size:14px;'>品质消费引领者 &nbsp; &nbsp; 美好生活推荐官</view>",
+				"bottomMemo": "<view style='display: block; margin-top: 20px; text-align: center; font-weight: 500; font-size: 14px;'>优惠券使用说明</view>",
+				"bottomMemoUrl": "https://oss-mbh5.colormaprun.com/page/explanation/inzone.html",
+				"pointList": [
+					{
+						"map": "中 心 校 区",
+						"name": "银座燕山店",
+						"longitude": 117.075174,
+						"latitude": 36.654108
+					},
+					{
+						"map": "洪家楼校区",
+						"name": "银座洪楼店",
+						"longitude": 117.062653,
+						"latitude": 36.684249
+					},
+					{
+						"map": "兴隆山校区",
+						"name": "银座七里山店",
+						"longitude": 117.004617,
+						"latitude": 36.613655
+					},
+					{
+						"map": "趵突泉校区",
+						"name": "银座泉城广场店",
+						"longitude": 117.023766,
+						"latitude": 36.661532
+					},
+					{
+						"map": "千佛山校区",
+						"name": "银座玉函店",
+						"longitude": 117.014735,
+						"latitude": 36.647098
+					},
+					{
+						"map": "软件园校区",
+						"name": "银座高新店",
+						"longitude": 117.122241,
+						"latitude": 36.682175
+					}
+				]
+			}
+		}
 	],
-	"popupExchgList": [{
-			"type": 5,
+	"popupExchgConfig": {
+		"height": "500px"
+	},
+	"popupExchgList": [
+		{
+			"type": 8,
 			"data": {
 				"title": "兑换地点",
-				"img": "/static/common/wslgwcs.png",
-				"point": {
-					"longitude": 117.022194,
-					"latitude": 36.661612,
-					"name": "万盛隆购物超市"
-				}
+				"topImg": {
+					"src": "/static/logo/inzone2.png",
+					"width": "72px",
+					"height": "72px"
+				},
+				"topMemo": "<view style='color:#E60012;font-size:14px;'>品质消费引领者 &nbsp; &nbsp; 美好生活推荐官</view>",
+				"bottomMemo": "<view style='display: block; margin-top: 20px; text-align: center; font-weight: 500; font-size: 14px;'>优惠券使用说明</view>",
+				"bottomMemoUrl": "https://oss-mbh5.colormaprun.com/page/explanation/inzone.html",
+				"pointList": [
+					{
+						"map": "中 心 校 区",
+						"name": "银座燕山店",
+						"longitude": 117.075174,
+						"latitude": 36.654108
+					},
+					{
+						"map": "洪家楼校区",
+						"name": "银座洪楼店",
+						"longitude": 117.062653,
+						"latitude": 36.684249
+					},
+					{
+						"map": "兴隆山校区",
+						"name": "银座七里山店",
+						"longitude": 117.004617,
+						"latitude": 36.613655
+					},
+					{
+						"map": "趵突泉校区",
+						"name": "银座泉城广场店",
+						"longitude": 117.023766,
+						"latitude": 36.661532
+					},
+					{
+						"map": "千佛山校区",
+						"name": "银座玉函店",
+						"longitude": 117.014735,
+						"latitude": 36.647098
+					},
+					{
+						"map": "软件园校区",
+						"name": "银座高新店",
+						"longitude": 117.122241,
+						"latitude": 36.682175
+					}
+				]
 			}
 		}
 	],

+ 322 - 40
card/pages/bm/style4/rankList.vue

@@ -7,22 +7,35 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 	<view class="body">
 		<view class="content uni-column">
 			<view class="uni-column" :class="cssTop">
-				<my-topbar :mcName="mcName" :class="cssTopbarColor" :showMessage="popupMessageList.length > 0" 
+				<my-topbar :mcName="mcName" :class="cssTopbarColor" :showMessage="popupMessageList.length > 0"
 					@btnBackClick="btnBack" @btnInfoClick="btnInfo" @btnMessageClick="btnMessage"></my-topbar>
-				
+
 				<view class="topcontent uni-column uni-jcsa">
+					<view class="tcview uni-row uni-jcsb">
+						<view class="tcbox uni-column uni-jcc">
+							<text class="tcbox-label">赛事总里程</text>
+							<text class="tcbox-value">{{fmtDistanct(all_totalDistance)}} 千米</text>
+						</view>
+						<view class="tcbox uni-column uni-jcc">
+							<text class="tcbox-label">{{configParam.labelRightAnswerNum}}</text>
+							<text class="tcbox-value">{{all_totalAnswerNum}} 次</text>
+						</view>
+					</view>
+				</view>
+
+				<!-- <view class="topcontent uni-column uni-jcsa">
 					<view class="logo"></view>
 					<view class="tcbar uni-row uni-jcsb">
 						<text class="tcbar-text">赛事总里程:{{fmtDistanct(all_totalDistance)}} 千米</text>
-						<text class="tcbar-text">{{configParam.labelRightAnswerNum}}:{{all_totalRightAnswerNum}} 次</text>
+						<text class="tcbar-text">{{configParam.labelRightAnswerNum}}:{{all_totalAnswerNum}} 次</text>
 					</view>
-				</view>
+				</view> -->
 
-				<!-- <view class="topbtm uni-row">
-					<view class="topbtm-egg" @click="btnMyEgg">蛋叔券</view>
+				<view class="topbtm uni-row">
+					<view class="topbtm-egg" @click="btnMyEgg">我的奖券</view>
 					<text class="topbtm-name">{{nickName}}</text>
-					<view class="topbtm-egg" @click="btnExchg">兑换地址</view>
-				</view> -->
+					<view class="topbtm-egg" @click="btnExchg">兑地址</view>
+				</view>
 			</view>
 			<view class="main uni-column">
 				<my-tab ref="tab1" :tabItems="tab1Items" :type="1" @onTabClick="onTab1Click"
@@ -48,8 +61,8 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 				<!-- <button class="btnBack" @click="btnBack">返回</button> -->
 			</view>
 
-			<my-popup ref="mypopup" :dataList="popupDataList" :acttime="acttime"></my-popup>
-			<my-popup ref="mypopupExchg" :dataList="popupExchgList"></my-popup>
+			<my-popup ref="mypopup" :config="popupRuleConfig" :dataList="popupDataList" :acttime="acttime"></my-popup>
+			<my-popup ref="mypopupExchg" :config="popupExchgConfig" :dataList="popupExchgList"></my-popup>
 			<my-popup ref="mypopupMessage" :dataList="popupMessageList"></my-popup>
 
 		</view>
@@ -102,6 +115,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 				mapList: [], // 卡片对应地图列表详情
 				all_totalDistance: 0, // 赛事所有人累计里程,单位米
 				all_totalRightAnswerNum: 0, // 赛事所有人正确答题数(校园文化输出)
+				all_totalAnswerNum: 0, // 赛事所有人答题数(校园文化输出)
 				all_totalCp: 0, // 赛事中所有人打点数
 				all_totalSysPoint: 0, // 赛事中所有人百味豆
 
@@ -131,7 +145,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 				// 	]}
 				// ],
 				// tab2Items: ["打点数", "总里程", "百味豆", "配速"],
-				tab2Items: ["累计积分", "总里程", "校园文化", "最快配速", "单场用时"],
+				tab2Items: ["积分", "总里程", "校园文化", "最快配速", "单场用时"],
 				tab2ItemsMark: [{
 					textColor: "#ff6203",
 					icon: "static/common/award.png"
@@ -151,6 +165,8 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 					labelRightAnswerNum: "文化输出"
 				},
 				// selectedMapId: 0, // 用户选择的地图ID
+				popupRuleConfig: {}, // 规则弹窗配置
+				popupExchgConfig: {}, // 兑换地址弹窗配置
 				popupDataList: [],
 				popupExchgList: [],
 				popupMessageList: [],
@@ -178,7 +194,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 
 			this.messageKey += "-" + this.ecId;
 			console.log("messageKey:", this.messageKey);
-			
+
 			tools.removeCssCode();
 
 			const mapValue = uni.getStorageSync(this.mapKey);
@@ -294,7 +310,21 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 				if (tabActiveColor != undefined && tabActiveColor.length > 0) {
 					this.tabActiveColor = tabActiveColor;
 				}
+				
+				// 加载规则弹窗配置
+				const popupRuleConfig = config.popupRuleConfig;
+				if (popupRuleConfig != undefined) {
+					this.popupRuleConfig = popupRuleConfig;
+				}
+				// console.log("[loadConfig] popupRuleConfig:", this.popupRuleConfig);
 
+				// 加载兑换地址弹窗配置
+				const popupExchgConfig = config.popupExchgConfig;
+				if (popupExchgConfig != undefined) {
+					this.popupExchgConfig = popupExchgConfig;
+				}
+				// console.log("[loadConfig] popupExchgConfig:", this.popupExchgConfig);
+				
 				// 加载弹窗数据
 				const popupDataList = config.popupDataList;
 				// console.log("[loadConfig] popupDataList:", popupDataList);
@@ -324,7 +354,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 					}
 				}
 				// console.log("[loadConfig] popupExchgList:", this.popupExchgList);
-				
+
 				// 加载页面参数
 				const param = config.param;
 				if (param != undefined) {
@@ -423,30 +453,251 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 								}
 							`,
 							"tabActiveColor": "#a43a07",
-							"popupDataList": [{
+							"popupRuleConfig": {
+								"height": "500px"
+							},
+							"popupDataList": [								
+								{
 									"type": 1,
 									"data": {
-										"title": "山大校园定向赛",
+										"title": "山大24级新生校园定向赛",
 										"img": "/static/logo/sddx.png",
-										"content": "  开学季来袭!山大校园定向赛燃情启幕!探索校园每一个角落,挑战智慧与体能,全校师生共同开启新学期活力篇章!等你来挑战!"
+										"content": "  开学季来袭!山大24级新生校园定向赛燃情启幕!探索校园每一个角落,挑战智慧与体能,全校师生共同开启新学期活力篇章!等你来挑战!"
 									}
 								},
-								"default"
-							],
-							"popupExchgList": [{
-								"type": 5,
-								"data": {
-									"title": "兑换地点",
-									"img": "/static/common/wslgwcs.png",
-									"point": {
-										"longitude": 117.022194,
-										"latitude": 36.661612,
-										"name": "万盛隆购物超市"
+								{
+									"type": 7,
+									"data": {
+										"topLogo": {
+											"src": "/static/logo/sddx.png",
+											"width": "80px",
+											"height": "80px"
+										},
+										"bottomLogo": {
+											"src": "/static/logo/inzone.png",
+											"width": "150px",
+											"height": "30px"
+										},
+										"title": "活动流程",
+										"content": "<br>① 起点打点 → ② 依次打点 → ③ 接受挑战 <br><br>④ 终点打点 → ⑤ 查看成绩 → ⑥ 赢取奖励",
+										"imageList": []
+									}
+								},
+								{
+									"type": 7,
+									"data": {
+										"topLogo": {
+											"src": "/static/logo/sddx.png",
+											"width": "80px",
+											"height": "80px"
+										},
+										"bottomLogo": {
+											"src": "/static/logo/inzone.png",
+											"width": "150px",
+											"height": "30px"
+										},
+										"title": "赛事规则",
+										"content": "<p style='margin-bottom:12px;'>① 选择所在校区,参赛时间自由、路线随机</p> <p style='margin-bottom:12px;'>② 准确填报院系,共筑个人与院系荣耀</p> <p style='margin-bottom:12px;'>③ 打点1次1积分,途经点正确答题1积分,多次完赛,点数累加</p> <p style='margin-bottom:12px;'>④ 正常完赛累计积分,未完赛积分不计入</p>",
+										"imageList": []
+									}
+								},
+								{
+									"type": 7,
+									"data": {
+										"topLogo": {
+											"src": "/static/logo/sddx.png",
+											"width": "80px",
+											"height": "80px"
+										},
+										"bottomLogo": {
+											"src": "/static/logo/inzone.png",
+											"width": "150px",
+											"height": "30px"
+										},
+										"title": "赛事奖励1",
+										"content": "团队奖:<br>院系累计积分前8名; <text style='color:red;'>奖励</text>:团队奖杯 <br><br>个人奖:<br>各校区累计积分前10名;<text style='color:red;'>奖励</text>:荣誉证书完赛者均可获得参赛证书。<br> <text style='color:#A6A6A6;'>(赛事结束后体育委员会自APP颁发)</text>",
+										"imageList": []
+									}
+								},
+								{
+									"type": 7,
+									"data": {
+										"topLogo": {
+											"src": "/static/logo/sddx.png",
+											"width": "80px",
+											"height": "80px"
+										},
+										"bottomLogo": {
+											"src": "/static/logo/inzone.png",
+											"width": "150px",
+											"height": "30px"
+										},
+										"title": "赛事奖励2",
+										"content": "<p style='margin-bottom:12px;'>外部奖励:<br>各校区前10名获银座集团价值<text style='color:red;'>200元</text>进阶宠爱大礼。</p> <p style='margin-bottom:12px;'>完赛一次,可获银座价值<text style='color:red;'>50元</text>新生宠爱盲盒。<text style='color:#A6A6A6;'>(数量有限,发完为止)</text></p>每获25积分,可获银座<text style='color:red;'>100减10</text>优惠券1张。封顶5张,可与店内优惠叠加使用。<br><text style='color:#A6A6A6;'>(部分商品、特殊特例商品除外)</text>",
+										"imageList": []
+									}
+								},
+								{
+									"type": 7,
+									"data": {
+										"title": "安全提示",
+										"content": "<br><text style='color:#FFBA99; font-size: 20px; margin-right: 5px;'>●</text> 避免聚集,注意安全<br><br> <text style='color:#FFBA99; font-size: 20px; margin-right: 5px;'>●</text> 评估自身健康,适时参与<br><br> <text style='color:#FFBA99; font-size: 20px; margin-right: 5px;'>●</text> 注意交通与场地安全",
+										"imageList": [{
+											"src": "/static/backgroud/shanda.png",
+											"width": "300px",
+											"height": "150px"
+										}]
+									}
+								},								
+								{
+									"type": 2,
+									"data": {
+										"title": "基本图例",
+										"img": "/static/common/jbtl.png"
+									}
+								},
+								{
+									"type": 2,
+									"data": {
+										"title": "基本标识",
+										"img": "/static/common/jbbs2.png"
+									}
+								},
+								{
+									"type": 7,
+									"data": {
+										"topLogo": {
+											"src": "/static/logo/sddx.png",
+											"width": "80px",
+											"height": "80px"
+										},
+										"bottomLogo": {
+											"src": "/static/logo/inzone.png",
+											"width": "150px",
+											"height": "30px"
+										},
+										"title": "山大定向赛咨询群",
+										"content": "",
+										"imageList": [{
+											"src": "/static/common/qrcode_sddxszxq.png",
+											"width": "116px",
+											"height": "116px"
+										}],
+										"memo": "<view style='display:block; text-align:center;'>赛事规程、流程、奖励咨询 <br><view style='color:#808080; font-size:12px'>(7*24小时解答)</view></view>"
+									}
+								},
+								{
+									"type": 8,
+									"data": {
+										"title": "兑换地点",
+										"topImg": {
+											"src": "/static/logo/inzone2.png",
+											"width": "72px",
+											"height": "72px"
+										},
+										"topMemo": "<view style='color:#E60012;font-size:14px;'>品质消费引领者 &nbsp; &nbsp; 美好生活推荐官</view>",
+										"bottomMemo": "<view style='display: block; margin-top: 20px; text-align: center; font-weight: 500; font-size: 14px;'>优惠券使用说明</view>",
+										"bottomMemoUrl": "https://oss-mbh5.colormaprun.com/page/explanation/inzone.html",
+										"pointList": [
+											{
+												"map": "中 心 校 区",
+												"name": "银座燕山店",
+												"longitude": 117.075174,
+												"latitude": 36.654108
+											},
+											{
+												"map": "洪家楼校区",
+												"name": "银座洪楼店",
+												"longitude": 117.062653,
+												"latitude": 36.684249
+											},
+											{
+												"map": "兴隆山校区",
+												"name": "银座七里山店",
+												"longitude": 117.004617,
+												"latitude": 36.613655
+											},
+											{
+												"map": "趵突泉校区",
+												"name": "银座泉城广场店",
+												"longitude": 117.023766,
+												"latitude": 36.661532
+											},
+											{
+												"map": "千佛山校区",
+												"name": "银座玉函店",
+												"longitude": 117.014735,
+												"latitude": 36.647098
+											},
+											{
+												"map": "软件园校区",
+												"name": "银座高新店",
+												"longitude": 117.122241,
+												"latitude": 36.682175
+											}
+										]
 									}
 								}
-							}],
+							],
+							"popupExchgConfig": {
+								"height": "500px"
+							},
+							"popupExchgList": [
+								{
+									"type": 8,
+									"data": {
+										"title": "兑换地点",
+										"topImg": {
+											"src": "/static/logo/inzone2.png",
+											"width": "72px",
+											"height": "72px"
+										},
+										"topMemo": "<view style='color:#E60012;font-size:14px;'>品质消费引领者 &nbsp; &nbsp; 美好生活推荐官</view>",
+										"bottomMemo": "<view style='display: block; margin-top: 20px; text-align: center; font-weight: 500; font-size: 14px;'>优惠券使用说明</view>",
+										"bottomMemoUrl": "https://oss-mbh5.colormaprun.com/page/explanation/inzone.html",
+										"pointList": [
+											{
+												"map": "中 心 校 区",
+												"name": "银座燕山店",
+												"longitude": 117.075174,
+												"latitude": 36.654108
+											},
+											{
+												"map": "洪家楼校区",
+												"name": "银座洪楼店",
+												"longitude": 117.062653,
+												"latitude": 36.684249
+											},
+											{
+												"map": "兴隆山校区",
+												"name": "银座七里山店",
+												"longitude": 117.004617,
+												"latitude": 36.613655
+											},
+											{
+												"map": "趵突泉校区",
+												"name": "银座泉城广场店",
+												"longitude": 117.023766,
+												"latitude": 36.661532
+											},
+											{
+												"map": "千佛山校区",
+												"name": "银座玉函店",
+												"longitude": 117.014735,
+												"latitude": 36.647098
+											},
+											{
+												"map": "软件园校区",
+												"name": "银座高新店",
+												"longitude": 117.122241,
+												"latitude": 36.682175
+											}
+										]
+									}
+								},
+							],
 							"param": {
-								"labelRightAnswerNum": "校园文化输出"
+								"labelRightAnswerNum": "文化输出"
 							}
 						}; */
 
@@ -609,6 +860,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 							const data = res.data.data;
 							this.all_totalDistance = data.totalDistance;
 							this.all_totalRightAnswerNum = data.totalRightAnswerNum;
+							this.all_totalAnswerNum = data.totalAnswerNum;
 							this.all_totalCp = data.totalCp;
 							this.all_totalSysPoint = data.totalSysPoint;
 						}
@@ -706,7 +958,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 					},
 					method: "POST",
 					data: {
-						relationType: 2,	// 类型 1 成就 2 卡片
+						relationType: 2, // 类型 1 成就 2 卡片
 						relationId: this.ecId
 					},
 					success: (res) => {
@@ -717,7 +969,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 							this.mqIdListStr = "";
 							for (var i = 0; i < unReadMessageRs.length; i++) {
 								let popupData = {
-									type: 6,	// 6: 通知
+									type: 6, // 6: 通知
 									data: {}
 								};
 								this.messageKey += "-" + unReadMessageRs[i].mqId;
@@ -725,13 +977,13 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 								popupData.data.title = unReadMessageRs[i].mqTitle;
 								popupData.data.message = unReadMessageRs[i].mqMessage;
 								this.popupMessageList.push(popupData);
-			
+
 								// this.mqIdListStr += this.unReadMessageRs[i].mqId;
 								// if (i < this.unReadMessageRs.length - 1) {
 								// 	this.mqIdListStr += ",";
 								// }
 							}
-			
+
 							if (this.popupMessageList.length > 0) {
 								const messageValue = uni.getStorageSync(this.messageKey);
 								console.log("messageValue:", messageValue);
@@ -813,7 +1065,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 				// console.log("onSelectChange: ", val);
 				this.ocaId = val.value;
 				this.getCardRankDetailQuery();
-				
+
 				uni.setStorageSync(this.mapKey, this.ocaId);
 			},
 		}
@@ -840,7 +1092,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 	.topcontent {
 		width: 90%;
 		/* height: 90%; */
-		margin-bottom: 20px;
+		/* margin-bottom: 20px; */
 	}
 
 	.logo {
@@ -855,6 +1107,34 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 		background-size: contain;
 	}
 
+	.tcview {
+		width: 90%;
+		/* height: 100px; */
+	}
+
+	.tcbox {
+		width: 121px;
+		height: 63px;
+		opacity: 1;
+		border-radius: 6px;
+		background: #9A300E;
+		border: 1px solid #D3A254;
+	}
+
+	.tcbox-label {
+		font-size: 12px;
+		font-weight: 500;
+		line-height: 23px;
+		color: #f3d809;
+	}
+
+	.tcbox-value {
+		font-size: 16px;
+		font-weight: 500;
+		line-height: 26px;
+		color: #f3d809;
+	}
+
 	.tcbar {
 		display: none;
 		width: 92%;
@@ -883,19 +1163,21 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 
 	.topbtm-name {
 		padding: 3px 12px;
-		background-color: #9fda39;
-		border-radius: 5px;
+		background-color: #9A300E;
+		border: 1px solid #D3A254;
+		border-radius: 6px;
 		text-align: center;
 		font-weight: 500;
-		color: #497400;
+		color: #ffffff;
 		font-size: 14px;
 	}
 
 	.topbtm-egg {
 		width: 60px;
 		padding: 3px 12px;
-		background-color: #c6690a;
-		border-radius: 50px;
+		background-color: #9A300E;
+		border: 1px solid #D3A254;
+		border-radius: 6px;
 		text-align: center;
 		color: #ffffff;
 		font-size: 14px;

+ 218 - 44
card/pages/bm/style4/rankOverview.vue

@@ -59,7 +59,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 				<button class="btnStartGame" @click="btnStartGame">开始比赛</button>
 			</view>
 			
-			<my-popup ref="mypopup" :dataList="popupDataList" :acttime="acttime"></my-popup>
+			<my-popup ref="mypopup" :config="popupRuleConfig" :dataList="popupDataList" :acttime="acttime"></my-popup>
 			<!-- <my-popup-map ref="mypopupmap" :point="navPoint"></my-popup-map> -->
 		</view>
 	</view>
@@ -127,6 +127,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 				cssTopbarColor: "",
 				pathList: {},
 				pathListStyle: {},
+				popupRuleConfig: {}, // 规则弹窗配置
 				popupDataList: [],
 				navPoint: {},
 			}
@@ -298,6 +299,13 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 					this.pathListStyle = pathListStyle;
 				}
 
+				// 加载规则弹窗配置
+				const popupRuleConfig = config.popupRuleConfig;
+				if (popupRuleConfig != undefined) {
+					this.popupRuleConfig = popupRuleConfig;
+				}
+				// console.log("[loadConfig] popupRuleConfig:", this.popupRuleConfig);
+				
 				// 加载弹窗数据
 				const popupDataList = config.popupDataList;
 				// console.log("[loadConfig] popupDataList:", popupDataList);
@@ -415,89 +423,92 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 								}
 							`,
 							"pathList": {
-								"row1": [{
-										"type": 3, // 1: 比赛路线  2: 导航到指定地点  3: 比赛路线 + 导航
+								 "row1": [
+									{
+										"type": 3,
 										"pathImg": "/static/common/sdzxxq.png",
 										"path": {
-											"ocaId": 17,
-											"mcType": 3 // 赛事类型 1 普通活动 2 线下赛 3 线上赛
+											"ocaId": 9,
+											"mcType": 3
 										},
 										"navImg": "/static/common/nav.png",
 										"point": {
-											"longitude": 117.022194,
-											"latitude": 36.661612,
+											"longitude": 117.05842197272015,
+											"latitude": 36.6773045110179,
 											"name": "山大中心校区起始点"
 										}
 									},
 									{
-										"type": 3, // 1: 比赛路线  2: 导航到指定地点  3: 比赛路线 + 导航
+										"type": 3,
 										"pathImg": "/static/common/sdbtqxq.png",
 										"path": {
-											"ocaId": 13,
-											"mcType": 3 // 赛事类型 1 普通活动 2 线下赛 3 线上赛
+											"ocaId": 19,
+											"mcType": 3
 										},
 										"navImg": "/static/common/nav.png",
 										"point": {
-											"longitude": 117.022194,
-											"latitude": 36.661612,
+											"longitude": 117.01808165974633,
+											"latitude": 36.651520245517816,
 											"name": "山大趵突泉校区起始点"
 										}
 									}
 								],
-								"row2": [{
-										"type": 3, // 1: 比赛路线  2: 导航到指定地点  3: 比赛路线 + 导航
+								"row2": [
+									{
+										"type": 3,
 										"pathImg": "/static/common/sdhjlxq.png",
 										"path": {
-											"ocaId": 15,
-											"mcType": 3 // 赛事类型 1 普通活动 2 线下赛 3 线上赛
+											"ocaId": 10,
+											"mcType": 3
 										},
 										"navImg": "/static/common/nav.png",
 										"point": {
-											"longitude": 117.022194,
-											"latitude": 36.661612,
+											"longitude": 117.06584701149195,
+											"latitude": 36.68711365814297,
 											"name": "山大洪家楼校区起始点"
 										}
 									},
 									{
-										"type": 3, // 1: 比赛路线  2: 导航到指定地点  3: 比赛路线 + 导航
+										"type": 3,
 										"pathImg": "/static/common/sdrjyxq.png",
 										"path": {
-											"ocaId": 14,
-											"mcType": 3 // 赛事类型 1 普通活动 2 线下赛 3 线上赛
+											"ocaId": 21,
+											"mcType": 3
 										},
 										"navImg": "/static/common/nav.png",
 										"point": {
-											"longitude": 117.022194,
-											"latitude": 36.661612,
+											"longitude": 117.1434547046918,
+											"latitude": 36.66680223258383,
 											"name": "山大软件园校区起始点"
 										}
 									}
 								],
-								"row3": [{
-										"type": 3, // 1: 比赛路线  2: 导航到指定地点  3: 比赛路线 + 导航
+								"row3": [
+									{
+										"type": 3,
 										"pathImg": "/static/common/sdxlsxq.png",
 										"path": {
-											"ocaId": 18,
-											"mcType": 3 // 赛事类型 1 普通活动 2 线下赛 3 线上赛
+											"ocaId": 11,
+											"mcType": 3
 										},
 										"navImg": "/static/common/nav.png",
 										"point": {
-											"longitude": 117.022194,
-											"latitude": 36.661612,
-											"name": "山大兴隆校区起始点"
+											"longitude": 117.0517531094238,
+											"latitude": 36.598365483441846,
+											"name": "山大兴隆校区起始点"
 										}
 									},
 									{
-										"type": 3, // 1: 比赛路线  2: 导航到指定地点  3: 比赛路线 + 导航
+										"type": 3,
 										"pathImg": "/static/common/sdqfsxq.png",
 										"path": {
-											"ocaId": 16,
-											"mcType": 3 // 赛事类型 1 普通活动 2 线下赛 3 线上赛
+											"ocaId": 20,
+											"mcType": 3
 										},
 										"navImg": "/static/common/nav.png",
 										"point": {
-											"longitude": 117.022194,
-											"latitude": 36.661612,
+											"longitude": 117.0281052458668,
+											"latitude": 36.64736827526403,
 											"name": "山大千佛山校区起始点"
 										}
 									}
@@ -507,28 +518,191 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 								"showLine": true,
 								"style": "justify-content: flex-start;"
 							},
-							"popupDataList": [{
+							"popupRuleConfig": {
+								"height": "500px"
+							},
+							"popupDataList": [
+								{
 									"type": 1,
 									"data": {
-										"title": "山大校园定向赛",
+										"title": "山大24级新生校园定向赛",
 										"img": "/static/logo/sddx.png",
-										"content": "  开学季来袭!山大校园定向赛燃情启幕!探索校园每一个角落,挑战智慧与体能,全校师生共同开启新学期活力篇章!等你来挑战!"
+										"content": "  开学季来袭!山大24级新生校园定向赛燃情启幕!探索校园每一个角落,挑战智慧与体能,全校师生共同开启新学期活力篇章!等你来挑战!"
+									}
+								},
+								{
+									"type": 7,
+									"data": {
+										"topLogo": {
+											"src": "/static/logo/sddx.png",
+											"width": "80px",
+											"height": "80px"
+										},
+										"bottomLogo": {
+											"src": "/static/logo/inzone.png",
+											"width": "150px",
+											"height": "30px"
+										},
+										"title": "活动流程",
+										"content": "<br>① 起点打点 → ② 依次打点 → ③ 接受挑战 <br><br>④ 终点打点 → ⑤ 查看成绩 → ⑥ 赢取奖励",
+										"imageList": []
+									}
+								},
+								{
+									"type": 7,
+									"data": {
+										"topLogo": {
+											"src": "/static/logo/sddx.png",
+											"width": "80px",
+											"height": "80px"
+										},
+										"bottomLogo": {
+											"src": "/static/logo/inzone.png",
+											"width": "150px",
+											"height": "30px"
+										},
+										"title": "赛事规则",
+										"content": "<p style='margin-bottom:12px;'>① 选择所在校区,参赛时间自由、路线随机</p> <p style='margin-bottom:12px;'>② 准确填报院系,共筑个人与院系荣耀</p> <p style='margin-bottom:12px;'>③ 打点1次1积分,途经点正确答题1积分,多次完赛,点数累加</p> <p style='margin-bottom:12px;'>④ 正常完赛累计积分,未完赛积分不计入</p>",
+										"imageList": []
 									}
 								},
+								{
+									"type": 7,
+									"data": {
+										"topLogo": {
+											"src": "/static/logo/sddx.png",
+											"width": "80px",
+											"height": "80px"
+										},
+										"bottomLogo": {
+											"src": "/static/logo/inzone.png",
+											"width": "150px",
+											"height": "30px"
+										},
+										"title": "赛事奖励1",
+										"content": "团队奖:<br>院系累计积分前8名; <text style='color:red;'>奖励</text>:团队奖杯 <br><br>个人奖:<br>各校区累计积分前10名;<text style='color:red;'>奖励</text>:荣誉证书完赛者均可获得参赛证书。<br> <text style='color:#A6A6A6;'>(赛事结束后体育委员会自APP颁发)</text>",
+										"imageList": []
+									}
+								},
+								{
+									"type": 7,
+									"data": {
+										"topLogo": {
+											"src": "/static/logo/sddx.png",
+											"width": "80px",
+											"height": "80px"
+										},
+										"bottomLogo": {
+											"src": "/static/logo/inzone.png",
+											"width": "150px",
+											"height": "30px"
+										},
+										"title": "赛事奖励2",
+										"content": "<p style='margin-bottom:12px;'>外部奖励:<br>各校区前10名获银座集团价值<text style='color:red;'>200元</text>进阶宠爱大礼。</p> <p style='margin-bottom:12px;'>完赛一次,可获银座价值<text style='color:red;'>50元</text>新生宠爱盲盒。<text style='color:#A6A6A6;'>(数量有限,发完为止)</text></p>每获25积分,可获银座<text style='color:red;'>100减10</text>优惠券1张。封顶5张,可与店内优惠叠加使用。<br><text style='color:#A6A6A6;'>(部分商品、特殊特例商品除外)</text>",
+										"imageList": []
+									}
+								},
+								{
+									"type": 7,
+									"data": {
+										"title": "安全提示",
+										"content": "<br><text style='color:#FFBA99; font-size: 20px; margin-right: 5px;'>●</text> 避免聚集,注意安全<br><br> <text style='color:#FFBA99; font-size: 20px; margin-right: 5px;'>●</text> 评估自身健康,适时参与<br><br> <text style='color:#FFBA99; font-size: 20px; margin-right: 5px;'>●</text> 注意交通与场地安全",
+										"imageList": [{
+											"src": "/static/backgroud/shanda.png",
+											"width": "300px",
+											"height": "150px"
+										}]
+									}
+								},								
 								{
 									"type": 2,
 									"data": {
-										"title": "规则",
-										"img": "/static/common/guize.png"
+										"title": "基本图例",
+										"img": "/static/common/jbtl.png"
 									}
-								}, {
+								},
+								{
 									"type": 2,
 									"data": {
-										"title": "奖励",
-										"img": "/static/common/jiangli.png"
+										"title": "基本标识",
+										"img": "/static/common/jbbs2.png"
 									}
 								},
-								"default"
+								{
+									"type": 7,
+									"data": {
+										"topLogo": {
+											"src": "/static/logo/sddx.png",
+											"width": "80px",
+											"height": "80px"
+										},
+										"bottomLogo": {
+											"src": "/static/logo/inzone.png",
+											"width": "150px",
+											"height": "30px"
+										},
+										"title": "山大定向赛咨询群",
+										"content": "",
+										"imageList": [{
+											"src": "/static/common/qrcode_sddxszxq.png",
+											"width": "116px",
+											"height": "116px"
+										}],
+										"memo": "<view style='display:block; text-align:center;'>赛事规程、流程、奖励咨询 <br><view style='color:#808080; font-size:12px'>(7*24小时解答)</view></view>"
+									}
+								},
+								{
+									"type": 8,
+									"data": {
+										"title": "兑换地点",
+										"topImg": {
+											"src": "/static/logo/inzone2.png",
+											"width": "72px",
+											"height": "72px"
+										},
+										"topMemo": "<view style='color:#E60012;font-size:14px;'>品质消费引领者 &nbsp; &nbsp; 美好生活推荐官</view>",
+										"bottomMemo": "<view style='display: block; margin-top: 20px; text-align: center; font-weight: 500; font-size: 14px;'>优惠券使用说明</view>",
+										"bottomMemoUrl": "https://oss-mbh5.colormaprun.com/page/explanation/inzone.html",
+										"pointList": [
+											{
+												"map": "中 心 校 区",
+												"name": "银座燕山店",
+												"longitude": 117.075174,
+												"latitude": 36.654108
+											},
+											{
+												"map": "洪家楼校区",
+												"name": "银座洪楼店",
+												"longitude": 117.062653,
+												"latitude": 36.684249
+											},
+											{
+												"map": "兴隆山校区",
+												"name": "银座七里山店",
+												"longitude": 117.004617,
+												"latitude": 36.613655
+											},
+											{
+												"map": "趵突泉校区",
+												"name": "银座泉城广场店",
+												"longitude": 117.023766,
+												"latitude": 36.661532
+											},
+											{
+												"map": "千佛山校区",
+												"name": "银座玉函店",
+												"longitude": 117.014735,
+												"latitude": 36.647098
+											},
+											{
+												"map": "软件园校区",
+												"name": "银座高新店",
+												"longitude": 117.122241,
+												"latitude": 36.682175
+											}
+										]
+									}
+								}
 							]
 						}; */
 

+ 109 - 46
card/pages/bm/style4/signup.vue

@@ -7,34 +7,42 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 	<view class="body">
 		<view class="content uni-column">
 			<view class="uni-column" :class="cssTop">
-				<my-topbar :mcName="mcName" :class="cssTopbarColor"
-					@btnBackClick="btnBack" @btnInfoClick="btnInfo"></my-topbar>
+				<my-topbar :mcName="mcName" :class="cssTopbarColor" @btnBackClick="btnBack"
+					@btnInfoClick="btnInfo"></my-topbar>
 
 				<view class="topcontent uni-column uni-jcsa">
 					<view class="logo"></view>
 					<text class="top-acttime">{{fmtMcTime2(beginSecond, endSecond)}}</text>
 				</view>
 			</view>
-			<view class="main uni-column">
-				<view class="timebar uni-row">
-					<image mode="aspectFit" class="clock" src="/static/default/clock.png"></image>
-					<text class="acttime">{{acttime}}</text>
-				</view>
 
-				<input class="uni-input" maxlength="30" :placeholder="'请填写'+configParam.labelName" v-model="nickName" />
-				<e-select v-model="coiId" :options="coiRs" :props="eSelectionProps"
-					clearable :placeholder="'请选择'+configParam.labelOrg" @getText="getESelectText" @change="eSelectChange"></e-select>
+			<view class="timebar uni-row">
+				<image mode="aspectFit" class="clock" src="/static/default/clock.png"></image>
+				<text class="acttime">{{acttime}}</text>
+			</view>
+
+			<view class="main uni-column uni-jct">
+				<input class="uni-input" maxlength="20" :placeholder="'请填写'+configParam.labelName" placeholder-style="font-size: 14px;" v-model="nickName" />
+				<e-select v-model="coiId" :options="coiRs" :props="eSelectionProps" clearable
+					maxHeight="40vh" :placeholder="'请选择'+configParam.labelOrg+'(可输入关键字)'" @getText="getESelectText"
+					@change="eSelectChange"></e-select>
 
 				<view class="introduce uni-column">
 					<text class="introduce-title">{{introduce.title}}</text>
 					<text class="introduce-content" v-html="introduce.content"></text>
 				</view>
-				
+
+				<view v-if="activityRules.content.length > 0" class="activityRules uni-column">
+					<text class="activityRules-title">{{activityRules.title}}</text>
+					<text class="activityRules-content" v-html="activityRules.content"></text>
+				</view>
+
 				<button class="btnSignup btnSignup-enable" v-if="mcState<=1" @click="btnSignup">报 名</button>
 				<button class="btnSignup btnSignup-disable" v-if="mcState==2">活动已结束</button>
+
 			</view>
 
-			<my-popup ref="mypopup" :dataList="popupDataList" :acttime="acttime"></my-popup>
+			<my-popup ref="mypopup" :config="popupRuleConfig" :dataList="popupDataList" :acttime="acttime"></my-popup>
 
 			<!-- <uni-popup ref="alertDialog" type="dialog">
 				<uni-popup-dialog type="info" cancelText="取消" confirmText="确认" title="您填写的姓名:" @confirm="dialogConfirm"
@@ -44,7 +52,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 					</view>
 				</uni-popup-dialog>
 			</uni-popup> -->
-			
+
 			<uni-popup ref="alertDialog" type="dialog">
 				<uni-popup-dialog type="info" cancelText="取消" confirmText="确认" title="你的报名信息:" @confirm="dialogConfirm"
 					@close="dialogClose">
@@ -88,7 +96,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 				queryString: "",
 				from: "", // 来源页面
 				token: "",
-								
+
 				ecId: 0, // 卡片id
 				mcId: 0, // 赛事id
 				mcType: 0, // 赛事类型 1 普通活动 2 线下赛 3 线上赛
@@ -114,12 +122,17 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 					title: "",
 					content: ""
 				},
+				activityRules: {
+					title: "",
+					content: ""
+				},
+				popupRuleConfig: {}, // 规则弹窗配置
 				popupDataList: [],
 				configParam: {
 					labelName: "昵称",
 					labelOrg: "组织",
 				},
-				
+
 				eSelectionProps: {
 					text: 'coiName',
 					value: 'coiId',
@@ -142,7 +155,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 
 			this.rankKey += "-" + this.ecId;
 			console.log("rankKey:", this.rankKey);
-			
+
 			tools.removeCssCode();
 
 			this.getCardConfigQuery();
@@ -265,6 +278,24 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 					}
 				}
 
+				// 加载活动规则
+				const activityRules = config.activityRules;
+				if (activityRules != undefined) {
+					if (activityRules.title != undefined) {
+						this.activityRules.title = activityRules.title;
+					}
+					if (activityRules.content != undefined) {
+						this.activityRules.content = activityRules.content;
+					}
+				}
+
+				// 加载规则弹窗配置
+				const popupRuleConfig = config.popupRuleConfig;
+				if (popupRuleConfig != undefined) {
+					this.popupRuleConfig = popupRuleConfig;
+				}
+				// console.log("[loadConfig] popupRuleConfig:", this.popupRuleConfig);
+				
 				// 加载弹窗数据
 				const popupDataList = config.popupDataList;
 				// console.log("[loadConfig] popupDataList:", popupDataList);
@@ -284,7 +315,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 					console.log("[loadConfig] popupDataList 加载默认列表");
 				}
 				// console.log("[loadConfig] popupDataList:", this.popupDataList);
-				
+
 				// 加载页面参数
 				const param = config.param;
 				if (param != undefined) {
@@ -369,6 +400,10 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 								"title": "介绍:",
 								"content": "  开学季来袭!山大校园定向赛燃情启幕!探索校园每一个角落,挑战智慧与体能,全校师生共同开启新学期活力篇章!等你来挑战!"
 							},
+							"activityRules": {
+								"title": "活动规则:",
+								"content": "<li>随时参赛、不限完赛次数、起点任选、实时排名 <li>起点 -各途经点 -结束点完整打卡为一次有效完赛"
+							},
 							"param": {
 								"labelName": "姓名",
 								"labelOrg": "院系"
@@ -485,7 +520,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 						mcId: this.mcId,
 					},
 					success: (res) => {
-						// console.log("getOnlineMcSignUpDetail", res);
+						console.log("getOnlineMcSignUpDetail", res);
 						this.coiRs = res.data.data.coiRs;
 						if (this.nickName == undefined || this.nickName == '') {
 							this.nickName = res.data.data.name;
@@ -572,7 +607,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 				if (!checkToken(this.token)) {
 					return;
 				}
-				
+
 				if (!(this.nickName.trim().length > 0)) {
 					uni.showToast({
 						title: `请填写${this.configParam.labelName}`,
@@ -581,7 +616,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 					});
 					return;
 				}
-				
+
 				if (!(this.coiId > 0)) {
 					uni.showToast({
 						title: `请选择${this.configParam.labelOrg}`,
@@ -594,14 +629,13 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 				this.nickName = this.nickName.trim();
 				// this.coiName = tools.getSelectedText(this.orgList, this.coiId);
 				// this.teamName = tools.getSelectedText(this.teamList, this.teamNum);
-				
+
 				this.$refs.alertDialog.open();
 			},
 			dialogConfirm() {
 				this.onlineMcSignUp();
 			},
-			dialogClose() {
-			},
+			dialogClose() {},
 			// 获取输入框中值
 			getESelectText(data) {
 				// console.log("getESelectText:", data);
@@ -618,7 +652,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 <style scoped>
 	.content {
 		width: 100vw;
-		height: 100vh;
+		min-height: 100vh;
 	}
 
 	.top-default {
@@ -669,18 +703,18 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 
 	.main {
 		width: 76%;
-		min-height: 800rpx;
+		/* min-height: 800rpx; */
 		/* margin-top: 20rpx; */
-		justify-content: space-around;
+		/* justify-content: space-around; */
+		flex-grow: 1;
 	}
 
 	.timebar {
-		width: 90%;
-		height: 65rpx;
-		/* margin-top: 20rpx; */
-		margin-top: -64rpx;
-		padding: 0 30rpx;
-		justify-content: space-evenly;
+		width: 68%;
+		height: 32px;
+		margin-top: -17px;
+		padding: 0 15px;
+		justify-content: center;
 		background: #ffffff;
 		border: 0.5px solid;
 		border-color: #e7e7e7;
@@ -691,23 +725,25 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 	.acttime {
 		font-weight: 550;
 		color: #333333;
-		font-size: 30rpx;
+		font-size: 15px;
 	}
 
 	.clock {
-		width: 30rpx;
-		height: 30rpx;
-		margin-right: 20rpx;
+		width: 15px;
+		height: 15px;
+		margin-right: 10px;
 	}
 
 	.uni-input {
 		width: 90%;
-		height: 68rpx;
-		/* margin-top: 30rpx; */
-		padding: 0 26rpx;
+		height: 34px;
+		margin-top: 15px;
+		margin-bottom: 15px;
+		padding: 0 13px;
 		/* background: #f1f1f1; */
 		border: 1px solid #dcdfe6;
 		border-radius: 4px;
+		font-size: 14px;
 	}
 
 	.input-placeholder {
@@ -717,29 +753,56 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 
 	.introduce {
 		width: 100%;
-		margin-top: 10rpx;
-		margin-bottom: 30rpx;
+		margin-top: 12px;
+		margin-bottom: 10px;
 		align-items: flex-start;
 		justify-content: space-around;
 	}
 
 	.introduce-title {
 		color: #333333;
-		font-size: 30rpx;
-		line-height: 60rpx;
+		font-size: 15px;
+		line-height: 30px;
 		font-family: Source Han Sans CN;
 	}
 
 	.introduce-content {
 		color: #333333;
-		font-size: 25rpx;
-		line-height: 46rpx;
+		font-size: 14px;
+		line-height: 23px;
+		font-family: Source Han Sans CN;
+	}
+
+	.activityRules {
+		width: 100%;
+		margin-top: 5px;
+		margin-bottom: 10px;
+		padding: 10px 15px;
+		align-items: flex-start;
+		justify-content: space-around;
+		border-radius: 9px;
+		background: #EBEBEB;
+	}
+
+	.activityRules-title {
+		color: #333333;
+		font-size: 14px;
+		line-height: 25px;
+		font-weight: 500;
+		font-family: Source Han Sans CN;
+	}
+
+	.activityRules-content {
+		color: #333333;
+		font-size: 13px;
+		line-height: 23px;
 		font-family: Source Han Sans CN;
 	}
 
 	.btnSignup {
 		width: 100%;
 		height: 100rpx;
+		margin-top: 30rpx;
 		margin-bottom: 30rpx;
 		color: white;
 		font-weight: bold;
@@ -771,7 +834,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 		font-size: 34rpx;
 		margin-bottom: 30rpx;
 	}
-	
+
 	.dialog-content-2 {
 		font-size: 28rpx;
 		margin-bottom: 10rpx;

+ 9 - 1
card/pages/jbs/rankList.vue

@@ -29,7 +29,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/jbs/rankList
 
 			</view>
 
-			<my-popup ref="mypopup" :dataList="popupDataList"></my-popup>
+			<my-popup ref="mypopup" :config="popupRuleConfig" :dataList="popupDataList"></my-popup>
 
 		</view>
 	</view>
@@ -81,6 +81,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/jbs/rankList
 				dispArrStr: "total", // 要显示的集合范围 (total,team,in,other)
 				cssTop: "",
 				cssLogo: "",
+				popupRuleConfig: {}, // 规则弹窗配置
 				popupDataList: [],
 			}
 		},
@@ -204,6 +205,13 @@ https://oss-mbh5.colormaprun.com/card/#/pages/jbs/rankList
 				console.log("[loadConfig] cssTop:", this.cssTop);
 				console.log("[loadConfig] cssLogo:", this.cssLogo);
 
+				// 加载规则弹窗配置
+				const popupRuleConfig = config.popupRuleConfig;
+				if (popupRuleConfig != undefined) {
+					this.popupRuleConfig = popupRuleConfig;
+				}
+				// console.log("[loadConfig] popupRuleConfig:", this.popupRuleConfig);
+				
 				// 加载弹窗数据
 				const popupDataList = config.popupDataList;
 				// console.log("[loadConfig] popupDataList:", popupDataList);

BIN
card/static/backgroud/shanda.png


BIN
card/static/backgroud/top_bg_guoqing.png


BIN
card/static/cardbg/guoqing.png


BIN
card/static/common/jbbs2.png


BIN
card/static/common/jbtl.png


BIN
card/static/common/jidanquan.png


BIN
card/static/common/nav2.png


BIN
card/static/common/qrcode_sddxszxq.png


BIN
card/static/common/qrcode_wxkf.png


BIN
card/static/logo/inzone.png


BIN
card/static/logo/inzone2.png


BIN
card/static/logo/sddx.png


BIN
card/static/logo/sddx1.png