This commit is contained in:
XGL-THINKPAD-X1\rucky 2024-01-23 17:36:30 +08:00
parent 8db3e50c0f
commit 315ad5a8f0
8 changed files with 105 additions and 356 deletions

View File

@ -1,15 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
<title><%- title%></title>
</head>
<body>
<div id="app"></div>
</body>
</html>

View File

@ -20,10 +20,10 @@
"pinia": "^2.1.7",
"qrcode": "^1.5.3",
"qs": "^6.11.2",
"v-clipboard": "^3.0.0-next.1",
"vant": "^3.6.12",
"vconsole": "^3.15.1",
"vue": "^3.2.41",
"vue-clipboard3": "^2.0.0",
"weixin-js-sdk": "^1.6.5"
},
"devDependencies": {

View File

@ -2,7 +2,7 @@
import gsap from "gsap";
import { addPoint, debounceTap } from "@/plugins";
import { Toast } from "vant";
import { Clipboard } from "v-clipboard";
import useClipboard from 'vue-clipboard3'
import { useMainStore } from "@/store";
import { drawApi } from "@/api";
@ -10,7 +10,9 @@ import { drawApi } from "@/api";
const emit = defineEmits(["DrawPage"]);
const userStore = useMainStore();
const money = ref("8.88");
const money = ref("1.88");
const code = ref("sss");
const showResult = ref(false);
@ -48,6 +50,17 @@ const drawFn = (event) => {
code.value = res.data.prizeCode;
userStore.updatePrize(res.data);
}
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 {
console.log('抽奖异常');
if (res.code == 6003) {
@ -93,12 +106,14 @@ const hide = (event) => {
};
const copyFn = (event) => {
let e = event.target;
debounceTap(e, () => {
Clipboard.copy(code.value);
toClipboard(code.value)
debounceTap(e, async() => {
Toast(`复制成功:${code.value}`);
});
};
const entryAni = () => {
gsap.from(".DrawPage", { duration: 0.2, autoAlpha: 0 });
gsap.from(".draw-container", { duration: 0.5, autoAlpha: 0, scale: 0.7 });

View File

@ -2,25 +2,27 @@
import { debounceTap } from "@/plugins";
import gsap from "gsap";
import { Toast } from "vant";
import { Clipboard } from "v-clipboard";
import useClipboard from 'vue-clipboard3'
import { useMainStore } from "@/store";
import { onMounted } from "vue";
//
const emit = defineEmits(["MyPrizePage"]);
const userStore = useMainStore();
const { toClipboard } = useClipboard()
const money = ref(userStore.prizeMoney);
const code = ref(userStore.prizeCode);
const copyFn = (event) => {
let e = event.target;
toClipboard(code.value)
debounceTap(e, () => {
Clipboard.copy(code.value);
Toast(`复制成功:${code.value}`);
});
};
const hide = (event) => {
let e = event.target;
debounceTap(e, () => {

View File

@ -1,162 +0,0 @@
<script setup>
import { Toast, Icon, Field, CellGroup } from "vant";
import gsap from "gsap";
import { authorize, getUserInfo, exchangePrize } from "@/api";
import { getQueryString, debounceTap } from "@/plugins";
const Authorization = ref("");
const hasPrize = ref(false);
const received = ref(true);
const money = ref("9.99");
const cashCode = ref("");
onMounted(() => {
let code = getQueryString("code");
let dev = import.meta.env.VITE_MODE;
if (dev != "dev") {
if (code) {
getUserInfo({ code: code }).then((res) => {
if (res.code == 0) {
console.log("我的信息:", res.data);
Authorization.value = res.data.authorization;
exchangePrize({}, Authorization.value).then((res) => {
console.log("兑换结果:", res);
});
} else {
authorize({ scopeType: 1 }).then((res) => {
if (res.code == 0) {
console.log("重定向地址:", res.data);
location.replace(res.data);
}
//
Toast.fail({
message: res.msg,
duration: 0,
forbidClick: true,
});
});
}
});
} else {
authorize({ scopeType: 1 }).then((res) => {
if (res.code == 0) {
console.log("重定向地址:", res.data);
location.replace(res.data);
}
//
Toast.fail({
message: res.msg,
duration: 0,
forbidClick: true,
});
});
}
}
gsap.from(".CashPage", { duration: 0.5, autoAlpha: 0 });
});
const go = (event) => {
let e = event.target;
debounceTap(
e,
() => {
let url = import.meta.env.VITE_URL;
window.location.replace(url);
},
0.5
);
};
const cashFn = (event) => {
debounceTap(event.target, () => {
console.log("兑换码", cashCode.value);
if (cashCode.value != "") {
//
} else {
Toast.fail("请输入兑奖码");
}
});
};
</script>
<template>
<div class="CashPage" @touchmove.prevent>
<div class="no-prize">
<div class="icon">
<Icon size="60" name="gift-o" color="#fda085" />
</div>
<div class="code-input-box">
<CellGroup inset>
<Field
v-model="cashCode"
maxlength="10"
label="兑奖码"
placeholder="请输入兑奖码"
/>
</CellGroup>
</div>
<div class="btn-box">
<div class="btn" @click="go($event)">参与活动</div>
<div class="btn" @click="cashFn($event)">兑奖</div>
</div>
</div>
</div>
</template>
<style lang="scss" >
.van-cell__title {
width: 100px !important;
}
.CashPage {
@include pos(100%, 100%, 0px, 0px);
background: linear-gradient(135deg, #f6d365, #fda085);
overflow: hidden;
@include flexCen();
// .title {
// pointer-events: none;
// @include box(552px, 131px);
// @include bg_pos("index/title.png");
// }
.no-prize {
margin-top: 100px;
@include box(600px, 500px);
border-radius: 20px;
background-color: rgb(255, 255, 255);
@include flexCen();
box-shadow: 5px 5px 10px #bebebe, -5px -5px 10px #ffffff;
.icon {
height: 150px;
}
.text {
font-size: 28px;
letter-spacing: 1px;
}
.btn-box {
@include box(600px, 100px);
display: flex;
flex-direction: row;
justify-content: space-around;
.btn {
@include box(230px, 80px);
background: linear-gradient(135deg, #f6d365, #fda085);
display: flex;
justify-content: center;
align-items: center;
border-radius: 50px;
font-size: 30px;
color: #fff;
margin-top: 50px;
box-shadow: 20px 20px 60px #bebebe, -20px -20px 60px #ffffff;
}
}
}
}
</style>

View File

@ -1,22 +0,0 @@
import { createApp } from 'vue'
import App from './App.vue'
import { wxShare } from '@/plugins/wxshare'
import 'vant/lib/index.css';
const app = createApp(App)
// 初始化我的方法
// app.config.globalProperties.myPlugin = h5plugin
// 微信分享配置
wxShare({
title: '分享标题',
desc: '分享描述',
link: '/index.html',
})
app.mount('#app')
console.log('Mode:', import.meta.env.VITE_MODE);

View File

@ -37,16 +37,6 @@ export default defineConfig(({ command, mode }) => {
},
}
},
{
filename: 'cash',
entry: '/src/page/Cash/main.js',
template: 'cash.html',
injectOptions: {
data: {
title: '分享页',
},
}
}
]
}),
// 按需自动引入vant组件

135
yarn.lock
View File

@ -153,17 +153,6 @@
estree-walker "^2.0.2"
source-map-js "^1.0.2"
"@vue/compiler-core@3.4.13":
version "3.4.13"
resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.13.tgz#49f499034c25b0832845028ea3cd701fe5a17367"
integrity sha512-zGUdmB3j3Irn9z51GXLJ5s0EAHxmsm5/eXl0y6MBaajMeOAaiT4+zaDoxui4Ets98dwIRr8BBaqXXHtHSfm+KA==
dependencies:
"@babel/parser" "^7.23.6"
"@vue/shared" "3.4.13"
entities "^4.5.0"
estree-walker "^2.0.2"
source-map-js "^1.0.2"
"@vue/compiler-dom@3.4.10":
version "3.4.10"
resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.10.tgz#aaed699125ea6da2daf540bf8f68ade08e95086b"
@ -172,14 +161,6 @@
"@vue/compiler-core" "3.4.10"
"@vue/shared" "3.4.10"
"@vue/compiler-dom@3.4.13":
version "3.4.13"
resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.13.tgz#66a80a6ee412a3d32b7175a146b75d9ec3d1c50c"
integrity sha512-XSNbpr5Rs3kCfVAmBqMu/HDwOS+RL6y28ZZjDlnDUuf146pRWt2sQkwhsOYc9uu2lxjjJy2NcyOkK7MBLVEc7w==
dependencies:
"@vue/compiler-core" "3.4.13"
"@vue/shared" "3.4.13"
"@vue/compiler-sfc@3.4.10":
version "3.4.10"
resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.10.tgz#3ff0abf204d7a24317ad2111e087b7b775970f6b"
@ -195,21 +176,6 @@
postcss "^8.4.32"
source-map-js "^1.0.2"
"@vue/compiler-sfc@3.4.13":
version "3.4.13"
resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.13.tgz#0f5f6db0e64f522c09995585453ae5f13ba54c60"
integrity sha512-SkpmQN8xIFBd5onT413DFSDdjxULJf6jmJg/t3w/DZ9I8ZzyNlLIBLO0qFLewVHyHCiAgpPZlWqSRZXYrawk3Q==
dependencies:
"@babel/parser" "^7.23.6"
"@vue/compiler-core" "3.4.13"
"@vue/compiler-dom" "3.4.13"
"@vue/compiler-ssr" "3.4.13"
"@vue/shared" "3.4.13"
estree-walker "^2.0.2"
magic-string "^0.30.5"
postcss "^8.4.32"
source-map-js "^1.0.2"
"@vue/compiler-ssr@3.4.10":
version "3.4.10"
resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.10.tgz#526a55c718249de43e13914b0df03ddadfcc3cb1"
@ -218,14 +184,6 @@
"@vue/compiler-dom" "3.4.10"
"@vue/shared" "3.4.10"
"@vue/compiler-ssr@3.4.13":
version "3.4.13"
resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.13.tgz#90fa9a4116f7974d7a4e43a8a67f3fc162e8720f"
integrity sha512-rwnw9SVBgD6eGKh8UucnwztieQo/R3RQrEGpE0b0cxb2xxvJeLs/fe7DoYlhEfaSyzM/qD5odkK87hl3G3oW+A==
dependencies:
"@vue/compiler-dom" "3.4.13"
"@vue/shared" "3.4.13"
"@vue/devtools-api@^6.5.0":
version "6.5.1"
resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.5.1.tgz#7f71f31e40973eeee65b9a64382b13593fdbd697"
@ -238,13 +196,6 @@
dependencies:
"@vue/shared" "3.4.10"
"@vue/reactivity@3.4.13":
version "3.4.13"
resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.4.13.tgz#7eeeb9d598512f66e06a6438fd53464014b5ae59"
integrity sha512-/ZdUOrGKkGVONzVJkfDqNcn2fLMvaa5VlYx2KwTbnRbX06YZ4GJE0PVTmWzIxtBYdpSTLLXgw3pDggO+96KXzg==
dependencies:
"@vue/shared" "3.4.13"
"@vue/runtime-core@3.4.10":
version "3.4.10"
resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.10.tgz#b2eb152d26760dd7e3c362a1db2d7105826c1cc2"
@ -253,14 +204,6 @@
"@vue/reactivity" "3.4.10"
"@vue/shared" "3.4.10"
"@vue/runtime-core@3.4.13":
version "3.4.13"
resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.4.13.tgz#776cad7c1d56ec5e92a48e040c8483b89f779542"
integrity sha512-Ov4d4At7z3goxqzSqQxdfVYEcN5HY4dM1uDYL6Hu/Es9Za9BEN602zyjWhhi2+BEki5F9NizRSvn02k/tqNWlg==
dependencies:
"@vue/reactivity" "3.4.13"
"@vue/shared" "3.4.13"
"@vue/runtime-dom@3.4.10":
version "3.4.10"
resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.10.tgz#89974d8aa7e9555f952a92c3f03ed1713df04b6f"
@ -270,15 +213,6 @@
"@vue/shared" "3.4.10"
csstype "^3.1.3"
"@vue/runtime-dom@3.4.13":
version "3.4.13"
resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.4.13.tgz#74aff1494bee49c037b9c5355d8998c793ac0977"
integrity sha512-ynde9p16eEV3u1VCxUre2e0nKzD0l3NzH0r599+bXeLT1Yhac8Atcot3iL9XNqwolxYCI89KBII+2MSVzfrz6w==
dependencies:
"@vue/runtime-core" "3.4.13"
"@vue/shared" "3.4.13"
csstype "^3.1.3"
"@vue/server-renderer@3.4.10":
version "3.4.10"
resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.10.tgz#722cc408d926344c695456f62e918d961b41cd4f"
@ -287,24 +221,11 @@
"@vue/compiler-ssr" "3.4.10"
"@vue/shared" "3.4.10"
"@vue/server-renderer@3.4.13":
version "3.4.13"
resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.13.tgz#b8c9cfb2147c0a01feba7f136d3a432848dafcab"
integrity sha512-hkw+UQyDZZtSn1q30nObMfc8beVEQv2pG08nghigxGw+iOWodR+tWSuJak0mzWAHlP/xt/qLc//dG6igfgvGEA==
dependencies:
"@vue/compiler-ssr" "3.4.13"
"@vue/shared" "3.4.13"
"@vue/shared@3.4.10":
version "3.4.10"
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.10.tgz#d2399901586bdb1bc727c8d61f0e543b25b2461c"
integrity sha512-C0mIVhwW1xQLMFyqMJxnhq6fWyE02lCgcE+TDdtGpg6B3H6kh/0YcqS54qYc76UJNlWegf3VgsLqgk6D9hBmzQ==
"@vue/shared@3.4.13":
version "3.4.13"
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.13.tgz#a1eefce5ddffe207d53eafbc07f4ebbea0a4768a"
integrity sha512-56crFKLPpzk85WXX1L1c0QzPOuoapWlPVys8eMG8kkRmqdMjWUqK8KpFdE2d7BQA4CEbXwyyHPq6MpFr8H9rcg==
"@vueuse/core@^10.7.1":
version "10.7.1"
resolved "https://registry.npmmirror.com/@vueuse/core/-/core-10.7.1.tgz#b4bfe3355dbb0ec17d34d737385e1c8a0156ccf1"
@ -465,6 +386,15 @@ clean-css@^5.2.2:
dependencies:
source-map "~0.6.0"
clipboard@^2.0.6:
version "2.0.11"
resolved "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz#62180360b97dd668b6b3a84ec226975762a70be5"
integrity sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==
dependencies:
good-listener "^1.2.2"
select "^1.1.2"
tiny-emitter "^2.0.0"
cliui@^6.0.0:
version "6.0.0"
resolved "https://registry.npmmirror.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
@ -580,6 +510,11 @@ delayed-stream@~1.0.0:
resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
delegate@^3.1.2:
version "3.2.0"
resolved "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166"
integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==
dijkstrajs@^1.0.1:
version "1.0.3"
resolved "https://registry.npmmirror.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz#4c8dbdea1f0f6478bff94d9c49c784d623e4fc23"
@ -900,6 +835,13 @@ glob-parent@^5.1.2, glob-parent@~5.1.2:
dependencies:
is-glob "^4.0.1"
good-listener@^1.2.2:
version "1.2.2"
resolved "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
integrity sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==
dependencies:
delegate "^3.1.2"
gopd@^1.0.1:
version "1.0.1"
resolved "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
@ -1398,6 +1340,11 @@ scule@^1.1.1:
resolved "https://registry.npmmirror.com/scule/-/scule-1.2.0.tgz#b46d444d6a8c92e73eb80d2d8d00b94ab065cc3e"
integrity sha512-CRCmi5zHQnSoeCik9565PONMg0kfkvYmcSqrbOJY4txFfy1wvVULV4FDaiXhUblUgahdqz3F2NwHZ8i4eBTwUw==
select@^1.1.2:
version "1.1.2"
resolved "https://registry.npmmirror.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==
set-blocking@^2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
@ -1485,6 +1432,11 @@ terser@^5.10.0:
commander "^2.20.0"
source-map-support "~0.5.20"
tiny-emitter@^2.0.0:
version "2.1.0"
resolved "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
@ -1566,13 +1518,6 @@ unplugin@^1.4.0, unplugin@^1.5.1, unplugin@^1.6.0:
webpack-sources "^3.2.3"
webpack-virtual-modules "^0.6.1"
v-clipboard@^3.0.0-next.1:
version "3.0.0-next.1"
resolved "https://registry.npmmirror.com/v-clipboard/-/v-clipboard-3.0.0-next.1.tgz#6e360e54f20cc15cd5bc57b3a71af28bc371b4e5"
integrity sha512-UvCnzetQMlVfk9yoiyew8ldGiCzeER5aYdmXXtZp8LC6rt2QXQS0AayEDn1K7rlXpd3M8d+JeYNUV+ZNgtaS4A==
dependencies:
vue "^3.2.45"
vant@^3.6.12:
version "3.6.12"
resolved "https://registry.npmmirror.com/vant/-/vant-3.6.12.tgz#a46045c74961744f27d5a6ffbc3bed592f0f4d0b"
@ -1631,6 +1576,13 @@ vite@^3.2.3:
optionalDependencies:
fsevents "~2.3.2"
vue-clipboard3@^2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/vue-clipboard3/-/vue-clipboard3-2.0.0.tgz#79b026c765c0f6a5cde18a477c2dbfc7d3b9f178"
integrity sha512-Q9S7dzWGax7LN5iiSPcu/K1GGm2gcBBlYwmMsUc5/16N6w90cbKow3FnPmPs95sungns4yvd9/+JhbAznECS2A==
dependencies:
clipboard "^2.0.6"
vue-demi@>=0.14.5, vue-demi@>=0.14.6:
version "0.14.6"
resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.6.tgz#dc706582851dc1cdc17a0054f4fec2eb6df74c92"
@ -1647,17 +1599,6 @@ vue@^3.2.41:
"@vue/server-renderer" "3.4.10"
"@vue/shared" "3.4.10"
vue@^3.2.45:
version "3.4.13"
resolved "https://registry.npmmirror.com/vue/-/vue-3.4.13.tgz#aa522baf2344d1c4c54c769f66c0151f1872f1ff"
integrity sha512-FE3UZ0p+oUZTwz+SzlH/hDFg+XsVRFvwmx0LXjdD1pRK/cO4fu5v6ltAZji4za4IBih3dV78elUK3di8v3pWIg==
dependencies:
"@vue/compiler-dom" "3.4.13"
"@vue/compiler-sfc" "3.4.13"
"@vue/runtime-dom" "3.4.13"
"@vue/server-renderer" "3.4.13"
"@vue/shared" "3.4.13"
webpack-sources@^3.2.3:
version "3.2.3"
resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"