9 Commits

Author SHA1 Message Date
616b0c7509 存档 2025-12-17 18:04:09 +08:00
梁泽军
a40b88c915 Merge branch 'dragon_boat_festival' of https://git.szxgl.cn/liangzejun/palc-newyear2024 into dragon_boat_festival 2025-09-09 10:44:45 +08:00
梁泽军
80272a6830 存档 2025-09-09 10:44:26 +08:00
c458a512bb 'update' 2025-05-26 17:50:11 +08:00
梁泽军
f6e435cece 完成所有切图 2025-05-22 15:51:10 +08:00
梁泽军
6bb2497d7c 完成所有切图 2025-05-22 15:49:25 +08:00
ef44ba761d 'update' 2025-05-22 15:39:52 +08:00
梁泽军
68c4a94916 完成所有切图 2025-05-22 15:14:09 +08:00
124e44bae2 'update' 2025-05-22 15:06:47 +08:00
23 changed files with 7076 additions and 413 deletions

View File

@@ -1,6 +1,6 @@
VITE_MODE = fat VITE_MODE = fat
VITE_HOST = https://wmm-stg.pingan.com.cn VITE_HOST = https://wmm-stg.pingan.com.cn
VITE_CDN = https://cdn.xglpa.com VITE_CDN = https://cdn.xglpa.com/palc-preview
VITE_FOLDER = /vite-4 VITE_FOLDER = /vite-4
VITE_APPID = wxc2bc9f9e8d19b504 VITE_APPID = wxc2bc9f9e8d19b504
VITE_API = /intfgw/data/mmoactivity VITE_API = /intfgw/data/mmoactivity

View File

@@ -5,7 +5,8 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" <meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"> content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<title><%- title%></title> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<title><%- title%></title>
</head> </head>
<body> <body>

3853
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -26,7 +26,7 @@
}, },
"devDependencies": { "devDependencies": {
"@vant/auto-import-resolver": "^1.0.2", "@vant/auto-import-resolver": "^1.0.2",
"@vitejs/plugin-vue": "^5.2.4", "@vitejs/plugin-vue": "^4.0.0",
"postcss-px-to-viewport-8-plugin": "^1.2.3", "postcss-px-to-viewport-8-plugin": "^1.2.3",
"sass": "^1.68.0", "sass": "^1.68.0",
"sass-loader": "^13.3.2", "sass-loader": "^13.3.2",

BIN
src.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 852 B

After

Width:  |  Height:  |  Size: 735 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 945 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -7,10 +7,9 @@ import { useMainStore } from "@/store";
import { subAnswer } from "@/api"; import { subAnswer } from "@/api";
// 页面配置初始化 // 页面配置初始化
const emit = defineEmits([ "QuestionPage"]); const emit = defineEmits(["QuestionPage"]);
const userStore = useMainStore(); const userStore = useMainStore();
// 当前题目 // 当前题目
// const currentId = ref(props.questionId); //当前id 0~4 // const currentId = ref(props.questionId); //当前id 0~4
const currentId = ref(0); //当前id 0~3 const currentId = ref(0); //当前id 0~3
@@ -19,6 +18,7 @@ const questionList = ref(data); //随机打乱题库
const isChecked = ref(false); const isChecked = ref(false);
const checkedOption = ref(""); const checkedOption = ref("");
const QaResult = ref(1); //当前答题结果 const QaResult = ref(1); //当前答题结果
const correctObj = ref({}); //当前正确选项
// 答题事件 // 答题事件
const answerFn = (item, event) => { const answerFn = (item, event) => {
@@ -30,6 +30,13 @@ const answerFn = (item, event) => {
checkedOption.value = item; checkedOption.value = item;
console.log("checkedOption", checkedOption.value); console.log("checkedOption", checkedOption.value);
QaResult.value = item.result; QaResult.value = item.result;
// 设置正确选项
correctObj.value = questionList.value[currentId.value].answer.find(
(item) => item.result == 1
);
console.log("correctObj", correctObj.value);
gsap.to(".qp-result ", { duration: 0.5, autoAlpha: 1, delay: 1 }); gsap.to(".qp-result ", { duration: 0.5, autoAlpha: 1, delay: 1 });
}); });
}; };
@@ -66,7 +73,9 @@ const viewResult = (event) => {
forbidClick: true, forbidClick: true,
}); });
if (import.meta.env.VITE_MODE != "dev") { let dev = "dev";
if (dev != "dev") {
// 提交完成记录 // 提交完成记录
subAnswer({}, userStore.token).then((res) => { subAnswer({}, userStore.token).then((res) => {
console.log("key:", res); console.log("key:", res);
@@ -76,11 +85,11 @@ const viewResult = (event) => {
setTimeout(() => { setTimeout(() => {
Toast.clear(); Toast.clear();
gsap.to(".QuestionPage", { gsap.to(".QuestionPage,.qp-result", {
duration: 0.5, duration: 0.5,
autoAlpha: 0, autoAlpha: 0,
onComplete: () => { onComplete: () => {
emit("showResult", { action: "showResult" }); emit("QuestionPage", { action: "showResult" });
}, },
}); });
}, 1000); }, 1000);
@@ -92,7 +101,7 @@ const viewResult = (event) => {
duration: 0.5, duration: 0.5,
autoAlpha: 0, autoAlpha: 0,
onComplete: () => { onComplete: () => {
emit("QuestionPage", { action: 'showResult' }); emit("QuestionPage", { action: "showResult" });
}, },
}); });
}, 1000); }, 1000);
@@ -122,9 +131,13 @@ const getClass = (item) => {
<div class="question-serial"> <div class="question-serial">
<div> <div>
<div class="serial-icon"></div> <div class="serial-icon"></div>
<div class="serial-text">{{ ['题目一','题目二','题目三','题目四'][currentId] }}</div> <div class="serial-text">
{{ ["题目一", "题目二", "题目三", "题目四"][currentId] }}
</div>
</div>
<div class="serial-num">
{{ currentId + 1 }}/{{ questionList.length }}
</div> </div>
<div class="serial-num">{{ currentId+1 }}/{{ questionList.length }}</div>
</div> </div>
<div class="qa-question-box"> <div class="qa-question-box">
<div class="question"> <div class="question">
@@ -173,14 +186,27 @@ const getClass = (item) => {
</div> </div>
</div> </div>
<div class="qp-result"> <div class="qp-result">
<div class="qp-result-box"> <div
class="qp-result-box"
:class="!QaResult ? 'qp-result-box-0' : 'qp-result-box-1'"
>
<div <div
class="qp-result-icon" class="qp-result-icon"
:class="!QaResult ? 'is-incorrect' : ''" :class="!QaResult ? 'is-incorrect' : ''"
></div> ></div>
<div class="qp-result-text">{{ QaResult ? "答对啦" : "答错啦" }}</div>
<div class="qp-tips-text">{{ questionList[currentId].tips[0] }}</div> <div class="qp-result-content">
<div class="qp-result-btn"></div> <div
class="qp-result-text"
:class="!QaResult ? 'text-bg-2' : 'text-bg-1'"
>
{{ QaResult ? "答对啦" : "答错啦" }}
</div>
<div class="qp-tips" v-if="!QaResult">
答案:{{ correctObj.aid }}.{{ correctObj.text }}
</div>
<div class="qp-tips-text">解析{{ questionList[currentId].tips[0] }}</div>
</div>
</div> </div>
<div <div
class="next-btn" class="next-btn"
@@ -351,32 +377,64 @@ const getClass = (item) => {
background-color: rgba($color: #000000, $alpha: 0.6); background-color: rgba($color: #000000, $alpha: 0.6);
visibility: hidden; visibility: hidden;
.qp-result-box { .qp-result-box {
@include box(569px, 399px); @include box(569px, 526px);
@include bg_pos("qa/result-box.png");
position: relative; position: relative;
.qp-result-icon { .qp-result-icon {
@include pos(112px, 112px, 222px, -28px); @include pos(112px, 112px, 223px, -30px);
@include bg_pos("qa/correct-icon.png"); @include bg_pos("qa/correct-icon.png");
} }
.is-incorrect { .is-incorrect {
@include bg_pos("qa/incorrect-icon.png"); @include bg_pos("qa/incorrect-icon.png");
} }
.qp-result-text {
@include pos(569px, 50px, 0px, 104px); .qp-result-content {
@include flexCen(); @include pos(569px, 430px, 0px, 95px);
font-size: 35px;
color: #ffffff;
} display: flex;
.qp-tips-text { flex-direction: column;
@include pos(569px, 220px, 0px, 150px); justify-content: flex-start;
padding: 20px; align-items: center;
font-size: 25px;
line-height: 35px; .qp-result-text {
text-align: justify; @include box(319px, 47px);
color: #b3640d; text-align: center;
width: 100%;
font-size: 35px;
color: #ffffff;
margin: 20px auto;
}
.text-bg-1 {
@include bg_pos("qa/tips-bg.png");
}
.text-bg-2 {
@include bg_pos("qa/tips-bg-2.png");
}
.qp-tips {
width: 80%;
text-align: center;
font-size: 25px;
color: #ff0000;
}
.qp-tips-text {
width: 100%;
padding: 10px 20px;
font-size: 25px;
line-height: 40px;
text-align: justify;
color: #b3640d;
}
} }
} }
.qp-result-box-1 {
@include bg_pos("qa/result-box.png");
}
.qp-result-box-0 {
@include bg_pos("qa/result-box-2.png");
}
.next-btn { .next-btn {
@include box(190px, 65px); @include box(190px, 65px);
border: 1px solid #ffffff; border: 1px solid #ffffff;

View File

@@ -33,7 +33,7 @@ onMounted(() => {
<div class="rule-text-area wrapper"> <div class="rule-text-area wrapper">
<div> <div>
<div class="part"> <div class="part">
<div>活动时间2025年5月285月31日</div> <div>活动时间2025年5月295月31日</div>
<div>活动奖励微信红包</div> <div>活动奖励微信红包</div>
</div> </div>
<div class="part"> <div class="part">

View File

@@ -31,6 +31,9 @@ const page = [
"qa/incorrect-icon.png", "qa/incorrect-icon.png",
"qa/correct-icon.png", "qa/correct-icon.png",
"qa/correct.png", "qa/correct.png",
"qa/result-box-2.png",
"qa/tips-bg.png",
"qa/tips-bg-2.png",
"result/poster.jpg", "result/poster.jpg",
"result/card.png", "result/card.png",

View File

@@ -118,7 +118,8 @@ onMounted(() => {
let code = getQueryString("code"); let code = getQueryString("code");
let url = import.meta.env.VITE_URL; let url = import.meta.env.VITE_URL;
let dev = import.meta.env.VITE_MODE; // let dev = import.meta.env.VITE_MODE;
let dev = "dev";
if (dev != "dev") { if (dev != "dev") {
if (code) { if (code) {
getUserInfo({ code: code }).then((res) => { getUserInfo({ code: code }).then((res) => {
@@ -269,7 +270,7 @@ const firstClick = () => {
#app { #app {
overflow: hidden; overflow: hidden;
background: linear-gradient(135deg, #d6d1ca, #e5dccf); background: linear-gradient(135deg, #d6d1ca, #e5dccf);
font-family: "FZZY_Regular"; // font-family: "FZZY_Regular";
} }
#__vconsole { #__vconsole {
@@ -277,7 +278,7 @@ const firstClick = () => {
} }
.music_icon { .music_icon {
@include pos(60px, 60px, 20px, 175px); @include pos(60px, 60px, 20px, 305px);
@include bg_pos("music-on.png"); @include bg_pos("music-on.png");
z-index: 99; z-index: 99;
visibility: hidden; visibility: hidden;

View File

@@ -106,7 +106,7 @@ export default defineConfig(({ command, mode }) => {
}, },
}, },
// 公共基础路径构建生产环境时自动载入cdn路径 // 公共基础路径构建生产环境时自动载入cdn路径
base: './', base: './',
// 打包配置 // 打包配置
build: { build: {
// outDir: 'dist', // outDir: 'dist',

1038
yarn.lock

File diff suppressed because it is too large Load Diff

2461
字体生成.txt Normal file

File diff suppressed because it is too large Load Diff