wzx 1 年之前
父節點
當前提交
f0418aacf2

+ 13 - 1
card/App.vue

@@ -79,8 +79,20 @@
 		align-items: flex-end;
 	}
 	
-	.hidden {
+	.uni-hidden {
 		visibility: hidden;
 	}
 	
+	.uni-nowrap {
+		white-space: nowrap;
+	}
+	
+	.uni-ovf-hidden {
+		overflow: hidden;
+	}
+	
+	.uni-ovf-ellipsis {
+		text-overflow: ellipsis;
+	}
+	
 </style>

+ 8 - 0
card/common/api.js

@@ -67,6 +67,14 @@ export const apiCompStatisticQuery = apiServer + 'CompStatisticQuery';
 // 警告列表查询
 export const apiWarnMessageQuery = apiServer + 'WarnMessageQuery';
 
+// 查询电子证书样式
+export const apiCertStyleQuery = apiServer + 'CertStyleQuery';
+
+// 查询电子证书成就对应用户基本信息
+export const apiUserBaseQueryInCertificate = apiServer + 'UserBaseQueryInCertificate';
+
+// 根据成就信息确认生成电子证书
+export const apiCertificateCreateByUserAi = apiServer + 'CertificateCreateByUserAi';
 
 
 

+ 67 - 14
card/components/my-popup/my-popup.vue

@@ -137,15 +137,32 @@
 					<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>
+					<image v-if="item.data.logo" class="swiper-item-logo"
+						:style="getImageStyle(item.data.logo)" mode="aspectFit" :src="item.data.logo.src"></image>
+					<text v-if="item.data.logo && item.data.logo.memo" class="swiper-item-logoMemo" v-html="item.data.logo.memo"></text>
 
 					<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-row uni-jcse" style="margin-top: 20px;">
+							<view v-if="item.data.imageList" 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 v-if="item.data.pointList" style="margin-top: 15px;">
+								<view class="uni-row uni-jcsb" style="width: 96%; line-height: 22px;" 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="swiper-item-pointName 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>
 					</view>
 					
@@ -246,7 +263,7 @@
 				let styleStr = "";
 				if (this.config.height != undefined && this.config.height != "") {
 					styleStr += `height: ${this.config.height};`;
-					console.log("[getSwiperStyle] style:", styleStr);
+					// console.log("[getSwiperStyle] style:", styleStr);
 				}
 				return styleStr;
 			},
@@ -341,13 +358,16 @@
 		border-radius: 25px;
 	}
 
-	// ::v-deep uni-swiper-item {
-	// 	overflow: auto;
-	// }
+	::v-deep uni-swiper-item {
+		overflow: auto;
+	}
 
 	.swiper-item-view {
-		height: 95%;
+		// min-height: 95%;
+		min-height: 94.3%;
 		padding-top: 25px;
+		overflow: auto;
+		flex-grow: 1;
 		// justify-content: space-between;
 	}
 
@@ -373,6 +393,18 @@
 		margin-bottom: 18px;
 	}
 
+	.swiper-item-logo {
+		width: 100px;
+		height: 100px;
+		margin-bottom: 5px;
+	}
+	
+	.swiper-item-logoMemo {
+		font-size: 14px;
+		color: #FF870E;
+		margin-bottom: 10px;
+	}
+	
 	.swiper-item-bottomLogo {
 		width: 100px;
 		height: 100px;
@@ -381,6 +413,7 @@
 
 	.swiper-item-title {
 		margin-bottom: 10px;
+		color: #333333;
 		font-size: 20px;
 		font-weight: 550;
 	}
@@ -417,6 +450,8 @@
 		margin-bottom: 30px;
 		justify-content: start;
 		flex-grow: 1;
+		color: #333333;
+		font-weight: 400;
 	}
 
 	.swiper-item-content2 {
@@ -425,7 +460,8 @@
 		margin-bottom: 10px;
 		// justify-content: center;
 		text-align: center;
-		font-size: 14px;
+		color: #333333;
+		font-size: 13px;
 		line-height: 40px;
 		flex-grow: 1;
 	}
@@ -433,23 +469,35 @@
 	.swiper-item-content3 {
 		width: 80%;
 		// margin-top: 5px;
+		color: #333333;
+		font-weight: 400;
 		text-align: center;
 	}
 
 	.swiper-item-content4 {
 		// width: 80%;
 		text-align: center;
+		color: #333333;
 		font-size: 12px;
+		font-weight: 400;
 	}
 
 	.swiper-item-content5 {
 		width: 80%;
 		flex-grow: 1;
-		font-size: 14px;
-		line-height: 21px;
+		color: #333333;
+		font-size: 13px;
+		font-weight: 400;
+		line-height: 20px;
 		overflow-y: scroll;
 	}
 	
+	.swiper-item-pointName {
+		font-size: 13px;
+		font-weight: 500;
+		color: #333333;
+	}
+	
 	.swiper-item-couponNum {
 		font-size: 16px;
 		font-weight: 500;
@@ -473,8 +521,10 @@
 		margin-bottom: 10px;
 		// justify-content: center;
 		text-align: left;
-		font-size: 14px;
-		line-height: 21px;
+		color: #333333;
+		font-size: 13px;
+		font-weight: 400;
+		line-height: 20px;
 		flex-grow: 1;
 	}
 	
@@ -484,8 +534,10 @@
 		margin-bottom: 10px;
 		// justify-content: center;
 		text-align: left;
+		color: #333333;
 		font-size: 13px;
-		line-height: 18px;
+		font-weight: 400;
+		line-height: 20px;
 		// flex-grow: 1;
 	}
 
@@ -535,8 +587,9 @@
 
 	.introduce-content {
 		color: #333333;
-		font-size: 14px;
-		line-height: 21px;
+		font-size: 13px;
+		font-weight: 400;
+		line-height: 20px;
 		flex-grow: 1;
 	}
 

+ 1 - 1
card/components/my-ranklist/my-ranklist.vue

@@ -42,7 +42,7 @@
 				type: Number,
 				default: -1
 			},
-			rankType: {	// totalDistance:总距离 totalCp:打点数 totalSysPoint:百味豆 fastPace:配速 rightAnswerPer:答题正确率 speed:速度
+			rankType: {	// totalDistance:总里程 totalCp:打点数 totalSysPoint:百味豆 fastPace:配速 rightAnswerPer:答题正确率 speed:速度
 				type: String,
 				default: ""
 			},

+ 10 - 3
card/components/my-topbar/my-topbar.vue

@@ -4,10 +4,10 @@
 			<uni-icons type="left" class="topbar-ico topbar-ico-back" @click="btnBack"></uni-icons>
 			<text v-if="showMessage" class="topbar-rule"></text>
 		</view>
-		<text class="mcName">{{mcName}}</text>
+		<text class="mcName" v-html="mcName"></text>
 		<view class="topbar-left-right uni-row uni-jce">
 			<uni-icons v-if="showMessage" type="notification-filled" class="topbar-ico topbar-ico-message" @click="btnMessage"></uni-icons>
-			<text class="topbar-rule" @click="btnInfo">规则</text>
+			<text v-if="showRule" class="topbar-rule" @click="btnInfo">规则</text>
 		</view>
 	</view>
 </template>
@@ -24,6 +24,11 @@
 				type: Boolean,
 				default: false
 				// default: true
+			},
+			showRule: {
+				type: Boolean,
+				default: true
+				// default: true
 			}
 		},
 		emits: ['btnBackClick', 'btnInfoClick', 'btnMessageClick'],
@@ -58,7 +63,8 @@
 	}
 	
 	.topbar-left-right {
-		/* width: 128rpx; */
+		min-width: 50px;
+		max-width: 128rpx;
 		/* background-color: dimgray; */
 	}
 	
@@ -82,6 +88,7 @@
 	
 	.mcName {
 		/* padding: 0 10rpx; */
+		/* width: 80%; */
 		font-size: 36rpx;
 		font-weight: 550;
 		white-space: nowrap;

+ 2 - 2
card/manifest.json

@@ -2,8 +2,8 @@
     "name" : "card",
     "appid" : "__UNI__A61F96B",
     "description" : "",
-    "versionName" : "1.7.7",
-    "versionCode" : 177,
+    "versionName" : "1.8.1",
+    "versionCode" : 181,
     "transformPx" : false,
     /* 5+App特有相关 */
     "app-plus" : {

+ 7 - 0
card/pages.json

@@ -131,6 +131,13 @@
 			"style": {
 				"navigationBarTitleText": "[报名] 样式4 - 排名列表"
 			}
+		},
+		{
+			"path" : "pages/achievement/ecert/ecert",
+			"style" : 
+			{
+				"navigationBarTitleText" : "电子证书"
+			}
 		}
 	],
 	"globalStyle": {

+ 676 - 0
card/pages/achievement/ecert/ecert.vue

@@ -0,0 +1,676 @@
+<!-- 
+电子证书
+http://localhost:5173/card/#/pages/achievement/ecert/ecert
+https://oss-mbh5.colormaprun.com/card/#/pages/achievement/ecert/ecert
+ -->
+<template>
+	<view class="main">
+		<my-topbar :mcName="ecertConfig.title" class="mytopbar" :showRule="false" @btnBackClick="btnBack"></my-topbar>
+		<!-- <text class="title" v-html="ecertConfig.title"></text> -->
+		<image v-if="canvasReady" ref="ecertImg" class="ecertImg" :style="getEcertImageStyle()" mode="aspectFit" :src="ecertUrl" @click="previewCert"></image>
+		<div v-else class="loading-animation"></div>
+		<view class="btnlist uni-row uni-jcse">
+			<text v-if="isCertCreate == 0" class="btnlist-item" @click="modify">修改姓名</text>
+			<text class="btnlist-item" @click="previewCert">预览证书</text>
+			<text class="btnlist-item" @click="downloadCert">下载证书</text>
+		</view>
+		
+		<!-- <br>
+		<a :href="'action://down_file?filename='+encodeURIComponent('图片下载_xfl.png')+'&url='+encodeURIComponent('https://oss-mbh5.colormaprun.com/card/static/logo/xfl.png')">下载图片</a>
+		&nbsp;
+		<a :href="'action://down_file?filename='+encodeURIComponent('文件下载_index.html')+'&url='+encodeURIComponent('https://oss-mbh5.colormaprun.com/card/index.html')">下载文件</a>
+		&nbsp;
+		<a :href="'action://down_file?filename='+encodeURIComponent('音频下载_1.mp3')+'&url='+encodeURIComponent('https://oss-mbh5.colormaprun.com/card/static/audio/1.mp3')">下载音频</a>
+		&nbsp;
+		<br>
+		<a :href="'action://down_file?filename='+encodeURIComponent('小视频下载_Walk_to_image_room.mp4')+'&url='+encodeURIComponent('https://oss-mbh5.colormaprun.com/card/Walk_to_image_room.mp4')">下载小视频</a>
+		&nbsp;
+		<a :href="'action://down_file?filename='+encodeURIComponent('大视频下载_wifidigger.mp4')+'&url='+encodeURIComponent('https://oss-mbh5.colormaprun.com/card/wifidigger.mp4')">下载大视频</a>
+		&nbsp; -->
+		<!-- <a href="tel:13335119550">拨打电话</a> &nbsp; -->
+
+		<!-- <view class="info uni-column uni-ais">
+			<text class="info-text">姓名:{{nickName}}</text>
+			<text class="info-text">院系:{{coiName}}</text>
+			<text class="info-memo">(注:姓名只能修改一次,院系部分无法修改)</text>
+		</view>
+		<button class="btnCert" @click="btnCert">{{btnCertText}}</button> -->
+
+		<canvas v-if="canvasReady" canvas-id="ecert" id="ecert" class="ecert" :style="getEcertCanvasStyle()"></canvas>
+		
+		<uni-popup ref="modifyDialog" type="dialog">
+			<uni-popup-dialog type="warn" mode="base" title="修改姓名" @confirm="modifyDialogConfirm">
+				<view class="dialogView uni-column uni-jcse">
+					<input class="uni-input" maxlength="12" placeholder="请输入姓名" placeholder-style="font-size: 14px;" v-model="newName" />
+					<view class="dialogView-memo">( 注:姓名<span style="color: red;">只能修改一次</span> )</view>
+				</view>
+			</uni-popup-dialog>
+		</uni-popup>
+
+		<uni-popup ref="confirmDialog" type="dialog">
+			<uni-popup-dialog type="warn" cancelText="取消" confirmText="确定" title="提示" :content="confirmContent"
+				@confirm="confirmDialogConfirm"></uni-popup-dialog>
+		</uni-popup>
+		
+		<!-- <movable-area :scale-area="true" class="movable-area">
+			<movable-view class="movable-view" direction="all" :inertia="true" :scale-min="0.5" :scale-max="10" :scale="true" :out-of-bounds="true">
+				<canvas canvas-id="ecert" id="ecert" class="ecert" :style="getEcertStyle()"></canvas>
+			</movable-view>
+		</movable-area> -->
+	</view>
+</template>
+
+<script>
+	import tools from '/common/tools';
+	import {
+		token,
+		apiCertStyleQuery,
+		apiUserBaseQueryInCertificate,
+		apiCertificateCreateByUserAi,
+		checkResCode
+	} from '/common/api';
+
+	export default {
+		data() {
+			return {
+				pageName: "ecert",
+				queryObj: {},
+				queryString: "",
+				token: "",
+				certStyleType: "", // 证书样式类型 比如 "shanda1"
+				oarId: 0, // 成就记录id
+
+				dpr: 1, // 设备像素比
+				windowWidth: uni.getSystemInfoSync().windowWidth, // 可视区域宽度
+				// windowHeight: uni.getSystemInfoSync().windowHeight, // 可视区域高度
+				ecertWidth: 0,
+				ecertHeight: 0,
+				ecertUrl: "",
+				btnCertText: "确认生成证书",
+
+				nickName: '',				
+				coiId: 0, // 报名单位id
+				coiName: "", // 报名单位名称
+				teamNum: 0, // 队伍
+				compName: "", // 赛事名称
+				certificateName: "", // 奖项名称
+				compBt: 0, // 赛事开始时间戳
+				compEt: 0, // 赛事结束时间戳
+				totalSysPoint: 0, // 个人总积分
+				totalDistance: 0, // 个人总里程,单位米
+				isCertCreate: 0, // 是否已经生成证书(生成后不能修改昵称) 0 未生成 1 已生成
+
+				ecertConfig: {},
+				canvasReady: false,
+				newName: "",
+				confirmContent: ""
+			}
+		},
+		onLoad(query) {
+			// console.log(query);
+			this.queryObj = query;
+			this.queryString = tools.objectToQueryString(this.queryObj);
+			// console.log(queryString);
+			this.token = query["token"] ?? token;
+			this.certStyleType = query["certStyleType"] ?? "";
+			this.oarId = query["oarId"] ?? 0;
+
+			this.init();
+		},
+		onReady() {
+			// this.test();
+		},
+		methods: {
+			init() {
+				let that = this;
+				uni.getSystemInfo({
+					success: function(res) {
+						that.dpr = res.pixelRatio;
+						// console.log('设备像素比:', that.dpr);
+						that.userBaseQueryInCertificate();
+					}
+				});
+			},
+			// 格式化 距离
+			fmtDistanct(val) {
+				return Math.round(val * 100 / 1000) / 100;
+			},
+			getEcertImageStyle() {
+				if (this.ecertWidth == 0) {
+					return "";
+				}
+				
+				const ratio = 0.9;
+				const width = this.windowWidth * ratio;
+				const height = Math.round(this.windowWidth / this.ecertWidth * this.ecertHeight) * ratio;
+				let style = "";
+				style += "width: " + width + "px;";
+				style += "height: " + height + "px;";
+				// console.log("[getEcertImageStyle]", style);
+				return style;
+			},
+			getEcertCanvasStyle() {
+				let style = "";
+				style += "width: " + this.ecertWidth + "px;";
+				style += "height: " + this.ecertHeight + "px;";
+				// console.log("[getEcertCanvasStyle]", style);
+				return style;
+			},
+			getParamValue(paramName) {
+				let value = null;
+				if (paramName == "nickName") {
+					value = this.nickName;
+				} else if (paramName == "coiName") {
+					value = "(" + this.coiName + ")";
+				} else if (paramName == "totalDistance") {
+					value = this.fmtDistanct(this.totalDistance);
+				} else if (paramName == "totalSysPoint") {
+					value = this.totalSysPoint;
+				}
+				return value;
+			},
+			drawText(param, text, context) {
+				if (param.font != undefined) {
+					const font = param.font;
+					if (font.align != undefined && font.align.length > 0) {
+						context.setTextAlign(font.align);
+					}
+					if (font.size != undefined && font.size > 0) {
+						const font_family = (font.family != undefined && font.family.length > 0) ? font.family : "Arial";
+						const font_size = Math.round(font.size / this.dpr);
+						let style = `${font_size}px ${font_family}`;
+						if (font.preStyle != undefined && font.preStyle.length > 0) {
+							style = `${font.preStyle} ${style}`;
+						}
+						// console.log(style);
+						context.font = style;
+					}
+					// if (font.size != undefined && font.size > 0) {
+					// 	context.setFontSize(font.size / this.dpr);
+					// }
+					if (font.color != undefined && font.color.length > 0) {
+						context.fillStyle = font.color;
+					}
+
+				}
+
+				context.fillText(text, param.position.x / this.dpr, param.position.y / this.dpr);
+			},
+			makeCert() {
+				let that = this;
+				// console.log("[makeCert]", that.ecertConfig.tplUrl);
+				
+				const ctx = uni.createCanvasContext('ecert');
+				ctx.drawImage(that.ecertConfig.tplUrl, 0, 0, that.ecertWidth, that.ecertHeight);
+				
+				for (var i = 0; i < that.ecertConfig.paramList.length; i++) {
+					const param = that.ecertConfig.paramList[i];
+					const text = that.getParamValue(param.paramName);
+					that.drawText(param, text, ctx);
+				}
+				
+				ctx.draw(true, () => {
+					// 在这里调用uni.canvasToTempFilePath,确保绘制完成
+					uni.canvasToTempFilePath({
+						canvasId: 'ecert',
+						success: function(res) {
+							// 在H5平台下,tempFilePath 为 base64
+							// console.log(res.tempFilePath);
+							let imageData = res.tempFilePath;
+							that.ecertUrl = imageData;
+						}
+					});
+				});
+			},
+			// 查询电子证书样式
+			certStyleQuery() {
+				uni.request({
+					url: apiCertStyleQuery,
+					header: {
+						"Content-Type": "application/x-www-form-urlencoded",
+						"token": this.token,
+					},
+					method: "POST",
+					data: {
+						"certStyleType": this.certStyleType
+					},
+					success: (res) => {
+						// console.log("certStyleQuery", res);
+						if (res.data.code == 0) {
+							const data = res.data.data;
+							const ecertConfig = data.configJson != "" ? JSON.parse(data.configJson) : "";
+							this.ecertConfig = ecertConfig;
+
+							/* this.ecertConfig = {
+								"title": "完赛证书",
+								"tplUrl": "/static/ecert/shanda/youxiujiang.jpg",
+								"width": 2000,
+								"height": 2828,
+								"paramList": [{
+										"paramName": "nickName",
+										"font": {
+											"preStyle": "bold",
+											"size": 56,
+											"family": "",
+											"color": "#000000",
+											"align": "center"
+										},
+										"position": {
+											"x": 1000,
+											"y": 2120
+										}
+									},
+									{
+										"paramName": "coiName",
+										"font": {
+											"preStyle": "",
+											"size": 46,
+											"family": "",
+											"color": "#646363",
+											"align": "center"
+										},
+										"position": {
+											"x": 1000,
+											"y": 2200
+										}
+									},
+									{
+										"paramName": "totalDistance",
+										"font": {
+											"preStyle": "",
+											"size": 40,
+											"family": "",
+											"color": "#fe0000",
+											"align": "center"
+										},
+										"position": {
+											"x": 910,
+											"y": 1704
+										}
+									},
+									{
+										"paramName": "totalSysPoint",
+										"font": {
+											"preStyle": "",
+											"size": 40,
+											"family": "",
+											"color": "#fe0000",
+											"align": "left"
+										},
+										"position": {
+											"x": 1320,
+											"y": 1704
+										}
+									}
+								]
+							}; */
+
+							// console.log("ecertConfig:", this.ecertConfig);
+
+							this.ecertWidth = Math.round(this.ecertConfig.width / this.dpr);
+							this.ecertHeight = Math.round(this.ecertConfig.height / this.dpr);
+							// console.log("[certStyleQuery] ecertWidth ecertHeight:", this.ecertWidth, this.ecertHeight);
+							this.canvasReady = true;
+							
+							this.$nextTick(() => {
+								this.makeCert();
+							});
+						}
+					},
+					fail: (err) => {
+						console.log("certStyleQuery err", err);
+					},
+				});
+			},
+			// 查询电子证书成就对应用户基本信息
+			userBaseQueryInCertificate() {
+				uni.request({
+					url: apiUserBaseQueryInCertificate,
+					header: {
+						"Content-Type": "application/x-www-form-urlencoded",
+						"token": this.token,
+					},
+					method: "POST",
+					data: {
+						"oarId": this.oarId
+					},
+					success: (res) => {
+						// console.log("userBaseQueryInCertificate", res);
+						if (res.data.code == 0) {
+							const data = res.data.data;
+							this.nickName = data.nickName;
+							this.coiId = data.coiId;
+							this.coiName = data.coiName;
+							this.teamNum = data.teamNum;
+							this.compName = data.compName;
+							this.certificateName = data.certificateName;
+							this.compBt = data.compBt;
+							this.compEt = data.compEt;
+							this.totalSysPoint = data.totalSysPoint;
+							this.totalDistance = data.totalDistance;
+							this.isCertCreate = data.isCertCreate;
+						
+							this.certStyleQuery();
+						}
+					},
+					fail: (err) => {
+						console.log("userBaseQueryInCertificate err", err);
+					},
+				});
+			},
+			// 根据成就信息确认生成电子证书
+			certificateCreateByUserAi() {
+				uni.request({
+					url: apiCertificateCreateByUserAi,
+					header: {
+						"Content-Type": "application/x-www-form-urlencoded",
+						"token": this.token,
+					},
+					method: "POST",
+					data: {
+						"oarId": this.oarId,
+						"coiName": this.coiName,
+						"coiId": this.coiId,
+						"teamNum": this.teamNum,
+						"nickName": this.nickName,
+					},
+					success: (res) => {
+						// console.log("certificateCreateByUserAi", res);
+						if (checkResCode(res)) {
+							uni.showToast({
+								icon: "none",
+								title: "姓名修改成功",
+								duration: 3000
+							});
+						}
+						this.userBaseQueryInCertificate();
+					},
+					fail: (err) => {
+						console.log("certificateCreateByUserAi err", err);
+						uni.showToast({
+							icon: "none",
+							title: "姓名修改失败:" + err.message
+						});
+						this.userBaseQueryInCertificate();
+					},
+				});
+			},
+			modify() {
+				if (this.isCertCreate) {
+					uni.showToast({
+						icon: "none",
+						title: "不能再次修改姓名"
+					});
+					return;
+				}
+				this.newName = this.nickName;
+				this.$refs.modifyDialog.open();			
+			},
+			modifyDialogConfirm() {
+				this.newName = this.newName.trim();
+				if (this.newName.length == 0) {
+					uni.showToast({
+						icon: "none",
+						title: "请输入姓名"
+					});
+					return;
+				}
+				if (this.newName != this.nickName) {
+					this.confirmContent = `姓名:${this.newName}\r\n\r\n只能修改一次,确定要修改吗?`;
+					this.$refs.confirmDialog.open();
+				} else {
+					uni.showToast({
+						icon: "none",
+						title: "姓名未修改,操作取消"
+					});
+					return;
+				}
+			},
+			confirmDialogConfirm() {
+				this.nickName = this.newName.trim();
+				this.certificateCreateByUserAi();
+			},
+			previewCert() {
+				uni.previewImage({
+					showmenu: true,
+					urls: [this.ecertUrl] // 需要预览的图片 HTTP 链接列表
+				});
+			},
+			downloadCert() {
+				let data = {
+					name: `${this.compName}_${this.certificateName}_ecert.png`,
+					content: this.ecertUrl,
+					type: "image"
+				};
+				data = JSON.stringify(data);
+				console.log(data);
+				save_base64.postMessage(data);
+				
+				/* let filename = `${this.compName}_${this.certificateName}_ecert`;
+				// console.log("filename:", filename);
+				filename = encodeURIComponent(filename);
+				
+				let fileurl = this.ecertUrl;
+				// console.log("fileurl:", fileurl);
+				fileurl = encodeURIComponent(fileurl);
+				
+				const url = `action://down_pic_base64?filename=${filename}&url=${fileurl}`;
+				tools.appAction(url); */
+				
+				/* uni.downloadFile({
+					// url: this.ecertConfig.tplUrl,
+					// url: this.$refs.ecertImg.src,
+					url: this.ecertUrl,
+					success: function(downloadResult) {
+						if (downloadResult.statusCode === 200) {
+							// 下载成功后,尝试保存图片到本地相册
+							uni.saveImageToPhotosAlbum({
+								filePath: downloadResult.tempFilePath,
+								success: function() {
+									console.log('图片保存成功');
+									uni.showToast({
+										icon: "none",
+										title: "图片保存成功",
+										duration: 2000
+									});
+								},
+								fail: function(err) {
+									console.log('保存图片失败', err);
+									uni.showToast({
+										icon: "none",
+										title: "保存图片失败:" + err.errMsg,
+										duration: 5000
+									});
+								}
+							});
+						}
+					},
+					fail: function(err) {
+						console.log('下载图片失败', err);
+						uni.showToast({
+							icon: "none",
+							title: "下载图片失败:" + err.errMsg,
+							duration: 5000
+						});
+					}
+				}); */
+			},
+			btnCert() {
+				this.makeCert();
+			},
+			btnBack() {
+				window.history.back();
+				/* const url = `action://to_home/`;
+				tools.appAction(url); */
+			},
+			test() {
+				// var ctx = uni.createCanvasContext('firstCanvas')
+				var ctx = uni.createCanvasContext('ecert')
+				// ctx.scale(this.dpr, this.dpr);
+				ctx.setStrokeStyle("#00ff00")
+				ctx.setLineWidth(5)
+				ctx.rect(0, 0, 200, 200)
+				ctx.stroke()
+
+				ctx.setStrokeStyle("red");
+				// ctx.setLineWidth(5);
+				ctx.moveTo(150, 20);
+				ctx.lineTo(150, 170);
+				ctx.stroke();
+
+				ctx.setFontSize(15);
+				ctx.setTextAlign('left');
+				ctx.fillText('textAlign=left', 150, 60);
+
+				ctx.setTextAlign('center');
+				ctx.fillText('textAlign=center', 150, 80);
+
+				ctx.setTextAlign('right');
+				ctx.fillText('textAlign=right', 150, 100);
+
+				ctx.draw()
+			},
+		}
+	}
+</script>
+
+<style>
+	.main {
+		width: 100vw;
+		height: 100vh;
+		overflow: hidden;
+		text-align: center;
+	}
+
+	.mytopbar {
+		padding-top: 40px;
+		padding-bottom: 20px;
+		margin-left: auto;
+		margin-right: auto;
+	}
+
+	/* .title {
+		display: block;
+		margin-top: 35px;
+		margin-bottom: 15px;
+		font-size: 22px;
+		font-weight: 550;
+		color: #333333;
+	} */
+
+	.loading-animation {
+		margin: 200px auto;
+		border: 6px solid #f3f3f3;
+		border-top: 6px solid #3498db;
+		border-radius: 50%;
+		width: 50px;
+		height: 50px;
+		animation: spin 1s linear infinite;
+	}
+	@keyframes spin {
+		0% {
+			transform: rotate(0deg);
+		}
+		100% {
+			transform: rotate(360deg);
+		}
+	}
+	
+	.ecertImg {
+		margin-top: 6px;
+		margin-bottom: 20px;
+		border: #bfbfbf solid 1px;
+		box-shadow: 3px 3px 8px #b9b9b9;
+		/* -webkit-touch-callout: default; */
+	}
+	
+	.btnlist {
+		width: 80%;
+		/* height: 30px; */
+		margin: 0px auto;
+		/* background-color: #3498db; */
+	}
+	
+	.btnlist-item {
+		font-size: 14px;
+		font-weight: 500;
+		color: #383838;
+		text-decoration: underline;
+	}
+
+	.ecert {
+		visibility: hidden;
+		/* width: 100vw;
+		height: 100vh; */
+		/* transform: scale(0.5); */
+	}
+	
+	.dialogView {
+		width: 90%;
+	}
+	
+	.dialogView-memo {
+		font-size: 12px;
+		font-weight: 400;
+		color: #808080;
+	}
+	
+	.uni-input {
+		width: 100%;
+		height: 34px;
+		margin-bottom: 10px;
+		border: 1px solid #dcdfe6;
+		border-radius: 4px;
+		font-size: 14px;
+	}
+	
+	::v-deep #u-a-p > div {
+		top: 30px !important;
+	}
+
+	/* .info {
+		max-width: fit-content;
+		margin-left: auto;
+		margin-right: auto;
+		margin-top: 30px;
+	}
+
+	.info-text {
+		font-size: 16px;
+		font-weight: 500;
+		color: #333333;
+		line-height: 30px;
+	}
+
+	.info-memo {
+		font-size: 12px;
+		font-weight: 400;
+		color: #808080;
+		line-height: 25px;
+	}
+
+	.btnCert {
+		width: 289px;
+		height: 53px;
+		margin-top: 30px;
+		margin-bottom: 20px;
+		border-radius: 27px;
+		background: #a43a07;
+		color: #ffffff;
+		line-height: 53px;
+	} */
+
+	/* .movable-area {
+		width: 100vw;
+		height: 80vh;
+		background-color: #ddd;
+		overflow: hidden;
+		align-items: center;
+	}
+
+	.movable-view {
+		width: 100%;
+		height: 50%;
+		transform: scale(0.1) !important;
+	} */
+</style>

+ 26 - 11
card/pages/achievement/index2.vue

@@ -430,19 +430,30 @@ https://oss-mbh5.colormaprun.com/card/#/pages/achievement/index2
 				});
 			},
 			showAchDetail(data) {
-				// console.log("showAchDetail", data);
+				console.log("showAchDetail", data);
 				this.popupAchdet.length = 0;
 
 				if (this.tabCurrent == 1) { // 奖牌
-					let popupData = {
-						type: 3,
-						data: {}
-					};
-					popupData.data.title = "恭喜";
-					popupData.data.img = data.iconUrl;
-					popupData.data.content = "恭喜获得成就 \r\n" + data.aiName;
-					this.popupAchdet.push(popupData);
-					this.$refs.popupAchdet.popupOpen();
+					if (data.isCertificate == 1) {
+						let queryObj = this.queryObj;
+						queryObj.certStyleType = data.certStyleType;
+						queryObj.oarId = data.oarId;
+						// console.log("queryObj", queryObj);
+						const queryString = tools.objectToQueryString(queryObj);
+						// console.log("queryString", queryString);
+						const url = "/pages/achievement/ecert/ecert?" + queryString;
+						tools.appAction(url, "uni.navigateTo");
+					} else {
+						let popupData = {
+							type: 3,
+							data: {}
+						};
+						popupData.data.title = "恭喜";
+						popupData.data.img = data.iconUrl;
+						popupData.data.content = "恭喜获得成就 \r\n" + data.aiName;
+						this.popupAchdet.push(popupData);
+						this.$refs.popupAchdet.popupOpen();
+					}
 				}
 
 				if (this.tabCurrent == 2) { // 兑换
@@ -493,7 +504,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/achievement/index2
 
 	.topbar {
 		width: 90%;
-		margin-top: 80rpx;
+		margin-top: 40px;
 		justify-content: space-between;
 		font-weight: 550;
 		color: #333333;
@@ -632,10 +643,14 @@ https://oss-mbh5.colormaprun.com/card/#/pages/achievement/index2
 	}
 
 	.item-title-ainame {
+		max-width: 90%;
 		margin-top: 12rpx;
 		font-weight: 500;
 		color: #333333;
 		font-size: 12px;
+		white-space: nowrap;
+		overflow: hidden;
+		/* text-overflow: ellipsis; */
 	}
 
 	.item-title-aitime {

+ 595 - 0
card/pages/bm/style4/cardconfig.md

@@ -1,5 +1,600 @@
 卡片页面定制
 
+[小飞龙登山节]
+
+"index": {
+	"css": "
+		.content-bg{
+			background: url('static/cardbg/dengshanjie.png');
+			background-size: cover;
+		}
+		.logo{
+			width: 40vw;
+			height: 40vw;
+			background: url('static/logo/xfl2.png') no-repeat center;
+			background-size: contain;
+		}
+		.mod-text{
+			color: #000000 !important;
+		}
+		.mod-button{
+			color: #ffffff !important;
+			background-color: #ff870e !important;
+		}
+	"
+},
+"signup": {
+	"css": "
+		.top{
+			width: 100%;
+			height: 150px;
+			padding-top: 36px;
+			justify-content: space-between;
+			background-image: url('static/backgroud/top_bg_dengshanjie.png');
+			background-repeat: no-repeat;
+			background-position: center;
+			background-size: cover;
+		}
+		.topbar-color{
+			color: #333333;
+		}
+		.timebar {
+			margin-top: 25px !important;
+			margin-bottom: 10px;
+		}
+		.btnSignup-enable {
+			background-color: #ff870e !important;
+		}
+		.swiper-item-button {
+			background-color: #ff870e !important;
+		}
+		.uni-swiper-dot-active {
+			background: #ff870e !important;
+		}
+	",
+	"popupRuleConfig": {
+		"height": "530px"
+	},
+	"popupDataList": [
+		{
+			"type": 7,
+			"data": {
+				"title": "活动规则",
+				"content": "<br>① 任何人、任何时间均可体验参赛。<br><br>② 6个场地任意选,比赛时间内,不限次数参赛。<br><br>③ 1次成功打点,获取1个百味豆。<br><br>④ 1次正确答题,获取1个百味豆。"
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "活动奖励",
+				"content": "<br><li>活动: 20个百味豆兑换一个鸡蛋<br><span style='font-size: 12px; color:#999999;'>(限本次活动百味豆,兑换以“蛋叔券”为准)</style><li>百味豆越多,“蛋叔”给你的鸡蛋 越多,上不封顶!<li>随时可以兑换哦~<li>能不能吃上自己挣的鸡蛋,就看你的了!<li style='color:#FF870E;'><span style='color:#FF870E;'>同时,参赛即可获取合作机构的奖励!</span><br><br>",
+				"imageList": [{
+					"src": "/static/common/danshu.png",
+					"width": "183px",
+					"height": "81px"
+				}]
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "合作机构",
+				"logo": {
+					"src": "/static/logo/xxhpgy.png",
+					"width": "120px",
+					"height": "120px",
+					"memo": "星星和蒲公英双语阅读馆"
+				},
+				"content": "星星和蒲公英双语阅读馆,济南儿童阅读网红圣地!馆藏2W+册正版图书,涵盖中英文大奖绘本、桥梁书、自然科学与文学社科名著,以及艺术画册和摄影图集。开展面向4-12岁孩子的中文阅读读书会&中英双语阅读课。<br><br><span style='color:#FF870E;'>礼品一:到店阅读权限一年<br>礼品二:店内饮品五折券一张</span>",
+				"pointList": [
+					{
+						"name": "电话:<a href='tel:18765812082' style='color: #333333;'>18765812082</a>",
+						"longitude": 117.075174,
+						"latitude": 36.654108
+					}
+				]
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "合作机构",
+				"logo": {
+					"src": "/static/logo/wensiyu.png",
+					"width": "120px",
+					"height": "120px",
+					"memo": "文思语少年读书会"
+				},
+				"content": "文思语少年读书会,专注于为4-15岁儿童和家庭提供阅读素养发展解决方案和产品。读书会以整本书精读伴读为核心,塑造良好的读书习惯,训练阅读理解能力,培养创意作文能力。<br><br><span style='color:#FF870E;'>礼品:《山海经》精装套系书<br>书籍原价158元,仅需19.9元/套,不限领取次数,多余权限可赠送他人使用!</span>",
+				"pointList": [
+					{
+						"name": "电话:<a href='tel:17663733631' style='color: #333333;'>17663733631</a>",
+						"longitude": 117.075174,
+						"latitude": 36.654108
+					}
+				]
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "合作机构",
+				"logo": {
+					"src": "/static/logo/lezhigu.png",
+					"width": "120px",
+					"height": "120px",
+					"memo": "乐知谷"
+				},
+				"content": "乐知谷是济南科学类口碑最好的机构,主做面向4-12岁儿童,内容涵盖工程科技、自然科学、生命科学、地球太空、PBL综合项目等五大板块,室内&户外相结合,真正将实验、动手、探究融于生活,培养独立思考、永存好奇、敢于创造的未来型孩子。<br><span style='color:#FF870E;'>礼品:乐知谷经典工程体验课《建造一座斜拉桥》一堂,感受力学结构的科技含量课程每人限参与1次,多余权限可赠送他人使用</span>",
+				"pointList": [
+					{
+						"name": "电话:<a href='tel:19100652564' style='color: #333333;'>19100652564</a>",
+						"longitude": 117.075174,
+						"latitude": 36.654108
+					}
+				]
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "合作机构",
+				"logo": {
+					"src": "/static/logo/kusentiyu.png",
+					"width": "120px",
+					"height": "120px",
+					"memo": "酷森体育俱乐部"
+				},
+				"content": "酷森体育俱乐部包含少儿篮球、体能训练、跳绳,三大课程。拥有二十年以上资深学院派专家教练团队,制定系统的少儿运动训练体系,结合不同年龄及能力的孩子进行定制化教学,使其更符合不同孩子的综合能力提升。<br><br><span style='color:#FF870E;'>礼品:手机全年影视会员卡</span>",
+				"pointList": [
+					{
+						"name": "电话:<a href='tel:15621875115' style='color: #333333;'>15621875115</a>",
+						"longitude": 117.075174,
+						"latitude": 36.654108
+					}
+				]
+			}
+		}
+	],
+	"introduce": {
+		"title": "介绍:",
+		"content": "<li>小飞龙定向赛再次来袭!这次有6个场地哟~<li>神秘“蛋叔”闪亮登场~<li>蛋叔放大招,百味豆换鸡蛋!<li>时不可待!冲鸭!<br><br><li>能不能把蛋叔整郁闷,就看你的啦~<li>还等啥?火速报名吧!"
+	},
+	"param": {
+		"labelName": "姓名",
+		"labelOrg": "分组",
+		"subTitle": ""
+	}
+},
+"rankList": {
+	"css": "
+		.top{
+			width: 100%;
+			height: 170px;
+			padding-top: 36px;
+			justify-content: space-between;
+			background-image: url('static/backgroud/top_bg_dengshanjie.png');
+			background-repeat: no-repeat;
+			background-position-x: center;
+			background-position-y: -20px;
+			background-size: cover;
+		}
+		.topcontent {
+			display: none !important;
+		}
+		.topbar-color{
+			color: #333333;
+		}
+		.topbtm-name {
+			background-color: #c77f34 !important;
+			border: none !important;
+			color: #ffffff !important;
+		}
+		.topbtm-egg {
+			background-color: #c77f34 !important;
+			border: none !important;
+			color: #ffffff !important;
+		}
+		.main-bar {
+			display: flex !important;
+			background-color: #ffeddb !important;
+			color: #ff8d1a !important;
+		}
+		.btnBack{
+			background-color: #ff870e !important;
+		}
+		.tab-active{
+			background-color: #ff870e !important;
+		}
+		.swiper-item-button {
+			background-color: #ff870e !important;
+		}
+		.uni-swiper-dot-active {
+			background: #ff870e !important;
+		}
+	",
+	"tabActiveColor": "#ff870e",
+	"popupRuleConfig": {
+		"height": "530px"
+	},
+	"popupDataList": [
+		{
+			"type": 7,
+			"data": {
+				"title": "活动规则",
+				"content": "<br>① 任何人、任何时间均可体验参赛。<br><br>② 6个场地任意选,比赛时间内,不限次数参赛。<br><br>③ 1次成功打点,获取1个百味豆。<br><br>④ 1次正确答题,获取1个百味豆。"
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "活动奖励",
+				"content": "<br><li>活动: 20个百味豆兑换一个鸡蛋<br><span style='font-size: 12px; color:#999999;'>(限本次活动百味豆,兑换以“蛋叔券”为准)</style><li>百味豆越多,“蛋叔”给你的鸡蛋 越多,上不封顶!<li>随时可以兑换哦~<li>能不能吃上自己挣的鸡蛋,就看你的了!<li style='color:#FF870E;'><span style='color:#FF870E;'>同时,参赛即可获取合作机构的奖励!</span><br><br>",
+				"imageList": [{
+					"src": "/static/common/danshu.png",
+					"width": "183px",
+					"height": "81px"
+				}]
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "合作机构",
+				"logo": {
+					"src": "/static/logo/xxhpgy.png",
+					"width": "120px",
+					"height": "120px",
+					"memo": "星星和蒲公英双语阅读馆"
+				},
+				"content": "星星和蒲公英双语阅读馆,济南儿童阅读网红圣地!馆藏2W+册正版图书,涵盖中英文大奖绘本、桥梁书、自然科学与文学社科名著,以及艺术画册和摄影图集。开展面向4-12岁孩子的中文阅读读书会&中英双语阅读课。<br><br><span style='color:#FF870E;'>礼品一:到店阅读权限一年<br>礼品二:店内饮品五折券一张</span>",
+				"pointList": [
+					{
+						"name": "电话:<a href='tel:18765812082' style='color: #333333;'>18765812082</a>",
+						"longitude": 117.075174,
+						"latitude": 36.654108
+					}
+				]
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "合作机构",
+				"logo": {
+					"src": "/static/logo/wensiyu.png",
+					"width": "120px",
+					"height": "120px",
+					"memo": "文思语少年读书会"
+				},
+				"content": "文思语少年读书会,专注于为4-15岁儿童和家庭提供阅读素养发展解决方案和产品。读书会以整本书精读伴读为核心,塑造良好的读书习惯,训练阅读理解能力,培养创意作文能力。<br><br><span style='color:#FF870E;'>礼品:《山海经》精装套系书<br>书籍原价158元,仅需19.9元/套,不限领取次数,多余权限可赠送他人使用!</span>",
+				"pointList": [
+					{
+						"name": "电话:<a href='tel:17663733631' style='color: #333333;'>17663733631</a>",
+						"longitude": 117.075174,
+						"latitude": 36.654108
+					}
+				]
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "合作机构",
+				"logo": {
+					"src": "/static/logo/lezhigu.png",
+					"width": "120px",
+					"height": "120px",
+					"memo": "乐知谷"
+				},
+				"content": "乐知谷是济南科学类口碑最好的机构,主做面向4-12岁儿童,内容涵盖工程科技、自然科学、生命科学、地球太空、PBL综合项目等五大板块,室内&户外相结合,真正将实验、动手、探究融于生活,培养独立思考、永存好奇、敢于创造的未来型孩子。<br><span style='color:#FF870E;'>礼品:乐知谷经典工程体验课《建造一座斜拉桥》一堂,感受力学结构的科技含量课程每人限参与1次,多余权限可赠送他人使用</span>",
+				"pointList": [
+					{
+						"name": "电话:<a href='tel:19100652564' style='color: #333333;'>19100652564</a>",
+						"longitude": 117.075174,
+						"latitude": 36.654108
+					}
+				]
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "合作机构",
+				"logo": {
+					"src": "/static/logo/kusentiyu.png",
+					"width": "120px",
+					"height": "120px",
+					"memo": "酷森体育俱乐部"
+				},
+				"content": "酷森体育俱乐部包含少儿篮球、体能训练、跳绳,三大课程。拥有二十年以上资深学院派专家教练团队,制定系统的少儿运动训练体系,结合不同年龄及能力的孩子进行定制化教学,使其更符合不同孩子的综合能力提升。<br><br><span style='color:#FF870E;'>礼品:手机全年影视会员卡</span>",
+				"pointList": [
+					{
+						"name": "电话:<a href='tel:15621875115' style='color: #333333;'>15621875115</a>",
+						"longitude": 117.075174,
+						"latitude": 36.654108
+					}
+				]
+			}
+		}
+	],
+	"popupExchgConfig": {
+		"height": "460px"
+	},
+	"popupExchgList": [
+		{
+			"type": 5,
+			"data": {
+				"title": "兑换地点1",
+				"img": "/static/common/gtgwcs.png",
+				"point": {
+					"longitude": 117.022194,
+					"latitude": 36.661612,
+					"name": "冠同购物超市"
+				}
+			}
+		},
+		{
+			"type": 5,
+			"data": {
+				"title": "兑换地点2",
+				"img": "/static/common/wslgwcs2.png",
+				"point": {
+					"longitude": 117.022194,
+					"latitude": 36.661612,
+					"name": "万盛隆购物超市"
+				}
+			}
+		}
+	],
+	"popupMessageConfig": {
+		"height": "500px"
+	},
+	"param": {
+		"labelRightAnswerNum": "文化输出",
+		"labelTicketName": "蛋叔券",
+		"labelAwardAddress": "兑换地址",
+		"tab1InitActIndex": 0,
+		"tab2InitActIndex": 0
+	},
+	"rankParam": {
+		"tab2ItemsMark": [],
+		"dispArrStr": "teamDistance,teamPoint,teamCp,teamPace,regionDistance,regionPoint,regionCp,regionPace",
+		"tab2Items_team": ["里程", "打点数", "百味豆", "配速"],
+		"tab2Items_person": ["里程", "打点数", "百味豆", "配速"],
+		"rankTypeList_team": ["totalDistance", "totalCp", "totalSysPoint", "fastPace"],
+		"rankTypeList_person": ["totalDistance", "totalCp", "totalSysPoint", "fastPace"],
+		"rank1List": ["teamDistanceRs", "teamPointRs", "teamCpRs", "teamPaceRs"],
+		"rank2List": ["regionDistanceRs", "regionPointRs", "regionCpRs", "regionPaceRs"]
+	}
+},
+"rankOverview": {
+	"css": "
+		.top{
+			position: relative;
+			width: 100%;
+			height: 220px;
+			padding-top: 36px;
+			justify-content: space-between;
+			background-image: url('static/backgroud/top_bg_dengshanjie.png');
+			background-repeat: no-repeat;
+			background-position-x: center;
+			background-position-y: center;
+			background-size: cover;
+		}
+		.topcontent {
+			display: none !important;
+		}
+		.topbar-color{
+			color: #333333;
+		}
+		.mid{
+			margin-top: -40px !important;
+		}
+		.btnStartGame{
+			background-color: #ff870e !important;
+		}
+		.e-select{
+			background-color: #ff870e !important;
+		}
+		.swiper-item-button{
+			background-color: #ff870e !important;
+		}
+		.uni-swiper-dot-active{
+			background: #ff870e !important;
+		}
+	",
+	"pathList": {
+		"row1": [{
+				"type": 3,
+				"pathImg": "/static/common/lingxiucheng.png",
+				"path": {
+					"ocaId": 1,
+					"mcType": 3
+				},
+				"navImg": "/static/common/nav.png",
+				"point": {
+					"longitude": 117.022194,
+					"latitude": 36.661612,
+					"name": "领秀城起始点"
+				}
+			},
+			{
+				"type": 3,
+				"pathImg": "/static/common/quanchenggongyuan.png",
+				"path": {
+					"ocaId": 1,
+					"mcType": 3
+				},
+				"navImg": "/static/common/nav.png",
+				"point": {
+					"longitude": 117.022194,
+					"latitude": 36.661612,
+					"name": "泉城公园起始点"
+				}
+			}
+		],
+		"row2": [{
+				"type": 3,
+				"pathImg": "/static/common/baihuagongyuan.png",
+				"path": {
+					"ocaId": 1,
+					"mcType": 3
+				},
+				"navImg": "/static/common/nav.png",
+				"point": {
+					"longitude": 117.022194,
+					"latitude": 36.661612,
+					"name": "百花公园起始点"
+				}
+			},
+			{
+				"type": 3,
+				"pathImg": "/static/common/aotizhongxin.png",
+				"path": {
+					"ocaId": 1,
+					"mcType": 3
+				},
+				"navImg": "/static/common/nav.png",
+				"point": {
+					"longitude": 117.022194,
+					"latitude": 36.661612,
+					"name": "奥体中心起始点"
+				}
+			}
+		],
+		"row3": [{
+			"type": 3,
+			"pathImg": "/static/common/muniushan.png",
+			"path": {
+				"ocaId": 1,
+				"mcType": 3
+			},
+			"navImg": "/static/common/nav.png",
+			"point": {
+				"longitude": 117.022194,
+				"latitude": 36.661612,
+				"name": "牧牛山起始点"
+			}
+		}]
+	},
+	"pathListStyle" : {
+		"showLine" : true,
+		"style": "justify-content: flex-start;"
+	},
+	"popupRuleConfig": {
+		"height": "530px"
+	},
+	"popupDataList": [
+		{
+			"type": 7,
+			"data": {
+				"title": "活动规则",
+				"content": "<br>① 任何人、任何时间均可体验参赛。<br><br>② 6个场地任意选,比赛时间内,不限次数参赛。<br><br>③ 1次成功打点,获取1个百味豆。<br><br>④ 1次正确答题,获取1个百味豆。"
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "活动奖励",
+				"content": "<br><li>活动: 20个百味豆兑换一个鸡蛋<br><span style='font-size: 12px; color:#999999;'>(限本次活动百味豆,兑换以“蛋叔券”为准)</style><li>百味豆越多,“蛋叔”给你的鸡蛋 越多,上不封顶!<li>随时可以兑换哦~<li>能不能吃上自己挣的鸡蛋,就看你的了!<li style='color:#FF870E;'><span style='color:#FF870E;'>同时,参赛即可获取合作机构的奖励!</span><br><br>",
+				"imageList": [{
+					"src": "/static/common/danshu.png",
+					"width": "183px",
+					"height": "81px"
+				}]
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "合作机构",
+				"logo": {
+					"src": "/static/logo/xxhpgy.png",
+					"width": "120px",
+					"height": "120px",
+					"memo": "星星和蒲公英双语阅读馆"
+				},
+				"content": "星星和蒲公英双语阅读馆,济南儿童阅读网红圣地!馆藏2W+册正版图书,涵盖中英文大奖绘本、桥梁书、自然科学与文学社科名著,以及艺术画册和摄影图集。开展面向4-12岁孩子的中文阅读读书会&中英双语阅读课。<br><br><span style='color:#FF870E;'>礼品一:到店阅读权限一年<br>礼品二:店内饮品五折券一张</span>",
+				"pointList": [
+					{
+						"name": "电话:<a href='tel:18765812082' style='color: #333333;'>18765812082</a>",
+						"longitude": 117.075174,
+						"latitude": 36.654108
+					}
+				]
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "合作机构",
+				"logo": {
+					"src": "/static/logo/wensiyu.png",
+					"width": "120px",
+					"height": "120px",
+					"memo": "文思语少年读书会"
+				},
+				"content": "文思语少年读书会,专注于为4-15岁儿童和家庭提供阅读素养发展解决方案和产品。读书会以整本书精读伴读为核心,塑造良好的读书习惯,训练阅读理解能力,培养创意作文能力。<br><br><span style='color:#FF870E;'>礼品:《山海经》精装套系书<br>书籍原价158元,仅需19.9元/套,不限领取次数,多余权限可赠送他人使用!</span>",
+				"pointList": [
+					{
+						"name": "电话:<a href='tel:17663733631' style='color: #333333;'>17663733631</a>",
+						"longitude": 117.075174,
+						"latitude": 36.654108
+					}
+				]
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "合作机构",
+				"logo": {
+					"src": "/static/logo/lezhigu.png",
+					"width": "120px",
+					"height": "120px",
+					"memo": "乐知谷"
+				},
+				"content": "乐知谷是济南科学类口碑最好的机构,主做面向4-12岁儿童,内容涵盖工程科技、自然科学、生命科学、地球太空、PBL综合项目等五大板块,室内&户外相结合,真正将实验、动手、探究融于生活,培养独立思考、永存好奇、敢于创造的未来型孩子。<br><span style='color:#FF870E;'>礼品:乐知谷经典工程体验课《建造一座斜拉桥》一堂,感受力学结构的科技含量课程每人限参与1次,多余权限可赠送他人使用</span>",
+				"pointList": [
+					{
+						"name": "电话:<a href='tel:19100652564' style='color: #333333;'>19100652564</a>",
+						"longitude": 117.075174,
+						"latitude": 36.654108
+					}
+				]
+			}
+		},
+		{
+			"type": 7,
+			"data": {
+				"title": "合作机构",
+				"logo": {
+					"src": "/static/logo/kusentiyu.png",
+					"width": "120px",
+					"height": "120px",
+					"memo": "酷森体育俱乐部"
+				},
+				"content": "酷森体育俱乐部包含少儿篮球、体能训练、跳绳,三大课程。拥有二十年以上资深学院派专家教练团队,制定系统的少儿运动训练体系,结合不同年龄及能力的孩子进行定制化教学,使其更符合不同孩子的综合能力提升。<br><br><span style='color:#FF870E;'>礼品:手机全年影视会员卡</span>",
+				"pointList": [
+					{
+						"name": "电话:<a href='tel:15621875115' style='color: #333333;'>15621875115</a>",
+						"longitude": 117.075174,
+						"latitude": 36.654108
+					}
+				]
+			}
+		}
+	],
+	"popupWarnConfig": {
+		"height": "550px"
+	},
+	"param": {
+		"subTitle": "",
+		"midType": 1
+	}
+}
+
 [山大]
 
 index卡片URL参数:type=团建活动&btnText=进入活动

+ 5 - 5
card/pages/bm/style4/index.vue

@@ -243,21 +243,21 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/index
 						/* const config = {
 						"css": `
 							.content-bg{
-								background: url('static/cardbg/shanda.png');
+								background: url('static/cardbg/dengshanjie.png');
 								background-size: cover;
 							}
 							.logo{
 								width: 40vw;
 								height: 40vw;
-								background: url('static/logo/sddx.png') no-repeat center;
+								background: url('static/logo/xfl2.png') no-repeat center;
 								background-size: contain;
 							}
 							.mod-text{
-								color: #ffffff !important;
+								color: #000000 !important;
 							}
 							.mod-button{
-								color: #942914 !important;
-								background-color: #ffffff !important;
+								color: #ffffff !important;
+								background-color: #ff870e !important;
 							}
 						`
 						}; */

+ 186 - 212
card/pages/bm/style4/rankList.vue

@@ -33,12 +33,18 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 				</view> -->
 
 				<view class="topbtm uni-row">
-					<view class="topbtm-egg" @click="btnMyEgg">我的奖券</view>
+					<view class="topbtm-egg" @click="btnMyEgg">{{configParam.labelTicketName}}</view>
 					<text class="topbtm-name">{{nickName}}</text>
-					<view class="topbtm-egg" @click="btnExchg">兑奖地址</view>
+					<view class="topbtm-egg" @click="btnExchg">{{configParam.labelAwardAddress}}</view>
 				</view>
 			</view>
 			<view class="main uni-column">
+				<view class="main-bar uni-row uni-jcse">
+					<text>总里程:{{fmtDistanct(all_totalDistance)}}km</text>
+					<text>总打点数:{{all_totalCp}}个</text>
+					<text>总百味豆数:{{all_totalSysPoint}}个</text>
+				</view>
+				
 				<my-tab ref="tab1" :tabItems="tab1Items" :type="1" @onTabClick="onTab1Click"
 					:initActIndex=configParam.tab1InitActIndex @onSelectChange="onSelectChange"></my-tab>
 				<my-tab ref="tab2" :tabItems="tab2Items" :tabItemsMark="tab2ItemsMark" :type="0"
@@ -175,6 +181,8 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 				cssTopbarColor: "",
 				configParam: {
 					labelRightAnswerNum: "文化输出",
+					labelTicketName: "我的奖券",
+					labelAwardAddress: "兑奖地址",
 					tab1InitActIndex: 0,
 					tab2InitActIndex: 0,
 				},
@@ -404,12 +412,50 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 				}
 				// console.log("[loadConfig] popupExchgList:", this.popupExchgList);
 
+				// 加载成绩参数
+				const rankParam = config.rankParam;
+				if (rankParam != undefined) {
+					if (rankParam.tab2ItemsMark != undefined) {
+						this.tab2ItemsMark = rankParam.tab2ItemsMark;
+					}
+					if (rankParam.dispArrStr != undefined && rankParam.dispArrStr.length > 0) {
+						this.dispArrStr = rankParam.dispArrStr;
+						// console.log("[loadConfig] dispArrStr:", rankParam.dispArrStr);
+					}
+					if (rankParam.tab2Items_team != undefined && rankParam.tab2Items_team.length > 0) {
+						this.tab2Items_team = rankParam.tab2Items_team;
+						// console.log("[loadConfig] tab2Items_team:", rankParam.tab2Items_team);
+					}
+					if (rankParam.tab2Items_person != undefined && rankParam.tab2Items_person.length > 0) {
+						this.tab2Items_person = rankParam.tab2Items_person;
+					}
+					if (rankParam.rankTypeList_team != undefined && rankParam.rankTypeList_team.length > 0) {
+						this.rankTypeList_team = rankParam.rankTypeList_team;
+					}
+					if (rankParam.rankTypeList_person != undefined && rankParam.rankTypeList_person.length > 0) {
+						this.rankTypeList_person = rankParam.rankTypeList_person;
+					}
+					if (rankParam.rank1List != undefined && rankParam.rank1List.length > 0) {
+						this.rank1List = rankParam.rank1List;
+					}
+					if (rankParam.rank2List != undefined && rankParam.rank2List.length > 0) {
+						this.rank2List = rankParam.rank2List;
+					}
+				}
+				// console.log("[loadConfig] rankParam:", rankParam);
+				
 				// 加载页面参数
 				const param = config.param;
 				if (param != undefined) {
 					if (param.labelRightAnswerNum != undefined && param.labelRightAnswerNum.length > 0) {
 						this.configParam.labelRightAnswerNum = param.labelRightAnswerNum;
 					}
+					if (param.labelTicketName != undefined && param.labelTicketName.length > 0) {
+						this.configParam.labelTicketName = param.labelTicketName;
+					}
+					if (param.labelAwardAddress != undefined && param.labelAwardAddress.length > 0) {
+						this.configParam.labelAwardAddress = param.labelAwardAddress;
+					}
 					if (param.tab1InitActIndex != undefined && param.tab1InitActIndex >= 0) {
 						this.configParam.tab1InitActIndex = param.tab1InitActIndex;
 						this.tab1Current = param.tab1InitActIndex;
@@ -470,7 +516,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 						pageName: this.pageName
 					},
 					success: (res) => {
-						// console.log("getCardConfigQuery", res)
+						// console.log("getCardConfigQuery", res);
 						const data = res.data.data;
 						// console.log("configJson", data.configJson);
 						const config = data.configJson != "" ? JSON.parse(data.configJson) : "";
@@ -482,282 +528,199 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 									height: 170px;
 									padding-top: 36px;
 									justify-content: space-between;
-									background-image: url('static/backgroud/top_bg_sddx.png');
+									background-image: url('static/backgroud/top_bg_dengshanjie.png');
 									background-repeat: no-repeat;
 									background-position-x: center;
-									background-position-y: bottom;
+									background-position-y: -20px;
 									background-size: cover;
 								}
-								.logo{
-									background-image: url('static/logo/sddx.png');
-								}
-								.tcbar{
-									display: flex !important;
+								.topcontent {
+									display: none !important;
 								}
 								.topbar-color{
-									color: #ffffff;
+									color: #333333;
+								}
+								.topbtm-name {
+									background-color: #c77f34 !important;
+									border: none !important;
+									color: #ffffff !important;
+								}
+								.topbtm-egg {
+									background-color: #c77f34 !important;
+									border: none !important;
+									color: #ffffff !important;
+								}
+								.main-bar {
+									display: flex !important;
+									background-color: #ffeddb !important;
+									color: #ff8d1a !important;
 								}
 								.btnBack{
-									background-color: #a43a07 !important;
+									background-color: #ff870e !important;
 								}
 								.tab-active{
-									background-color: #a43a07 !important;
+									background-color: #ff870e !important;
 								}
 								.swiper-item-button {
-									background-color: #a43a07 !important;
+									background-color: #ff870e !important;
 								}
 								.uni-swiper-dot-active {
-									background: #a43a07 !important;
+									background: #ff870e !important;
 								}
 							`,
-							"tabActiveColor": "#a43a07",
+							"tabActiveColor": "#ff870e",
 							"popupRuleConfig": {
-								"height": "500px"
+								"height": "530px"
 							},
-							"popupDataList": [								
-								{
-									"type": 1,
-									"data": {
-										"title": "山大24级新生校园定向赛",
-										"img": "/static/logo/sddx.png",
-										"content": "  开学季来袭!山大24级新生校园定向赛燃情启幕!探索校园每一个角落,挑战智慧与体能,全校师生共同开启新学期活力篇章!等你来挑战!"
-									}
-								},
+							"popupDataList": [
 								{
 									"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": []
+										"title": "活动规则",
+										"content": "<br>① 任何人、任何时间均可体验参赛。<br><br>② 6个场地任意选,比赛时间内,不限次数参赛。<br><br>③ 1次成功打点,获取1个百味豆。<br><br>④ 1次正确答题,获取1个百味豆。"
 									}
 								},
 								{
 									"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": []
+										"title": "活动奖励",
+										"content": "<br><li>活动: 20个百味豆兑换一个鸡蛋<br><span style='font-size: 12px; color:#999999;'>(限本次活动百味豆,兑换以“蛋叔券”为准)</style><li>百味豆越多,“蛋叔”给你的鸡蛋 越多,上不封顶!<li>随时可以兑换哦~<li>能不能吃上自己挣的鸡蛋,就看你的了!<li style='color:#FF870E;'><span style='color:#FF870E;'>同时,参赛即可获取合作机构的奖励!</span><br><br>",
+										"imageList": [{
+											"src": "/static/common/danshu.png",
+											"width": "183px",
+											"height": "81px"
+										}]
 									}
 								},
 								{
 									"type": 7,
 									"data": {
-										"topLogo": {
-											"src": "/static/logo/sddx.png",
-											"width": "80px",
-											"height": "80px"
-										},
-										"bottomLogo": {
-											"src": "/static/logo/inzone.png",
-											"width": "150px",
-											"height": "30px"
+										"title": "合作机构",
+										"logo": {
+											"src": "/static/logo/xxhpgy.png",
+											"width": "120px",
+											"height": "120px",
+											"memo": "星星和蒲公英双语阅读馆"
 										},
-										"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": []
+										"content": "星星和蒲公英双语阅读馆,济南儿童阅读网红圣地!馆藏2W+册正版图书,涵盖中英文大奖绘本、桥梁书、自然科学与文学社科名著,以及艺术画册和摄影图集。开展面向4-12岁孩子的中文阅读读书会&中英双语阅读课。<br><br><span style='color:#FF870E;'>礼品一:到店阅读权限一年<br>礼品二:店内饮品五折券一张</span>",
+										"pointList": [
+											{
+												"name": "电话:<a href='tel:18765812082' style='color: #333333;'>18765812082</a>",
+												"longitude": 117.075174,
+												"latitude": 36.654108
+											}
+										]
 									}
 								},
 								{
 									"type": 7,
 									"data": {
-										"topLogo": {
-											"src": "/static/logo/sddx.png",
-											"width": "80px",
-											"height": "80px"
+										"title": "合作机构",
+										"logo": {
+											"src": "/static/logo/wensiyu.png",
+											"width": "120px",
+											"height": "120px",
+											"memo": "文思语少年读书会"
 										},
-										"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"
+										"content": "文思语少年读书会,专注于为4-15岁儿童和家庭提供阅读素养发展解决方案和产品。读书会以整本书精读伴读为核心,塑造良好的读书习惯,训练阅读理解能力,培养创意作文能力。<br><br><span style='color:#FF870E;'>礼品:《山海经》精装套系书<br>书籍原价158元,仅需19.9元/套,不限领取次数,多余权限可赠送他人使用!</span>",
+										"pointList": [
+											{
+												"name": "电话:<a href='tel:17663733631' style='color: #333333;'>17663733631</a>",
+												"longitude": 117.075174,
+												"latitude": 36.654108
+											}
+										]
 									}
 								},
 								{
 									"type": 7,
 									"data": {
-										"topLogo": {
-											"src": "/static/logo/sddx.png",
-											"width": "80px",
-											"height": "80px"
-										},
-										"bottomLogo": {
-											"src": "/static/logo/inzone.png",
-											"width": "150px",
-											"height": "30px"
+										"title": "合作机构",
+										"logo": {
+											"src": "/static/logo/lezhigu.png",
+											"width": "120px",
+											"height": "120px",
+											"memo": "乐知谷"
 										},
-										"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>"
+										"content": "乐知谷是济南科学类口碑最好的机构,主做面向4-12岁儿童,内容涵盖工程科技、自然科学、生命科学、地球太空、PBL综合项目等五大板块,室内&户外相结合,真正将实验、动手、探究融于生活,培养独立思考、永存好奇、敢于创造的未来型孩子。<br><span style='color:#FF870E;'>礼品:乐知谷经典工程体验课《建造一座斜拉桥》一堂,感受力学结构的科技含量课程每人限参与1次,多余权限可赠送他人使用</span>",
+										"pointList": [
+											{
+												"name": "电话:<a href='tel:19100652564' style='color: #333333;'>19100652564</a>",
+												"longitude": 117.075174,
+												"latitude": 36.654108
+											}
+										]
 									}
 								},
 								{
-									"type": 8,
+									"type": 7,
 									"data": {
-										"title": "兑换地点",
-										"topImg": {
-											"src": "/static/logo/inzone2.png",
-											"width": "72px",
-											"height": "72px"
+										"title": "合作机构",
+										"logo": {
+											"src": "/static/logo/kusentiyu.png",
+											"width": "120px",
+											"height": "120px",
+											"memo": "酷森体育俱乐部"
 										},
-										"topMemo": "<view style='color:#E60012;font-size:14px;'>品质消费引领者 &nbsp; &nbsp; 美好生活推荐官</view>",
-										"bottomMemo": "<view style='display: flex; align-items: center; justify-content: center; margin-top: 20px; color: #E67300; font-weight: 500; font-size: 15px; text-decoration-line: underline;'><image src='static/common/bulb.png' style='width: 22px; height: 26px; margin-right: 6px;'></image>点击查看《优惠券使用说明》</view>",
-										"bottomMemoUrl": "https://oss-mbh5.colormaprun.com/page/explanation/inzone.html",
+										"content": "酷森体育俱乐部包含少儿篮球、体能训练、跳绳,三大课程。拥有二十年以上资深学院派专家教练团队,制定系统的少儿运动训练体系,结合不同年龄及能力的孩子进行定制化教学,使其更符合不同孩子的综合能力提升。<br><br><span style='color:#FF870E;'>礼品:手机全年影视会员卡</span>",
 										"pointList": [
 											{
-												"map": "中 心 校 区",
-												"name": "银座燕山店",
+												"name": "电话:<a href='tel:15621875115' style='color: #333333;'>15621875115</a>",
 												"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"
+								"height": "460px"
 							},
 							"popupExchgList": [
 								{
-									"type": 8,
+									"type": 5,
 									"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: flex; align-items: center; justify-content: center; margin-top: 20px; color: #E67300; font-weight: 500; font-size: 15px; text-decoration-line: underline;'><image src='static/common/bulb.png' style='width: 22px; height: 26px; margin-right: 6px;'></image>点击查看《优惠券使用说明》</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
-											}
-										]
+										"title": "兑换地点1",
+										"img": "/static/common/gtgwcs.png",
+										"point": {
+											"longitude": 117.022194,
+											"latitude": 36.661612,
+											"name": "冠同购物超市"
+										}
 									}
 								},
+								{
+									"type": 5,
+									"data": {
+										"title": "兑换地点2",
+										"img": "/static/common/wslgwcs2.png",
+										"point": {
+											"longitude": 117.022194,
+											"latitude": 36.661612,
+											"name": "万盛隆购物超市"
+										}
+									}
+								}
 							],
+							"popupMessageConfig": {
+								"height": "500px"
+							},
 							"param": {
 								"labelRightAnswerNum": "文化输出",
+								"labelTicketName": "蛋叔券",
+								"labelAwardAddress": "兑换地址",
 								"tab1InitActIndex": 0,
-								"tab2InitActIndex": 1
+								"tab2InitActIndex": 0
+							},
+							"rankParam": {
+								"tab2ItemsMark": [],
+								"dispArrStr": "teamDistance,teamPoint,teamCp,teamPace,regionDistance,regionPoint,regionCp,regionPace",
+								"tab2Items_team": ["里程", "打点数", "百味豆", "配速"],
+								"tab2Items_person": ["里程", "打点数", "百味豆", "配速"],
+								"rankTypeList_team": ["totalDistance", "totalCp", "totalSysPoint", "fastPace"],
+								"rankTypeList_person": ["totalDistance", "totalCp", "totalSysPoint", "fastPace"],
+								"rank1List": ["teamDistanceRs", "teamPointRs", "teamCpRs", "teamPaceRs"],
+								"rank2List": ["regionDistanceRs", "regionPointRs", "regionCpRs", "regionPaceRs"]
 							}
 						}; */
 
@@ -956,7 +919,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 						this.rankList = rankdata;
 					},
 					fail: (err) => {
-						console.log("getCardRankDetailQuery err", err)
+						console.log("getCardRankDetailQuery err", err);
 					},
 				});
 			},
@@ -1092,7 +1055,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 
 							if (this.popupMessageList.length > 0) {
 								const messageValue = uni.getStorageSync(this.messageKey);
-								console.log("messageValue:", messageValue);
+								// console.log("messageValue:", messageValue);
 								if (!messageValue) {
 									this.$refs.mypopupMessage.popupOpen();
 									// uni.setStorageSync(this.messageKey, true);
@@ -1395,6 +1358,17 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankList
 		justify-content: space-around;
 		/* justify-content: space-between; */
 	}
+	
+	.main-bar {
+		display: none;
+		width: 100%;
+		height: 21px;
+		background-color: #d8e8c6;
+		
+		font-size: 10px;
+		font-weight: 500;
+		color: #3d6706;
+	}
 
 	/* /deep/ .tab-active {
 		background-color: #a43a07 !important;

+ 210 - 235
card/pages/bm/style4/rankOverview.vue

@@ -17,15 +17,15 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 				</view>
 			</view>
 
-			<view class="mid uni-column">
+			<view v-if="configParam.midType == 0" class="midType0 uni-column">
 				<view class="mid-0 uni-row uni-jcc">
-					<view class="mid-0-select">
+					<view class="midType0-select">
 						<e-select v-model="ocaId" :options="mapList" :search="false" :inputClick="true"
 							maxHeight="300px" :clearable="false" @change="eSelectChange"></e-select>
 					</view>
 					<text v-if="popupHelpList.length > 0" class="mid-0-help" @click="btnHelp">帮助</text>
 				</view>
-				<view class="mid-1 uni-row uni-jcsa">
+				<view class="midType0-mid-1 uni-row uni-jcsa">
 					<view class="uni-row">
 						<image v-if="popupWarnList.length > 0" class="mid-1-yellowCard" mode="aspectFit" 
 						 @click="btnWarn" src="/static/common/card_yellow.gif"></image>
@@ -55,6 +55,43 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 
 				</view>
 			</view>
+			
+			<view v-if="configParam.midType == 1" class="midType1 uni-column">
+				<view class="midType1-mid-1 uni-row uni-jcsb">
+					<text class="mid-1-name">{{nickName}}asdfasdfasdf</text>
+					<view class="midType1-select">
+						<e-select v-model="ocaId" :options="mapList" :search="false" :inputClick="true"
+							maxHeight="300px" :clearable="false" @change="eSelectChange"></e-select>
+					</view>
+					<text class="uni-nowrap">总场次:{{regionTotalNum}}</text>
+				</view>
+				<view class="mid-2 uni-row uni-jcsa">
+					<view class="uni-column">
+						<text class="mid-2-value" style="color: #ff0045;">{{regionTotalSysPoint}}</text>
+						<text class="mid-2-text">百味豆(个)</text>
+					</view>
+			
+					<view class="mid-line"></view>
+			
+					<view class="uni-column">
+						<text class="mid-2-value">{{fmtDistanct(regionTotalDictance)}}</text>
+						<text class="mid-2-text">总里程km</text>
+					</view>
+			
+					<view class="mid-line"></view>
+					<view class="uni-column">
+						<text class="mid-2-value">{{regionTotalCp}}</text>
+						<text class="mid-2-text">打点数(个)</text>
+					</view>
+			
+					<view class="mid-line"></view>
+			
+					<view class="uni-column">
+						<text class="mid-2-value">{{fmtPace(regionFastPace)}}</text>
+						<text class="mid-2-text">最快配速</text>
+					</view>
+				</view>
+			</view>
 
 			<view class="main uni-column">
 				<text class="main-title">选择比赛路线</text>
@@ -127,6 +164,9 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 				regionTotalNum: null, // 地图内总场次
 				regionTotalCp: null, // 地图内打点数
 				regionTotalCpRankNum: null, // 地图内个人打点排名
+				regionTotalSysPoint: null, // 地图内积分(百味豆)
+				regionTotalDictance: null, // 地图内里程(单位米)
+				regionFastPace: null, // 地图内最快配速
 				ocaRs: [], // 卡片对应活动集合
 
 				mapList: [], // 地图列表
@@ -149,7 +189,8 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 				popupWarnList: [],
 				navPoint: {},
 				configParam: {
-					subTitle: ""
+					subTitle: "",
+					midType: 0
 				},
 			}
 		},
@@ -377,6 +418,9 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 					if (param.subTitle != undefined && param.subTitle.length > 0) {
 						this.configParam.subTitle = param.subTitle;
 					}
+					if (param.midType != undefined && param.midType >= 0) {
+						this.configParam.midType = param.midType;
+					}
 				}
 				// console.log("[loadConfig] param:", this.configParam);
 			},
@@ -399,7 +443,11 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 			},
 			// 格式化 距离
 			fmtDistanct(val) {
-				return Math.round(val * 100 / 1000) / 100;
+				if (val >= 0) {
+					return Math.round(val * 100 / 1000) / 100;
+				} else {
+					return '--';
+				}
 				/* if (val < 1000)
 					return Math.round(val * 10 / 1000) / 10;
 				else
@@ -407,7 +455,11 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 			},
 			// 格式化 配速
 			fmtPace(val) {
-				return tools.convertSecondsToHMS(val, 2);
+				if (val >= 0) {
+					return tools.convertSecondsToHMS(val, 2);
+				} else {
+					return '--';
+				}
 			},
 			fmtMcTime(timestamp) {
 				return tools.fmtMcTime(timestamp);
@@ -445,339 +497,222 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 									height: 220px;
 									padding-top: 36px;
 									justify-content: space-between;
-									background-image: url('static/backgroud/top_bg_sddx.png');
+									background-image: url('static/backgroud/top_bg_dengshanjie.png');
 									background-repeat: no-repeat;
 									background-position-x: center;
 									background-position-y: center;
 									background-size: cover;
 								}
-								.logo{
-									background-image: url('static/logo/sddx.png');
-								}
-								.top-acttime{
-									display: flex !important;
+								.topcontent {
+									display: none !important;
 								}
 								.topbar-color{
-									color: #ffffff;
+									color: #333333;
 								}
 								.mid{
 									margin-top: -40px !important;
 								}
 								.btnStartGame{
-									background-color: #a43a07 !important;
+									background-color: #ff870e !important;
 								}
 								.e-select{
-									background-color: #a43a07 !important;
+									background-color: #ff870e !important;
 								}
 								.swiper-item-button{
-									background-color: #a43a07 !important;
+									background-color: #ff870e !important;
 								}
 								.uni-swiper-dot-active{
-									background: #a43a07 !important;
+									background: #ff870e !important;
 								}
 							`,
 							"pathList": {
-								 "row1": [
-									{
+								"row1": [{
 										"type": 3,
-										"pathImg": "/static/common/sdzxxq.png",
+										"pathImg": "/static/common/lingxiucheng.png",
 										"path": {
-											"ocaId": 9,
+											"ocaId": 1,
 											"mcType": 3
 										},
 										"navImg": "/static/common/nav.png",
 										"point": {
-											"longitude": 117.05842197272015,
-											"latitude": 36.6773045110179,
-											"name": "山大中心校区起始点"
+											"longitude": 117.022194,
+											"latitude": 36.661612,
+											"name": "领秀城起始点"
 										}
 									},
 									{
 										"type": 3,
-										"pathImg": "/static/common/sdbtqxq.png",
+										"pathImg": "/static/common/quanchenggongyuan.png",
 										"path": {
-											"ocaId": 19,
+											"ocaId": 1,
 											"mcType": 3
 										},
 										"navImg": "/static/common/nav.png",
 										"point": {
-											"longitude": 117.01808165974633,
-											"latitude": 36.651520245517816,
-											"name": "山大趵突泉校区起始点"
+											"longitude": 117.022194,
+											"latitude": 36.661612,
+											"name": "泉城公园起始点"
 										}
 									}
 								],
-								"row2": [
-									{
+								"row2": [{
 										"type": 3,
-										"pathImg": "/static/common/sdhjlxq.png",
+										"pathImg": "/static/common/baihuagongyuan.png",
 										"path": {
-											"ocaId": 10,
+											"ocaId": 1,
 											"mcType": 3
 										},
 										"navImg": "/static/common/nav.png",
 										"point": {
-											"longitude": 117.06584701149195,
-											"latitude": 36.68711365814297,
-											"name": "山大洪家楼校区起始点"
+											"longitude": 117.022194,
+											"latitude": 36.661612,
+											"name": "百花公园起始点"
 										}
 									},
 									{
 										"type": 3,
-										"pathImg": "/static/common/sdrjyxq.png",
+										"pathImg": "/static/common/aotizhongxin.png",
 										"path": {
-											"ocaId": 21,
+											"ocaId": 1,
 											"mcType": 3
 										},
 										"navImg": "/static/common/nav.png",
 										"point": {
-											"longitude": 117.1434547046918,
-											"latitude": 36.66680223258383,
-											"name": "山大软件园校区起始点"
+											"longitude": 117.022194,
+											"latitude": 36.661612,
+											"name": "奥体中心起始点"
 										}
 									}
 								],
-								"row3": [
-									{
-										"type": 3,
-										"pathImg": "/static/common/sdxlsxq.png",
-										"path": {
-											"ocaId": 11,
-											"mcType": 3
-										},
-										"navImg": "/static/common/nav.png",
-										"point": {
-											"longitude": 117.0517531094238,
-											"latitude": 36.598365483441846,
-											"name": "山大兴隆校区起始点"
-										}
+								"row3": [{
+									"type": 3,
+									"pathImg": "/static/common/muniushan.png",
+									"path": {
+										"ocaId": 1,
+										"mcType": 3
 									},
-									{
-										"type": 3,
-										"pathImg": "/static/common/sdqfsxq.png",
-										"path": {
-											"ocaId": 20,
-											"mcType": 3
-										},
-										"navImg": "/static/common/nav.png",
-										"point": {
-											"longitude": 117.0281052458668,
-											"latitude": 36.64736827526403,
-											"name": "山大千佛山校区起始点"
-										}
+									"navImg": "/static/common/nav.png",
+									"point": {
+										"longitude": 117.022194,
+										"latitude": 36.661612,
+										"name": "牧牛山起始点"
 									}
-								]
+								}]
 							},
-							"pathListStyle": {
-								"showLine": true,
+							"pathListStyle" : {
+								"showLine" : true,
 								"style": "justify-content: flex-start;"
 							},
 							"popupRuleConfig": {
-								"height": "500px"
+								"height": "530px"
 							},
 							"popupDataList": [
-								{
-									"type": 1,
-									"data": {
-										"title": "山大24级新生校园定向赛",
-										"img": "/static/logo/sddx.png",
-										"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": []
+										"title": "活动规则",
+										"content": "<br>① 任何人、任何时间均可体验参赛。<br><br>② 6个场地任意选,比赛时间内,不限次数参赛。<br><br>③ 1次成功打点,获取1个百味豆。<br><br>④ 1次正确答题,获取1个百味豆。"
 									}
 								},
 								{
 									"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": []
+										"title": "活动奖励",
+										"content": "<br><li>活动: 20个百味豆兑换一个鸡蛋<br><span style='font-size: 12px; color:#999999;'>(限本次活动百味豆,兑换以“蛋叔券”为准)</style><li>百味豆越多,“蛋叔”给你的鸡蛋 越多,上不封顶!<li>随时可以兑换哦~<li>能不能吃上自己挣的鸡蛋,就看你的了!<li style='color:#FF870E;'><span style='color:#FF870E;'>同时,参赛即可获取合作机构的奖励!</span><br><br>",
+										"imageList": [{
+											"src": "/static/common/danshu.png",
+											"width": "183px",
+											"height": "81px"
+										}]
 									}
 								},
 								{
 									"type": 7,
 									"data": {
-										"topLogo": {
-											"src": "/static/logo/sddx.png",
-											"width": "80px",
-											"height": "80px"
-										},
-										"bottomLogo": {
-											"src": "/static/logo/inzone.png",
-											"width": "150px",
-											"height": "30px"
+										"title": "合作机构",
+										"logo": {
+											"src": "/static/logo/xxhpgy.png",
+											"width": "120px",
+											"height": "120px",
+											"memo": "星星和蒲公英双语阅读馆"
 										},
-										"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": []
+										"content": "星星和蒲公英双语阅读馆,济南儿童阅读网红圣地!馆藏2W+册正版图书,涵盖中英文大奖绘本、桥梁书、自然科学与文学社科名著,以及艺术画册和摄影图集。开展面向4-12岁孩子的中文阅读读书会&中英双语阅读课。<br><br><span style='color:#FF870E;'>礼品一:到店阅读权限一年<br>礼品二:店内饮品五折券一张</span>",
+										"pointList": [
+											{
+												"name": "电话:<a href='tel:18765812082' style='color: #333333;'>18765812082</a>",
+												"longitude": 117.075174,
+												"latitude": 36.654108
+											}
+										]
 									}
 								},
 								{
 									"type": 7,
 									"data": {
-										"topLogo": {
-											"src": "/static/logo/sddx.png",
-											"width": "80px",
-											"height": "80px"
+										"title": "合作机构",
+										"logo": {
+											"src": "/static/logo/wensiyu.png",
+											"width": "120px",
+											"height": "120px",
+											"memo": "文思语少年读书会"
 										},
-										"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"
+										"content": "文思语少年读书会,专注于为4-15岁儿童和家庭提供阅读素养发展解决方案和产品。读书会以整本书精读伴读为核心,塑造良好的读书习惯,训练阅读理解能力,培养创意作文能力。<br><br><span style='color:#FF870E;'>礼品:《山海经》精装套系书<br>书籍原价158元,仅需19.9元/套,不限领取次数,多余权限可赠送他人使用!</span>",
+										"pointList": [
+											{
+												"name": "电话:<a href='tel:17663733631' style='color: #333333;'>17663733631</a>",
+												"longitude": 117.075174,
+												"latitude": 36.654108
+											}
+										]
 									}
 								},
 								{
 									"type": 7,
 									"data": {
-										"topLogo": {
-											"src": "/static/logo/sddx.png",
-											"width": "80px",
-											"height": "80px"
+										"title": "合作机构",
+										"logo": {
+											"src": "/static/logo/lezhigu.png",
+											"width": "120px",
+											"height": "120px",
+											"memo": "乐知谷"
 										},
-										"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>"
+										"content": "乐知谷是济南科学类口碑最好的机构,主做面向4-12岁儿童,内容涵盖工程科技、自然科学、生命科学、地球太空、PBL综合项目等五大板块,室内&户外相结合,真正将实验、动手、探究融于生活,培养独立思考、永存好奇、敢于创造的未来型孩子。<br><span style='color:#FF870E;'>礼品:乐知谷经典工程体验课《建造一座斜拉桥》一堂,感受力学结构的科技含量课程每人限参与1次,多余权限可赠送他人使用</span>",
+										"pointList": [
+											{
+												"name": "电话:<a href='tel:19100652564' style='color: #333333;'>19100652564</a>",
+												"longitude": 117.075174,
+												"latitude": 36.654108
+											}
+										]
 									}
 								},
 								{
-									"type": 8,
+									"type": 7,
 									"data": {
-										"title": "兑换地点",
-										"topImg": {
-											"src": "/static/logo/inzone2.png",
-											"width": "72px",
-											"height": "72px"
+										"title": "合作机构",
+										"logo": {
+											"src": "/static/logo/kusentiyu.png",
+											"width": "120px",
+											"height": "120px",
+											"memo": "酷森体育俱乐部"
 										},
-										"topMemo": "<view style='color:#E60012;font-size:14px;'>品质消费引领者 &nbsp; &nbsp; 美好生活推荐官</view>",
-										"bottomMemo": "<view style='display: flex; align-items: center; justify-content: center; margin-top: 20px; color: #E67300; font-weight: 500; font-size: 15px; text-decoration-line: underline;'><image src='static/common/bulb.png' style='width: 22px; height: 26px; margin-right: 6px;'></image>点击查看《优惠券使用说明》</view>",
-										"bottomMemoUrl": "https://oss-mbh5.colormaprun.com/page/explanation/inzone.html",
+										"content": "酷森体育俱乐部包含少儿篮球、体能训练、跳绳,三大课程。拥有二十年以上资深学院派专家教练团队,制定系统的少儿运动训练体系,结合不同年龄及能力的孩子进行定制化教学,使其更符合不同孩子的综合能力提升。<br><br><span style='color:#FF870E;'>礼品:手机全年影视会员卡</span>",
 										"pointList": [
 											{
-												"map": "中 心 校 区",
-												"name": "银座燕山店",
+												"name": "电话:<a href='tel:15621875115' style='color: #333333;'>15621875115</a>",
 												"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
 											}
 										]
 									}
 								}
 							],
-							"popupHelpConfig": {
-								"height": "539px"
-							},
-							"popupHelpList": [
-								{
-									"type": 2,
-									"data": {
-										"title": "帮助",
-										"img": "/static/common/qrcode_help.png",
-										"imgParam": {
-											"height": "370px"
-										}
-									}
-								}
-							],
 							"popupWarnConfig": {
 								"height": "550px"
 							},
 							"param": {
-								"subTitle": "山东大学123周年庆"
+								"subTitle": "",
+								"midType": 1
 							}
 						}; */
 
@@ -862,6 +797,9 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 							this.regionTotalNum = data.regionTotalNum;
 							this.regionTotalCp = data.regionTotalCp;
 							this.regionTotalCpRankNum = data.regionTotalCpRankNum;
+							this.regionTotalSysPoint = data.regionTotalSysPoint;
+							this.regionTotalDictance = data.regionTotalDictance;
+							this.regionFastPace = data.regionFastPace;
 							this.ocaRs = data.ocaRs;
 
 							this.mcState = tools.checkMcState(this.beginSecond, this.endSecond);
@@ -1001,7 +939,7 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 				tools.appAction(url, "uni.navigateTo");
 			},
 			eSelectChange(data) {
-				console.log("eSelectChange:", data);
+				// console.log("eSelectChange:", data);
 				this.ocaId = data.value;
 				this.matchRsDetailQuery();
 				uni.setStorageSync(this.mapKey, this.ocaId);
@@ -1109,24 +1047,36 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 		font-size: 14px;
 	}
 
-	.mid {
+	.midType0 {
 		width: 90%;
 		height: 150px;
 		position: relative;
 		z-index: 20;
-		margin-top: -100px;
+		margin-top: -40px;
 		background: #ffffff;
 		border-radius: 9px;
 		box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.13);
 		font-family: Source Han Sans CN;
 	}
 
+	.midType1 {
+		width: 90%;
+		height: 112px;
+		position: relative;
+		z-index: 20;
+		margin-top: -70px;
+		background: #ffffff;
+		border-radius: 9px;
+		box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.13);
+		font-family: Source Han Sans CN;
+	}
+	
 	.mid-0 {
 		width: 90%;
 		margin: 12px;
 	}
 	
-	.mid-0-select {
+	.midType0-select {
 		width: 60%;
 		font-weight: 500;
 		color: #8e8e8e;
@@ -1141,17 +1091,42 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/rankOverview
 		color: #992900;
 	}
 
-	.mid-1 {
+	.midType0-mid-1 {
 		width: 90%;
 		margin-bottom: 12px;
 	}
 	
+	.midType1-select {
+		/* width: 46%; */
+		min-width: 46%;
+		max-width: 50%;
+		margin: 0 5px;
+		font-weight: 500;
+		color: #8e8e8e;
+		font-size: 14px;
+	}
+	
+	.midType1-mid-1 {
+		width: 90%;
+		margin: 12px;
+		font-weight: 500;
+		color: #8e8e8e;
+		font-size: 14px;
+	}
+	
 	.mid-1-yellowCard {
 		width: 15px;
 		height: 20px;
 		margin-right: 10px;
 	}
 
+	.mid-1-name {
+		max-width: 360rpx;
+		white-space: nowrap;
+		overflow: hidden;
+		text-overflow: ellipsis;
+	}
+	
 	.mid-1-text {
 		/* min-width: 60px; */
 		font-weight: 500;

+ 114 - 26
card/pages/bm/style4/signup.vue

@@ -364,55 +364,143 @@ https://oss-mbh5.colormaprun.com/card/#/pages/bm/style4/signup
 							"css": `
 								.top{
 									width: 100%;
-									height: 220px;
+									height: 150px;
 									padding-top: 36px;
 									justify-content: space-between;
-									background-image: url('static/backgroud/top_bg_sddx.png');
+									background-image: url('static/backgroud/top_bg_dengshanjie.png');
 									background-repeat: no-repeat;
 									background-position: center;
 									background-size: cover;
 								}
-								.logo{
-									background-image: url('static/logo/sddx.png');
-								}
-								.top-acttime{
-									display: flex !important;
-								}
 								.topbar-color{
-									color: #ffffff;
+									color: #333333;
+								}
+								.timebar {
+									margin-top: 25px !important;
+									margin-bottom: 10px;
 								}
 								.btnSignup-enable {
-									background-color: #a43a07 !important;
+									background-color: #ff870e !important;
 								}
 								.swiper-item-button {
-									background-color: #a43a07 !important;
+									background-color: #ff870e !important;
 								}
 								.uni-swiper-dot-active {
-									background: #a43a07 !important;
+									background: #ff870e !important;
 								}
 							`,
-							"popupDataList": [{
-									"type": 1,
+							"popupRuleConfig": {
+								"height": "530px"
+							},
+							"popupDataList": [								
+								{
+									"type": 7,
+									"data": {
+										"title": "活动规则",
+										"content": "<br>① 任何人、任何时间均可体验参赛。<br><br>② 6个场地任意选,比赛时间内,不限次数参赛。<br><br>③ 1次成功打点,获取1个百味豆。<br><br>④ 1次正确答题,获取1个百味豆。"
+									}
+								},
+								{
+									"type": 7,
+									"data": {
+										"title": "活动奖励",
+										"content": "<br><li>活动: 20个百味豆兑换一个鸡蛋<br><span style='font-size: 12px; color:#999999;'>(限本次活动百味豆,兑换以“蛋叔券”为准)</style><li>百味豆越多,“蛋叔”给你的鸡蛋 越多,上不封顶!<li>随时可以兑换哦~<li>能不能吃上自己挣的鸡蛋,就看你的了!<li style='color:#FF870E;'><span style='color:#FF870E;'>同时,参赛即可获取合作机构的奖励!</span><br><br>",
+										"imageList": [{
+											"src": "/static/common/danshu.png",
+											"width": "183px",
+											"height": "81px"
+										}]
+									}
+								},
+								{
+									"type": 7,
 									"data": {
-										"title": "山大校园定向赛",
-										"img": "/static/logo/sddx.png",
-										"content": "  开学季来袭!山大校园定向赛燃情启幕!探索校园每一个角落,挑战智慧与体能,全校师生共同开启新学期活力篇章!等你来挑战!"
+										"title": "合作机构",
+										"logo": {
+											"src": "/static/logo/xxhpgy.png",
+											"width": "120px",
+											"height": "120px",
+											"memo": "星星和蒲公英双语阅读馆"
+										},
+										"content": "星星和蒲公英双语阅读馆,济南儿童阅读网红圣地!馆藏2W+册正版图书,涵盖中英文大奖绘本、桥梁书、自然科学与文学社科名著,以及艺术画册和摄影图集。开展面向4-12岁孩子的中文阅读读书会&中英双语阅读课。<br><br><span style='color:#FF870E;'>礼品一:到店阅读权限一年<br>礼品二:店内饮品五折券一张</span>",
+										"pointList": [
+											{
+												"name": "电话:<a href='tel:18765812082' style='color: #333333;'>18765812082</a>",
+												"longitude": 117.075174,
+												"latitude": 36.654108
+											}
+										]
 									}
 								},
-								"default"
+								{
+									"type": 7,
+									"data": {
+										"title": "合作机构",
+										"logo": {
+											"src": "/static/logo/wensiyu.png",
+											"width": "120px",
+											"height": "120px",
+											"memo": "文思语少年读书会"
+										},
+										"content": "文思语少年读书会,专注于为4-15岁儿童和家庭提供阅读素养发展解决方案和产品。读书会以整本书精读伴读为核心,塑造良好的读书习惯,训练阅读理解能力,培养创意作文能力。<br><br><span style='color:#FF870E;'>礼品:《山海经》精装套系书<br>书籍原价158元,仅需19.9元/套,不限领取次数,多余权限可赠送他人使用!</span>",
+										"pointList": [
+											{
+												"name": "电话:<a href='tel:17663733631' style='color: #333333;'>17663733631</a>",
+												"longitude": 117.075174,
+												"latitude": 36.654108
+											}
+										]
+									}
+								},
+								{
+									"type": 7,
+									"data": {
+										"title": "合作机构",
+										"logo": {
+											"src": "/static/logo/lezhigu.png",
+											"width": "120px",
+											"height": "120px",
+											"memo": "乐知谷"
+										},
+										"content": "乐知谷是济南科学类口碑最好的机构,主做面向4-12岁儿童,内容涵盖工程科技、自然科学、生命科学、地球太空、PBL综合项目等五大板块,室内&户外相结合,真正将实验、动手、探究融于生活,培养独立思考、永存好奇、敢于创造的未来型孩子。<br><span style='color:#FF870E;'>礼品:乐知谷经典工程体验课《建造一座斜拉桥》一堂,感受力学结构的科技含量课程每人限参与1次,多余权限可赠送他人使用</span>",
+										"pointList": [
+											{
+												"name": "电话:<a href='tel:19100652564' style='color: #333333;'>19100652564</a>",
+												"longitude": 117.075174,
+												"latitude": 36.654108
+											}
+										]
+									}
+								},
+								{
+									"type": 7,
+									"data": {
+										"title": "合作机构",
+										"logo": {
+											"src": "/static/logo/kusentiyu.png",
+											"width": "120px",
+											"height": "120px",
+											"memo": "酷森体育俱乐部"
+										},
+										"content": "酷森体育俱乐部包含少儿篮球、体能训练、跳绳,三大课程。拥有二十年以上资深学院派专家教练团队,制定系统的少儿运动训练体系,结合不同年龄及能力的孩子进行定制化教学,使其更符合不同孩子的综合能力提升。<br><br><span style='color:#FF870E;'>礼品:手机全年影视会员卡</span>",
+										"pointList": [
+											{
+												"name": "电话:<a href='tel:15621875115' style='color: #333333;'>15621875115</a>",
+												"longitude": 117.075174,
+												"latitude": 36.654108
+											}
+										]
+									}
+								}
 							],
 							"introduce": {
 								"title": "介绍:",
-								"content": "  开学季来袭!山大校园定向赛燃情启幕!探索校园每一个角落,挑战智慧与体能,全校师生共同开启新学期活力篇章!等你来挑战!"
-							},
-							"activityRules": {
-								"title": "活动规则:",
-								"content": "<li>随时参赛、不限完赛次数、起点任选、实时排名 <li>起点 -各途经点 -结束点完整打卡为一次有效完赛"
+								"content": "<li>小飞龙定向赛再次来袭!这次有6个场地哟~<li>神秘“蛋叔”闪亮登场~<li>蛋叔放大招,百味豆换鸡蛋!<li>时不可待!冲鸭!<br><br><li>能不能把蛋叔整郁闷,就看你的啦~<li>还等啥?火速报名吧!"
 							},
 							"param": {
 								"labelName": "姓名",
-								"labelOrg": "院系",
-								"subTitle": "山东大学123周年庆"
+								"labelOrg": "分组",
+								"subTitle": ""
 							}
 						}; */
 
@@ -526,7 +614,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;

二進制
card/static/backgroud/top_bg_dengshanjie.png


二進制
card/static/cardbg/dengshanjie.png


二進制
card/static/common/danshu.png


二進制
card/static/common/gtgwcs.png


二進制
card/static/common/wslgwcs2.png


二進制
card/static/ecert/shanda/youxiujiang.jpg


二進制
card/static/logo/kusentiyu.png


二進制
card/static/logo/lezhigu.png


二進制
card/static/logo/wensiyu.png


二進制
card/static/logo/xxhpgy.png


+ 1 - 0
card/url.md

@@ -5,6 +5,7 @@ APP内跳转链接
 [跳转活动详情页] (action://to_detail/)
 [跳转地图列表页] (action://to_map_list/)
 [跳转第三方地图APP] (action://to_map_app?title=地点名称&latitude=123&longitude=456)
+[下载文件] (action://down_file?filename=文件名称_包含后缀&url=文件路径)
 
 卡片URL - 正式版