8554c0db by zhangmeng

登录注册

1 parent 04376af8
1 <template> 1 <template>
2 <div class="topNav"> 2 <div class="topNav">
3 <router-link to="/"> 3 <router-link to="/">
4 <!-- <img class="logo" src="@/assets/v1/nav_logo.png">--> 4 <!-- <img class="logo" src="@/assets/v1/nav_logo.png">-->
5 <img class="logo" src="/img/logoArr.png"> 5 <img class="logo" src="/img/logoArr.png">
6 </router-link> 6 </router-link>
7 7
8 <div class="home-menu forPc"> 8 <div class="home-menu forPc">
9 <el-menu v-if="language==0" 9 <el-menu
10 router :default-active="activeIndex" :mode="mode" :ellipsis="true" 10 v-if="language==0"
11 popper-effect="dark" @select="handleSelect" 11 :default-active="activeIndex" :ellipsis="true" :mode="mode" popper-effect="dark"
12 router @select="handleSelect"
12 > 13 >
13 <el-menu-item index="/">{{ language==0?'首页':'HOME' }}</el-menu-item> 14 <el-menu-item index="/">{{ language == 0 ? '首页' : 'HOME' }}</el-menu-item>
14 <el-menu-item index="/news">{{ language==0?'新闻资讯':'NEWS' }}</el-menu-item> 15 <el-menu-item index="/news">{{ language == 0 ? '新闻资讯' : 'NEWS' }}</el-menu-item>
15 <el-menu-item index="/guide">{{ language==0?'参赛指南':'GUIDELINE' }}</el-menu-item> 16 <el-menu-item index="/guide">{{ language == 0 ? '参赛指南' : 'GUIDELINE' }}</el-menu-item>
16 <el-menu-item index="/match/list">{{ language==0?'大赛报名':'REGISTRATION' }}</el-menu-item> 17 <el-menu-item index="/match/list">{{ language == 0 ? '大赛报名' : 'REGISTRATION' }}</el-menu-item>
17 <el-menu-item index="/saiC">{{ language==0?'赛程安排':'COMPETITIONS' }}</el-menu-item> 18 <el-menu-item index="/saiC">{{ language == 0 ? '赛程安排' : 'COMPETITIONS' }}</el-menu-item>
18 <el-menu-item index="/meta">{{ language==0?'媒体中心':'MEDIA' }}</el-menu-item> 19 <el-menu-item index="/meta">{{ language == 0 ? '媒体中心' : 'MEDIA' }}</el-menu-item>
19 <el-menu-item index="/notice">{{ language==0?'通知公告':'NOTICEBOARD' }}</el-menu-item> 20 <el-menu-item index="/notice">{{ language == 0 ? '通知公告' : 'NOTICEBOARD' }}</el-menu-item>
20 21
21 <!-- <el-sub-menu index="/about">--> 22 <!-- <el-sub-menu index="/about">-->
22 <!-- <template #title>{{ language==0?'关于我们':'CONTACT & MORE' }}</template>--> 23 <!-- <template #title>{{ language==0?'关于我们':'CONTACT & MORE' }}</template>-->
23 <!-- <el-menu-item index="/about/wuDao">{{ language==0?'舞蹈节':'About Us' }}</el-menu-item>--> 24 <!-- <el-menu-item index="/about/wuDao">{{ language==0?'舞蹈节':'About Us' }}</el-menu-item>-->
24 <!-- <el-menu-item index="/about/regulations" v-if="language==1">Rules & Regulations</el-menu-item>--> 25 <!-- <el-menu-item index="/about/regulations" v-if="language==1">Rules & Regulations</el-menu-item>-->
25 <!-- <el-menu-item index="/about/culture">{{ language==0?'地方文化':'Culture' }}</el-menu-item>--> 26 <!-- <el-menu-item index="/about/culture">{{ language==0?'地方文化':'Culture' }}</el-menu-item>-->
26 <!-- </el-sub-menu>--> 27 <!-- </el-sub-menu>-->
27 </el-menu> 28 </el-menu>
28 <el-menu v-else class="enMenu" 29 <el-menu
29 router :default-active="activeIndex" :mode="mode" :ellipsis="true" 30 v-else :default-active="activeIndex"
30 popper-effect="dark" @select="handleSelect" 31 :ellipsis="true" :mode="mode" class="enMenu" popper-effect="dark"
32 router @select="handleSelect"
31 > 33 >
32 <el-menu-item index="/">{{ language==0?'首页':'HOME' }}</el-menu-item> 34 <el-menu-item index="/">{{ language == 0 ? '首页' : 'HOME' }}</el-menu-item>
33 <el-menu-item index="/news">{{ language==0?'新闻资讯':'NEWS' }}</el-menu-item> 35 <el-menu-item index="/news">{{ language == 0 ? '新闻资讯' : 'NEWS' }}</el-menu-item>
34 <el-menu-item index="/guide">{{ language==0?'参赛指南':'GUIDELINE' }}</el-menu-item> 36 <el-menu-item index="/guide">{{ language == 0 ? '参赛指南' : 'GUIDELINE' }}</el-menu-item>
35 <el-menu-item index="/match/list">{{ language==0?'大赛报名':'REGISTRATION' }}</el-menu-item> 37 <el-menu-item index="/match/list">{{ language == 0 ? '大赛报名' : 'REGISTRATION' }}</el-menu-item>
36 <el-menu-item index="/saiC">{{ language==0?'赛程安排':'COMPETITIONS' }}</el-menu-item> 38 <el-menu-item index="/saiC">{{ language == 0 ? '赛程安排' : 'COMPETITIONS' }}</el-menu-item>
37 <el-menu-item index="/meta">{{ language==0?'媒体中心':'MEDIA' }}</el-menu-item> 39 <el-menu-item index="/meta">{{ language == 0 ? '媒体中心' : 'MEDIA' }}</el-menu-item>
38 <el-menu-item index="/notice">{{ language==0?'通知公告':'NOTICEBOARD' }}</el-menu-item> 40 <el-menu-item index="/notice">{{ language == 0 ? '通知公告' : 'NOTICEBOARD' }}</el-menu-item>
39 41
40 <!-- <el-sub-menu index="/about">--> 42 <!-- <el-sub-menu index="/about">-->
41 <!-- <template #title>{{ language==0?'关于我们':'CONTACT & MORE' }}</template>--> 43 <!-- <template #title>{{ language==0?'关于我们':'CONTACT & MORE' }}</template>-->
42 <!-- <el-menu-item index="/about/wuDaoEn">{{ language==0?'舞蹈节':'About Us' }}</el-menu-item>--> 44 <!-- <el-menu-item index="/about/wuDaoEn">{{ language==0?'舞蹈节':'About Us' }}</el-menu-item>-->
43 <!-- <el-menu-item index="/about/regulations" v-if="language==1">Rules & Regulations</el-menu-item>--> 45 <!-- <el-menu-item index="/about/regulations" v-if="language==1">Rules & Regulations</el-menu-item>-->
44 <!-- <el-menu-item index="/about/cultureEn">{{ language==0?'地方文化':'Culture' }}</el-menu-item>--> 46 <!-- <el-menu-item index="/about/cultureEn">{{ language==0?'地方文化':'Culture' }}</el-menu-item>-->
45 <!-- </el-sub-menu>--> 47 <!-- </el-sub-menu>-->
46 </el-menu> 48 </el-menu>
47 </div> 49 </div>
48 50
49 <div class="flex-right"> 51 <div class="flex-right">
50 <div class="search mr20 forPc"> 52 <div class="search mr20 forPc">
51 <el-button :icon="Search" circle @click="searchNews" /> 53 <el-button :icon="Search" circle @click="searchNews" />
52 </div> 54 </div>
53 <div class="languageBtn"> 55 <div class="languageBtn">
54 <span :class="language==0?'active':''" @click="changeLanguage(0)">{{ language==0?'中文':'CN' }}</span> 56 <span :class="language==0?'active':''" @click="changeLanguage(0)">{{ language == 0 ? '中文' : 'CN' }}</span>
55 | 57 |
56 <span :class="language==1?'active':''" @click="changeLanguage(1)">EN</span> 58 <span :class="language==1?'active':''" @click="changeLanguage(1)">EN</span>
57 </div> 59 </div>
58 <div class="ml20 forPc" > 60 <div class="ml20 forPc">
59 <el-button v-if="!isLogin" @click="goLogin" style="border-radius: 20px;" class="loginBtn"> 61 <el-button v-if="!isLogin" class="loginBtn" style="border-radius: 20px;" @click="goLogin">
60 <span>{{ language==0?'登录':'LOGIN' }}</span> 62 <span>{{ language == 0 ? '登录' : 'LOGIN' }}</span>
61 <!-- | &nbsp;<span @click="goRegister">注册</span>--> 63 <!-- | &nbsp;<span @click="goRegister">注册</span>-->
62 </el-button> 64 </el-button>
63 65
64 <el-dropdown v-if="isLogin" class="mr20"> 66 <el-dropdown v-if="isLogin" class="mr20">
65 67
66 <el-avatar :icon="UserFilled"> 68 <el-avatar :icon="UserFilled">
67 <!-- {{user.userName.substring(0,4)}}--> 69 <!-- {{user.userName.substring(0,4)}}-->
68 </el-avatar> 70 </el-avatar>
69 71
70 <template #dropdown> 72 <template #dropdown>
71 <el-dropdown-menu> 73 <el-dropdown-menu>
72 <el-dropdown-item @click="router.push('/center/myInfo')">{{ language==0?'个人中心':'Personal' }}</el-dropdown-item> 74 <el-dropdown-item @click="router.push('/center/myInfo')">{{
73 <el-dropdown-item @click="logout()">{{language==0?'退出':'Exit'}}</el-dropdown-item> 75 language == 0 ? '个人中心' : 'Personal'
76 }}
77 </el-dropdown-item>
78 <el-dropdown-item @click="logout()">{{ language == 0 ? '退出' : 'Exit' }}</el-dropdown-item>
74 </el-dropdown-menu> 79 </el-dropdown-menu>
75 </template> 80 </template>
76 </el-dropdown> 81 </el-dropdown>
...@@ -80,19 +85,27 @@ ...@@ -80,19 +85,27 @@
80 <img src="@/assets/v1/menu.png"> 85 <img src="@/assets/v1/menu.png">
81 </a> 86 </a>
82 </div> 87 </div>
83 88
84 <el-drawer 89 <el-drawer
85 v-model="drawer" size="100%" 90 v-model="drawer" :style="{'--el-drawer-padding-primary':0}"
86 :style="{'--el-drawer-padding-primary':0}" direction="ltr" 91 :with-header="false" direction="ltr"
87 :with-header="false" title="菜单" 92 size="100%" title="菜单"
88 > 93 >
89 <div class="weiHead"> 94 <div class="weiHead">
90 <el-button size="large" v-if="!isLogin" @click="goLogin" round style="color: #fff" class="btn-lineG"> 95 <el-button
91 <span>{{ language==0?'登录':'LOGIN' }}</span> 96 v-if="!isLogin" class="btn-lineG" round size="large" style="color: #fff"
97 @click="goLogin"
98 >
99 <span>{{ language == 0 ? '登录' : 'LOGIN' }}</span>
92 <!-- | &nbsp;<span @click="goRegister">注册</span>--> 100 <!-- | &nbsp;<span @click="goRegister">注册</span>-->
93 </el-button> 101 </el-button>
94 <el-button type="primary" round plain size="large" v-if="isLogin" @click="logout()">{{language==0?'退出':'Exit'}}</el-button> 102 <el-button
95 103 v-if="isLogin" plain round size="large" type="primary"
104 @click="logout()"
105 >
106 {{ language == 0 ? '退出' : 'Exit' }}
107 </el-button>
108
96 <div style="display: flex"> 109 <div style="display: flex">
97 <div class="languageBtn"> 110 <div class="languageBtn">
98 <span v-if="language==0" :class="language==0?'active':''" @click="changeLanguage(0)">中文</span> 111 <span v-if="language==0" :class="language==0?'active':''" @click="changeLanguage(0)">中文</span>
...@@ -100,16 +113,19 @@ ...@@ -100,16 +113,19 @@
100 | 113 |
101 <span :class="language==1?'active':''" @click="changeLanguage(1)">EN</span> 114 <span :class="language==1?'active':''" @click="changeLanguage(1)">EN</span>
102 </div> 115 </div>
103 116
104 <el-icon color="#453DEA" size="30" @click="closeDrawer"><close/></el-icon> 117 <el-icon color="#453DEA" size="30" @click="closeDrawer">
105 118 <close />
119 </el-icon>
120
106 </div> 121 </div>
107 </div> 122 </div>
108 123
109 <el-menu class="weiMenu" 124 <el-menu
110 v-if="language==0" 125 v-if="language==0"
111 router :default-active="activeIndex" mode="vertical" :ellipsis="false" 126 :default-active="activeIndex"
112 popper-effect="dark" @select="handleSelect" 127 :ellipsis="false" class="weiMenu" mode="vertical" popper-effect="dark"
128 router @select="handleSelect"
113 > 129 >
114 <el-menu-item index="/">首页</el-menu-item> 130 <el-menu-item index="/">首页</el-menu-item>
115 <el-menu-item index="/news">新闻资讯</el-menu-item> 131 <el-menu-item index="/news">新闻资讯</el-menu-item>
...@@ -125,10 +141,11 @@ ...@@ -125,10 +141,11 @@
125 </el-sub-menu> 141 </el-sub-menu>
126 <el-menu-item v-if="isLogin" index="/center/myInfo">个人中心</el-menu-item> 142 <el-menu-item v-if="isLogin" index="/center/myInfo">个人中心</el-menu-item>
127 </el-menu> 143 </el-menu>
128 <el-menu class="weiMenu" 144 <el-menu
129 v-if="language==1" 145 v-if="language==1"
130 router :default-active="activeIndex" mode="vertical" :ellipsis="false" 146 :default-active="activeIndex"
131 popper-effect="dark" @select="handleSelect" 147 :ellipsis="false" class="weiMenu" mode="vertical" popper-effect="dark"
148 router @select="handleSelect"
132 > 149 >
133 <el-menu-item index="/">HOME</el-menu-item> 150 <el-menu-item index="/">HOME</el-menu-item>
134 <el-menu-item index="/news">NEWS</el-menu-item> 151 <el-menu-item index="/news">NEWS</el-menu-item>
...@@ -156,7 +173,7 @@ ...@@ -156,7 +173,7 @@
156 import { computed, ref, watch } from 'vue' 173 import { computed, ref, watch } from 'vue'
157 import { useRoute, useRouter } from 'vue-router' 174 import { useRoute, useRouter } from 'vue-router'
158 import useUserStore from '@/store/modules/user' 175 import useUserStore from '@/store/modules/user'
159 import { Search,UserFilled } from '@element-plus/icons-vue' 176 import { Search, UserFilled } from '@element-plus/icons-vue'
160 import { getCurrentInstance, onMounted } from '@vue/runtime-core' 177 import { getCurrentInstance, onMounted } from '@vue/runtime-core'
161 import _ from 'lodash' 178 import _ from 'lodash'
162 import LoginDialog from '@/viewsPc/login' 179 import LoginDialog from '@/viewsPc/login'
...@@ -166,7 +183,7 @@ import SearchPop_en from './indexSearch_en' ...@@ -166,7 +183,7 @@ import SearchPop_en from './indexSearch_en'
166 import Captcha from './captcha' 183 import Captcha from './captcha'
167 import CaptchaSms from './captchaSms' 184 import CaptchaSms from './captchaSms'
168 import cache from '@/plugins/cache' 185 import cache from '@/plugins/cache'
169 import {useStorage} from "@vueuse/core"; 186 import { useStorage } from '@vueuse/core'
170 187
171 const router = useRouter() 188 const router = useRouter()
172 const route = useRoute() 189 const route = useRoute()
...@@ -202,19 +219,23 @@ onMounted(() => { ...@@ -202,19 +219,23 @@ onMounted(() => {
202 } 219 }
203 console.log(activeIndex.value) 220 console.log(activeIndex.value)
204 }) 221 })
222
205 function changeLanguage(n) { 223 function changeLanguage(n) {
206 if(language.value == n){ 224 if (language.value == n) {
207 return 225 return
208 } 226 }
209 proxy.$modal.loading() 227 proxy.$modal.loading()
210 language.value = n 228 language.value = n
211 } 229 }
230
212 function showDrawer() { 231 function showDrawer() {
213 drawer.value = true 232 drawer.value = true
214 } 233 }
234
215 function closeDrawer() { 235 function closeDrawer() {
216 drawer.value = false 236 drawer.value = false
217 } 237 }
238
218 function handleSelect(key, keyPath) { 239 function handleSelect(key, keyPath) {
219 // console.log(key) 240 // console.log(key)
220 activeIndex.value = key 241 activeIndex.value = key
...@@ -222,7 +243,7 @@ function handleSelect(key, keyPath) { ...@@ -222,7 +243,7 @@ function handleSelect(key, keyPath) {
222 } 243 }
223 244
224 const logout = () => { 245 const logout = () => {
225 proxy.$modal.confirm(language.value==0?'确定退出?':'Are you sure to exit?').then(function() { 246 proxy.$modal.confirm(language.value == 0 ? '确定退出?' : 'Are you sure to exit?').then(function() {
226 return useUserStore().logOut() 247 return useUserStore().logOut()
227 }).then(() => { 248 }).then(() => {
228 isLogin.value = true 249 isLogin.value = true
...@@ -232,12 +253,6 @@ const logout = () => { ...@@ -232,12 +253,6 @@ const logout = () => {
232 } 253 }
233 254
234 const goLogin = (query) => { 255 const goLogin = (query) => {
235 let param = {}
236 // if (_.isBoolean(flag)) {
237 // param = {
238 // notShowClose: flag
239 // }
240 // }
241 proxy.$refs['pcloginDialog'].open(query) 256 proxy.$refs['pcloginDialog'].open(query)
242 } 257 }
243 258
...@@ -251,78 +266,96 @@ watch(() => useUserStore().reLogin, (val) => { ...@@ -251,78 +266,96 @@ watch(() => useUserStore().reLogin, (val) => {
251 goLogin(val.query) 266 goLogin(val.query)
252 } 267 }
253 }) 268 })
269
270
254 watch(() => useUserStore().visitor, (val) => { 271 watch(() => useUserStore().visitor, (val) => {
255 if (val) { 272 if (val) {
256 console.log(val) 273 console.log(val)
257 proxy.$refs['visitorDialog'].open() 274 proxy.$refs['visitorDialog'].open()
258 } 275 }
259 }) 276 })
277
260 function searchNews() { 278 function searchNews() {
261 proxy.$refs['searchDialog'].open() 279 proxy.$refs['searchDialog'].open()
262 } 280 }
281
263 function getCode() { 282 function getCode() {
264 proxy.$refs['codeRef'].getCode() 283 proxy.$refs['codeRef'].getCode()
265 } 284 }
266 </script> 285 </script>
267 286
268 <style scoped lang="scss"> 287 <style lang="scss" scoped>
269 .home-menu{width: 60vw; 288 .home-menu {
270 :deep(.el-menu--horizontal.el-menu){border: none;} 289 width: 60vw;
290
291 :deep(.el-menu--horizontal.el-menu) {
292 border: none;
293 }
271 } 294 }
272 .loginBtn {color: #fff;margin-right: 15px;border: none; 295
273 background: linear-gradient(-90deg, #8623FC, #453DEA);box-shadow:0 0 10px #fff; 296 .loginBtn {
297 color: #fff;
298 margin-right: 15px;
299 border: none;
300 background: linear-gradient(-90deg, #8623FC, #453DEA);
301 box-shadow: 0 0 10px #fff;
302
274 &:active { 303 &:active {
275 color: #fff; 304 color: #fff;
276 background:linear-gradient(0deg, #8623FC, #453DEA); 305 background: linear-gradient(0deg, #8623FC, #453DEA);
277 border:none; 306 border: none;
278 } 307 }
279 308
280 &:hover { 309 &:hover {
281 box-shadow:0 0 10px var(--el-color-primary);border: none; 310 box-shadow: 0 0 10px var(--el-color-primary);
282 color:#fff; 311 border: none;
312 color: #fff;
283 } 313 }
284 314
285 } 315 }
286 316
287 317
288 .topNav { 318 .topNav {
289 box-shadow: 0px 0px 13px rgba(113,113,113); 319 box-shadow: 0px 0px 13px rgba(113, 113, 113);
290 display: flex; 320 display: flex;
291 justify-content: space-between; 321 justify-content: space-between;
292 height: 80px; 322 height: 80px;
293 align-items: center; 323 align-items: center;
294 324
295 .logo { 325 .logo {
296 height: 60px; 326 height: 60px;
297 margin-left: 40px; 327 margin-left: 40px;
298 } 328 }
299 329
300 .flex-right { 330 .flex-right {
301 display: flex; 331 display: flex;
302 align-items: center; 332 align-items: center;
303 } 333 }
304 334
305 .search { 335 .search {
306 position: relative; 336 position: relative;
307 337
308 .el-button.is-circle:hover { 338 .el-button.is-circle:hover {
309 color:var(--el-color-primary); 339 color: var(--el-color-primary);
310 border-color: var(--el-color-primary); 340 border-color: var(--el-color-primary);
311 } 341 }
342
312 .el-button.is-circle:active { 343 .el-button.is-circle:active {
313 background: var(--el-color-primary); 344 background: var(--el-color-primary);
314 color: #fff; 345 color: #fff;
315 border-color: var(--el-color-primary); 346 border-color: var(--el-color-primary);
316 } 347 }
348
317 .el-button.is-circle:focus { 349 .el-button.is-circle:focus {
318 border-color: var(--el-color-primary) 350 border-color: var(--el-color-primary)
319 } 351 }
352
320 :deep(.el-input .el-input__wrapper) { 353 :deep(.el-input .el-input__wrapper) {
321 box-shadow: none; 354 box-shadow: none;
322 border-radius: 18px; 355 border-radius: 18px;
323 background: #F4F4F4; 356 background: #F4F4F4;
324 } 357 }
325 358
326 .el-icon { 359 .el-icon {
327 position: absolute; 360 position: absolute;
328 right: 5px; 361 right: 5px;
...@@ -336,46 +369,100 @@ function getCode() { ...@@ -336,46 +369,100 @@ function getCode() {
336 } 369 }
337 370
338 371
339 .ropenbtn{padding: 10px;display: none; 372 .ropenbtn {
340 img{ width: 44px;} 373 padding: 10px;
374 display: none;
375
376 img {
377 width: 44px;
341 } 378 }
379 }
380
381 :deep(.el-input) {
382 height: 100%
383 }
384
385 :deep(.el-form-item) {
386 height: 40px;
387 }
342 388
343 :deep(.el-input){height: 100%}
344 :deep(.el-form-item){height: 40px;}
345 //.home-menu .el-menu--horizontal > .el-menu-item{margin: 0 5px; font-size: 18px;} 389 //.home-menu .el-menu--horizontal > .el-menu-item{margin: 0 5px; font-size: 18px;}
346 .home-menu .el-sub-menu{font-size: 16px;} 390 .home-menu .el-sub-menu {
347 .weiMenu.el-menu{ 391 font-size: 16px;
392 }
393
394 .weiMenu.el-menu {
348 border: none; 395 border: none;
349 :deep(.el-menu-item.is-active){color: var(--el-color-primary);} 396
397 :deep(.el-menu-item.is-active) {
398 color: var(--el-color-primary);
399 }
350 } 400 }
351 .weiHead{display: flex;justify-content: space-between;padding: 15px;align-items: center; 401
402 .weiHead {
403 display: flex;
404 justify-content: space-between;
405 padding: 15px;
406 align-items: center;
352 width: 100%; 407 width: 100%;
353 .languageBtn{font-size: 20px;line-height: 30px;white-space: nowrap;margin-right: 20px;} 408
409 .languageBtn {
410 font-size: 20px;
411 line-height: 30px;
412 white-space: nowrap;
413 margin-right: 20px;
414 }
354 } 415 }
355 .weiMenu{ 416
356 .el-menu-item{font-size: 20px} 417 .weiMenu {
357 :deep(.el-sub-menu__title){font-size: 20px} 418 .el-menu-item {
358 :deep(.el-sub-menu .el-sub-menu__icon-arrow){font-size: 20px} 419 font-size: 20px
420 }
421
422 :deep(.el-sub-menu__title) {
423 font-size: 20px
424 }
425
426 :deep(.el-sub-menu .el-sub-menu__icon-arrow) {
427 font-size: 20px
428 }
359 } 429 }
430
360 @media (max-width: 1675px) { 431 @media (max-width: 1675px) {
361 .search { 432 .search {
362 display: none; 433 display: none;
363 } 434 }
364 } 435 }
436
365 @media (max-width: 1620px) { 437 @media (max-width: 1620px) {
366 .home-menu .el-menu--horizontal > .el-menu-item{margin: 0 2px; } 438 .home-menu .el-menu--horizontal > .el-menu-item {
439 margin: 0 2px;
440 }
367 } 441 }
442
368 @media (max-width: 1450px) { 443 @media (max-width: 1450px) {
369 .home-menu .el-menu--horizontal > .el-menu-item{font-size: 15px} 444 .home-menu .el-menu--horizontal > .el-menu-item {
445 font-size: 15px
446 }
370 } 447 }
371 @media (max-width: 1340px) {
372 448
373 .home-menu .el-menu--horizontal > .el-menu-item{margin: 0; } 449 @media (max-width: 1340px) {
450
451 .home-menu .el-menu--horizontal > .el-menu-item {
452 margin: 0;
453 }
374 } 454 }
455
375 @media (max-width: 1250px) { 456 @media (max-width: 1250px) {
376 .home-menu .el-menu--horizontal > .el-menu-item{font-size: 14px} 457 .home-menu .el-menu--horizontal > .el-menu-item {
377 .topNav .logo{height: 50px;margin-left: 20px} 458 font-size: 14px
459 }
460 .topNav .logo {
461 height: 50px;
462 margin-left: 20px
463 }
378 } 464 }
465
379 @media (max-width: 1000px) { 466 @media (max-width: 1000px) {
380 .box { 467 .box {
381 width: 100% 468 width: 100%
...@@ -383,7 +470,9 @@ function getCode() { ...@@ -383,7 +470,9 @@ function getCode() {
383 .forPc { 470 .forPc {
384 display: none; 471 display: none;
385 } 472 }
386 .ropenbtn{display: block} 473 .ropenbtn {
474 display: block
475 }
387 .loginBtn { 476 .loginBtn {
388 display: none; 477 display: none;
389 } 478 }
......
1 <template> 1 <template>
2 <el-dialog close-icon="CircleClose" center 2 <el-dialog
3 v-model="show" class="pcloginpop" width="450px" :append-to-body="true" :title="title" 3 v-model="show"
4 destroy-on-close :show-close="showClose" :close-on-click-modal="false" @close="close" 4 :append-to-body="true"
5 :close-on-click-modal="false"
6 :show-close="showClose"
7 :title="title"
8 center
9 class="pcloginpop"
10 close-icon="CircleClose"
11 destroy-on-close
12 width="450px"
13 @close="close"
5 > 14 >
6 <div class="pd10"></div> 15 <div class="pd10" />
7 <el-form v-if="loginStatus==0" ref="loginRef" :model="loginForm" 16 <el-form
8 :rules="language==0?loginRules:loginRules_en" class="login-form"> 17 v-if="loginStatus==0" ref="loginRef" :model="loginForm"
18 :rules="language==0?loginRules:loginRules_en" class="login-form"
19 >
9 <el-form-item prop="username"> 20 <el-form-item prop="username">
10 21
11 <el-input 22 <el-input
12 v-model.trim="loginForm.username" 23 v-model.trim="loginForm.username"
13 size="large" 24 :placeholder="language==0?'账号(注册时使用的邮箱)':'Account (e-mail)'"
14 auto-complete="off" 25 auto-complete="off"
15 :placeholder="language==0?'账号(注册时使用的邮箱)':'Account (e-mail)'" 26 size="large"
16 > 27 />
17
18 </el-input>
19 </el-form-item> 28 </el-form-item>
20 <el-form-item prop="password"> 29 <el-form-item prop="password">
21 <el-input 30 <el-input
22 v-model.trim="loginForm.password" 31 v-model.trim="loginForm.password"
23 type="password" 32 :placeholder="language==0?'密码':'Password'"
24 size="large" show-password 33 auto-complete="off" show-password
25 auto-complete="off" 34 size="large"
26 :placeholder="language==0?'密码':'Password'" 35 type="password"
27 @keyup.enter="handleLogin" 36 @keyup.enter="handleLogin"
28 > 37 />
29 </el-input>
30 </el-form-item> 38 </el-form-item>
31 <el-form-item v-if="captchaEnabled" prop="code"> 39 <el-form-item v-if="captchaEnabled" prop="code">
32 <el-input 40 <el-input
33 v-model.trim="loginForm.code" 41 v-model.trim="loginForm.code"
34 size="large" 42 :placeholder="language==0?'验证码':'Code'"
35 auto-complete="off" 43 auto-complete="off"
36 :placeholder="language==0?'验证码':'Code'" 44 size="large"
37 @keyup.enter="handleLogin" 45 @keyup.enter="handleLogin"
38 > 46 >
39 <template #append> 47 <template #append>
40 <div class="login-code"> 48 <div class="login-code">
...@@ -42,17 +50,17 @@ ...@@ -42,17 +50,17 @@
42 </div> 50 </div>
43 </template> 51 </template>
44 </el-input> 52 </el-input>
45 53
46 </el-form-item> 54 </el-form-item>
47 55
48 <el-form-item style="width:100%;"> 56 <el-form-item style="width:100%;">
49 <el-button 57 <el-button
50 class="loginBtn" 58 :loading="loading"
51 :loading="loading" 59 class="loginBtn"
52 size="large" 60 size="large"
53 type="primary" 61 style="width:100%;"
54 style="width:100%;" 62 type="primary"
55 @click.prevent="handleLogin" 63 @click.prevent="handleLogin"
56 > 64 >
57 <span v-if="!loading">{{ language == 0 ? '登 录' : 'Login' }}</span> 65 <span v-if="!loading">{{ language == 0 ? '登 录' : 'Login' }}</span>
58 <span v-else>{{ language == 0 ? '登 录 中...' : 'Logging in' }}</span> 66 <span v-else>{{ language == 0 ? '登 录 中...' : 'Logging in' }}</span>
...@@ -61,27 +69,33 @@ ...@@ -61,27 +69,33 @@
61 <el-form-item> 69 <el-form-item>
62 <!-- <span style="color: #999;font-size: 12px;">*默认密码是会员号+证件号后四位+)*%</span>--> 70 <!-- <span style="color: #999;font-size: 12px;">*默认密码是会员号+证件号后四位+)*%</span>-->
63 <div style="display: flex;justify-content: space-between;width: 100%;"> 71 <div style="display: flex;justify-content: space-between;width: 100%;">
64 <a class="text-primary" 72 <a
65 @click="showChangePassword">{{ language == 0 ? '忘记密码' : 'Forgot password' }}?</a> 73 class="text-primary"
66 <a @click="showRegister" class="text-primary">{{ language == 0 ? '账号注册' : 'Register' }}></a> 74 @click="showChangePassword"
75 >{{ language == 0 ? '忘记密码' : 'Forgot password' }}?</a>
76 <a class="text-primary" @click="showRegister">{{ language == 0 ? '账号注册' : 'Register' }}></a>
67 </div> 77 </div>
68 </el-form-item> 78 </el-form-item>
69 <el-form-item> 79 <el-form-item>
70 <div class="agreeLine" v-if="language==0"> 80 <div v-if="language==0" class="agreeLine">
71 登录或注册即代表同意 81 登录或注册即代表同意
72 <a @click="goAgreement" target="_blank">《用户协议》</a> 82 <a target="_blank" @click="goAgreement">《用户协议》</a>
73 <a @click="goPolicy" target="_blank">《隐私政策》</a> 83 <a target="_blank" @click="goPolicy">《隐私政策》</a>
74 </div> 84 </div>
75 <div class="agreeLine" v-else> 85 <div v-else class="agreeLine">
76 Registering and logging in means agreeing to the User 86 Registering and logging in means agreeing to the User
77 <a @click="goAgreement" target="_blank">Agreement</a> and 87 <a target="_blank" @click="goAgreement">Agreement</a> and
78 <a @click="goPolicy">Privacy Policy</a> 88 <a @click="goPolicy">Privacy Policy</a>
79 </div> 89 </div>
80 </el-form-item> 90 </el-form-item>
81 </el-form> 91 </el-form>
82 92
83 <div v-if="loginStatus==1"> 93 <div v-if="loginStatus==1">
84 <a class="poLeft" @click="close()"><el-icon><ArrowLeftBold /></el-icon></a> 94 <a class="poLeft" @click="close()">
95 <el-icon>
96 <ArrowLeftBold />
97 </el-icon>
98 </a>
85 <div class="rItem r1" @click="goRegister(1)"> 99 <div class="rItem r1" @click="goRegister(1)">
86 <h3>{{ language == 0 ? '机构用户' : 'Organization' }}</h3> 100 <h3>{{ language == 0 ? '机构用户' : 'Organization' }}</h3>
87 </div> 101 </div>
...@@ -90,38 +104,42 @@ ...@@ -90,38 +104,42 @@
90 </div> 104 </div>
91 </div> 105 </div>
92 <div v-if="loginStatus==2"> 106 <div v-if="loginStatus==2">
93 <a class="poLeft" @click="close()"><el-icon><ArrowLeftBold /></el-icon></a> 107 <a class="poLeft" @click="close()">
94 <el-form ref="changePasswordRef" :model="changePasswordForm" 108 <el-icon>
95 :rules="language==0?changePasswordRules:changePasswordRules_en" class="login-form"> 109 <ArrowLeftBold />
110 </el-icon>
111 </a>
112 <el-form
113 ref="changePasswordRef" :model="changePasswordForm"
114 :rules="language==0?changePasswordRules:changePasswordRules_en" class="login-form"
115 >
96 <el-form-item prop="username"> 116 <el-form-item prop="username">
97 117
98 <el-input 118 <el-input
99 v-model.trim="changePasswordForm.username" 119 v-model.trim="changePasswordForm.username"
100 size="large" 120 :placeholder="language==0?'注册时使用的邮箱':'E-mail'"
101 auto-complete="off" @change="changePasswordFormUsername" 121 auto-complete="off" size="large"
102 :placeholder="language==0?'注册时使用的邮箱':'E-mail'" 122 @change="changePasswordFormUsername"
103 > 123 />
104
105 </el-input>
106 </el-form-item> 124 </el-form-item>
107 <el-form-item> 125 <el-form-item>
108 <el-input 126 <el-input
109 v-model.trim="changePasswordForm.code" 127 v-model.trim="changePasswordForm.code"
110 size="large" 128 :placeholder="language==0?'验证码':'Code'"
111 auto-complete="off" 129 auto-complete="off"
112 :placeholder="language==0?'验证码':'Code'" 130 size="large"
113 @keyup.enter="handleLogin" 131 @keyup.enter="handleLogin"
114 > 132 >
115 <template #append> 133 <template #append>
116 <el-button type="primary" plain style="width: 110px;" @click="sendsmsMsg"> 134 <el-button plain style="width: 110px;" type="primary" @click="sendsmsMsg">
117 <van-count-down v-if="counting" :time="60000" format="ss" @finish="counting=false"> 135 <van-count-down v-if="counting" :time="60000" format="ss" @finish="counting=false">
118 <template #default="timeData"> 136 <template #default="timeData">
119 <span class="text-primary">{{ timeData.seconds }}{{ language == 0 ? '秒' : 's' }}</span> 137 <span class="text-primary">{{ timeData.seconds }}{{ language == 0 ? '秒' : 's' }}</span>
120 </template> 138 </template>
121 </van-count-down> 139 </van-count-down>
122 <!-- <count-down v-slot="{ totalSeconds }" :time="60000" @end="counting=false">--> 140 <!-- <count-down v-slot="{ totalSeconds }" :time="60000" @end="counting=false">-->
123 <!-- {{ totalSeconds }} {{ language == 0 ? '秒' : 's' }}--> 141 <!-- {{ totalSeconds }} {{ language == 0 ? '秒' : 's' }}-->
124 <!-- </count-down>--> 142 <!-- </count-down>-->
125 <span v-else> 143 <span v-else>
126 {{ language == 0 ? '发送验证码' : 'Send' }} 144 {{ language == 0 ? '发送验证码' : 'Send' }}
127 </span> 145 </span>
...@@ -129,39 +147,40 @@ ...@@ -129,39 +147,40 @@
129 </template> 147 </template>
130 </el-input> 148 </el-input>
131 <!-- <div class="vcodeBox" :style="isShow?'height:240px':'height:0'">--> 149 <!-- <div class="vcodeBox" :style="isShow?'height:240px':'height:0'">-->
132 <Vcode :successText="successVcode" :failText="failVcode" :slider-text="sliderText" :zIndex="9999" :show="isShow" @success="codeSuccess"></Vcode> 150 <Vcode
151 :fail-text="failVcode" :show="isShow" :slider-text="sliderText" :success-text="successVcode"
152 :z-index="9999" @success="codeSuccess"
153 />
133 <!-- </div>--> 154 <!-- </div>-->
134 </el-form-item> 155 </el-form-item>
135 156
136 <el-form-item prop="password"> 157 <el-form-item prop="password">
137 <el-input 158 <el-input
138 v-model.trim="changePasswordForm.password" 159 v-model.trim="changePasswordForm.password"
139 type="password" 160 :placeholder="language==0?'新密码':'New password'"
140 size="large" show-password 161 auto-complete="off" show-password
141 auto-complete="off" 162 size="large"
142 :placeholder="language==0?'新密码':'New password'" 163 type="password"
143 @keyup.enter="handleLogin" 164 @keyup.enter="handleLogin"
144 > 165 />
145 </el-input>
146 </el-form-item> 166 </el-form-item>
147 <el-form-item prop="confirmPassword"> 167 <el-form-item prop="confirmPassword">
148 <el-input 168 <el-input
149 v-model.trim="changePasswordForm.confirmPassword" 169 v-model.trim="changePasswordForm.confirmPassword"
150 type="password" 170 :placeholder="language==0?'确认密码':'Confirm password'"
151 size="large" show-password 171 auto-complete="off" show-password
152 auto-complete="off" 172 size="large"
153 :placeholder="language==0?'确认密码':'Confirm password'" 173 type="password"
154 > 174 />
155 </el-input>
156 </el-form-item> 175 </el-form-item>
157 <el-form-item style="width:100%;"> 176 <el-form-item style="width:100%;">
158 <el-button 177 <el-button
159 class="loginBtn" 178 :loading="loading"
160 :loading="loading" 179 class="loginBtn"
161 size="large" 180 size="large"
162 type="primary" 181 style="width:100%;"
163 style="width:100%;" 182 type="primary"
164 @click.prevent="handleChangePassword" 183 @click.prevent="handleChangePassword"
165 > 184 >
166 <span v-if="language==0">确定</span> 185 <span v-if="language==0">确定</span>
167 <span v-else>Submit</span> 186 <span v-else>Submit</span>
...@@ -173,25 +192,25 @@ ...@@ -173,25 +192,25 @@
173 </template> 192 </template>
174 193
175 <script setup> 194 <script setup>
176 import {getCurrentInstance, ref, watch} from 'vue' 195 import { getCurrentInstance, ref, watch } from 'vue'
177 import Vcode from "vue3-puzzle-vcode" 196 import Vcode from 'vue3-puzzle-vcode'
178 import CountDown from '@chenfengyuan/vue-countdown' 197 import CountDown from '@chenfengyuan/vue-countdown'
179 import {forgetPassword, getCodeImg} from '@/api/login' 198 import { forgetPassword, getCodeImg } from '@/api/login'
180 import * as match from '@/apiPc/match' 199 import * as match from '@/apiPc/match'
181 import Cookies from 'js-cookie' 200 import Cookies from 'js-cookie'
182 import useUserStore from '@/store/modules/user' 201 import useUserStore from '@/store/modules/user'
183 202
184 const language = useStorage('language', 0) 203 const language = useStorage('language', 0)
185 import {useRouter} from 'vue-router' 204 import { useRouter } from 'vue-router'
186 import {ElMessage, ElMessageBox} from 'element-plus' 205 import { ElMessage, ElMessageBox } from 'element-plus'
187 import cache from "@/plugins/cache"; 206 import cache from '@/plugins/cache'
188 import {useStorage} from "@vueuse/core/index"; 207 import { useStorage } from '@vueuse/core/index'
189 import {getCaptchaSms, getCaptchaSms2} from "@/apiPc/match"; 208 import { getCaptchaSms, getCaptchaSms2 } from '@/apiPc/match'
190 209
191 const emit = defineEmits(['submitForm']) 210 const emit = defineEmits(['submitForm'])
192 const userStore = useUserStore() 211 const userStore = useUserStore()
193 const router = useRouter() 212 const router = useRouter()
194 const {proxy} = getCurrentInstance() 213 const { proxy } = getCurrentInstance()
195 const loginForm = ref({ 214 const loginForm = ref({
196 username: '', 215 username: '',
197 password: '', 216 password: '',
...@@ -201,26 +220,26 @@ const loginForm = ref({ ...@@ -201,26 +220,26 @@ const loginForm = ref({
201 }) 220 })
202 const countDown = ref(null) 221 const countDown = ref(null)
203 const loginRules = { 222 const loginRules = {
204 username: [{required: true, trigger: 'change', message: '请输入您的会员号'}], 223 username: [{ required: true, trigger: 'change', message: '请输入您的会员号' }],
205 password: [{required: true, trigger: 'change', message: '请输入您账号密码'}], 224 password: [{ required: true, trigger: 'change', message: '请输入您账号密码' }],
206 code: [{required: true, trigger: 'change', message: '请输入验证码'}] 225 code: [{ required: true, trigger: 'change', message: '请输入验证码' }]
207 } 226 }
208 const changePasswordRules = { 227 const changePasswordRules = {
209 username: [{required: true, trigger: 'change', message: '请输入您的账号'}], 228 username: [{ required: true, trigger: 'change', message: '请输入您的账号' }],
210 password: [{required: true, trigger: 'change', message: '请输入您的密码'}], 229 password: [{ required: true, trigger: 'change', message: '请输入您的密码' }],
211 confirmPassword: [{required: true, trigger: 'change', message: '请再次输入您的密码'}], 230 confirmPassword: [{ required: true, trigger: 'change', message: '请再次输入您的密码' }],
212 code: [{required: true, trigger: 'change', message: '请输入验证码'}] 231 code: [{ required: true, trigger: 'change', message: '请输入验证码' }]
213 } 232 }
214 const loginRules_en = { 233 const loginRules_en = {
215 username: [{required: true, trigger: 'change', message: 'Please enter '}], 234 username: [{ required: true, trigger: 'change', message: 'Please enter ' }],
216 password: [{required: true, trigger: 'change', message: 'Please enter '}], 235 password: [{ required: true, trigger: 'change', message: 'Please enter ' }],
217 code: [{required: true, trigger: 'change', message: 'Please enter '}] 236 code: [{ required: true, trigger: 'change', message: 'Please enter ' }]
218 } 237 }
219 const changePasswordRules_en = { 238 const changePasswordRules_en = {
220 username: [{required: true, trigger: 'change', message: 'Please enter '}], 239 username: [{ required: true, trigger: 'change', message: 'Please enter ' }],
221 password: [{required: true, trigger: 'change', message: 'Please enter '}], 240 password: [{ required: true, trigger: 'change', message: 'Please enter ' }],
222 confirmPassword: [{required: true, trigger: 'change', message: 'Please enter '}], 241 confirmPassword: [{ required: true, trigger: 'change', message: 'Please enter ' }],
223 code: [{required: true, trigger: 'change', message: 'Please enter '}] 242 code: [{ required: true, trigger: 'change', message: 'Please enter ' }]
224 } 243 }
225 244
226 const show = ref(false) 245 const show = ref(false)
...@@ -232,7 +251,7 @@ const loading = ref(false) ...@@ -232,7 +251,7 @@ const loading = ref(false)
232 251
233 // 验证码开关 252 // 验证码开关
234 const captchaEnabled = ref(true) 253 const captchaEnabled = ref(true)
235 //忘记密码 254 // 忘记密码
236 const isShow = ref(false) 255 const isShow = ref(false)
237 const isCodeTrue = ref(false) 256 const isCodeTrue = ref(false)
238 const counting = ref(false) 257 const counting = ref(false)
...@@ -244,7 +263,9 @@ const changePasswordForm = ref({ ...@@ -244,7 +263,9 @@ const changePasswordForm = ref({
244 const failVcode = ref('验证失败,请重试') 263 const failVcode = ref('验证失败,请重试')
245 const successVcode = ref('验证通过!') 264 const successVcode = ref('验证通过!')
246 const sliderText = ref('拖动滑块完成拼图') 265 const sliderText = ref('拖动滑块完成拼图')
247 const open = (params) => { 266 const typeStr = ref()
267
268 const open = (params, type) => {
248 console.log(params) 269 console.log(params)
249 show.value = true 270 show.value = true
250 showClose.value = !(params?.notShowClose || false) 271 showClose.value = !(params?.notShowClose || false)
...@@ -259,9 +280,11 @@ const open = (params) => { ...@@ -259,9 +280,11 @@ const open = (params) => {
259 sliderText.value = 'Drag the slider to complete the puzzle' 280 sliderText.value = 'Drag the slider to complete the puzzle'
260 title.value = 'LOGIN' 281 title.value = 'LOGIN'
261 } 282 }
283 if (type) typeStr.value = type
262 getCode() 284 getCode()
263 getCookie() 285 getCookie()
264 } 286 }
287
265 defineExpose({ 288 defineExpose({
266 open 289 open
267 }) 290 })
...@@ -272,8 +295,8 @@ function handleLogin() { ...@@ -272,8 +295,8 @@ function handleLogin() {
272 loading.value = true 295 loading.value = true
273 // 勾选了需要记住密码设置在 cookie 中设置记住用户名和密码 296 // 勾选了需要记住密码设置在 cookie 中设置记住用户名和密码
274 if (loginForm.value.rememberMe) { 297 if (loginForm.value.rememberMe) {
275 Cookies.set('telno', loginForm.value.telno, {expires: 30}) 298 Cookies.set('telno', loginForm.value.telno, { expires: 30 })
276 Cookies.set('rememberMe', loginForm.value.rememberMe, {expires: 30}) 299 Cookies.set('rememberMe', loginForm.value.rememberMe, { expires: 30 })
277 } else { 300 } else {
278 // 否则移除 301 // 否则移除
279 Cookies.remove('telno') 302 Cookies.remove('telno')
...@@ -297,21 +320,31 @@ function handleLogin() { ...@@ -297,21 +320,31 @@ function handleLogin() {
297 320
298 function close() { 321 function close() {
299 loginStatus.value = 0 322 loginStatus.value = 0
300 title.value = language.value == 0?'用户登录':'LOGIN' 323 title.value = language.value == 0 ? '用户登录' : 'LOGIN'
301 } 324 }
302 325
303 function showChangePassword() { 326 function showChangePassword() {
304 loginStatus.value = 2 327 loginStatus.value = 2
305 title.value = language.value == 0?'忘记密码/密码重置':'FORGET PASSWORD' 328 title.value = language.value == 0 ? '忘记密码/密码重置' : 'FORGET PASSWORD'
306
307 } 329 }
308 330
309 function showRegister() { 331 function showRegister() {
310 loginStatus.value = 1 332 loginStatus.value = 1
311 if (language.value == 0) { 333 // if (language.value == 0) {
312 title.value = '账号注册' 334 // title.value = '账号注册'
335 // } else {
336 // title.value = 'REGISTER'
337 // }
338
339
340 if (typeStr.value && typeStr.value == 2) {
341 if (language.value == 0) {
342 title.value = '账号注册'
343 } else {
344 title.value = 'REGISTER'
345 }
313 } else { 346 } else {
314 title.value = 'REGISTER' 347 goRegister(typeStr.value)
315 } 348 }
316 } 349 }
317 350
...@@ -359,7 +392,7 @@ function sendsmsMsg() { ...@@ -359,7 +392,7 @@ function sendsmsMsg() {
359 return 392 return
360 } 393 }
361 if (counting.value) { 394 if (counting.value) {
362 395
363 } else { 396 } else {
364 isShow.value = true 397 isShow.value = true
365 } 398 }
...@@ -369,7 +402,7 @@ function codeSuccess() { ...@@ -369,7 +402,7 @@ function codeSuccess() {
369 // 忘记密码验证成功 402 // 忘记密码验证成功
370 isShow.value = false 403 isShow.value = false
371 isCodeTrue.value = true 404 isCodeTrue.value = true
372 getCaptchaSms2({account: changePasswordForm.value.username}).then(res => { 405 getCaptchaSms2({ account: changePasswordForm.value.username }).then(res => {
373 counting.value = true 406 counting.value = true
374 }) 407 })
375 } 408 }
...@@ -384,26 +417,25 @@ function handleChangePassword() { ...@@ -384,26 +417,25 @@ function handleChangePassword() {
384 if (isCodeTrue.value) { 417 if (isCodeTrue.value) {
385 delete changePasswordForm.value.confirmPassword 418 delete changePasswordForm.value.confirmPassword
386 forgetPassword(changePasswordForm.value).then(res => { 419 forgetPassword(changePasswordForm.value).then(res => {
387 ElMessage.success(language.value == 0 ? '操作成功,请登录' :'Operation successful, please log in') 420 ElMessage.success(language.value == 0 ? '操作成功,请登录' : 'Operation successful, please log in')
388 close() 421 close()
389 }) 422 })
390 } else { 423 } else {
391 ElMessage.warning(language.value == 0 ? '请发送验证码' :'Please send the verification code') 424 ElMessage.warning(language.value == 0 ? '请发送验证码' : 'Please send the verification code')
392 } 425 }
393 } 426 }
394 }) 427 })
395
396 } 428 }
397 429
398 const goAgreement = () => { 430 const goAgreement = () => {
399 const routeLocation = router.resolve({ 431 const routeLocation = router.resolve({
400 name: 'userAgreement', 432 name: 'userAgreement'
401 }) 433 })
402 window.open(routeLocation.href, '_blank') 434 window.open(routeLocation.href, '_blank')
403 } 435 }
404 const goPolicy = () => { 436 const goPolicy = () => {
405 const routeLocation = router.resolve({ 437 const routeLocation = router.resolve({
406 name: 'policy', 438 name: 'policy'
407 }) 439 })
408 window.open(routeLocation.href, '_blank') 440 window.open(routeLocation.href, '_blank')
409 } 441 }
...@@ -440,7 +472,7 @@ const goPolicy = () => { ...@@ -440,7 +472,7 @@ const goPolicy = () => {
440 background: linear-gradient(-90deg, #8623FC, #453DEA); 472 background: linear-gradient(-90deg, #8623FC, #453DEA);
441 border-radius: 20px; 473 border-radius: 20px;
442 font-size: 18px; 474 font-size: 18px;
443 475
444 &:hover { 476 &:hover {
445 //background: linear-gradient(90deg, #8623FC, #453DEA); 477 //background: linear-gradient(90deg, #8623FC, #453DEA);
446 box-shadow: 0 0 10px #453DEA; 478 box-shadow: 0 0 10px #453DEA;
...@@ -466,20 +498,20 @@ const goPolicy = () => { ...@@ -466,20 +498,20 @@ const goPolicy = () => {
466 position: relative; 498 position: relative;
467 background: #ffffff; 499 background: #ffffff;
468 padding: 0 25px 5px; 500 padding: 0 25px 5px;
469 501
470 .el-input { 502 .el-input {
471 height: 40px; 503 height: 40px;
472 504
473 :deep(.el-input__wrapper) { 505 :deep(.el-input__wrapper) {
474 box-shadow: none; 506 box-shadow: none;
475 border-bottom: 1px solid #E5E5E5; 507 border-bottom: 1px solid #E5E5E5;
476 } 508 }
477 509
478 input { 510 input {
479 height: 40px; 511 height: 40px;
480 } 512 }
481 } 513 }
482 514
483 .input-icon { 515 .input-icon {
484 height: 39px; 516 height: 39px;
485 width: 14px; 517 width: 14px;
...@@ -495,7 +527,7 @@ const goPolicy = () => { ...@@ -495,7 +527,7 @@ const goPolicy = () => {
495 527
496 .login-code { 528 .login-code {
497 height: 40px; 529 height: 40px;
498 530
499 img { 531 img {
500 cursor: pointer; 532 cursor: pointer;
501 vertical-align: middle; 533 vertical-align: middle;
...@@ -525,7 +557,7 @@ const goPolicy = () => { ...@@ -525,7 +557,7 @@ const goPolicy = () => {
525 padding: 0; 557 padding: 0;
526 color: #fff; 558 color: #fff;
527 box-shadow: none; 559 box-shadow: none;
528 560
529 div { 561 div {
530 color: #fff; 562 color: #fff;
531 } 563 }
...@@ -535,7 +567,7 @@ const goPolicy = () => { ...@@ -535,7 +567,7 @@ const goPolicy = () => {
535 a { 567 a {
536 font-weight: 600; 568 font-weight: 600;
537 color: #000; 569 color: #000;
538 570
539 &:hover { 571 &:hover {
540 text-decoration: underline; 572 text-decoration: underline;
541 } 573 }
...@@ -548,28 +580,28 @@ const goPolicy = () => { ...@@ -548,28 +580,28 @@ const goPolicy = () => {
548 width: 350px; 580 width: 350px;
549 padding: 1px; 581 padding: 1px;
550 margin: 20px auto; 582 margin: 20px auto;
551 583
552 h3 { 584 h3 {
553 font-size: 30px; 585 font-size: 30px;
554 margin: 50px; 586 margin: 50px;
555 } 587 }
556 588
557 &.r1 { 589 &.r1 {
558 background: url("@/assets/dance/r1b.png") no-repeat left; 590 background: url("@/assets/dance/r1b.png") no-repeat left;
559 591
560 &:hover { 592 &:hover {
561 background: url("@/assets/dance/r1.png") no-repeat left; 593 background: url("@/assets/dance/r1.png") no-repeat left;
562 } 594 }
563 } 595 }
564 596
565 &.r2 { 597 &.r2 {
566 background: url("@/assets/dance/r2b.png") no-repeat left; 598 background: url("@/assets/dance/r2b.png") no-repeat left;
567 599
568 &:hover { 600 &:hover {
569 background: url("@/assets/dance/r2.png") no-repeat left; 601 background: url("@/assets/dance/r2.png") no-repeat left;
570 } 602 }
571 } 603 }
572 604
573 &:hover { 605 &:hover {
574 color: #fff; 606 color: #fff;
575 } 607 }
...@@ -585,5 +617,11 @@ const goPolicy = () => { ...@@ -585,5 +617,11 @@ const goPolicy = () => {
585 border: var(--el-color-primary) solid 1px; 617 border: var(--el-color-primary) solid 1px;
586 border-radius: 0; 618 border-radius: 0;
587 } 619 }
588 .poLeft{position: absolute;top:24px;font-size: 20px;left:20px} 620
621 .poLeft {
622 position: absolute;
623 top: 24px;
624 font-size: 20px;
625 left: 20px
626 }
589 </style> 627 </style>
......
...@@ -394,6 +394,7 @@ ...@@ -394,6 +394,7 @@
394 <pickup ref="pickupRef" /> 394 <pickup ref="pickupRef" />
395 395
396 <checkAllSportsman ref="checkAllSportsmanRef" /> 396 <checkAllSportsman ref="checkAllSportsmanRef" />
397 <LoginDialog ref="pcloginDialog" @submitForm="reFlash" />
397 </div> 398 </div>
398 </template> 399 </template>
399 400
...@@ -405,12 +406,12 @@ import SubstationList from '@/viewsPc/match/components/substation-list' ...@@ -405,12 +406,12 @@ import SubstationList from '@/viewsPc/match/components/substation-list'
405 import MatchInfoProjectList from '@/viewsPc/match/components/matchInfo-projectList' 406 import MatchInfoProjectList from '@/viewsPc/match/components/matchInfo-projectList'
406 import QuickRow from '@/viewsPc/match/components/quick-row' 407 import QuickRow from '@/viewsPc/match/components/quick-row'
407 import Pickup from '@/viewsPc/components/pickup' 408 import Pickup from '@/viewsPc/components/pickup'
408 import { getCurrentInstance, ref } from 'vue' 409 import { getCurrentInstance, ref, watch } from 'vue'
409 import { reactive, onMounted } from '@vue/runtime-core' 410 import { reactive, onMounted } from '@vue/runtime-core'
410 import { useRoute, useRouter } from 'vue-router' 411 import { useRoute, useRouter } from 'vue-router'
411 import AffixInvitation from '@/viewsPc/match/components/affix-invitation' 412 import AffixInvitation from '@/viewsPc/match/components/affix-invitation'
412 import checkAllSportsman from '@/viewsPc/match/components/checkAllSportsman' 413 import checkAllSportsman from '@/viewsPc/match/components/checkAllSportsman'
413 414 import LoginDialog from '@/viewsPc/login'
414 415
415 const language = useStorage('language', 0) 416 const language = useStorage('language', 0)
416 const route = useRoute() 417 const route = useRoute()
...@@ -455,6 +456,7 @@ const data = reactive({ ...@@ -455,6 +456,7 @@ const data = reactive({
455 startSign: '', 456 startSign: '',
456 isNational: false 457 isNational: false
457 }) 458 })
459
458 const { 460 const {
459 error, 461 error,
460 loading, 462 loading,
...@@ -466,6 +468,7 @@ const { ...@@ -466,6 +468,7 @@ const {
466 signDoneGroupList, signDoneGroupListToTal, queryGroupList, 468 signDoneGroupList, signDoneGroupListToTal, queryGroupList,
467 time, startSign, isNational 469 time, startSign, isNational
468 } = toRefs(data) 470 } = toRefs(data)
471
469 const signTypePop = ref(false) 472 const signTypePop = ref(false)
470 const upgradePop = ref(false) 473 const upgradePop = ref(false)
471 474
...@@ -539,22 +542,22 @@ function changeMenu(menu, l) { ...@@ -539,22 +542,22 @@ function changeMenu(menu, l) {
539 542
540 function choseSignType() { 543 function choseSignType() {
541 console.log(matchData.value.signType, matchData.value.languageSource, user) 544 console.log(matchData.value.signType, matchData.value.languageSource, user)
542
543 if (!user) { 545 if (!user) {
546 handelGoLogin({}, matchData.value.signType)
544 // 判断signType,如1个人注册-报名; 547 // 判断signType,如1个人注册-报名;
545 switch (matchData.value.signType) { 548 // switch (matchData.value.signType) {
546 case '0': 549 // case '0':
547 // 注册 550 // // 注册
548 goGeren() 551 // goGeren()
549 break 552 // break
550 case '1': 553 // case '1':
551 // 登录 554 // // 登录
552 goLogin() 555 // goLogin()
553 break 556 // break
554 case '2': 557 // case '2':
555 popChangeType() 558 // popChangeType()
556 break 559 // break
557 } 560 // }
558 } else { 561 } else {
559 // 获取已报名信息 562 // 获取已报名信息
560 checkIsSign().then(() => { 563 checkIsSign().then(() => {
...@@ -952,16 +955,21 @@ async function getCheckOcr(obj) { ...@@ -952,16 +955,21 @@ async function getCheckOcr(obj) {
952 } 955 }
953 } 956 }
954 957
958 watch(() => useUserStore().reLogin, (val) => {
959 if (val.show) {
960 console.log(val)
961 handelGoLogin(val.query)
962 }
963 })
955 964
956 // 登录 965 // 登录
957 const handelGoLogin = (query) => { 966 const handelGoLogin = (query, type) => {
958 const param = {} 967 proxy.$refs['pcloginDialog'].open(query, type)
959 // if (_.isBoolean(flag)) { 968 }
960 // param = { 969
961 // notShowClose: flag 970 const reFlash = () => {
962 // } 971 // 刷新
963 // } 972 location.reload()
964 proxy.$refs['pcloginDialog'].open(query)
965 } 973 }
966 </script> 974 </script>
967 975
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!