123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <script setup>
- import { ref } from 'vue';
- import { useModel } from '@zjxpcyc/vue-tiny-store';
- import wxsdk from '@/utils/wx'
- import track from '@/utils/track'
- import Loading from './pages/Loading.vue';
-
- const { el, play } = useModel('audio');
- const { setUser, contries } = useModel('user');
- const show = ref(false);
-
- const { share, getCode, redirect } = wxsdk();
-
- const initUser = () => {
- const code = getCode();
- if (!code) {
- return redirect();
- } else {
- track(code).then(res => {
- const { user, num } = res;
-
-
- const avg = (num || 0) / 8;
- Object.keys(contries).forEach(key => {
- contries[key] = avg + Math.floor(Math.random() * 100)
- });
-
- setUser({
- ...(user || {}),
- num: num || 0,
- });
- }).catch(err => {
- console.error(err);
-
-
- redirect();
- });
- }
- }
-
- initUser();
-
- share();
-
- const onTouch = () => {
- play();
- window.removeEventListener('touchstart', onTouch);
- }
- window.addEventListener('touchstart', onTouch);
-
- </script>
-
- <template>
- <Loading v-if="!show" class="loading" @ready="(show = true)" />
- <router-view v-else></router-view>
-
- <audio ref="el" src="/audio/audio.mp3" style="max-width: 0" loop preload="auto"></audio>
- </template>
-
- <style lang="less" scoped>
- .loading {
- position: fixed;
- z-index: 1000;
- top: 0;
- }
- </style>
|