Compare commits
30 Commits
a40b88c915
...
2025-51
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
595f1cc16a | ||
|
|
a2f867e444 | ||
| 13e3bcad69 | |||
| d1f8531723 | |||
| 2b6e2c095a | |||
|
|
5d8a8f95c1 | ||
|
|
e136c4b21d | ||
| f482e69ac7 | |||
| 14806576d4 | |||
|
|
d471776f28 | ||
| 7f4709d7cd | |||
|
|
92938b3a04 | ||
| 10fcb332d4 | |||
|
|
b3ff0f54ae | ||
| db67a265d8 | |||
|
|
83a60df68d | ||
|
|
7e4e3af65f | ||
|
|
d31ed5cbf9 | ||
|
|
90fb7b2b3d | ||
|
|
543acd2122 | ||
|
|
3b5771a5d7 | ||
|
|
3aa320055c | ||
|
|
0679938eb2 | ||
| ed2ab89900 | |||
|
|
68d8e9636e | ||
| b220d451ae | |||
|
|
cf2f362c98 | ||
|
|
bbcd5ad611 | ||
|
|
c55d13ebeb | ||
|
|
cc3a3df9bc |
3837
package-lock.json
generated
Normal 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",
|
||||||
|
|||||||
@@ -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,
|
||||||
);
|
);
|
||||||
|
|||||||
BIN
src/assets/font/DouyinSansBold.ttf
Normal file
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 210 KiB |
BIN
src/assets/images/index/btn.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
src/assets/images/index/card-1.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
src/assets/images/index/card-2.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
src/assets/images/index/card-3.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
src/assets/images/index/card-4.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
src/assets/images/index/card-5.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 147 KiB |
BIN
src/assets/images/index/line.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.9 KiB |
BIN
src/assets/images/index/megaphone.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
src/assets/images/index/paper.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 8.2 KiB |
|
Before Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 10 KiB |
BIN
src/assets/images/index/text.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
src/assets/images/index/time.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 593 B |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 45 KiB |
BIN
src/assets/images/load/icon-2.png
Normal file
|
After Width: | Height: | Size: 275 B |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 983 B After Width: | Height: | Size: 1010 B |
|
Before Width: | Height: | Size: 844 B After Width: | Height: | Size: 869 B |
|
Before Width: | Height: | Size: 805 B After Width: | Height: | Size: 859 B |
|
Before Width: | Height: | Size: 756 B After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 580 B After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 42 KiB |
BIN
src/assets/images/prize/myPrize-box2.png
Normal file
|
After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 106 KiB |
|
Before Width: | Height: | Size: 326 B |
BIN
src/assets/images/qa/cls-btn.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 780 B |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 785 B |
BIN
src/assets/images/qa/megaphone.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
BIN
src/assets/images/qa/paper.png
Normal file
|
After Width: | Height: | Size: 91 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 34 KiB |
BIN
src/assets/images/question-list/arrow-l.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/assets/images/question-list/arrow-r.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/assets/images/question-list/btn.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
src/assets/images/question-list/card-1.png
Normal file
|
After Width: | Height: | Size: 143 KiB |
BIN
src/assets/images/question-list/card-2.png
Normal file
|
After Width: | Height: | Size: 117 KiB |
BIN
src/assets/images/question-list/card-3.png
Normal file
|
After Width: | Height: | Size: 103 KiB |
BIN
src/assets/images/question-list/card-4.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
src/assets/images/question-list/card-5.png
Normal file
|
After Width: | Height: | Size: 118 KiB |
BIN
src/assets/images/question-list/megaphone.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
src/assets/images/result/card-1.png
Normal file
|
After Width: | Height: | Size: 256 KiB |
BIN
src/assets/images/result/card-2.png
Normal file
|
After Width: | Height: | Size: 264 KiB |
BIN
src/assets/images/result/card-3.png
Normal file
|
After Width: | Height: | Size: 242 KiB |
BIN
src/assets/images/result/card-4.png
Normal file
|
After Width: | Height: | Size: 263 KiB |
BIN
src/assets/images/result/card-5.png
Normal file
|
After Width: | Height: | Size: 259 KiB |
|
Before Width: | Height: | Size: 673 B After Width: | Height: | Size: 739 B |
|
Before Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 176 KiB After Width: | Height: | Size: 432 KiB |
|
Before Width: | Height: | Size: 267 KiB After Width: | Height: | Size: 436 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 452 KiB |
BIN
src/assets/images/result/poster-4.jpg
Normal file
|
After Width: | Height: | Size: 444 KiB |
BIN
src/assets/images/result/poster-5.jpg
Normal file
|
After Width: | Height: | Size: 458 KiB |
|
Before Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 145 KiB |
|
Before Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 89 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 756 B After Width: | Height: | Size: 721 B |
|
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 14 KiB |
@@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||