c6964735 by 杨炀

no message

1 parent 763d3b45
...@@ -1341,8 +1341,10 @@ img{display: block;} ...@@ -1341,8 +1341,10 @@ img{display: block;}
1341 font-size: 16px; 1341 font-size: 16px;
1342 color: var(--el-color-primary); 1342 color: var(--el-color-primary);
1343 } 1343 }
1344 .mb30{margin-bottom: 30px}
1344 .blackBtn{background: #000;} 1345 .blackBtn{background: #000;}
1345 1346
1347 .btn-black{background: #000;border-radius: 23px;padding: 6px 40px;color: #FFFFFF;font-size: 18px;}
1346 .btn-lineG{background: linear-gradient(90deg, #1B69F8, #0540EC); 1348 .btn-lineG{background: linear-gradient(90deg, #1B69F8, #0540EC);
1347 border-radius: 23px;padding: 6px 40px; 1349 border-radius: 23px;padding: 6px 40px;
1348 color: #FFFFFF; 1350 color: #FFFFFF;
......
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
64 <!-- <a target="_blank" href="https://wdsfwuxicenter.com/stage-api/fs/file/操作指引.zip">--> 64 <!-- <a target="_blank" href="https://wdsfwuxicenter.com/stage-api/fs/file/操作指引.zip">-->
65 <a> 65 <a>
66 <img class="kf" src="@/assets/logo/btn02.png"/> 66 <img class="kf" src="@/assets/logo/btn02.png"/>
67 <div class="text-center mt10">指南下载</div> 67 <div class="text-center mt10">参赛指南</div>
68 </a> 68 </a>
69 </div> 69 </div>
70 </div> 70 </div>
......
...@@ -267,6 +267,19 @@ export const constantRoutes = [ ...@@ -267,6 +267,19 @@ export const constantRoutes = [
267 ] 267 ]
268 }, 268 },
269 { 269 {
270 path: 'serverSearch',
271 component: Empty,
272 redirect: '/serverSearch',
273 children: [
274 {
275 path: '',
276 component: () => import('@/viewsPc/booking/serverSearch'),
277 name: 'serverSearch',
278 meta: {title: '预约搜索'}
279 }
280 ]
281 },
282 {
270 path: 'competition', 283 path: 'competition',
271 component: Empty, 284 component: Empty,
272 redirect: '/competition/index', 285 redirect: '/competition/index',
......
1 <template>
2 <div>
3 <div class="box">
4 <el-card class="mt20 mb20" :body-style="{'padding':'0'}">
5 <div class="lineHead">
6 <h3>{{ language==0?'服务查询': 'Service Search' }}</h3>
7 </div>
8 <div class="pd20">
9 <div class="topsearch">
10 <el-input v-if="activeTab==0" placeholder="请输入护照号搜索"/>
11 <el-input v-else placeholder="请输入姓名搜索"/>
12 <el-button class="btn-lineG" type="primary" @click="search">
13 <el-icon class="mr20">
14 <Search/>
15 </el-icon>
16 {{ language==0?'搜索': 'Search' }}
17 </el-button>
18 </div>
19
20 <div class="stab">
21 <div :class="activeTab==0?'active':''" @click="activeTab=0">
22 <img v-show="activeTab!=0" src="@/assets/img/tag01@2x.png"/>
23 <img v-show="activeTab==0" src="@/assets/img/tag01_dwn@2x.png"/>
24 {{language==0?'签证服务':''}}
25 </div>
26 <div :class="activeTab==1?'active':''" @click="activeTab=1">
27 <img v-show="activeTab!=1" src="@/assets/img/tag02@2x.png"/>
28 <img v-show="activeTab==1" src="@/assets/img/tag02_dwn@2x.png"/>
29 {{language==0?'酒店预定':''}}
30 </div>
31 <div :class="activeTab==2?'active':''" @click="activeTab=2">
32 <img v-show="activeTab!=2" src="@/assets/img/tag03@2x.png"/>
33 <img v-show="activeTab==2" src="@/assets/img/tag03_dwn@2x.png"/>
34 {{language==0?'接送服务':''}}
35 </div>
36 </div>
37 <div>
38 <div v-for="item in list"></div>
39
40 </div>
41
42 <el-empty v-if="list.length==0"/>
43 </div>
44 </el-card>
45 </div>
46 </div>
47 </template>
48
49 <script setup>
50 import {ref, computed, onMounted} from 'vue'
51 import {queryTicket} from "@/apiPc/common";
52 import {ElMessage} from "element-plus";
53 import {useStorage} from "@vueuse/core/index";
54
55 const language = useStorage('language', 0)
56 const activeTab = ref(0)
57 const form = ref({})
58 const list = ref([])
59 const query = ref({
60 status: 1
61 })
62 const loading = ref(false)
63
64 function search() {
65 if (!query.value.idCard) {
66 ElMessage.warning('请输入证件号')
67 return
68 }
69 loading.value = true
70 queryTicket(query.value).then(res => {
71 list.value = res.data
72 for (let bill of list.value) {
73 // p.idCard = p.idCard.substring(0,4)+'****'+p.idCard.substring(8,p.idCard.length)
74 const pattern = new RegExp(query.value.idCard, 'gi')
75 bill.idCard = bill.idCard.replace(pattern, `<span class="highlight">$&</span>`)
76
77 }
78 loading.value = false
79 })
80 }
81 </script>
82
83 <style scoped lang="scss">
84 .highlight {
85 background: yellow;
86 }
87 .topsearch{display: flex;gap:10px;
88 .el-input {--el-input-bg-color: #F5F7F9;height: 50px;
89 --el-input-border-radius: 10px;}
90 .btn-lineG{border-radius: 10px;height: 50px;width: 130px;font-size: 20px;}
91 }
92 .stab{display: flex;gap: 20px;margin: 20px 0 0 ;
93 div{font-weight: 400;padding: 10px 0;display: flex;align-items: center;
94 font-size: 18px;cursor: pointer;
95 color: #4C5359;
96 img{height: 30px;}
97 }
98 .active{color: #030303;border-bottom: 2px solid #030303;}
99 }
100 </style>
1 <template> 1 <template>
2 <div class="itemBox" v-if="language === 0"> 2 <div class="itemBox" v-if="language === 0">
3 <el-row :gutter="0" justify="space-around"> 3 <el-row :gutter="20">
4 <el-col :sm="12" :lg="4" :xs="12"> 4 <el-col :sm="12" :lg="6" :xs="12">
5 <div class="item" @click="building"><img src="@/assets/dance/btn01.png">签证服务</div> 5 <div class="item" @click="popRemark(1)"><img src="@/assets/dance/btn01.png">签证服务</div>
6 </el-col> 6 </el-col>
7 <el-col :sm="12" :lg="4" :xs="12"> 7 <el-col :sm="12" :lg="6" :xs="12">
8 <div class="item" @click="popRemark(1)"><img src="@/assets/dance/btn02.png">酒店预订</div> 8 <div class="item" @click="popRemark(1)"><img src="@/assets/dance/btn02.png">酒店预订</div>
9 </el-col> 9 </el-col>
10 <el-col :sm="12" :lg="4" :xs="12"> 10 <el-col :sm="12" :lg="6" :xs="12">
11 <div class="item" @click="popRemark(2)"><img src="@/assets/dance/btn03.png">接送服务</div> 11 <div class="item" @click="popRemark(2)"><img src="@/assets/dance/btn03.png">接送服务</div>
12 </el-col> 12 </el-col>
13 <el-col :sm="12" :lg="4" :xs="12"> 13 <el-col :sm="12" :lg="6" :xs="12">
14 <div class="item" @click="goAbout"><img src="@/assets/dance/btn04.png">场馆介绍</div> 14 <div class="item" @click="goAbout"><img src="@/assets/dance/btn04.png">场馆介绍</div>
15 </el-col> 15 </el-col>
16 <el-col :sm="12" :lg="4" :xs="12"> 16 <!-- <el-col :sm="12" :lg="4" :xs="12">-->
17 <div class="item" @click="liveClick"><img src="@/assets/dance/btn05.png">赛事直播</div> 17 <!-- <div class="item" @click="liveClick"><img src="@/assets/dance/btn05.png">赛事直播</div>-->
18 </el-col> 18 <!-- </el-col>-->
19 </el-row> 19 </el-row>
20 </div> 20 </div>
21 <div class="itemBox_en" v-else> 21 <div class="itemBox_en" v-else>
...@@ -32,13 +32,13 @@ ...@@ -32,13 +32,13 @@
32 <el-col :sm="12" :lg="4" :xs="12"> 32 <el-col :sm="12" :lg="4" :xs="12">
33 <div class="item" @click="goAbout"><img src="@/assets/dance/btn04.png">Venue Introduction</div> 33 <div class="item" @click="goAbout"><img src="@/assets/dance/btn04.png">Venue Introduction</div>
34 </el-col> 34 </el-col>
35 <el-col :sm="12" :lg="4" :xs="12"> 35 <!-- <el-col :sm="12" :lg="4" :xs="12">-->
36 <div class="item" @click="liveClick"><img src="@/assets/dance/btn05.png">live streaming</div> 36 <!-- <div class="item" @click="liveClick"><img src="@/assets/dance/btn05.png">live streaming</div>-->
37 </el-col> 37 <!-- </el-col>-->
38 </el-row> 38 </el-row>
39 </div> 39 </div>
40 <order-remark ref="orderRemarkRef" @submit="goBooking"/> 40 <order-remark ref="orderRemarkRef" @submit="goBooking"/>
41 41 <affix-invitation ref="dialogInvitationRef"/>
42 </template> 42 </template>
43 43
44 <script setup> 44 <script setup>
...@@ -46,6 +46,7 @@ import {useRouter} from "vue-router"; ...@@ -46,6 +46,7 @@ import {useRouter} from "vue-router";
46 46
47 const router = useRouter() 47 const router = useRouter()
48 import OrderRemark from '@/viewsPc/components/orderRemark' 48 import OrderRemark from '@/viewsPc/components/orderRemark'
49 import AffixInvitation from '@/viewsPc/match/components/affix-invitation'
49 50
50 const {proxy} = getCurrentInstance() 51 const {proxy} = getCurrentInstance()
51 import {useStorage} from "@vueuse/core/index"; 52 import {useStorage} from "@vueuse/core/index";
...@@ -112,12 +113,24 @@ function building() { ...@@ -112,12 +113,24 @@ function building() {
112 ElMessage.warning(language.value == 0 ? '感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。' : 'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.') 113 ElMessage.warning(language.value == 0 ? '感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。' : 'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.')
113 return 114 return
114 } 115 }
115 116 function applyInvitation() {
117 var obj = {
118 title: language.value == 0 ? '邀请函申请' : 'Visa Invitation Letter ',
119 cptId: matchId.value,
120 }
121 proxy.$refs['dialogInvitationRef'].open(obj)
122 }
116 function popRemark(type) { 123 function popRemark(type) {
117 if (!form.value) { 124 if (!form.value) {
118 building() 125 building()
119 return 126 return
120 } 127 }
128 if(type == '1'){
129 // 签证
130 applyInvitation()
131 return
132 }
133
121 if ((form.value.isJdView == 0 && type == '1') 134 if ((form.value.isJdView == 0 && type == '1')
122 || (form.value.isCarView == 0 && type == '2') 135 || (form.value.isCarView == 0 && type == '2')
123 || (form.value.isFoodView == 0 && type == '3') 136 || (form.value.isFoodView == 0 && type == '3')
...@@ -173,8 +186,8 @@ function goBooking(n) { ...@@ -173,8 +186,8 @@ function goBooking(n) {
173 186
174 <style scoped lang="scss"> 187 <style scoped lang="scss">
175 .itemBox,.itemBox_en { 188 .itemBox,.itemBox_en {
176 padding: 20px 0;background: #fff;box-shadow: 0 0 46px 0 rgba(1,16,64,0.08); 189 padding: 20px;background: #fff;box-shadow: 0 0 46px 0 rgba(1,16,64,0.08);
177 border-radius: 20px;margin-bottom: 22px; 190 border-radius: 20px;
178 } 191 }
179 192
180 193
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
21 </div> 21 </div>
22 </el-col> 22 </el-col>
23 <el-col :sm="24" :lg="14"> 23 <el-col :sm="24" :lg="14">
24 <el-button round class="searchfw"> 24 <el-button round class="searchfw" @click="goSearch">
25 <el-icon class="mr20"> 25 <el-icon class="mr20">
26 <Search/> 26 <Search/>
27 </el-icon> 27 </el-icon>
...@@ -38,6 +38,7 @@ import useUserStore from '@/store/modules/user' ...@@ -38,6 +38,7 @@ import useUserStore from '@/store/modules/user'
38 import WeatherIcon from '@/viewsPc/components/weatherIcon' 38 import WeatherIcon from '@/viewsPc/components/weatherIcon'
39 import {getWeather} from "@/apiPc/webSite" 39 import {getWeather} from "@/apiPc/webSite"
40 import dayjs from "dayjs" 40 import dayjs from "dayjs"
41 import router from "@/routerPc/en";
41 const language = useUserStore().language 42 const language = useUserStore().language
42 const weatherObj = ref({ 43 const weatherObj = ref({
43 forecast:[] 44 forecast:[]
...@@ -55,6 +56,10 @@ function init(){ ...@@ -55,6 +56,10 @@ function init(){
55 useUserStore().setWeather(weatherObj.value) 56 useUserStore().setWeather(weatherObj.value)
56 }) 57 })
57 } 58 }
59
60 function goSearch() {
61 router.push({path: '/serverSearch'})
62 }
58 </script> 63 </script>
59 64
60 <style scoped lang="scss"> 65 <style scoped lang="scss">
......
...@@ -90,12 +90,14 @@ ...@@ -90,12 +90,14 @@
90 </el-carousel> 90 </el-carousel>
91 </div> 91 </div>
92 92
93 <div class="mb30">
94 <home-weather-bar/>
95 </div>
96
93 <div class="box"> 97 <div class="box">
94 <HomeQuick :match-id="matchData?.id" :cpt-name="matchData?.name"/> 98 <HomeQuick :match-id="matchData?.id" :cpt-name="matchData?.name"/>
95 </div> 99 </div>
96 100
97 <home-weather-bar/>
98
99 <div id="part0" class="box part"> 101 <div id="part0" class="box part">
100 <el-row :gutter="20"> 102 <el-row :gutter="20">
101 <el-col :sm="24" :lg="12"> 103 <el-col :sm="24" :lg="12">
...@@ -248,7 +250,7 @@ ...@@ -248,7 +250,7 @@
248 <div v-html="aboutUsContent"></div> 250 <div v-html="aboutUsContent"></div>
249 </div> 251 </div>
250 <div class="mt30 text-center"> 252 <div class="mt30 text-center">
251 <a class="btn-lineG" href="#/about/wuDao" style="display: inline-flex;align-items: center;">了解更多<img 253 <a class="btn-black" href="#/about/wuDao" style="display: inline-flex;align-items: center;">了解更多<img
252 style="filter: brightness(2);height: 8px" src="@/assets/v1/more.png"/></a> 254 style="filter: brightness(2);height: 8px" src="@/assets/v1/more.png"/></a>
253 </div> 255 </div>
254 256
......
...@@ -169,6 +169,8 @@ ...@@ -169,6 +169,8 @@
169 </el-form-item> 169 </el-form-item>
170 </el-form> 170 </el-form>
171 </div> 171 </div>
172
173
172 </el-dialog> 174 </el-dialog>
173 </template> 175 </template>
174 176
...@@ -187,7 +189,8 @@ import {ElMessage, ElMessageBox} from 'element-plus' ...@@ -187,7 +189,8 @@ import {ElMessage, ElMessageBox} from 'element-plus'
187 import cache from "@/plugins/cache"; 189 import cache from "@/plugins/cache";
188 import {useStorage} from "@vueuse/core/index"; 190 import {useStorage} from "@vueuse/core/index";
189 import {getCaptchaSms, getCaptchaSms2} from "@/apiPc/match"; 191 import {getCaptchaSms, getCaptchaSms2} from "@/apiPc/match";
190 192 const user = useUserStore().user
193 const useStore = useUserStore
191 const emit = defineEmits(['submitForm']) 194 const emit = defineEmits(['submitForm'])
192 const userStore = useUserStore() 195 const userStore = useUserStore()
193 const router = useRouter() 196 const router = useRouter()
...@@ -307,11 +310,9 @@ function showChangePassword() { ...@@ -307,11 +310,9 @@ function showChangePassword() {
307 } 310 }
308 311
309 function showRegister() { 312 function showRegister() {
310 loginStatus.value = 1 313 if(!user){
311 if (language.value == 0) { 314 useStore().setVisitor()
312 title.value = '账号注册' 315 return
313 } else {
314 title.value = 'REGISTER'
315 } 316 }
316 } 317 }
317 318
......
1 <template> 1 <template>
2 <el-dialog v-model="show" :title="language==0?'快捷注册':'Quick Login'" close-icon="CircleClose" 2 <el-dialog v-model="show" :title="language==0?'注册':'Login'" close-icon="CircleClose"
3 width="480" :append-to-body="true" destroy-on-close @close="close"> 3 width="480" :append-to-body="true" destroy-on-close @close="close" center>
4 <div> 4 <div>
5 <el-form class="d-form" size="large" :label-width="language==0?80:150" :label-position="language==0?'right':'top'" style="max-width: 500px;margin: auto"> 5 <el-form class="d-form" size="large" :label-width="language==0?80:150" :label-position="language==0?'right':'top'" style="max-width: 500px;margin: auto">
6 <el-form-item :label="language==0?'邮箱':'E-mail'" required> 6 <el-form-item :label="language==0?'邮箱':'E-mail'" required>
...@@ -46,9 +46,8 @@ ...@@ -46,9 +46,8 @@
46 </div> 46 </div>
47 <template #footer> 47 <template #footer>
48 <div class="dialog-footer text-center"> 48 <div class="dialog-footer text-center">
49 <el-button type="primary" class="btn-lineG w200px" round @click="register">{{language==0?'登录':'Confirm'}}</el-button> 49 <a class="btn-black w200px" @click="register">{{language==0?'登录':'Confirm'}}</a>
50 <div class="text-primary underline mt20 pointer" @click="goLogin">{{language==0?'已有账号去登录':'Already have an account? Login'}}</div> 50 <div class="text-primary underline mt20 pointer" @click="goLogin">{{language==0?'已有账号去登录':'Already have an account? Login'}}</div>
51
52 </div> 51 </div>
53 </template> 52 </template>
54 </el-dialog> 53 </el-dialog>
......
...@@ -3,15 +3,15 @@ ...@@ -3,15 +3,15 @@
3 <div class="box"> 3 <div class="box">
4 <el-card class="mt30 mb60" > 4 <el-card class="mt30 mb60" >
5 <div v-if="language==0"> 5 <div v-if="language==0">
6 <h3 class="text-center">体育舞蹈系统用户注册隐私政策</h3> 6 <h3 class="text-center">系统用户注册隐私政策</h3>
7 <h4>一、前言</h4> 7 <h4>一、前言</h4>
8 我们非常重视您的隐私,并致力于保护您的个人信息。本隐私政策旨在向您说明我们在您注册和使用体育舞蹈系统时,如何收集、使用、存储和保护您的个人信息。请您在注册前仔细阅读本隐私政策,确保您充分理解并同意我们的隐私保护措施。 8 我们非常重视您的隐私,并致力于保护您的个人信息。本隐私政策旨在向您说明我们在您注册和使用系统时,如何收集、使用、存储和保护您的个人信息。请您在注册前仔细阅读本隐私政策,确保您充分理解并同意我们的隐私保护措施。
9 <h4>二、个人信息的收集</h4> 9 <h4>二、个人信息的收集</h4>
10 注册信息:在您注册体育舞蹈系统账户时,我们会收集您的姓名、性别、出生日期、电子邮箱、手机号码等基本信息。<br/> 10 注册信息:在您注册系统账户时,我们会收集您的姓名、性别、出生日期、电子邮箱、手机号码等基本信息。<br/>
11 使用信息:在您使用系统服务时,我们会自动收集并记录您的使用信息,包括但不限于访问日期和时间、使用时长、浏览记录等。<br/> 11 使用信息:在您使用系统服务时,我们会自动收集并记录您的使用信息,包括但不限于访问日期和时间、使用时长、浏览记录等。<br/>
12 位置信息:根据您的授权,我们可能会收集您的地理位置信息,以便为您提供更准确的服务。<br/> 12 位置信息:根据您的授权,我们可能会收集您的地理位置信息,以便为您提供更准确的服务。<br/>
13 <h4>三、个人信息的使用</h4> 13 <h4>三、个人信息的使用</h4>
14 提供服务:我们会使用您的个人信息为您提供体育舞蹈系统服务,包括但不限于在线课程、社区交流、活动报名等。<br/> 14 提供服务:我们会使用您的个人信息为您提供系统服务,包括但不限于在线课程、社区交流、活动报名等。<br/>
15 优化服务:我们会根据您的使用信息和反馈,不断优化和改进我们的服务,提升用户体验。<br/> 15 优化服务:我们会根据您的使用信息和反馈,不断优化和改进我们的服务,提升用户体验。<br/>
16 推荐内容:我们会根据您的兴趣和偏好,为您推荐相关课程和活动。<br/> 16 推荐内容:我们会根据您的兴趣和偏好,为您推荐相关课程和活动。<br/>
17 <h4>四、个人信息的存储与保护</h4> 17 <h4>四、个人信息的存储与保护</h4>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
26 投诉与举报:如果您认为我们在处理您的个人信息方面存在不当行为,您可以向相关部门进行投诉或举报。<br/> 26 投诉与举报:如果您认为我们在处理您的个人信息方面存在不当行为,您可以向相关部门进行投诉或举报。<br/>
27 <h4>七、其他</h4> 27 <h4>七、其他</h4>
28 政策更新:我们可能会根据需要对本隐私政策进行更新。更新后的政策将通过系统通知或其他适当方式通知您。请您定期查看本隐私政策,以确保您了解并同意我们的隐私保护措施。<br/> 28 政策更新:我们可能会根据需要对本隐私政策进行更新。更新后的政策将通过系统通知或其他适当方式通知您。请您定期查看本隐私政策,以确保您了解并同意我们的隐私保护措施。<br/>
29 适用范围:本隐私政策适用于体育舞蹈系统及其相关服务。对于其他第三方服务或网站,我们建议您查阅其相关的隐私政策。<br/> 29 适用范围:本隐私政策适用于系统及其相关服务。对于其他第三方服务或网站,我们建议您查阅其相关的隐私政策。<br/>
30 <h4>八、联系方式</h4> 30 <h4>八、联系方式</h4>
31 如果您对本隐私政策有任何疑问或建议,请通过以下方式与我们联系:<br/> 31 如果您对本隐私政策有任何疑问或建议,请通过以下方式与我们联系:<br/>
32 <p>电子邮箱:[497118883@qq.com]</p> 32 <p>电子邮箱:[497118883@qq.com]</p>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!