main.ts
5.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
import { createApp } from 'vue';
import { Sticky, Lazyload, Popup, Overlay, Loading, Dialog, Swipe, SwipeItem, Switch, PullRefresh, Row, Col, List, Tab, Tabs, Toast, Skeleton, setToastDefaultOptions } from 'vant';
import App from './App.vue';
import Router from './router';
import store from './store';
import 'vant/lib/index.css';
import 'amfe-flexible';
import './until/rem';
import 'animate.css/animate.min.css';
import './assets/icons/index.js';
import SvgIcon from './components/SvgIcon.vue';
import * as user_api from '@/api/user_api';
const app = createApp(App);
app.component('svg-icon', SvgIcon);
app.use(store);
// 暴露router到window上
(window as any).router = Router;
// import { useStore } from 'vuex';
// const use_store = useStore();
const last_user_update_time = { value: 0 };
(window as any).app_go = async ({ path, query, token }: any) => {
try {
let user_info: any = store.state.userInfo;
if (token && !user_info?.user_id) {
let datas: any = {
token: token,
mac_code: 'vue_html5',
t: (new Date()).valueOf()
};
user_api.user_auto_login(datas).then(function () {
// alert("user_info23 : "+result?.Result?.user_id)
store.dispatch('fetchUserInfo');
});
}
} catch (error: any) {
// alert('login_check_error'+error.message)
}
try {
let location: any = (window as any).location;
//登录信息检查。判断上次登录时间是否超过1分钟,可异步检查
let now = (new Date()).valueOf();
if (now - last_user_update_time.value > 60 * 1000) {
// console.info(`update user info :---------`);
last_user_update_time.value = now;
store.dispatch('fetchUserInfo');
}
//如果是详情页面,且比赛id相同,则不跳转,但要重新加载数据
if (location.pathname.indexOf('game') > -1 && path.indexOf('game') > -1
&& query?.yiqiuid && location.search.indexOf(query.yiqiuid) > -1) {
console.info(`query ${JSON.stringify(query)}`);
store.commit('updateAppIsBack', false);
// 万不得已的情况下使用 reload()
// location.reload();
// 增加时间戳,来让页面重新加载数据
return await Router.replace({ path, query: { ...query, t: (new Date()).valueOf() } });
} else if (location.pathname.indexOf('game') > -1 && path.indexOf('game') > -1) {
return await Router.replace({ path, query });
}
} catch (e: any) {
console.info(`app go page error:`, e.message);
}
return await Router.push({ path, query });
};
(window as any).app_back = ({ args }: any) => {
console.info(args);
store.commit('updateAppIsBack', true);
if(store.state.app_is_back){
return 'app_back success';
}else{
return 'app_back fail';
}
};
(window as any).login_check = async ({ token }: any) => {
try {
let datas: any = {
token: token,
mac_code: 'vue_html5',
t: (new Date()).valueOf()
};
user_api.user_auto_login(datas).then(function () {
// alert("user_info23 : "+result?.Result?.user_id)
store.dispatch('fetchUserInfo');
});
// store.commit('updateUserInfo', token);
// if(args){
// }
} catch (error) {
// alert('login_check_error')
}
return 'success';
};
(window as any).logout_check = async ({ args }: any) => {
store.commit('updateUserInfo', {});
console.info(args);
try {
user_api.ydn_logout({}).then(function (result: any) {
console.info(result);
// alert("user_info23 : "+result?.Result?.user_id)
// store.dispatch('fetchUserInfo');
});
} catch (error) {
// alert('login_check_error')
}
return 'success';
};
(window as any).get_user_info = (args: any = null) => {
let user_info: any = store.state.userInfo;
// alert('user_info')
// alert(JSON.stringify(args))
if (!user_info?.user_id) {
user_api.get_logined_virtual_account().then(function () {
// alert("user_info2 : " + result?.Result?.user_id)
});
try {
let datas: any = {
token: JSON.stringify(args),
mac_code: 'vue_html5',
t: (new Date()).valueOf()
};
user_api.user_auto_login(datas).then(function () {
// alert("user_info23 : "+result?.Result?.user_id)
});
} catch (error) {
alert('login_check_error');
}
}
if (user_info && user_info?.user_id) {
return JSON.stringify(user_info);
}
// alert('user_info is null')
return null;
};
app.use(Router);
app.use(Lazyload, { lazyComponent: true })
.use(Sticky)
.use(Popup)
.use(Overlay)
.use(Loading)
.use(Dialog)
.use(Toast)
.use(Swipe)
.use(SwipeItem)
.use(Switch)
.use(PullRefresh)
.use(Row)
.use(Col)
.use(List)
.use(Tab)
.use(Tabs)
.use(Skeleton);
app.mount('#app');
setToastDefaultOptions({ duration: 1000 });
setToastDefaultOptions('loading', {
message: '加载中…',
forbidClick: true,//是否禁止背景点击
overlay: true, //是否显示背景遮罩层
closeOnClickOverlay: true,//是否在点击遮罩层后关闭
icon: 'https://img2.ydniu.com/app/images/sports_ydniu/m-load.gif',
iconSize: 30,
className: 'loading-style',
transition: 'custom-toast'//动画类名
});