e0170b23 by zhangmeng

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	src/routerPc/en.js
#	src/viewsPc/booking/addInvoice.vue
#	vite.config.js
2 parents 9f25176c cae81ebc
1 <template>
2 <div>
3 <div class="mt20" />
4 <div class="box">
5 <el-card>
6 <el-row :gutter="20">
7 <el-col :lg="5">
8 <div class="leftNav">
9 <ul>
10 <li>About the Organizer</li>
11 <li class="active">WDSF Asian Dancesport Festival</li>
12 <li>About Sports Dance</li>
13 </ul>
14 </div>
15 </el-col>
16 <el-col :lg="19">
17 <div class="infoPart pd20" hidden>
18 <h3 class="leftboderTT">About the organizer</h3>
19 <div class="content">
20 <p>On site, the World Sports Dance (Wuxi) Center, a joint headquarters base established by the World Sports Dance Federation that integrates the world, intercontinental, and China, was officially unveiled. In the future, Wuxi will take the settlement of its headquarters as an opportunity to launch and cultivate its own brand event, the China Wuxi Sports and Dance Festival, and continue to expand communication and cooperation, event research and development, education and training and other fields, committed to creating a global sports and dance landmark city and a unique and charming international event city.</p>
21 <p>The Asian Sports Dance Festival has landed in Wuxi in an innovative form of "three competitions in one". Over a period of four days, it will hold two international level events, the World Standard Dance Championships and the World Sports Dance Grand Prix (Wuxi Station), as well as a national level event, the China Sports Dance Open Series (Wuxi Station), attracting more than 1700 participants from 39 countries and regions to participate.</p>
22 <p>Sports dance is divided into two groups and ten dance genres, among which the standard dance (also known as modern dance) group includes waltz, Viennese waltz, tango, foxtrot, and brisk step. The Latin dance project group includes rumba, cha cha, samba, cowboy, and bullfighting dance. According to incomplete statistics, there are currently over 50 million sports dance enthusiasts in China.</p>
23 <p>On site, Latin Girl dance performance and sports dance costume show were performed brilliantly. Top domestic and foreign athletes compete passionately, showcasing their gorgeous makeup and dance moves to the heart of the "gentlemen" and "beauties" participating in the competition.</p>
24 <p>The "most beautiful" sports project is shining on the shore of the Taihu Lake Lake, creating the highlight scene of the annual global sports dance field, and giving another shining card of Wuxi sports.
25 </p>
26 <p>The Asian Sports Dance Festival is open to the public with two types of tickets: VIP and stand tickets. At the same time, the event will also be broadcast online through the Olympic Channel, People's Daily Vision, Migu, the official website of China Sports Dance Federation and Tiktok, Asia Sports Dance Festival WeChat video number, Tiger Teeth, Penguin, Weibo and other platforms.</p>
27
28 <img src="@/assets/zhinan/photo.png"/>
29
30 </div>
31 </div>
32 <div class="infoPart pd20">
33 <h3 class="leftboderTT">WUXI WDSF ASIAN DANCESPORT FESTIVAL</h3>
34 </div>
35 </el-col>
36 </el-row>
37 </el-card>
38
39 <div class="indexTitle">
40 <h3 class="leftboderTT">CONTACT</h3>
41 </div>
42 <div class="mapBox mb20">
43 <div class="content">
44 <div class="phone">
45 <h4>Phone</h4>
46 <p>Mr.WU:15606190026</p>
47 </div>
48 <div class="address">
49 <h4>Address</h4>
50 <p>No.88 Qingshu Road,Economic Development District, Wuxi City,Jiangsu Province,China</p>
51 </div>
52 <div class="email">
53 <h4>Email</h4>
54 <p>8888989@163.com</p>
55 </div>
56 </div>
57 </div>
58 </div>
59 </div>
60 </template>
61
62 <script setup>
63
64 </script>
65
66 <style scoped lang="scss">
67 .leftNav{
68 ul{border-right: 2px solid #E5E5E5;padding:0 20px 0 0;}
69 li{margin: 30px 0;padding: 10px;text-align: right;
70 border-radius: 2px;position: relative;
71 font-weight: 600;
72 font-size: 18px;
73 background: linear-gradient(90deg, rgba(134, 35, 252, 0.1), rgba(69, 61, 234, 0.1));}
74 li::after{content: '';position: absolute;background: #898989;width: 8px;height: 8px;
75 border-radius: 50%;right: -29px;border: 4px solid #fff;outline: 2px solid #898989;
76 box-sizing: content-box;top: 0;bottom: 0;margin: auto;}
77 li.active{color: #fff;
78 background: linear-gradient(90deg, #8623FC, #453DEA);
79 &::after{outline: 2px solid #453DEA;background: #453DEA;}
80 }
81 }
82 .infoPart{
83 .leftboderTT{font-size:20px;color: var(--el-color-primary); }
84 }
85 .content{margin: 20px 0 0;text-indent: 2em;
86 line-height: 1.8;
87 font-weight: 400;
88 font-size: 16px;
89 color: #29343C;
90 img{max-width: 100%;margin: 20px auto;display: block;}
91 h4{text-indent: 0}
92 }
93 .mapBox{background: url("@/assets/zhinan/map.png") no-repeat right;height: 375px;
94 background-size: cover;padding: 1px;position: relative;display: flex;
95 .content{background: #fff;width: 60%;left: 40px;padding: 30px;text-indent: 0;
96 line-height: 1;
97 position: absolute;height: 90%;top: 0;bottom: 0;margin: auto;
98 }
99 div{padding-left: 60px;}
100 .phone{background: url("@/assets/dance/map01.png") no-repeat left;background-size: 30px;}
101 .address{background: url("@/assets/dance/map02.png") no-repeat left;background-size: 30px;
102 margin:50px 0;
103 }
104 .email{background: url("@/assets/dance/map03.png") no-repeat left;background-size: 30px;}
105 h4{margin: 0;
106 font-size: 16px;
107 color: #AAAAAA;}
108 p{margin: 13px 0 0;}
109 }
110 @media (max-width: 800px) {
111 .mapBox {
112 div {
113 padding-left: 40px;
114 }
115
116 .content {
117 width: 80%;
118 left: 10%;
119 padding: 10px 20px 0 20px;
120 }
121
122 .address {
123 margin: 30px 0;
124 }
125
126 p {
127 text-align: left;
128 word-break: break-all;
129 }
130 }
131 }
132 </style>
...@@ -34,5 +34,6 @@ defineExpose({ ...@@ -34,5 +34,6 @@ defineExpose({
34 //overflow: hidden; 34 //overflow: hidden;
35 overflow-x: scroll ; 35 overflow-x: scroll ;
36 overflow-y: hidden ; 36 overflow-y: hidden ;
37 img{max-width: 100%!important;}
37 } 38 }
38 </style> 39 </style>
......
...@@ -92,10 +92,11 @@ ...@@ -92,10 +92,11 @@
92 <el-form-item :label="`税号`" required v-if="form.invoiceType=='0'" prop="invoiceTfn"> 92 <el-form-item :label="`税号`" required v-if="form.invoiceType=='0'" prop="invoiceTfn">
93 {{form.invoiceTfn}} 93 {{form.invoiceTfn}}
94 </el-form-item> 94 </el-form-item>
95 <el-form-item :label="`邮箱`" v-if="form.invoiceForm=='1'" required prop="invoiceEmail"> 95 <el-form-item :label="`邮箱`" v-if="form.invoiceForm=='1'" required>
96 {{form.invoiceEmail}} 96 <view v-if="form.address">{{form.address}}</view>
97 <view v-else-if="form.invoiceEmail">{{form.invoiceEmail}}</view>
97 </el-form-item> 98 </el-form-item>
98 <el-form-item label="备注" prop="remarks"> 99 <el-form-item label="备注" prop="remarks">
99 {{form.remarks}} 100 {{form.remarks}}
100 </el-form-item> 101 </el-form-item>
101 <el-form-item v-if="!form.invoiceForm=='1'" :label="`邮寄地址`" required> 102 <el-form-item v-if="!form.invoiceForm=='1'" :label="`邮寄地址`" required>
......
...@@ -252,7 +252,7 @@ ...@@ -252,7 +252,7 @@
252 <el-card> 252 <el-card>
253 <el-row :gutter="20"> 253 <el-row :gutter="20">
254 <el-col :lg="8"> 254 <el-col :lg="8">
255 <a class="liveImgbox" target="_blank" href="https://wx.vzan.com/live/page/1151815649?v=1720589464698"> 255 <a class="liveImgbox" target="_blank" @click="golive(livelist[0])">
256 <div class="livetimecount" v-if="time>0"> 256 <div class="livetimecount" v-if="time>0">
257 <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒"> 257 <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒">
258 <template #default="timeData"> 258 <template #default="timeData">
...@@ -271,12 +271,18 @@ ...@@ -271,12 +271,18 @@
271 </template> 271 </template>
272 </van-count-down> 272 </van-count-down>
273 </div> 273 </div>
274 <!-- <i class="ii" v-else-if="etime>0&&time<=0">直播中</i>--> 274 <i class="ii" v-else-if="etime>0&&time<=0">直播中</i>
275 <!-- <i class="livetimecount" v-if="etime<=0">直播已结束</i>--> 275 <!-- <i class="livetimecount" v-if="etime<=0">直播已结束</i>-->
276 <div class="imgBox"><img src="/img/111.jpeg"/></div> 276 <div class="imgBox">
277 <h3 class="esp"> 277 <img v-if="time>0" src="/img/111.jpeg"/>
278 <img v-else :src="fillImgUrl_webSite(livelist[0]?.picUrl)">
279 </div>
280 <h3 class="esp" v-if="time>0">
278 2024WDSF亚洲体育舞蹈节 281 2024WDSF亚洲体育舞蹈节
279 </h3> 282 </h3>
283 <h3 class="esp" v-else>
284 {{livelist[0]?.name }}
285 </h3>
280 </a> 286 </a>
281 </el-col> 287 </el-col>
282 <el-col :lg="16"> 288 <el-col :lg="16">
...@@ -298,7 +304,7 @@ ...@@ -298,7 +304,7 @@
298 </el-col> 304 </el-col>
299 </el-row> 305 </el-row>
300 <el-row class="news-l-r"> 306 <el-row class="news-l-r">
301 <el-col v-for="(n,index) in livelist" :lg="8"> 307 <el-col v-for="(n,index) in livelist" :lg="8" v-show="index>0">
302 <div class="item" style="padding: 0;margin: 20px 0 0" @click="goDetail(n)"> 308 <div class="item" style="padding: 0;margin: 20px 0 0" @click="goDetail(n)">
303 <div class="imgbox"> 309 <div class="imgbox">
304 <i class="playIcon"></i> 310 <i class="playIcon"></i>
...@@ -463,7 +469,7 @@ const init = () => { ...@@ -463,7 +469,7 @@ const init = () => {
463 etime.value = dayjs('2024-07-22 12:00:00').diff(today, 'millisecond') 469 etime.value = dayjs('2024-07-22 12:00:00').diff(today, 'millisecond')
464 getNewsListById( 470 getNewsListById(
465 { 471 {
466 pageSize: 3, 472 pageSize: time.value>0? 3:4,
467 pageNum: 1, 473 pageNum: 1,
468 sortId: '10000006' 474 sortId: '10000006'
469 } 475 }
...@@ -519,6 +525,15 @@ const goDetail = (n) => { ...@@ -519,6 +525,15 @@ const goDetail = (n) => {
519 }) 525 })
520 } 526 }
521 } 527 }
528 const golive = (n) => {
529 if(time.value>0){
530 window.open('https://wx.vzan.com/live/page/1151815649?v=1720589464698')
531 } else {
532 router.push({
533 path: `/news/detail/${n.noteId}`
534 })
535 }
536 }
522 const goLeaderInfo = (n) => { 537 const goLeaderInfo = (n) => {
523 // router.push({ 538 // router.push({
524 // path: `/about/leaderInfo/${n.id || 0}` 539 // path: `/about/leaderInfo/${n.id || 0}`
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
46 </el-form-item> 46 </el-form-item>
47 </el-col> 47 </el-col>
48 <el-col :lg="12"> 48 <el-col :lg="12">
49 <el-form-item :label="language==0?'出生日期1':'Date of Birth'" prop="birth" required> 49 <el-form-item :label="language==0?'出生日期':'Date of Birth'" prop="birth" required>
50 <el-date-picker 50 <el-date-picker
51 v-model="form.birth" :disabled="editgay&&form.labelArr.indexOf('0')>-1" 51 v-model="form.birth" :disabled="editgay&&form.labelArr.indexOf('0')>-1"
52 style="width: 100%;" 52 style="width: 100%;"
...@@ -250,9 +250,8 @@ function reset(){ ...@@ -250,9 +250,8 @@ function reset(){
250 }) 250 })
251 } 251 }
252 } 252 }
253 function disabledBirth(date) { 253 function disabledBirth(time) {
254 const today = dayjs().format('YYYY-MM-DD') 254 return time.getTime() > new Date().getTime()
255 return (date.getTime() >= dayjs(today).valueOf())
256 } 255 }
257 function getCountryList() { 256 function getCountryList() {
258 match.countryList().then(res => { 257 match.countryList().then(res => {
......
...@@ -90,12 +90,12 @@ ...@@ -90,12 +90,12 @@
90 :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1"> 90 :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1">
91 <el-input v-model="form.idcCode" :disabled="editgay" @blur="giveBirthDay"/> 91 <el-input v-model="form.idcCode" :disabled="editgay" @blur="giveBirthDay"/>
92 </el-form-item> 92 </el-form-item>
93 <el-form-item :label="language==0?'2出生日期':'Date of Birth'" prop="birth" 93 <el-form-item :label="language==0?'出生日期':'Date of Birth'" prop="birth"
94 :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1" 94 :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1"
95 :disabled-date="disabledBirth"> 95 >
96 <el-date-picker 96 <el-date-picker
97 v-model="form.birth" :disabled="form.idcType=='0'" 97 v-model="form.birth" :disabled="form.idcType=='0'"
98 style="width: 100%;" 98 style="width: 100%;" :disabled-date="disabledBirth"
99 type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" 99 type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
100 /> 100 />
101 </el-form-item> 101 </el-form-item>
......
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
60 <el-form-item :label="language==0?'出生日期':'Date of Birth'" prop="birth"> 60 <el-form-item :label="language==0?'出生日期':'Date of Birth'" prop="birth">
61 <el-date-picker 61 <el-date-picker
62 v-model="form.birth" :disabled="form.idcType=='0'" 62 v-model="form.birth" :disabled="form.idcType=='0'"
63 style="width: 100%;" 63 style="width: 100%;" :disabled-date="disabledBirth"
64 type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" 64 type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
65 /> 65 />
66 </el-form-item> 66 </el-form-item>
...@@ -390,6 +390,9 @@ function submitForm() { ...@@ -390,6 +390,9 @@ function submitForm() {
390 function cancel() { 390 function cancel() {
391 show.value = false 391 show.value = false
392 } 392 }
393 function disabledBirth(time) {
394 return time.getTime() > new Date().getTime()
395 }
393 </script> 396 </script>
394 397
395 <style lang="scss"> 398 <style lang="scss">
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
76 <el-form-item :label="language==0?'出生日期':'Date of Birth'" required> 76 <el-form-item :label="language==0?'出生日期':'Date of Birth'" required>
77 <el-date-picker 77 <el-date-picker
78 v-model="form.birth" 78 v-model="form.birth"
79 style="width: 100%;" 79 style="width: 100%;" :disabled-date="disabledBirth"
80 type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" 80 type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
81 /> 81 />
82 </el-form-item> 82 </el-form-item>
...@@ -359,6 +359,10 @@ function codeSuccess(msg) { ...@@ -359,6 +359,10 @@ function codeSuccess(msg) {
359 } 359 }
360 }) 360 })
361 } 361 }
362
363 function disabledBirth(time) {
364 return time.getTime() > new Date().getTime()
365 }
362 </script> 366 </script>
363 367
364 <style lang="scss"> 368 <style lang="scss">
......
...@@ -34,6 +34,9 @@ ...@@ -34,6 +34,9 @@
34 </el-form-item> 34 </el-form-item>
35 </el-form> 35 </el-form>
36 </div> 36 </div>
37 <p class="tip" v-if="language==0">报名单人项目只需选中需要报名的人员</p>
38 <p class="tip" v-if="language==1">To register for the individual project, simply select the person who needs to register</p>
39
37 <p v-if="noPhotoCanSign == 0" class="text-danger">{{ language==0?'*需上传照片才可报名':'*Please upload photo before sign up' }}</p> 40 <p v-if="noPhotoCanSign == 0" class="text-danger">{{ language==0?'*需上传照片才可报名':'*Please upload photo before sign up' }}</p>
38 <el-table ref="allSportmenTable" v-loading="loading" :data="tableData" height="60vh" 41 <el-table ref="allSportmenTable" v-loading="loading" :data="tableData" height="60vh"
39 @selection-change="handleSelectionChange" :row-key="getRowKeys"> 42 @selection-change="handleSelectionChange" :row-key="getRowKeys">
......
1 import {defineConfig, loadEnv} from 'vite' 1 import { defineConfig, loadEnv } from 'vite'
2 import path, {resolve} from 'path' 2 import path, { resolve } from 'path'
3 import createVitePlugins from './vite/plugins' 3 import createVitePlugins from './vite/plugins'
4 import inject from '@rollup/plugin-inject' 4 import inject from '@rollup/plugin-inject'
5 import commonjs from '@rollup/plugin-commonjs' 5 import commonjs from '@rollup/plugin-commonjs'
6 // import legacy from '@vitejs/plugin-legacy' 6 // import legacy from '@vitejs/plugin-legacy'
7 7
8 // https://vitejs.dev/config/ 8 // https://vitejs.dev/config/
9 export default defineConfig(({mode, command}) => { 9 export default defineConfig(({ mode, command }) => {
10 const env = loadEnv(mode, process.cwd()) 10 const env = loadEnv(mode, process.cwd())
11 return { 11 return {
12 // 部署生产环境和开发环境下的URL。 12 // 部署生产环境和开发环境下的URL。
...@@ -70,30 +70,30 @@ export default defineConfig(({mode, command}) => { ...@@ -70,30 +70,30 @@ export default defineConfig(({mode, command}) => {
70 rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '') 70 rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '')
71 }, 71 },
72 '/dev-api/ztx-match': { 72 '/dev-api/ztx-match': {
73 target: 'http://192.168.1.118:8083', 73 // target: 'http://192.168.1.118:8083',
74 // target: 'https://jijin.wtwuxicenter.com/stage-api', 74 target: 'https://jijin.wtwuxicenter.com/stage-api',
75 changeOrigin: true, 75 changeOrigin: true,
76 rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '') 76 rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '')
77 }, 77 },
78 '/dev-api/ztx-webSite': { 78 '/dev-api/ztx-webSite': {
79 // target: 'https://dance.itechtop.cn/stage-api', 79 target: 'https://wdsfwuxicenter.com/stage-api/',
80 target: 'http://192.168.1.118:8081/',
81 changeOrigin: true, 80 changeOrigin: true,
82 rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') 81 rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '')
83 }, 82 },
84 '/dev-api': { 83 '/dev-api': {
85 target: 'http://192.168.1.118:8081/', 84 // target: 'http://192.168.1.118:8081/',
86 // target: 'http://192.168.1.131:8081/', 85 // target: 'http://192.168.1.131:8081/',
87 // target: 'https://jijin.wtwuxicenter.com/stage-api', 86 target: 'https://jijin.wtwuxicenter.com/stage-api',
87 // target: 'http://124.70.181.90:1880/stage-api',
88 // target: 'https://wdsfwuxicenter.com/stage-api/', 88 // target: 'https://wdsfwuxicenter.com/stage-api/',
89 changeOrigin: true, 89 changeOrigin: true,
90 rewrite: (p) => p.replace(/^\/dev-api/, '') 90 rewrite: (p) => p.replace(/^\/dev-api/, '')
91 }, 91 },
92 '/ticket': { 92 '/ticket': {
93 target: 'http://192.168.1.118:8098/', 93 // target: 'http://192.168.1.131:8098/',
94 // target: 'http://192.168.1.131:8081/', 94 // target: 'http://192.168.1.131:8081/',
95 // target: 'https://jijin.wtwuxicenter.com/ticket', 95 target: 'https://jijin.wtwuxicenter.com/h5/',
96 // target: 'https://ticketh5.wdsfwuxicenter.com/ticket', 96 // target: 'https://ticketh5.wdsfwuxicenter.com/h5/',
97 changeOrigin: true, 97 changeOrigin: true,
98 rewrite: (p) => p.replace(/^\/ticket/, '') 98 rewrite: (p) => p.replace(/^\/ticket/, '')
99 } 99 }
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!