e3f46817 by 华明祺

no message

1 parent 45b4252e
...@@ -15,7 +15,8 @@ ...@@ -15,7 +15,8 @@
15 "@element-plus/icons-vue": "2.0.10", 15 "@element-plus/icons-vue": "2.0.10",
16 "@videojs-player/vue": "^1.0.0", 16 "@videojs-player/vue": "^1.0.0",
17 "@vueup/vue-quill": "1.1.1", 17 "@vueup/vue-quill": "1.1.1",
18 "@vueuse/core": "^10.1.2", 18 "@vueuse/core": "^13.4.0",
19 "@vueuse/router": "^13.4.0",
19 "axios": "0.27.2", 20 "axios": "0.27.2",
20 "crypto-js": "^4.1.1", 21 "crypto-js": "^4.1.1",
21 "echarts": "5.4.0", 22 "echarts": "5.4.0",
......
...@@ -32,7 +32,9 @@ ...@@ -32,7 +32,9 @@
32 <el-col :span="14"> 32 <el-col :span="14">
33 <ul> 33 <ul>
34 <li>Postal code:214000</li> 34 <li>Postal code:214000</li>
35 <li>Address:100 meters northeast of the intersection of Hefeng Road and Qingshu, the Taihu Lake New Town, Wuxi, Jiangsu</li> 35 <li>Address:100 meters northeast of the intersection of Hefeng Road and Qingshu, the Taihu Lake New Town,
36 Wuxi, Jiangsu
37 </li>
36 </ul> 38 </ul>
37 </el-col> 39 </el-col>
38 <el-col :span="6"> 40 <el-col :span="6">
...@@ -56,22 +58,25 @@ ...@@ -56,22 +58,25 @@
56 </div> 58 </div>
57 <div class="fixed-right forPc"> 59 <div class="fixed-right forPc">
58 <div class="mlb" v-if="language===0"> 60 <div class="mlb" v-if="language===0">
59 <div @click="goAround" class="mb10 pb5"> 61 <div @click="goAround" class="mb10 pb5">
60 <a> 62 <a>
61 <img class="kf" src="@/assets/logo/btn02.png"/> 63 <img class="kf" src="@/assets/logo/btn02.png"/>
62 <div class="text-center mt10">周边活动</div> 64 <div class="text-center mt10">周边活动</div>
63 </a> 65 </a>
64 </div> 66 </div>
65 <div onclick="window.open('https://ykf-weixin01.7moor.com/wapchat.html?accessId=6c500b60-02c6-11ef-9a4d-85cd5dacc5bf&fromUrl=&urlTitle=&language=ZHCN','_blank','height=700px,width=700px,top=50,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')" title="客服" > 67 <div
68 style="display: none" title="客服"
69 onclick="window.open('https://ykf-weixin01.7moor.com/wapchat.html?accessId=6c500b60-02c6-11ef-9a4d-85cd5dacc5bf&fromUrl=&urlTitle=&language=ZHCN','_blank','height=700px,width=700px,top=50,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')"
70 >
66 <img class="kf" src="@/assets/logo/btn01.png"/> 71 <img class="kf" src="@/assets/logo/btn01.png"/>
67 <div class="text-center mt10">在线客服</div> 72 <div class="text-center mt10">在线客服</div>
68 </div> 73 </div>
69 <!-- <div @click="goHelpZH">--> 74 <!-- <div @click="goHelpZH">-->
70 <!-- <a>--> 75 <!-- <a>-->
71 <!-- <img class="kf" src="@/assets/logo/btn02.png"/>--> 76 <!-- <img class="kf" src="@/assets/logo/btn02.png"/>-->
72 <!-- <div class="text-center mt10">周边活动</div>--> 77 <!-- <div class="text-center mt10">周边活动</div>-->
73 <!-- </a>--> 78 <!-- </a>-->
74 <!-- </div>--> 79 <!-- </div>-->
75 </div> 80 </div>
76 <div class="mlb" v-else> 81 <div class="mlb" v-else>
77 <div @click="goAround" class="mb10 pb5"> 82 <div @click="goAround" class="mb10 pb5">
...@@ -80,14 +85,16 @@ ...@@ -80,14 +85,16 @@
80 <div class="text-center mt10">ACTIVITIES</div> 85 <div class="text-center mt10">ACTIVITIES</div>
81 </a> 86 </a>
82 </div> 87 </div>
83 <div onclick="window.open('https://ykf-weixin01.7moor.com/wapchat.html?accessId=707daf80-02c6-11ef-9a4d-85cd5dacc5bf&fromUrl=&urlTitle=&language=EN','_blank','height=700px,width=700px,top=100,left=150,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')" title="Live Chat"> 88 <div
89 onclick="window.open('https://ykf-weixin01.7moor.com/wapchat.html?accessId=707daf80-02c6-11ef-9a4d-85cd5dacc5bf&fromUrl=&urlTitle=&language=EN','_blank','height=700px,width=700px,top=100,left=150,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no')"
90 title="Live Chat">
84 <img class="kf" src="@/assets/logo/btn01.png"/> 91 <img class="kf" src="@/assets/logo/btn01.png"/>
85 <div class="text-center ">LIVE CHAT</div> 92 <div class="text-center ">LIVE CHAT</div>
86 </div> 93 </div>
87 <!-- <div @click="goHelp">--> 94 <!-- <div @click="goHelp">-->
88 <!-- <img class="kf" src="@/assets/logo/btn02.png"/>--> 95 <!-- <img class="kf" src="@/assets/logo/btn02.png"/>-->
89 <!-- <div class="text-center uppercase">Video Guide</div>--> 96 <!-- <div class="text-center uppercase">Video Guide</div>-->
90 <!-- </div>--> 97 <!-- </div>-->
91 </div> 98 </div>
92 </div> 99 </div>
93 </template> 100 </template>
...@@ -96,78 +103,160 @@ ...@@ -96,78 +103,160 @@
96 import {useStorage} from "@vueuse/core/index"; 103 import {useStorage} from "@vueuse/core/index";
97 import {useRouter} from "vue-router"; 104 import {useRouter} from "vue-router";
98 import {ElMessage} from "element-plus"; 105 import {ElMessage} from "element-plus";
106
99 const router = useRouter() 107 const router = useRouter()
100 const language = useStorage('language', 0) 108 const language = useStorage('language', 0)
101 const goHelp = () => { 109 const goHelp = () => {
102 router.push({ 110 router.push({
103 path: `/news/list/20000100`, 111 path: `/news/list/20000100`,
104 query:{ 112 query: {
105 kindName: language.value===0?'操作指引':'Video Guide' 113 kindName: language.value === 0 ? '操作指引' : 'Video Guide'
106 } 114 }
107 }) 115 })
108 } 116 }
109 const goHelpZH = () => { 117 const goHelpZH = () => {
110 // ElMessage.success('已下载文件') 118 // ElMessage.success('已下载文件')
111 router.push({ 119 router.push({
112 name: 'guide', 120 name: 'guide',
113 query: { 121 query: {
114 index:8 122 index: 8
115 } 123 }
116 }) 124 })
117 } 125 }
118 const goAround = () => { 126 const goAround = () => {
119 //周边活动 127 //周边活动
120 router.push({path: `/about/wuDao`,query: {activeIndex: '2'}}) 128 router.push({path: `/about/wuDao`, query: {activeIndex: '2'}})
121 } 129 }
122 </script> 130 </script>
123 131
124 <style lang="scss" scoped> 132 <style lang="scss" scoped>
125 .kf{width: 45px;margin: auto;height: auto; 133 .kf {
134 width: 45px;
135 margin: auto;
136 height: auto;
126 //animation: pop 2s infinite; 137 //animation: pop 2s infinite;
127 } 138 }
128 .fixed-right{position: fixed;right: 0;top: 65%;z-index: 9; 139
129 .mlb{background: #fff;border-radius: 10px 0 0 10px;box-shadow: 0 2px 8px #aaa; 140 .fixed-right {
130 padding: 10px 8px;text-align: center;cursor: pointer; 141 position: fixed;
131 div{text-transform: uppercase;} 142 right: 0;
132 div:first-child{border-bottom: 0.5px solid #eee; 143 top: 65%;
144 z-index: 9;
145
146 .mlb {
147 background: #fff;
148 border-radius: 10px 0 0 10px;
149 box-shadow: 0 2px 8px #aaa;
150 padding: 10px 8px;
151 text-align: center;
152 cursor: pointer;
153
154 div {
155 text-transform: uppercase;
156 }
157
158 div:first-child {
159 border-bottom: 0.5px solid #eee;
133 //padding: 0 0 10px;margin-bottom: 10px; 160 //padding: 0 0 10px;margin-bottom: 10px;
134 } 161 }
135 div:hover{.gradient-text{font-weight: bold;}} 162
163 div:hover {
164 .gradient-text {
165 font-weight: bold;
166 }
167 }
136 } 168 }
137 } 169 }
138 .copyright{font-size: 14px;opacity: 0.88;color: #4C5359;} 170
139 .footAll{background: #E0E3E5;;padding: 36px 0 5px; 171 .copyright {
140 p{font-size: 14px;opacity: 0.88;color: #4C5359;} 172 font-size: 14px;
141 ul{list-style: none; 173 opacity: 0.88;
142 li{line-height: 30px;font-size: 14px;opacity: 0.88;color: #4C5359; 174 color: #4C5359;
143 a{margin-left: 15px; 175 }
144 &:hover{text-decoration: underline;} 176
177 .footAll {
178 background: #E0E3E5;;
179 padding: 36px 0 5px;
180
181 p {
182 font-size: 14px;
183 opacity: 0.88;
184 color: #4C5359;
185 }
186
187 ul {
188 list-style: none;
189
190 li {
191 line-height: 30px;
192 font-size: 14px;
193 opacity: 0.88;
194 color: #4C5359;
195
196 a {
197 margin-left: 15px;
198
199 &:hover {
200 text-decoration: underline;
201 }
145 } 202 }
146 } 203 }
147 } 204 }
148 img{height: 80px;} 205
206 img {
207 height: 80px;
208 }
149 } 209 }
210
150 .gradient-text { 211 .gradient-text {
151 font-family: FZJunHeiS-B-GB; 212 font-family: FZJunHeiS-B-GB;
152 font-weight: 600;font-size: 17px; 213 font-weight: 600;
214 font-size: 17px;
153 background: linear-gradient(0deg, #8226FC 0%, #483BEB 100%); 215 background: linear-gradient(0deg, #8226FC 0%, #483BEB 100%);
154 -webkit-background-clip: text; 216 -webkit-background-clip: text;
155 -webkit-text-fill-color: transparent; 217 -webkit-text-fill-color: transparent;
156 } 218 }
219
157 @media (max-width: 500px) { 220 @media (max-width: 500px) {
158 .forWei{display: none;} 221 .forWei {
159 .footAll{padding:10px 0; 222 display: none;
160 ul { 223 }
161 li { 224 .footAll {
162 font-size: 10px;line-height: 1.4; 225 padding: 10px 0;
163 } 226
227 ul {
228 li {
229 font-size: 10px;
230 line-height: 1.4;
164 } 231 }
165 img{height: 60px;}
166 p{font-size: 10px;line-height: 1.4;}
167 .copyright{font-size: 10px;line-height: 1.4;}
168 } 232 }
233
234 img {
235 height: 60px;
236 }
237
238 p {
239 font-size: 10px;
240 line-height: 1.4;
241 }
242
243 .copyright {
244 font-size: 10px;
245 line-height: 1.4;
246 }
247 }
169 } 248 }
170 .ffoot{display: inline-flex; 249
171 img{width: 20px;height: 20px;display: inline-block;position: relative;top: 4px;margin-right: 4px;} 250 .ffoot {
251 display: inline-flex;
252
253 img {
254 width: 20px;
255 height: 20px;
256 display: inline-block;
257 position: relative;
258 top: 4px;
259 margin-right: 4px;
260 }
172 } 261 }
173 </style> 262 </style>
......
...@@ -92,6 +92,8 @@ ...@@ -92,6 +92,8 @@
92 <div v-if="labelObj.tv==1"><img src="@/assets/img/svg/tag18@2x.png"/>{{ language==0 ?'电视': 'tv' }}</div> 92 <div v-if="labelObj.tv==1"><img src="@/assets/img/svg/tag18@2x.png"/>{{ language==0 ?'电视': 'tv' }}</div>
93 <div v-if="labelObj.hours==1"><img src="@/assets/img/svg/tag19@2x.png"/>{{ language==0 ?'24小时前台': '24Hours Available' }}</div> 93 <div v-if="labelObj.hours==1"><img src="@/assets/img/svg/tag19@2x.png"/>{{ language==0 ?'24小时前台': '24Hours Available' }}</div>
94 <div v-if="labelObj.breakfast==1"><img src="@/assets/img/svg/tag20@2x.png"/>{{ language==0 ?'早餐': 'breakfast' }}</div> 94 <div v-if="labelObj.breakfast==1"><img src="@/assets/img/svg/tag20@2x.png"/>{{ language==0 ?'早餐': 'breakfast' }}</div>
95 <div v-if="labelObj.ntatorium==1"><img src="@/assets/img/svg/tag21@2x.png"/>{{ language==0 ?'泳池': 'ntatorium' }}</div>
96 <div v-if="labelObj.gymnasium==1"><img src="@/assets/img/svg/tag22@2x.png"/>{{ language==0 ?'健身房': 'gymnasium' }}</div>
95 </div> 97 </div>
96 </el-card> 98 </el-card>
97 99
......
...@@ -16,12 +16,12 @@ ...@@ -16,12 +16,12 @@
16 <el-col :sm="12" :lg="4" :xs="12"> 16 <el-col :sm="12" :lg="4" :xs="12">
17 <div class="item" @click="goMedia"><img src="@/assets/dance/btn07.png">媒体注册</div> 17 <div class="item" @click="goMedia"><img src="@/assets/dance/btn07.png">媒体注册</div>
18 </el-col> 18 </el-col>
19 <!-- <el-col :sm="12" :lg="4" :xs="12">--> 19 <!-- <el-col :sm="12" :lg="4" :xs="12">-->
20 <!-- <div class="item" @click="goAround"><img src="@/assets/dance/btn06.png">周边活动</div>--> 20 <!-- <div class="item" @click="goAround"><img src="@/assets/dance/btn06.png">周边活动</div>-->
21 <!-- </el-col>--> 21 <!-- </el-col>-->
22 <!-- <el-col :sm="12" :lg="4" :xs="12">--> 22 <!-- <el-col :sm="12" :lg="4" :xs="12">-->
23 <!-- <div class="item" @click="liveClick"><img src="@/assets/dance/btn05.png">赛事直播</div>--> 23 <!-- <div class="item" @click="liveClick"><img src="@/assets/dance/btn05.png">赛事直播</div>-->
24 <!-- </el-col>--> 24 <!-- </el-col>-->
25 </el-row> 25 </el-row>
26 </div> 26 </div>
27 <div class="itemBox_en" v-else> 27 <div class="itemBox_en" v-else>
...@@ -41,18 +41,18 @@ ...@@ -41,18 +41,18 @@
41 <el-col :sm="12" :lg="4" :xs="12"> 41 <el-col :sm="12" :lg="4" :xs="12">
42 <div class="item" @click="goMedia"><img src="@/assets/dance/btn07.png">Media Registration</div> 42 <div class="item" @click="goMedia"><img src="@/assets/dance/btn07.png">Media Registration</div>
43 </el-col> 43 </el-col>
44 <!-- <el-col :sm="12" :lg="4" :xs="12">--> 44 <!-- <el-col :sm="12" :lg="4" :xs="12">-->
45 <!-- <div class="item" @click="goAround"><img src="@/assets/dance/btn06.png">Around Activity</div>--> 45 <!-- <div class="item" @click="goAround"><img src="@/assets/dance/btn06.png">Around Activity</div>-->
46 <!-- </el-col>--> 46 <!-- </el-col>-->
47 47
48 <!-- <el-col :sm="12" :lg="4" :xs="12">--> 48 <!-- <el-col :sm="12" :lg="4" :xs="12">-->
49 <!-- <div class="item" @click="liveClick"><img src="@/assets/dance/btn05.png">live streaming</div>--> 49 <!-- <div class="item" @click="liveClick"><img src="@/assets/dance/btn05.png">live streaming</div>-->
50 <!-- </el-col>--> 50 <!-- </el-col>-->
51 </el-row> 51 </el-row>
52 </div> 52 </div>
53 <order-remark ref="orderRemarkRef" @submit="goBooking"/> 53 <order-remark ref="orderRemarkRef" @submit="goBooking"/>
54 <affix-invitation ref="dialogInvitationRef"/> 54 <affix-invitation ref="dialogInvitationRef"/>
55 <!-- 媒体注册--> 55 <!-- 媒体注册-->
56 <media-register ref="mediaRegisterRef"/> 56 <media-register ref="mediaRegisterRef"/>
57 </template> 57 </template>
58 58
...@@ -99,16 +99,16 @@ watch(matchId, (val) => { ...@@ -99,16 +99,16 @@ watch(matchId, (val) => {
99 form.value = null 99 form.value = null
100 }) 100 })
101 101
102 match.getInfoByCptId({ cptId:props.matchId }).then((res) => { 102 match.getInfoByCptId({cptId: props.matchId}).then((res) => {
103 liveData.value = res.data || {} 103 liveData.value = res.data || {}
104 }) 104 })
105 } 105 }
106 }) 106 })
107 107
108 const liveClick = () => { 108 const liveClick = () => {
109 if (liveData.value.videoStatus=="1") { 109 if (liveData.value.videoStatus == "1") {
110 110
111 if(language.value==0){ 111 if (language.value == 0) {
112 112
113 window.open(liveData.value.videoUrlCn) 113 window.open(liveData.value.videoUrlCn)
114 } else { 114 } else {
...@@ -124,7 +124,7 @@ const goAbout = () => { ...@@ -124,7 +124,7 @@ const goAbout = () => {
124 } 124 }
125 const goAround = () => { 125 const goAround = () => {
126 //周边活动 126 //周边活动
127 router.push({path: `/about/wuDao`,query: {activeIndex: '2'}}) 127 router.push({path: `/about/wuDao`, query: {activeIndex: '2'}})
128 } 128 }
129 129
130 onMounted(() => { 130 onMounted(() => {
...@@ -135,6 +135,7 @@ function building() { ...@@ -135,6 +135,7 @@ function building() {
135 ElMessage.warning(language.value == 0 ? '感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。' : 'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.') 135 ElMessage.warning(language.value == 0 ? '感谢您对本次比赛的关注,该服务暂无可预订信息,敬请期待。' : 'Thank you for your attention to this competition. The service is currently unavailable for booking. Please stay tuned.')
136 return 136 return
137 } 137 }
138
138 function applyInvitation() { 139 function applyInvitation() {
139 var obj = { 140 var obj = {
140 title: language.value == 0 ? '邀请函申请' : 'Visa Invitation Letter ', 141 title: language.value == 0 ? '邀请函申请' : 'Visa Invitation Letter ',
...@@ -142,13 +143,18 @@ function applyInvitation() { ...@@ -142,13 +143,18 @@ function applyInvitation() {
142 } 143 }
143 proxy.$refs['dialogInvitationRef'].open(obj) 144 proxy.$refs['dialogInvitationRef'].open(obj)
144 } 145 }
146
145 const user = useUserStore().user 147 const user = useUserStore().user
148
146 function goMedia() { 149 function goMedia() {
150 proxy.$modal.msgWarning(language.value == 0 ? '暂未开放' :'Not yet open')
151 return;
152
147 //如果没登录 153 //如果没登录
148 if (!user) { 154 if (!user) {
149 ElMessage({ 155 ElMessage({
150 type: 'warning', 156 type: 'warning',
151 message: language.value == 0 ? '请先登录' : 'Please log in first', 157 message: language.value == 0 ? '请先登录' : 'Please login first',
152 }) 158 })
153 return 159 return
154 } 160 }
...@@ -162,16 +168,16 @@ function popRemark(type) { ...@@ -162,16 +168,16 @@ function popRemark(type) {
162 return 168 return
163 } 169 }
164 170
165 if(type == '0'){ 171 if (type == '0') {
166 // 签证 172 // 签证
167 if(language.value === 0){ 173 if (language.value === 0) {
168 ElMessage.warning('请切换英文页面办理') 174 ElMessage.warning('请切换英文页面办理')
169 return 175 return
170 } else { 176 } else {
171 if (!user) { 177 if (!user) {
172 ElMessage({ 178 ElMessage({
173 type: 'warning', 179 type: 'warning',
174 message: language.value == 0 ? '请先登录' : 'Please log in first', 180 message: language.value == 0 ? '请先登录' : 'Please login first',
175 }) 181 })
176 return 182 return
177 } 183 }
...@@ -200,20 +206,20 @@ function popRemark(type) { ...@@ -200,20 +206,20 @@ function popRemark(type) {
200 proxy.$refs['orderRemarkRef'].open(params) 206 proxy.$refs['orderRemarkRef'].open(params)
201 } 207 }
202 208
203 function goBooking(n) { 209 function goBooking(n, f) {
204 switch (n) { 210 switch (n) {
205 case 10: 211 case 10:
206 // 票务 212 // 票务
207 213
208 // router.push({ 214 // router.push({
209 // path: `/booking/ticket/${props.matchId}`, 215 // path: `/booking/ticket/${props.matchId}`,
210 // params: {id:props.matchId}, 216 // params: {id:props.matchId},
211 // query: {id: props.matchId} 217 // query: {id: props.matchId}
212 // }) 218 // })
213 break; 219 break;
214 case 1: 220 case 1:
215 //酒店 221 //酒店
216 router.push({path: `/booking/hotel/${props.matchId}`}) 222 router.push({path: `/booking/hotel/${props.matchId}`, query: {flag: f}})
217 break; 223 break;
218 case 2: 224 case 2:
219 //车辆 225 //车辆
...@@ -236,29 +242,43 @@ function goBooking(n) { ...@@ -236,29 +242,43 @@ function goBooking(n) {
236 </script> 242 </script>
237 243
238 <style scoped lang="scss"> 244 <style scoped lang="scss">
239 .itemBox,.itemBox_en { 245 .itemBox, .itemBox_en {
240 padding: 20px;background: #fff;box-shadow: 0 0 46px 0 rgba(1,16,64,0.08); 246 padding: 20px;
247 background: #fff;
248 box-shadow: 0 0 46px 0 rgba(1, 16, 64, 0.08);
241 border-radius: 20px; 249 border-radius: 20px;
242 } 250 }
243 251
244 :deep(.el-col){ max-width: 20%;flex: 0 0 20%;} 252 :deep(.el-col) {
253 max-width: 20%;
254 flex: 0 0 20%;
255 }
256
245 .item { 257 .item {
246 //box-shadow: 0px 0px 21px 0px rgba(41, 23, 101, 0.14); 258 //box-shadow: 0px 0px 21px 0px rgba(41, 23, 101, 0.14);
247 padding: 10px 0; 259 padding: 10px 0;
248 display: flex; 260 display: flex;
249 align-items: center;justify-content: center; 261 align-items: center;
262 justify-content: center;
250 font-size: 20px; 263 font-size: 20px;
251 background: url("@/assets/dance/btn_bg.png") no-repeat left #FFFFFF; 264 background: url("@/assets/dance/btn_bg.png") no-repeat left #FFFFFF;
252 background-size: 100% 100%; 265 background-size: 100% 100%;
253 border-radius: 15px;gap: 10px; 266 border-radius: 15px;
267 gap: 10px;
254 268
255 img {object-fit: contain; 269 img {
256 width: 75px;height: 75px; 270 object-fit: contain;
271 width: 75px;
272 height: 75px;
257 } 273 }
258 } 274 }
275
259 .itemBox_en .item { 276 .itemBox_en .item {
260 flex-direction: column;text-align: center;text-transform: uppercase; 277 flex-direction: column;
261 height: 100%; 278 text-align: center;
279 text-transform: uppercase;
280 height: 100%;
281
262 img { 282 img {
263 position: relative; 283 position: relative;
264 transition: all 0.2s; 284 transition: all 0.2s;
...@@ -278,11 +298,23 @@ height: 100%; ...@@ -278,11 +298,23 @@ height: 100%;
278 } 298 }
279 299
280 @media screen and (max-width: 768px) { 300 @media screen and (max-width: 768px) {
281 .itemBox,.itemBox_en{padding: 0 20px 0} 301 .itemBox, .itemBox_en {
282 .item{font-size: 16px;height: auto !important; 302 padding: 0 20px 0
283 padding: 15px 0;margin: 10px 0; 303 }
284 img{width: 50px;height: 50px} 304 .item {
305 font-size: 16px;
306 height: auto !important;
307 padding: 15px 0;
308 margin: 10px 0;
309
310 img {
311 width: 50px;
312 height: 50px
313 }
314 }
315 :deep(.el-col) {
316 max-width: 50%;
317 flex: 0 0 50%;
285 } 318 }
286 :deep(.el-col){ max-width: 50%;flex: 0 0 50%;}
287 } 319 }
288 </style> 320 </style>
......
1 <template> 1 <template>
2 <el-dialog :title="title" v-model="show" width="400px" @close="close"> 2 <el-dialog :title="title" v-model="show" @close="close">
3 <div> 3 <div>
4 <h2 class="text-warning text-center" v-if="cptName">{{cptName}}</h2> 4 <h2 class="text-warning text-center" v-if="cptName">{{cptName}}</h2>
5 5
...@@ -9,6 +9,15 @@ ...@@ -9,6 +9,15 @@
9 <div v-if="type==4" class="plr20" v-html="form.reserveDesMeal"></div> 9 <div v-if="type==4" class="plr20" v-html="form.reserveDesMeal"></div>
10 <div v-if="type==5" class="plr20" v-html="form.reserveDesPhoto"></div> 10 <div v-if="type==5" class="plr20" v-html="form.reserveDesPhoto"></div>
11 <div v-if="type==10" class="plr20" v-html="form.reserveDesTitck"></div> 11 <div v-if="type==10" class="plr20" v-html="form.reserveDesTitck"></div>
12
13
14 <el-row v-if="type==1" justify="center">
15 <el-radio-group v-model="hotelType">
16 <el-radio label="0">{{language==0?'运动队酒店':'Team Hotel Reservation'}}</el-radio>
17 <el-radio label="1">{{language==0?'执委大会酒店':'Conference Hotel Reservation'}}</el-radio>
18 </el-radio-group>
19 </el-row>
20
12 </div> 21 </div>
13 <template #footer> 22 <template #footer>
14 <div class="dialog-footer text-center"> 23 <div class="dialog-footer text-center">
...@@ -31,6 +40,8 @@ const title = ref('') ...@@ -31,6 +40,8 @@ const title = ref('')
31 const cptName = ref('') 40 const cptName = ref('')
32 const show = ref(false) 41 const show = ref(false)
33 const form = ref({}) 42 const form = ref({})
43 const hotelType= ref('1')
44
34 let matchId = '' 45 let matchId = ''
35 let type = '' 46 let type = ''
36 const open = (params) => { 47 const open = (params) => {
...@@ -64,7 +75,7 @@ function ok() { ...@@ -64,7 +75,7 @@ function ok() {
64 // if(!user){ 75 // if(!user){
65 // useUserStore().setVisitor() 76 // useUserStore().setVisitor()
66 // } else { 77 // } else {
67 emit('submit', type) 78 emit('submit', type, hotelType.value)
68 // } 79 // }
69 } 80 }
70 </script> 81 </script>
......
1 <template> 1 <template>
2 <el-dialog 2 <el-dialog
3 v-model="show" :title="title" width="600px" append-to-body close-icon="CircleClose" center 3 v-model="show" :title="title" append-to-body close-icon="CircleClose" center
4 :close-on-click-modal="false" class="pcloginpop" 4 :close-on-click-modal="false" class="pcloginpop"
5 destroy-on-close 5 destroy-on-close
6 > 6 >
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
24 <el-form :model="form" :rules="rules" ref="iformRef" label-position="top" v-else> 24 <el-form :model="form" :rules="rules" ref="iformRef" label-position="top" v-else>
25 <el-form-item :label="language==0?'申请人类别':'Applicant Type'" required prop="applicatType"> 25 <el-form-item :label="language==0?'申请人类别':'Applicant Type'" required prop="applicatType">
26 <el-select v-model="form.applicatType"> 26 <el-select v-model="form.applicatType">
27 <el-option label="MNA" value="1"/> 27 <el-option label="MNA/Team" value="1"/>
28 <el-option label="Technical Officials" value="2"/> 28 <el-option label="Technical Officials" value="2"/>
29 <el-option label="WT Staff" value="3"/> 29 <el-option label="WT Staff" value="3"/>
30 <el-option label="Supplier" value="4"/> 30 <el-option label="Supplier" value="4"/>
...@@ -38,6 +38,11 @@ ...@@ -38,6 +38,11 @@
38 <el-option :label="language==0?'TE/PU(外办)邀请函':'TE/PU Invitation'" value="2"/> 38 <el-option :label="language==0?'TE/PU(外办)邀请函':'TE/PU Invitation'" value="2"/>
39 </el-select> 39 </el-select>
40 </el-form-item> 40 </el-form-item>
41 <el-form-item v-if="form.invitationType=='2'" label="Proof of Employment" required prop="invitationFile">
42 <el-text type="danger">Proof of Employment(Note: This document must be issued by the invitee’s association and must bear an official stamp or signature.)</el-text>
43 <br/>
44 <file-upload v-model="form.invitationFile" :is-show-tip="false" :limit="1"></file-upload>
45 </el-form-item>
41 <el-form-item :label="language==0?'是否需要中文邀请函':'Do you need a Chinese invitation?'" required prop="chinese"> 46 <el-form-item :label="language==0?'是否需要中文邀请函':'Do you need a Chinese invitation?'" required prop="chinese">
42 <el-radio-group v-model="form.chinese"> 47 <el-radio-group v-model="form.chinese">
43 <el-radio :value="1">{{ language == 0 ? '是' : 'Yes' }}</el-radio> 48 <el-radio :value="1">{{ language == 0 ? '是' : 'Yes' }}</el-radio>
...@@ -46,18 +51,19 @@ ...@@ -46,18 +51,19 @@
46 </el-form-item> 51 </el-form-item>
47 52
48 <!-- 一般信息--> 53 <!-- 一般信息-->
49 <el-form-item :label="language==0?'国家/地区协会名':'MNA Name'" :required="form.applicatType!=2" 54 <el-form-item :label="language==0?'国家/地区协会名':'MNA/Team Name'" :required="form.applicatType==1"
50 prop="associationCode"> 55 prop="associationCode">
51 <el-select v-model="form.associationCode" filterable> 56 <el-select v-model="form.associationCode" filterable>
52 <el-option v-for="item in mnaList" :key="item.code" :label="language==0?item.nameCn:item.nameEn" 57 <el-option v-for="item in mnaList" :key="item.code" :label="language==0?item.nameCn:item.nameEn"
53 :value="item.code"/> 58 :value="item.code"/>
54 </el-select> 59 </el-select>
55 </el-form-item> 60 </el-form-item>
56 <el-form-item :label="language==0?'国家/地区协会地址':'MNA Address'" :required="form.applicatType!=2" 61 <el-form-item :label="language==0?'国家/地区协会地址':'MNA/Team Address'" :required="form.applicatType==1"
57 prop="associationAddress"> 62 prop="associationAddress">
58 <el-input v-model="form.associationAddress"/> 63 <el-input v-model="form.associationAddress"/>
59 </el-form-item> 64 </el-form-item>
60 <el-form-item :label="language==0?'邮箱':'Contact Email'" required prop="email"> 65 <el-form-item :label="language==0?'邮箱':'Contact Email'" required prop="email">
66 <el-text type="danger">Note: Notifications from the organizing committee will be sent to this email address.</el-text>
61 <el-input v-model="form.email" type="email"> 67 <el-input v-model="form.email" type="email">
62 <template #append> 68 <template #append>
63 <el-button @click="sendEmail" v-loading="codeloading"> 69 <el-button @click="sendEmail" v-loading="codeloading">
...@@ -95,7 +101,8 @@ ...@@ -95,7 +101,8 @@
95 <!--上传护照,多张--> 101 <!--上传护照,多张-->
96 <div class="cptVisaInfoBosTable"> 102 <div class="cptVisaInfoBosTable">
97 <el-form-item :label="language==0?'有效证件':'Passport Copy'" required> 103 <el-form-item :label="language==0?'有效证件':'Passport Copy'" required>
98 <ImageUpload v-model="form.passportCopy" :is-show-tip="false" :limit="100" 104 <el-text type="danger">Please ensure that the uploaded passport image is clear, complete, and free from glare or reflections.</el-text>
105 <ImageUpload v-model="form.passportCopy" :is-show-tip="false" :limit="20"
99 :action="'/league/visa/getPersonInfoFromCert/3'" 106 :action="'/league/visa/getPersonInfoFromCert/3'"
100 paramName="pic" list-type="text" :show-file-list="false" 107 paramName="pic" list-type="text" :show-file-list="false"
101 :button-text="language==0?'上传':'Upload'" @response="getPassportInfo" 108 :button-text="language==0?'上传':'Upload'" @response="getPassportInfo"
...@@ -230,7 +237,6 @@ ...@@ -230,7 +237,6 @@
230 </el-table-column> 237 </el-table-column>
231 </el-table> 238 </el-table>
232 </div> 239 </div>
233
234 </div> 240 </div>
235 <!-- 补充材料--> 241 <!-- 补充材料-->
236 <el-form-item :label="language==0?'补充材料':'Additional Documents'" prop="files"> 242 <el-form-item :label="language==0?'补充材料':'Additional Documents'" prop="files">
...@@ -266,7 +272,8 @@ const {proxy} = getCurrentInstance() ...@@ -266,7 +272,8 @@ const {proxy} = getCurrentInstance()
266 const language = useStorage('language', 0) 272 const language = useStorage('language', 0)
267 const form = ref({ 273 const form = ref({
268 gender: '0', 274 gender: '0',
269 cptVisaInfoBos: [] 275 cptVisaInfoBos: [],
276 email: user?.email,
270 }) 277 })
271 const show = ref(false) 278 const show = ref(false)
272 const codeloading = ref(false) 279 const codeloading = ref(false)
...@@ -294,7 +301,7 @@ const open = (params) => { ...@@ -294,7 +301,7 @@ const open = (params) => {
294 form.value.cptId = params.cptId 301 form.value.cptId = params.cptId
295 getCountryList() 302 getCountryList()
296 getMNAList() 303 getMNAList()
297 getVisa() 304 // getVisa()
298 } 305 }
299 defineExpose({open}) 306 defineExpose({open})
300 307
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!