25 Commits

Author SHA1 Message Date
梁泽军
5d8a8f95c1 完整版 2025-04-23 14:47:51 +08:00
梁泽军
e136c4b21d 整合 2025-04-22 10:56:41 +08:00
f482e69ac7 'update' 2025-04-22 10:16:48 +08:00
14806576d4 'update' 2025-04-21 15:23:58 +08:00
梁泽军
d471776f28 整合 2025-04-21 13:15:57 +08:00
7f4709d7cd 'update' 2025-04-18 16:59:48 +08:00
梁泽军
92938b3a04 整合 2025-04-18 16:53:20 +08:00
10fcb332d4 'update' 2025-04-18 16:50:47 +08:00
梁泽军
b3ff0f54ae 整合 2025-04-18 14:17:09 +08:00
db67a265d8 '更新' 2025-04-17 18:08:42 +08:00
梁泽军
83a60df68d 整合 2025-04-16 17:29:16 +08:00
梁泽军
7e4e3af65f 完成加载页、首页、选择页切图 2025-04-15 18:09:45 +08:00
梁泽军
d31ed5cbf9 新建51活动版本 2025-04-15 10:16:15 +08:00
梁泽军
90fb7b2b3d update 2025-02-11 12:17:01 +08:00
梁泽军
543acd2122 update 2025-02-11 11:17:54 +08:00
梁泽军
3b5771a5d7 update 2025-02-10 09:48:30 +08:00
梁泽军
3aa320055c update 2025-01-24 17:44:19 +08:00
梁泽军
0679938eb2 update 2025-01-23 10:18:42 +08:00
ed2ab89900 切换node环境 2025-01-21 17:06:32 +08:00
梁泽军
68d8e9636e 2025元宵节测试版修复 2025-01-21 11:24:39 +08:00
b220d451ae 新增预加载 2025-01-20 18:13:29 +08:00
梁泽军
cf2f362c98 待发布测试版本 2025-01-20 12:05:33 +08:00
梁泽军
bbcd5ad611 完成大概流程 2025-01-17 18:13:17 +08:00
梁泽军
c55d13ebeb 灯笼选择页面及海报生产 2025-01-15 16:27:44 +08:00
梁泽军
cc3a3df9bc 初始化2025元宵节活动 2025-01-13 14:12:47 +08:00
116 changed files with 7924 additions and 1667 deletions

3837
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -18,6 +18,7 @@
"pinia": "^2.1.7", "pinia": "^2.1.7",
"qrcode": "^1.5.3", "qrcode": "^1.5.3",
"qs": "^6.11.2", "qs": "^6.11.2",
"swiper": "^11.2.1",
"vant": "^3.6.12", "vant": "^3.6.12",
"vconsole": "^3.15.1", "vconsole": "^3.15.1",
"vue": "^3.2.41", "vue": "^3.2.41",

View File

@@ -2,7 +2,7 @@ import http from './http'
// 获取code // 获取code
export function authorize(data, authorization) { export function authorize(data, authorization) {
return http.post("/h5/oauth/authorize", return http.post("/h5/Oauth/authorize",
data, data,
true, true,
); );
@@ -10,7 +10,7 @@ export function authorize(data, authorization) {
// 获取用户信息 // 获取用户信息
export function getUserInfo(data, authorization) { export function getUserInfo(data, authorization) {
return http.post("/h5/oauth/getUserInfo", return http.post("/h5/Oauth/getUserInfo",
data, data,
true, true,
); );
@@ -54,7 +54,7 @@ export function exchangePrize(data, authorization) {
// 分享接口 // 分享接口
export function getShareConfig(data, authorization) { export function getShareConfig(data, authorization) {
return http.post("/h5/oauth/getShareConfig", return http.post("/h5/Oauth/getShareConfig",
data, data,
true, true,
); );

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 593 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 983 B

After

Width:  |  Height:  |  Size: 1010 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 844 B

After

Width:  |  Height:  |  Size: 869 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 805 B

After

Width:  |  Height:  |  Size: 859 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 756 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 580 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 780 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 785 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 673 B

After

Width:  |  Height:  |  Size: 739 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 432 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 267 KiB

After

Width:  |  Height:  |  Size: 436 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 452 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 444 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 756 B

After

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

View File

@@ -14,7 +14,7 @@ const { toClipboard } = useClipboard()
const money = ref("1.88"); const money = ref("1.88");
const code = ref("sss"); const code = ref("PAKJ2025");
const showResult = ref(false); const showResult = ref(false);
const hasPrize = ref(false); const hasPrize = ref(false);
@@ -85,20 +85,6 @@ const drawFn = (event) => {
}, 1000); }, 1000);
} }
} }
}).catch(error =>{
console.log('eroor', error);
hasPrize.value = false; // true 中奖 || false 未中奖
userStore.updateDraw();
setTimeout(() => {
Toast.clear();
showResult.value = true;
gsap.from(".result-container", {
duration: 0.5,
scale: 0.7,
autoAlpha: 0,
});
gsap.killTweensOf(".draw-light,.draw");
}, 1000);
}) })
} else { } else {
Toast('今日抽奖次数已用完!') Toast('今日抽奖次数已用完!')
@@ -162,17 +148,16 @@ onMounted(() => {
<div v-show="showResult" class="result-container"> <div v-show="showResult" class="result-container">
<!-- 有奖品 --> <!-- 有奖品 -->
<div class="draw-has" v-show="hasPrize"> <div class="draw-has" v-show="hasPrize">
<div class="draw-has-title">恭喜您抽中</div>
<div class="money">¥{{ money }}</div> <div class="money">¥{{ money }}</div>
<div class="draw-has-text">奖励抽到手快乐马上有</div>
<div class="code-box"> <div class="code-box">
<div class="code">兑奖码{{ code }}</div> <span>兑奖码</span>
<div class="copy-btn" @click="copyFn($event)"></div> <span class="code">{{ code }}</span>
</div> <span class="copy-btn" @click="copyFn($event)"></span>
<div class="code-tips">
<div>兑奖流程前往微信搜索平安理财服务号</div>
<div>公众号发送清凉一夏获取兑换链接</div>
<div>输入兑换码兑换奖品</div>
<div class="code-tips-text">兑换码可在主页面奖品再次查看并复制</div>
</div> </div>
<div class="exchange-tips">兑换流程前往微信搜索平安理财服务号公众号发送五一快乐获取兑奖链接输入兑换码兑换奖品</div>
<div class="exchnage-tips2">兑换码可在主页面我的奖品 再次查看并复制</div>
<div class="cls-btn" @click="hide($event)"></div> <div class="cls-btn" @click="hide($event)"></div>
</div> </div>
<!-- 没有奖品 --> <!-- 没有奖品 -->
@@ -234,56 +219,93 @@ onMounted(() => {
.draw-has { .draw-has {
position: relative; position: relative;
@include box(665px, 731px); @include box(665px, 731px);
@include bg_pos("prize/myPrize-box.png"); @include bg_pos("prize/myPrize-box2.png");
position: relative;
left: 30px; .draw-has-title {
@include pos(390px, 100px, 110px, 140px);
font-size: 40px;
color: #e95b46;
font-weight: 700;
letter-spacing: 3px;
// background-color: aqua;
@include flexCen();
}
.draw-has-text {
@include pos(390px, 100px, 110px, 300px);
font-size: 30px;
color: #e95b46;
font-weight: 700;
letter-spacing: 0;
// background-color: aqua;
@include flexCen();
}
.money { .money {
@include pos(370px, 81px, 139px, 239px);
display: flex; @include pos(390px, 130px, 110px, 200px);
justify-content: center; @include flexCen();
align-items: center;
color: #e95b46; color: #e95b46;
font-weight: 700; font-weight: 700;
font-size: 58px; font-size: 58px;
letter-spacing: 4px; letter-spacing: 4px;
// background-color: rgb(217, 0, 255);
} }
.code-box { .code-box {
@include pos(390px, 52px, 100px, 508px); @include pos(390px, 52px, 110px, 508px);
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
justify-content: flex-start;
.code {
font-size: 25px; font-size: 25px;
font-weight: 700; font-weight: 700;
margin-right: 10px;
color: #fff6cc; color: #fff6cc;
span {
height: 77px;
line-height: 65px;
}
.code {
margin-right: 10px;
} }
.copy-btn { .copy-btn {
@include box(77px, 39px); @include box(77px, 39px);
@include bg_pos("prize/copy-btn2.png"); @include bg_pos("prize/copy-btn.png");
} }
} }
.code-tips{ .exchange-tips {
@include pos(390px, 152px, 110px, 558px);
display: flex; display: flex;
flex-direction: column; flex-direction: row;
justify-content: space-around; align-items: start;
@include pos(410px, 120px, 100px, 560px); justify-content: flex-start;
// background: rgba($color: #000000, $alpha: .7);
font-size: 20px; font-size: 20px;
font-weight: 700; // font-weight: 700;
color: #fff6cc; color: #fff6cc;
.code-tips-text{ letter-spacing: 2px;
font-size: 17px; // background-color: aqua;
text-align: center;
} }
.exchnage-tips2 {
@include pos(390px, 52px, 110px, 638px);
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
font-size: 15px;
// font-weight: 700;
color: #fff6cc;
// background-color: aqua;
} }
.cls-btn { .cls-btn {
@include pos(43px, 43px, 517px, 114px); @include pos(82px, 82px, 517px, 114px);
@include bg_pos("prize/cls-btn.png"); @include bg_pos("prize/cls-btn.png");
} }
} }

View File

@@ -3,8 +3,6 @@ import { Toast } from "vant";
import { debounceTap } from "@/plugins"; import { debounceTap } from "@/plugins";
import gsap from "gsap"; import gsap from "gsap";
import { useMainStore } from "@/store"; import { useMainStore } from "@/store";
import Preloader from "@/plugins/Preloader";
import { pageQAImg } from "@/data/imgList";
const emit = defineEmits(["IndexPage"]); const emit = defineEmits(["IndexPage"]);
const userStore = useMainStore(); const userStore = useMainStore();
@@ -35,25 +33,32 @@ const showRule = (event) => {
}); });
}; };
onMounted(() => { onMounted(() => {
gsap.from( gsap.from(".index-bg", { duration: 1, scale: 1.2, autoAlpha: 0 });
".index-bg,.index-island,.index-cloud-1,.index-cloud-2,.index-tree-1", gsap.from(".index-paper", { duration: 1, y: 20, autoAlpha: 0, delay: 0.3, });
{ duration: 1, scale: 1.2, autoAlpha: 0 } gsap.from(".index-card-1", { duration: 1, scale: 1.2, autoAlpha: 0, delay: 0.5, });
); gsap.from(".index-card-2", { duration: 1, scale: 1.2, autoAlpha: 0, delay: 0.7, });
gsap.from(".index-title", { duration: 1, y: 20, autoAlpha: 0 }); gsap.from(".index-card-3", { duration: 1, scale: 1.2, autoAlpha: 0, delay: 0.5, });
gsap.from(".index-sub-title", { duration: 1, x: 20, autoAlpha: 0 }); gsap.from(".index-card-4", { duration: 1, scale: 1.2, autoAlpha: 0, delay: 0.7, });
gsap.from(".index-rule-btn", { duration: 1, x: -100, autoAlpha: 0 }); gsap.from(".index-card-5", { duration: 1, scale: 1.2, autoAlpha: 0, delay: 0.5, });
gsap.from(".index-title", { duration: 1, y: 20, autoAlpha: 0, delay: 1 });
gsap.from(".index-time", { duration: 1, x: 40, autoAlpha: 0, delay: 1 });
gsap.from(".index-text", { duration: 1, scale: 2, autoAlpha: 0, delay: 1 });
gsap.from(".index-megaphone", { duration: 1, x: 140, autoAlpha: 0, delay: 1 });
gsap.from(".index-logo", { duration: 1, y: 20, autoAlpha: 0, delay: 0.75 });
gsap.from(".index-rule-btn", { duration: 1, x: -100, autoAlpha: 0, delay: 1.3 });
gsap.from(".index-prize-btn", { gsap.from(".index-prize-btn", {
duration: 1, duration: 1,
x: -100, x: -100,
autoAlpha: 0, autoAlpha: 0,
delay: 0.3, delay: 1.5,
}); });
gsap.from(".index-start-btn", { gsap.from(".index-start-btn", {
duration: 1, duration: 1,
y: 30, y: 30,
autoAlpha: 0, autoAlpha: 0,
delay: 0.5, delay: 1.5,
}); });
gsap.from(".index-agreement", { gsap.from(".index-agreement", {
duration: 1, duration: 1,
@@ -61,61 +66,11 @@ onMounted(() => {
autoAlpha: 0, autoAlpha: 0,
delay: 0.5, delay: 0.5,
onComplete: () => { onComplete: () => {
gsap.to(".index-start-btn", { gsap.to('.index-start-btn', { duration: 1, scale: '0.95', repeat: -1, yoyo: true, ease: 'bounce.out' })
duration: 1, }
scale: "0.9",
repeat: -1,
yoyo: true,
ease: "bounce.in",
});
gsap.to(".index-cloud-1", {
duration: 2,
x: -30,
repeat: -1,
yoyo: true,
ease: "none",
});
gsap.to(".index-cloud-2", {
duration: 2,
x: 30,
repeat: -1,
yoyo: true,
ease: "none",
});
gsap.to(".index-tree-1", {
duration: 2,
y: 10,
repeat: -1,
yoyo: true,
ease: "none",
});
gsap.to(".index-title", {
duration: 2.5,
y: -20,
repeat: -1,
yoyo: true,
ease: "none",
});
gsap.to(".index-sub-title", {
duration: 3,
x: 10,
repeat: -1,
yoyo: true,
ease: "none",
}); });
// 开始加载答题页面资源
Preloader({
name: "加载答题页资源",
imgs: pageQAImg,
callback: (progress) => {
// console.log("进度:", progress);
},
}).then((res) => {
console.log("done!");
});
},
});
}); });
const vcNum = ref(false); const vcNum = ref(false);
@@ -131,29 +86,32 @@ const showVC = () => {
<div class="IndexPage" @touchmove.prevent> <div class="IndexPage" @touchmove.prevent>
<div class="index-bg"></div> <div class="index-bg"></div>
<div class="index-container"> <div class="index-container">
<div class="index-cloud-1"></div>
<div class="index-cloud-2"></div>
<div class="index-tree-1"></div>
<div class="index-island"></div>
<div class="index-logo"></div> <div class="index-logo"></div>
<div class="index-paper">
<div class="index-title" @click="showVC"></div> <div class="index-title" @click="showVC"></div>
<div class="index-sub-title"></div> <div class="index-time"></div>
<div class="index-rule-btn" @click="showRule($event)"></div> <div class="index-card-1"></div>
<!-- v-if="userStore.hasPrize" --> <div class="index-card-2"></div>
<div class="index-prize-btn" @click="showMyPrize($event)"></div> <div class="index-card-3"></div>
<div class="index-card-4"></div>
<div class="index-card-5"></div>
<div class="index-line"></div>
<div class="index-text"></div>
</div>
<div class="index-megaphone"></div>
<div class="index-rule-btn index-left-btn" @click="showRule($event)">活动规则</div>
<div class="index-prize-btn index-left-btn" v-if="userStore.hasPrize" @click="showMyPrize($event)">我的奖品</div>
<div class="index-start-btn" @click="start"></div> <div class="index-start-btn" @click="start"></div>
<div class="index-agreement"> <div class="index-agreement">
<div class="agreement"> <div class="tips">数据来源平安理财数据截至2025年4月23日产品历史业绩不代表未来表现</div>
风险提示: <span>风险提示:本材料由平安理财有限责任公司(以下简称平安理财)制作并提供</span>
本材料由平安理财有限责任公司(以下简称平安理财)制作并提供<span <span class="b">本资料内容及观点仅供参考不构成对任何人的投资建议</span>
class="b" <span>以上产品投资管理机构/管理人为平安理财代理销售机构不承担产品的投资兑付和风险管理的责任以上产品通过代理销售机构渠道销售的产品风险评级应当以代理销售机构最终披露的评级结果为准以上产品为非保本浮动收益理财产品具体以产品说明书或产品公告披露为准产品的业绩比较基准指管理人基于过往投资经验以及对产品存续期投资市场波动的预判而对本产品所设定的投资目标业绩比较基准不是预期收益率不代表产品的未来表现和实际收益不构成对产品收益的承诺</span>
>本资料内容及观点仅供参考不构成对任何人的投资建议</span <span class="b">理财产品过往业绩不代表其未来表现不等于理财产品实际收益投资须谨慎过往业绩相关数据已经托管人核对</span><span
>以上产品投资管理机构/管理人为平安理财代理销售机构不承担产品的投资兑付和风险管理的责任以上产品通过代理销售机构渠道销售的产品风险评级应当以代理销售机构最终披露的评级结果为准以上产品为非保本浮动收益理财产品具体以产品说明书或产品公告披露为准产品的业绩比较基准指管理人基于过往投资经验以及对产品存续期投资市场波动的预判而对本产品所设定的投资目标业绩比较基准不是预期收益率不代表产品的未来表现和实际收益不构成对产品收益的承诺<span class="orange">理财非存款产品风险投资须谨慎</span>
class="b" <span>
>理财产品过往业绩不代表其未来表现不等于理财产品实际收益投资须谨慎过往业绩相关数据已经托管人核对</span 金融消费者不得利用金融产品和服务从事违法活动
><span class="orange">理财非存款产品有风险投资须谨慎</span </span>
>金融消费者不得利用金融产品和服务从事违法活动
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -161,9 +119,9 @@ const showVC = () => {
<style lang="scss" scoped> <style lang="scss" scoped>
.IndexPage { .IndexPage {
@include pos(100%, 100vh, 0px, 0px); @include pos(100%, 1624px, 0px, 0px);
overflow: hidden; overflow: hidden;
background: linear-gradient(135deg, #90dcff, #51b7ff); background: linear-gradient(135deg, #d6d1ca, #e5dccf);
.index-bg { .index-bg {
@include pos(750px, 1624px, 0px, 50%); @include pos(750px, 1624px, 0px, 50%);
@@ -172,93 +130,129 @@ const showVC = () => {
} }
.index-container { .index-container {
@include pos(750px, 1624px, 0px, 50%); @include pos(750px, 1624px, 0px, 0px);
transform: translateY(-50%); // transform: translateY(-50%);
// .index-logo{
// pointer-events: none; .index-logo {
// @include pos(632px, 94px, 59px, 267px); pointer-events: none;
// @include bg_pos("index/logo.png"); @include pos(632px, 94px, 59px, 180px);
// } @include bg_pos("index/logo.png");
}
.index-paper {
@include pos(706px, 777px, 19px, 394px);
@include bg_pos("index/paper.png");
.index-title { .index-title {
// pointer-events: none; // pointer-events: none;
@include pos(633px, 253px, 46px, 254px); @include pos(611px, 233px, 59px, -56px);
@include bg_pos("index/title.png"); @include bg_pos("index/title.png");
} }
.index-island { .index-time {
pointer-events: none; @include pos(385px, 70px, 257px, 161px);
@include pos(714px, 867px, 15px, 542px); @include bg_pos("index/time.png");
@include bg_pos("index/island.png");
} }
.index-cloud-1 { .index-card-1 {
pointer-events: none; @include pos(207px, 182px, 45px, 194px);
@include pos(210px, 147px, -15px, 535px); @include bg_pos("index/card-1.png");
@include bg_pos("index/cloud-1.png");
} }
.index-cloud-2 { .index-card-2 {
pointer-events: none; @include pos(198px, 188px, 270px, 230px);
@include pos(151px, 172px, 656px, 486px); @include bg_pos("index/card-2.png");
@include bg_pos("index/cloud-2.png");
} }
.index-tree-1 { .index-card-3 {
pointer-events: none; @include pos(208px, 180px, 496px, 237px);
@include pos(228px, 199px, -45px, 492px); @include bg_pos("index/card-3.png");
@include bg_pos("index/tree-1.png");
} }
.index-sub-title { .index-card-4 {
pointer-events: none; @include pos(204px, 168px, 77px, 460px);
@include pos(423px, 87px, 170px, 486px); @include bg_pos("index/card-4.png");
@include bg_pos("index/sub-title.png"); }
.index-card-5 {
@include pos(215px, 162px, 358px, 524px);
@include bg_pos("index/card-5.png");
}
.index-text {
@include pos(325px, 74px, 307px, 448px);
@include bg_pos("index/text.png");
}
.index-line {
@include pos(661px, 359px, 22px, 346px);
@include bg_pos("index/line.png");
}
}
.index-megaphone {
@include pos(104px, 113px, 646px, 540px);
@include bg_pos("index/megaphone.png");
}
.index-left-btn{
border: 2px solid rgb(255, 255, 255);
background-color: rgb(243, 87, 4);
box-shadow: 0px 6px 11px 0px rgba(155, 122, 68, 0.4);
font-size: 25px;
display: flex;
align-items: center;
justify-content:center;
padding-left: 20px;
color: #ffffff;
letter-spacing: 1.5px;
border-radius: 21px;
} }
.index-rule-btn { .index-rule-btn {
@include pos(193px, 50px, 612px, 553px); @include pos(184px, 49px, -37px, 578px);
@include bg_pos("index/rule-btn.png");
} }
.index-prize-btn { .index-prize-btn {
@include pos(184px, 49px, 612px, 615px); @include pos(184px, 49px, -37px, 642px);
@include bg_pos("index/prize-btn.png");
} }
.index-start-btn { .index-start-btn {
@include pos(423px, 152px, 156px, 1025px); @include pos(339px, 117px, 203px, 1077px);
@include bg_pos("index/start-btn.png"); @include bg_pos("index/btn.png");
} }
.index-agreement { .index-agreement {
font-family: "HarmonyOS_Sans_SC_Regular"; font-family: "HarmonyOS_Sans_SC_Regular";
pointer-events: none; pointer-events: none;
@include pos(736px, 182px, 7px, 1230px); @include pos(736px, 182px, 7px, 1208px);
.agreement {
background-color: rgba(255, 255, 255, 0.75);
font-size: 14px; font-size: 14px;
text-align: justify; text-align: justify;
letter-spacing: 0.1px; letter-spacing: 0.1px;
color: #124284; color: #815e3c;
padding: 10px; padding: 10px;
box-sizing: border-box; box-sizing: border-box;
border-radius: 2px; border-radius: 10px;
line-height: 20px; line-height: 20px;
.tips {
text-align: center;
margin: 10px;
color: #ab7133;
}
.b { .b {
font-weight: 700; font-weight: 700;
} }
.orange { .orange {
color: #f5430c; color: #ff7127;
font-weight: 700; font-weight: 700;
} }
} }
}
} }
} }
</style> </style>

View File

@@ -13,6 +13,7 @@ const userStore = useMainStore();
const loadNum = ref(0); const loadNum = ref(0);
onMounted(() => { onMounted(() => {
Preloader({ Preloader({
name: "加载页资源", name: "加载页资源",
imgs: loadImg, imgs: loadImg,
@@ -24,7 +25,6 @@ onMounted(() => {
duration: 0.2, duration: 0.2,
autoAlpha: 1, autoAlpha: 1,
onComplete: () => { onComplete: () => {
// 非本地环境
if (import.meta.env.VITE_MODE != "dev") { if (import.meta.env.VITE_MODE != "dev") {
getMyPrize({}, userStore.token).then((res) => { getMyPrize({}, userStore.token).then((res) => {
if (res.code == 0) { if (res.code == 0) {
@@ -36,16 +36,17 @@ onMounted(() => {
} }
}); });
} }
Preloader({ Preloader({
name: "内页资源", name: "内页资源",
imgs: pageImg, imgs: pageImg,
callback: (progress) => { callback: (progress) => {
// console.log('进度:', progress);
gsap.set(".bar", { width: progress + "%" }); gsap.set(".bar", { width: progress + "%" });
loadNum.value = progress; loadNum.value = progress;
}, },
}).then((res) => { }).then((res) => {
console.log("加载完成"); console.log("加载完成");
gsap.to(".LoadPage", { gsap.to(".LoadPage", {
duration: 1, duration: 1,
autoAlpha: 0, autoAlpha: 0,
@@ -66,11 +67,11 @@ onMounted(() => {
<div class="load-container"> <div class="load-container">
<div class="load-icon"></div> <div class="load-icon"></div>
<div class="load-box"> <div class="load-box">
<div class="bar"> <div class="bar"></div>
<div class="bar-icon"></div>
</div> </div>
<div class="load-num">
<span class="num">{{ loadNum }}%</span>
</div> </div>
<div class="load-num">{{ loadNum }}%</div>
</div> </div>
</div> </div>
</template> </template>
@@ -85,7 +86,7 @@ onMounted(() => {
.load-bg { .load-bg {
@include pos(750px, 100%, 0px, 50%); @include pos(750px, 100%, 0px, 50%);
transform: translateY(-50%); transform: translateY(-50%);
@include bg_pos("load/bg.jpg"); @include bg_pos("index/bg.jpg");
} }
.load-container { .load-container {
@@ -94,44 +95,47 @@ onMounted(() => {
// transform: translateY(-50%); // transform: translateY(-50%);
.load-icon { .load-icon {
@include pos(83px, 101px, 325px, 370px); @include pos(363px, 136px, 335px, 320px);
@include bg_pos("load/icon.png"); @include bg_pos("load/icon.png");
} }
.load-box { .load-box {
@include pos(576px, 36px, 87px, 500px); @include pos(582px, 45px, 83px, 450px);
border-radius: 20px; border-radius: 25px;
overflow: hidden; padding: 1px;
padding: 4.5px; border: 1px solid rgb(243, 87, 4);
@include bg_pos("load/bar-box.png");
.bar { .bar {
@include box(0%, 27px); @include box(0%, 38px);
position: relative; border-radius: 20px;
@include bg_pos("load/bar.png"); border: 1px solid rgb(255, 255, 255);
background-size: 551px 27px;
.bar-icon { background-image: -webkit-linear-gradient(0deg, #f7c86f 0%, #f25501 100%);
@include box(35px, 36px);
position: absolute;
top: -4.5px;
left: 95%;
@include bg_pos("load/bar-icon.png");
}
} }
} }
.load-num { .load-num {
@include pos(750px, 50px, 0px, 570px); @include pos(235px, 80px, 256px, 511px);
text-align: center; @include bg_pos("load/icon-2.png");
font-size: 38px;
color: rgb(255, 255, 255); @include flexCen();
line-height: 40px;
.num {
font-size: 40px;
color: #f25501;
font-weight: 700; font-weight: 700;
background: linear-gradient(to right, #dadada, #ffffff);
background-clip: text; /* 文字填充色 */
-webkit-background-clip: text; text-shadow:
-webkit-text-fill-color: transparent; -1px -1px 0 #ffffff,
text-shadow: 0.9px 3.897px 0px rgba(44, 182, 255, 0.004); 1px -1px 0 #ffffff,
-1px 1px 0 #ffffff,
1px 1px 0 #ffffff;
/* 四个方向阴影叠加 */
}
} }
.btn { .btn {

Some files were not shown because too many files have changed in this diff Show More