wzx 11 месяцев назад
Родитель
Сommit
09ea27dd13

+ 2 - 2
card/common/api.js

@@ -3,8 +3,8 @@ export const apiServer = process.env.API_BASE_URL;
 // console.log("ossUrl", ossUrl);
 // console.log("apiServer", apiServer);
 
-// export const token = '';
-export const token = '96ba3c924394934f7d30fa869a94ce0d';
+export const token = '';
+// export const token = '96ba3c924394934f7d30fa869a94ce0d';
 // export const token = '9db42d9fe9c9635c85e6fc04f08e898f';
 // export const token = '39de263745caccbb183703987b1c21eb';
 // export const token = 'd4dd6b57a15b4abaccf6cb6adcd4fd44';

+ 2 - 2
card/manifest.json

@@ -2,8 +2,8 @@
     "name" : "card",
     "appid" : "__UNI__A61F96B",
     "description" : "",
-    "versionName" : "2.2.2",
-    "versionCode" : 222,
+    "versionName" : "2.2.3",
+    "versionCode" : 223,
     "transformPx" : false,
     /* 5+App特有相关 */
     "app-plus" : {

+ 14 - 0
card/pages.json

@@ -256,6 +256,20 @@
 			{
 				"navigationBarTitleText" : "[游戏] 网格赛事 - 网格拼图"
 			}
+		},
+		{
+			"path" : "pages/ad/index",
+			"style" : 
+			{
+				"navigationBarTitleText" : "广告宣传 - 卡片页"
+			}
+		},
+		{
+			"path" : "pages/ad/detail",
+			"style" : 
+			{
+				"navigationBarTitleText" : "广告宣传 - 广告详情页面"
+			}
 		}
 	],
 	"globalStyle": {

+ 45 - 0
card/pages/ad/cardconfig/test.js

@@ -0,0 +1,45 @@
+export const localCardConfig = `{
+	"common": {
+		"css": "
+			.color-main {
+				color: #ff870e !important;
+			}
+			.bgcolor-main {
+				background-color: #ff870e !important;
+			}
+			.topbar-color {
+				color: #000000 !important;
+			}
+			.topbar-rule {
+				color: #FFFFFF;
+				border-radius: 4px;
+				background: #FF870D;
+			}
+		"
+	},
+	"index": {
+		"css": "
+			.content-bg{
+				background: url('static/cardbg/xfl5.png') !important;
+				background-size: cover !important;
+			}
+			.logo{
+				width: 40vw !important;
+				height: 40vw !important;
+				background: url('static/logo/xfl2.png') no-repeat center !important;
+				background-size: contain !important;
+			}
+			.mod-text{
+				color: #000000 !important;
+			}
+			.mod-button{
+				color: #ffffff !important;
+				background-color: #9d4f00 !important;
+			}
+		"
+	},
+	"detail": {
+		"title": "自助开赛上线啦",
+		"adUrl": "https://www.colormap.run/info/publicize.html"
+	}
+}`;

+ 127 - 0
card/pages/ad/detail.vue

@@ -0,0 +1,127 @@
+<!-- 
+广告宣传 - 广告详情页面
+http://localhost:5173/card/#/pages/ad/detail
+https://oss-mbh5.colormaprun.com/card/#/pages/ad/detail
+ -->
+<template>
+	<view class="body">
+		<view class="content uni-column">
+			<view class="uni-column uni-jcc top">
+				<my-topbar class="topbar-color" :mcName="title" :showRule="false" @btnBackClick="btnBack"></my-topbar>
+				<view class="top-content uni-row">
+				</view>
+			</view>
+
+			<view class="main uni-column">
+				<web-view class="webView" :fullscreen="false" :src="adUrl"></web-view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import tools from '/common/tools';
+	import cardfunc from '/common/cardfunc';
+	import {
+		localCardConfig
+	} from "./cardconfig/test.js";
+	import {
+		token
+	} from '/common/api';
+	
+	export default {
+		data() {
+			return {
+				cardConfigData: cardfunc.cardConfigData,
+				pageReady: false,
+				pageName: "detail",
+				queryObj: {},
+				queryString: "",
+				token: "",
+				cardconfig: {}, // 卡片配置
+				
+				title: "",
+				adUrl: "", // 广告页面url
+			}
+		},
+		onLoad(query) {
+			// console.log(query);
+			this.queryObj = query;
+			this.queryString = tools.objectToQueryString(this.queryObj);
+			// console.log(queryString);
+			this.token = query["token"] ?? token;
+			this.ecId = query["id"] ?? 0;
+			
+			cardfunc.init(this, this.token, this.ecId);
+			cardfunc.getCardConfig(this.cardConfigQueryCallback, localCardConfig);
+		},
+		methods: {
+			cardConfigQueryCallback(cardconfig) {
+				this.cardconfig = cardconfig;
+				this.loadCardConfig(this.cardconfig);
+				this.pageReady = true;
+			},
+			loadCardConfig(cardconfig) {
+				cardconfig = cardfunc.parseCardConfig(cardconfig);
+				// console.log("[loadCardConfig] cardconfig:", cardconfig);
+			
+				// 加载卡片通用配置
+				if (cardconfig.common != undefined) {
+					cardfunc.loadCardCommonConfig(cardconfig.common);
+				}
+			
+				// -------- 加载当前页面的配置 --------
+			
+				const config = cardfunc.parseCardConfig(cardconfig[this.pageName]);
+				// console.log("[loadConfig] config_page:", config);
+				if (config == undefined || config == null) {
+					return;
+				}
+			
+				// 加载CSS样式
+				const css = config.css;
+				if (css != undefined && css.length > 0) {
+					tools.loadCssCode(css);
+				}
+				
+				// 加载广告页面标题
+				const title = config.title;
+				// console.log("[loadConfig] title:", title);
+				if (title != undefined && title.length > 0) {
+					this.title = title;
+				}
+				
+				// 加载广告页面url
+				const adUrl = config.adUrl;
+				// console.log("[loadConfig] adUrl:", adUrl);
+				if (adUrl != undefined && adUrl.length > 0) {
+					this.adUrl = adUrl;
+				}
+			},
+			btnBack() {
+				const url = `action://to_home/`;
+				tools.appAction(url);
+			},
+		}
+	}
+</script>
+
+<style scoped>
+	.top {
+		width: 100%;
+		height: 36px;
+		padding-top: 36px;
+		flex-shrink: 0;
+		background: rgb(255, 195, 0, 0);
+	}
+
+	.main {
+	}
+
+	/deep/ iframe {
+		width: 100vw !important;
+		height: calc(100vh - 72px) !important;
+		border: 0 !important;
+	}
+
+</style>

+ 243 - 0
card/pages/ad/index.vue

@@ -0,0 +1,243 @@
+<!-- 
+广告宣传 - 卡片页
+http://localhost:5173/card/#/pages/ad/index
+https://oss-mbh5.colormaprun.com/card/#/pages/ad/index
+ -->
+<template>
+	<view class="body body-radius">
+		<view v-if="pageReady" class="content content-bg" @click="btnClick">
+			<view class="card-top uni-row">
+				<!-- <view class="top-right uni-row">
+					<image mode="aspectFit" class="clock" src="/static/default/clock.png"></image>
+					<view class="countdown">{{countdown}}</view>
+				</view> -->
+			</view>
+			<view class="card-main uni-column">
+				<view class="logo"></view>
+				<view class="uni-row" style="position: relative;">
+					<!-- <image v-if="notice" mode="aspectFit" src="/static/common/notice.png" class="notice"></image> -->
+					<text v-if="type != ''" class="type mod-text">{{type}}</text>
+				</view>
+				<view v-if="ecName != ''" class="name mod-text">{{ecName}}</view>
+				<button v-if="btnText != ''" class="button mod-button">{{btnText}}</button>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import tools from '/common/tools';
+	import cardfunc from '/common/cardfunc';
+	import {
+		localCardConfig
+	} from "./cardconfig/test.js";
+	import {
+		token,
+		ossUrl,
+		apiCardBaseQuery
+	} from '/common/api';
+
+	export default {
+		data() {
+			return {
+				cardConfigData: cardfunc.cardConfigData,
+				pageReady: false,
+				pageName: "index",
+				queryObj: {},
+				queryString: "",
+				token: "",
+				cardconfig: {}, // 卡片配置
+
+				ecId: 0, // 卡片id
+				ecName: '', // 卡片名称
+				ecDesc: '', // 卡片简介
+				beginSecond: null, // 卡片开始时间戳,单位秒
+				endSecond: null, // 卡片结束时间戳,单位秒
+				// secondCardName: '', // 跳转页面名称
+
+				type: "",
+				btnText: "",
+				notice: false, // 是否显示(小红点)通知图标
+			}
+		},
+		computed: {},
+		onLoad(query) { // 类型非必填,可自动推导
+			// console.log(query);
+			this.queryObj = query;
+			this.queryString = tools.objectToQueryString(this.queryObj);
+			// console.log(queryString);
+			this.token = query["token"] ?? token;
+			this.ecId = query["id"] ?? 0;
+
+			this.type = query["type"] ?? "";
+			this.btnText = query["btnText"] ?? "";
+
+			cardfunc.init(this, this.token, this.ecId);
+			cardfunc.getCardConfig(this.cardConfigQueryCallback, localCardConfig);
+
+			this.getCardBaseQuery();
+		},
+		onShow() {},
+		onUnload() {
+		},
+		methods: {
+			cardConfigQueryCallback(cardconfig) {
+				this.cardconfig = cardconfig;
+				this.loadCardConfig(this.cardconfig);
+				this.pageReady = true;
+			},
+			loadCardConfig(cardconfig) {
+				cardconfig = cardfunc.parseCardConfig(cardconfig);
+				// console.log("[loadCardConfig] cardconfig:", cardconfig);
+
+				// 加载卡片通用配置
+				if (cardconfig.common != undefined) {
+					cardfunc.loadCardCommonConfig(cardconfig.common);
+				}
+
+				// -------- 加载当前页面的配置 --------
+
+				const config = cardfunc.parseCardConfig(cardconfig[this.pageName]);
+				// console.log("[loadConfig] config_page:", config);
+				if (config == undefined || config == null) {
+					return;
+				}
+
+				// 加载CSS样式
+				const css = config.css;
+				if (css != undefined && css.length > 0) {
+					tools.loadCssCode(css);
+				}
+			},
+			// 卡片基本信息查询
+			getCardBaseQuery() {
+				uni.request({
+					url: apiCardBaseQuery,
+					header: {
+						"Content-Type": "application/x-www-form-urlencoded",
+						"token": this.token,
+					},
+					method: "POST",
+					data: {
+						ecId: this.ecId,
+						pageName: this.pageName
+					},
+					success: (res) => {
+						// console.log("getCardBaseQuery", res)
+						const data = res.data.data;
+
+						this.ecName = data.ecName;
+						this.ecDesc = data.ecDesc;
+						this.beginSecond = data.beginSecond;
+						this.endSecond = data.endSecond;
+						// this.secondCardName = data.secondCardName;
+					},
+					fail: (err) => {
+						console.log("getCardBaseQuery err", err)
+					},
+				});
+			},
+			btnClick() {
+				const url = `${ossUrl}#/pages/ad/detail?${this.queryString}&full=true`;
+				tools.appAction(url);
+			}
+		}
+	}
+</script>
+
+<style scoped>
+	.content {
+		width: 100vw;
+		height: 100vh;
+	}
+
+	.content-bg {
+		background: linear-gradient(180deg, #7aedff 0%, #047200 100%);
+		/* background: linear-gradient(180deg, #178bff 0%, #004d9b 100%); */
+		/* background: linear-gradient(180deg, #7aedff 0%, #8d2219 100%); */
+	}
+
+	.card-top {
+		width: 100%;
+		justify-content: flex-end;
+	}
+
+	.top-right {
+		min-width: 180rpx;
+		height: 80rpx;
+		margin-top: 30rpx;
+		margin-right: 30rpx;
+		padding-left: 16rpx;
+		padding-right: 16rpx;
+		background-color: rgba(0, 0, 0, 0.3);
+		border-radius: 12px;
+	}
+
+	.clock {
+		width: 50rpx;
+		height: 50rpx;
+		margin-right: 12rpx;
+	}
+
+	.countdown {
+		min-width: 120rpx;
+		text-align: center;
+		font-family: Roboto;
+		color: #ffffff;
+		font-size: 46rpx;
+		/* letter-spacing: 2rpx; */
+	}
+
+	.card-main {
+		width: 100%;
+		/* height: 700rpx; */
+		height: 660rpx;
+		margin-top: 20rpx;
+		justify-content: space-evenly;
+	}
+
+	.logo {
+		width: 50vw;
+		height: 50vw;
+		/* background-image: var(--default-matchLogo-url); */
+		background-repeat: no-repeat;
+		background-position-x: center;
+		background-position-y: center;
+		background-size: contain;
+	}
+
+	.notice {
+		width: 30rpx;
+		height: 30rpx;
+		/* margin-right: 30rpx; */
+		position: absolute;
+		left: -60rpx;
+	}
+
+	.type {
+		opacity: 60%;
+		/* line-height: 25px; */
+		font-family: Roboto;
+		color: #ffffff;
+		font-size: 40rpx;
+		text-align: center;
+	}
+
+	.name {
+		font-family: Roboto;
+		color: #ffffff;
+		font-size: 50rpx;
+		text-align: center;
+	}
+
+	.button {
+		width: 320rpx;
+		height: 86rpx;
+		margin-top: 30rpx;
+		color: #000000;
+		background: #ffffff;
+		border-radius: 56rpx;
+		font-size: 46rpx;
+		line-height: 80rpx;
+	}
+</style>

+ 1 - 1
card/pages/tpl/style1/cardconfig/test_user.js

@@ -3,7 +3,7 @@ export const localUserConfig = `{
 		"tplTypeId": 1,
 		"ssctId": 1,
 		"styleId": 1,
-		"matchLogo2": "https://oss-mbh5.colormaprun.com/static/logo/default.png",
+		"matchLogo": "https://oss-mbh5.colormaprun.com/static/logo/default.png",
 		"matchBanner": ""
 	},
 	"matchInfo": {