0610fc57 by 杨炀

no message

1 parent 261424a0
1 # 页面标题
2 VITE_APP_TITLE = 中跆协后台管理系统
3
4 # 开发环境配置
5 VITE_APP_ENV = 'development'
6
7 # 中跆协管理系统/开发环境
8 VITE_APP_BASE_API = '/dev-api'
9
10 # 应用访问路径 例如使用前缀 /admin/
11 VITE_APP_CONTEXT_PATH = '/'
12
13 # 监控地址
14 VITE_APP_MONITRO_ADMIN = 'http://localhost:9090/admin/login'
15
16 # xxl-job 控制台地址
17 VITE_APP_XXL_JOB_ADMIN = 'http://localhost:9100/xxl-job-admin'
18
19 VITE_APP_SOCKET_URL='http://192.168.1.133:8088'
1 # 页面标题
2 VITE_APP_TITLE = 中跆协后台管理系统
3
4 # 生产环境配置
5 VITE_APP_ENV = 'production'
6
7 # 应用访问路径 例如使用前缀 /admin/
8 VITE_APP_CONTEXT_PATH = '/'
9
10 # 监控地址
11 VITE_APP_MONITRO_ADMIN = '/admin/login'
12
13 # 监控地址
14 VITE_APP_XXL_JOB_ADMIN = '/xxl-job-admin'
15
16 # 中跆协管理系统/生产环境
17 VITE_APP_BASE_API = '/prod-api'
18
19 # 是否在打包时开启压缩,支持 gzip 和 brotli
20 VITE_BUILD_COMPRESS = gzip
1 # 页面标题
2 VITE_APP_TITLE = 中跆协后台管理系统
3
4 # 生产环境配置
5 VITE_APP_ENV = 'production'
6
7 # 应用访问路径 例如使用前缀 /admin/
8 VITE_APP_CONTEXT_PATH = '/'
9
10 # 监控地址
11 VITE_APP_MONITRO_ADMIN = '/admin/login'
12
13 # 监控地址
14 VITE_APP_XXL_JOB_ADMIN = '/xxl-job-admin'
15
16 # 中跆协管理系统/测试环境
17 VITE_APP_BASE_API = '/stage-api'
18
19 # 是否在打包时开启压缩,支持 gzip 和 brotli
20 VITE_BUILD_COMPRESS = gzip
21
22 VITE_APP_SOCKET_URL='http://192.168.1.133:8088'
...\ No newline at end of file ...\ No newline at end of file
...@@ -6,9 +6,9 @@ ...@@ -6,9 +6,9 @@
6 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
7 <meta name="renderer" content="webkit"> 7 <meta name="renderer" content="webkit">
8 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> 8 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
9 <link rel="icon" href="/ico.png"> 9 <link rel="icon" href="/favicon.ico">
10 <title>中跆协管理系统</title> 10 <title>亚洲体育舞蹈节</title>
11 <!-- <script src="./browser.js"></script>--> 11 <!-- <script src="./browser.js"></script>-->
12 <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]--> 12 <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
13 <style> 13 <style>
14 html, 14 html,
...@@ -202,15 +202,15 @@ ...@@ -202,15 +202,15 @@
202 </head> 202 </head>
203 203
204 <body> 204 <body>
205 <div id="app"> 205 <div id="app">
206 <div id="loader-wrapper"> 206 <div id="loader-wrapper">
207 <div id="loader"></div> 207 <div id="loader"></div>
208 <div class="loader-section section-left"></div> 208 <div class="loader-section section-left"></div>
209 <div class="loader-section section-right"></div> 209 <div class="loader-section section-right"></div>
210 <div class="load_title">正在加载系统资源,请耐心等待</div> 210 <!-- <div class="load_title">正在加载系统资源,请耐心等待</div>-->
211 </div> 211 </div>
212 </div> 212 </div>
213 <script type="module" src="/src/main.js"></script> 213 <script type="module" src="/src/main.js"></script>
214 </body> 214 </body>
215 215
216 </html> 216 </html>
......
1 <!DOCTYPE html>
2 <html>
3
4 <head>
5 <meta charset="utf-8">
6 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
7 <meta name="renderer" content="webkit">
8 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
9 <link rel="icon" href="/favicon.ico">
10 <title>亚洲舞蹈大赛</title>
11 <!-- <script src="./browser.js"></script>-->
12 <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
13 <style>
14 html,
15 body,
16 #app {
17 height: 100%;
18 margin: 0px;
19 padding: 0px;
20 }
21
22 .chromeframe {
23 margin: 0.2em 0;
24 background: #ccc;
25 color: #000;
26 padding: 0.2em 0;
27 }
28
29 #loader-wrapper {
30 position: fixed;
31 top: 0;
32 left: 0;
33 width: 100%;
34 height: 100%;
35 z-index: 999999;
36 }
37
38 #loader {
39 display: block;
40 position: relative;
41 left: 50%;
42 top: 50%;
43 width: 150px;
44 height: 150px;
45 margin: -75px 0 0 -75px;
46 border-radius: 50%;
47 border: 3px solid transparent;
48 border-top-color: #FFF;
49 -webkit-animation: spin 2s linear infinite;
50 -ms-animation: spin 2s linear infinite;
51 -moz-animation: spin 2s linear infinite;
52 -o-animation: spin 2s linear infinite;
53 animation: spin 2s linear infinite;
54 z-index: 1001;
55 }
56
57 #loader:before {
58 content: "";
59 position: absolute;
60 top: 5px;
61 left: 5px;
62 right: 5px;
63 bottom: 5px;
64 border-radius: 50%;
65 border: 3px solid transparent;
66 border-top-color: #FFF;
67 -webkit-animation: spin 3s linear infinite;
68 -moz-animation: spin 3s linear infinite;
69 -o-animation: spin 3s linear infinite;
70 -ms-animation: spin 3s linear infinite;
71 animation: spin 3s linear infinite;
72 }
73
74 #loader:after {
75 content: "";
76 position: absolute;
77 top: 15px;
78 left: 15px;
79 right: 15px;
80 bottom: 15px;
81 border-radius: 50%;
82 border: 3px solid transparent;
83 border-top-color: #FFF;
84 -moz-animation: spin 1.5s linear infinite;
85 -o-animation: spin 1.5s linear infinite;
86 -ms-animation: spin 1.5s linear infinite;
87 -webkit-animation: spin 1.5s linear infinite;
88 animation: spin 1.5s linear infinite;
89 }
90
91
92 @-webkit-keyframes spin {
93 0% {
94 -webkit-transform: rotate(0deg);
95 -ms-transform: rotate(0deg);
96 transform: rotate(0deg);
97 }
98
99 100% {
100 -webkit-transform: rotate(360deg);
101 -ms-transform: rotate(360deg);
102 transform: rotate(360deg);
103 }
104 }
105
106 @keyframes spin {
107 0% {
108 -webkit-transform: rotate(0deg);
109 -ms-transform: rotate(0deg);
110 transform: rotate(0deg);
111 }
112
113 100% {
114 -webkit-transform: rotate(360deg);
115 -ms-transform: rotate(360deg);
116 transform: rotate(360deg);
117 }
118 }
119
120
121 #loader-wrapper .loader-section {
122 position: fixed;
123 top: 0;
124 width: 51%;
125 height: 100%;
126 background: #7171C6;
127 z-index: 1000;
128 -webkit-transform: translateX(0);
129 -ms-transform: translateX(0);
130 transform: translateX(0);
131 }
132
133 #loader-wrapper .loader-section.section-left {
134 left: 0;
135 }
136
137 #loader-wrapper .loader-section.section-right {
138 right: 0;
139 }
140
141
142 .loaded #loader-wrapper .loader-section.section-left {
143 -webkit-transform: translateX(-100%);
144 -ms-transform: translateX(-100%);
145 transform: translateX(-100%);
146 -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
147 transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
148 }
149
150 .loaded #loader-wrapper .loader-section.section-right {
151 -webkit-transform: translateX(100%);
152 -ms-transform: translateX(100%);
153 transform: translateX(100%);
154 -webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
155 transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
156 }
157
158 .loaded #loader {
159 opacity: 0;
160 -webkit-transition: all 0.3s ease-out;
161 transition: all 0.3s ease-out;
162 }
163
164 .loaded #loader-wrapper {
165 visibility: hidden;
166 -webkit-transform: translateY(-100%);
167 -ms-transform: translateY(-100%);
168 transform: translateY(-100%);
169 -webkit-transition: all 0.3s 1s ease-out;
170 transition: all 0.3s 1s ease-out;
171 }
172
173 .no-js #loader-wrapper {
174 display: none;
175 }
176
177 .no-js h1 {
178 color: #222222;
179 }
180
181 #loader-wrapper .load_title {
182 font-family: 'Open Sans';
183 color: #FFF;
184 font-size: 19px;
185 width: 100%;
186 text-align: center;
187 z-index: 9999999999999;
188 position: absolute;
189 top: 60%;
190 opacity: 1;
191 line-height: 30px;
192 }
193
194 #loader-wrapper .load_title span {
195 font-weight: normal;
196 font-style: italic;
197 font-size: 13px;
198 color: #FFF;
199 opacity: 0.5;
200 }
201 </style>
202 </head>
203
204 <body>
205 <div id="app">
206 <div id="loader-wrapper">
207 <div id="loader"></div>
208 <div class="loader-section section-left"></div>
209 <div class="loader-section section-right"></div>
210 <div class="load_title">正在加载系统资源,请耐心等待</div>
211 </div>
212 </div>
213 <script type="module" src="/src/mainPc.js"></script>
214 </body>
215
216 </html>
1 <template> 1 <template>
2 <!-- <el-config-provider :locale="locale">-->
3 <router-view /> 2 <router-view />
4 <!-- </el-config-provider>-->
5
6 <reset-pwd ref="resetPwdRef" /> 3 <reset-pwd ref="resetPwdRef" />
7 </template> 4 </template>
8 5
9 <script setup> 6 <script setup>
10 import useSettingsStore from '@/store/modules/settings'
11 import { handleThemeStyle } from '@/utils/theme'
12 import { nextTick, onMounted, watch } from 'vue' 7 import { nextTick, onMounted, watch } from 'vue'
13 import useUserStore from '@/store/modules/user' 8 import { handleThemeStyle } from '@/utils/theme'
9 import useSettingsStore from '@/store/modules/settings'
14 import ResetPwd from '@/views/system/user/profile/components/resetPwd' 10 import ResetPwd from '@/views/system/user/profile/components/resetPwd'
11 import useUserStore from '@/store/modules/user'
15 import { getCurrentInstance } from '@vue/runtime-core' 12 import { getCurrentInstance } from '@vue/runtime-core'
16 // import { ElConfigProvider } from 'element-plus'
17 // import locale from 'element-plus/lib/locale/lang/zh-cn'
18 13
19 const userStore = useUserStore() 14 const userStore = useUserStore()
20 const { proxy } = getCurrentInstance() 15 const { proxy } = getCurrentInstance()
21 16
22 onMounted(() => { 17 onMounted(() => {
23 document.body.style.setProperty('--el-color-primary', '#453DEA') 18 document.body.style.setProperty('--el-color-primary', '#453DEA')
24 // 鼠标移动到按钮上方时显示的颜色,默认蓝色,可以和primary设置的颜色不一样
25 document.body.style.setProperty('--el-color-primary-light-3', '#8623FC') 19 document.body.style.setProperty('--el-color-primary-light-3', '#8623FC')
26 20 document.body.style.setProperty('--el-button-hover-bg-color', '#fff')
27 document.body.style.setProperty('--el-color-success', '#29c490')
28 document.body.style.setProperty('--el-color-success-light-3', '#54d0a6')
29 // danger
30 document.body.style.setProperty('--el-color-danger', '#d51515')
31 document.body.style.setProperty('--el-color-danger-light-3', '#d44')
32 // warning
33 document.body.style.setProperty('--el-color-warning', '#e6a23c')
34 document.body.style.setProperty('--el-color-warning-light-3', '#ebb563')
35
36 nextTick(() => { 21 nextTick(() => {
37 // 初始化主题样式 22 // 初始化主题样式
38 handleThemeStyle(useSettingsStore().theme) 23 handleThemeStyle(useSettingsStore().theme)
39 }) 24 })
40 }) 25 })
41 26
42 watch(() => userStore.user?.changePassFlag, (val) => { 27 // watch(() => userStore.user?.changePassFlag, (val) => {
43 if (val === '1') { 28 // if (val === '1') {
44 proxy.$modal.confirm('密码长期未更新,请及时更新').then(() => { 29 // proxy.$modal.confirm('密码长期未更新,请及时更新').then(() => {
45 proxy.$refs['resetPwdRef'].open() 30 // proxy.$refs['resetPwdRef'].open()
46 }) 31 // })
47 } 32 // }
48 }) 33 // })
49 34
50 </script> 35 </script>
36
51 <style lang="scss"> 37 <style lang="scss">
52 .app-container{ 38 :root {
53 background-color: #F5F7F9; 39 --el-color-golden: #946A12;
54 padding:20px; 40 --el-fill-color-light: #faf5f5;
55 min-height: calc(100vh - 85px); 41 --el-button-hover-border-color: #94080B;
42 --el-button-hover-bg-color: rgba(148, 8, 11, 0.3);
43 --el-fill-color-lighter: #F6F9FE!important;
56 } 44 }
57 45
58 /* 搜索栏 */ 46 .el-button:focus, .el-button:hover {
59 .from-Card{ 47 //--el-button-hover-border-color: #94080B;
60 background-color: #fff; 48 //--el-button-hover-bg-color: transparent;
61 padding: 20px;
62 } 49 }
63 .btn-card{
64 padding: 20px;
65 background: #fff;
66 border-radius: 10px;
67 50
51 .box {
52 width: 90%;
53 max-width: 1600px;
54 margin: auto;
68 } 55 }
69 /* 表格 */
70 .table{
71 background-color: #fff;
72 padding:0 20px 10px;
73 position: relative;
74 56
57 .app-container {
58 min-height: 100vh;
75 } 59 }
76 60
77 .box{ 61 .app-main {
78 background: #fff; 62 background: #F4F4F4;
79 border-radius: 5px; 63 }
80 padding: 10px; 64
65 .el-breadcrumb__inner {
66 display: flex;
67
68 .el-icon {
69 margin: 0 4px;
70 }
71 }
72
73 li.el-select-dropdown__item {
74 height: auto;
75 }
76
77 :root {
78 --el-menu-active-color: var(--el-color-primary);
81 } 79 }
82 80
83 /* 分页 */ 81 .el-popper .el-menu {
84 .foot{ 82 background: #fff;
85 background-color: #fff; 83 }
84 .el-popper .el-menu--horizontal .el-menu .el-menu-item {
85 background: transparent;
86 justify-content: center;
86 height: 50px; 87 height: 50px;
88 font-size: 18px;
89 }
90 .el-popper .el-menu--horizontal .el-menu .el-sub-menu .el-sub-menu__title {
91 background: transparent;
92 justify-content: center;
93 height: 50px;
94 font-size: 18px;
95 }
96 .el-popper .el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title {
97 color: #fff;
87 } 98 }
88 99
100 .el-popper .el-menu--horizontal .el-menu .el-menu-item.is-active {
101 color:var(--el-color-primary);
102 }
89 103
90 .btn-top{ 104 .el-popper, .el-menu--popup {
91 margin-top: 10px; 105 border-radius: 0;
92 } 106 }
93 .el-table{ 107
94 background: url("@/assets/admin/tableBg.png") #F5FBFE no-repeat top; 108 :deep(.el-menu--popup) {
95 background-color:#F5FBFE!important; 109 min-width: 130px;padding: 0;
96 background-size: 750px;
97 --el-bg-color:#F5FBFE;
98 --el-table-border-color:#e1e4ec;
99 --el-fill-color-blank:transparent;
100 --el-fill-color-light:#fff;
101 } 110 }
102 111
103 // 审核通过添加背景色 112 .el-popper.is-light.is-pure {
104 .success-row{ 113 border: none;
105 --el-table-tr-bg-color: rgba(41, 196, 144,.15); 114 }
115
116 .el-popper {
117 .el-menu--horizontal .el-menu-item:not(.is-disabled):focus, .el-menu--horizontal .el-menu-item:not(.is-disabled):hover {
118 color: var(--el-color-primary);
119 }
120
121 .el-menu--horizontal {
122 border: none;
123 }
106 } 124 }
107 125
108 .totalCost{ 126 .home-menu {
109 font-weight: 700; 127
128 .el-menu {color: #000;}
129
130 .el-menu--horizontal>.el-menu-item {
131 transition: none;color: #000;padding: 6px 10px ;margin: 0 10px;border-radius: 18px;
132 }
133
134 .el-sub-menu .el-sub-menu__title {
135 font-size: 20px;color: #000;
136 }
137
138 .el-menu--horizontal > .el-sub-menu.is-active .el-sub-menu__title {
139 border-bottom: none;
140 color: var(--el-color-primary);
141 }
142
143 .el-menu--horizontal .el-menu .el-menu-item {
144 justify-content: center;
145 }
146
147 .el-menu--horizontal > .el-sub-menu .el-sub-menu__title:hover {
148 color: #453DEA;
149 }
150
151 .el-menu--horizontal .el-menu-item:not(.is-disabled):focus {
152
153 }
154
155 .el-menu--horizontal .el-menu-item:not(.is-disabled):hover {
156 color: #453DEA;
157 }
158
159 .el-menu--horizontal > .el-menu-item.is-active {
160 border-bottom: none;background: linear-gradient(-90deg, #8623FC, #453DEA);
161 border-radius: 18px;color: #fff!important;
162 }
163
164 .el-menu--horizontal {
165 height: 35px;
166 border-bottom: none;
167 justify-content: space-between;
168 }
169
170 .el-menu--horizontal > .el-menu-item {
171 font-size: 20px;
172 }
173 }
174
175 @media (max-width: 1600px) {
176 .el-menu--horizontal > .el-menu-item {
177 padding: 0 15px;
178 }
179 }
180
181 @media (max-width: 1500px) {
182 .home-menu .el-menu--horizontal > .el-menu-item {
183 padding: 0 10px;
184 }
185 }
186
187 @media (max-width: 1440px) {
188 .fixed_nav{ transform: scale(0.8);
189 transform-origin: left;}
190 .home-menu .el-menu--horizontal > .el-menu-item {
110 font-size: 16px; 191 font-size: 16px;
111 margin-top: 10px; 192 padding: 0 10px;
112 position: absolute; 193 }
113 bottom: 30px; 194 .home-menu .el-sub-menu .el-sub-menu__title {
114 left: 20px; 195 font-size: 16px;
115 z-index: 999; 196 }
197 .serverRow .item {
198 height: 260px;
199 }
200 .el-popper .el-menu--horizontal .el-menu .el-menu-item {
201 font-size: 16px;
202 }
203 }
204
205 //思源宋体
206 @font-face {
207 font-family: SC-song;
208 src: url("@/assets/fonts/SHSCN_regular.otf") format('otf');
209 }
210
211 .imgbox {
212 img {
213 width: 100%;
214 }
215 }
116 216
117 span{ 217 .searchpp {
118 color: orange; 218 .el-dialog__headerbtn .el-dialog__close {
119 margin-right: 20px; 219 font-size: 33px;
120 } 220 }
121 221
222 &.el-dialog {
223 padding: 0 100px;
224 --el-dialog-title-font-size: 40px;
225 --el-dialog-padding-primary: 50px 20px 0 0;
226 box-shadow: 0 2000px 0 2000px rgba(0, 0, 0, 0.6);
227 }
228
229 .el-dialog__headerbtn {
230 right: 20px;
231 top: 30px;
232 }
233 }
234 .searchPark{padding: 10px 20px;height: 100%;
235 background: #F6F6F6;
236 .el-input__suffix{color:var(--el-color-primary)}
237 .el-icon{color:var(--el-color-primary)}
238 .el-input{--el-input-icon-color:var(--el-color-primary)}
239 }
240 .flexformItem{
241 display: flex;width: 100%;
242 .el-date-editor{
243 --el-date-editor-width:100%
244 }
245 .el-input__suffix{color:var(--el-color-primary)}
246 .el-icon{color:var(--el-color-primary)}
247 .el-input{--el-input-icon-color:var(--el-color-primary)}
248 }
249
250 .topBanner{
251 .imgbox{position: relative;height: 100%;
252 img{height: 100%;object-fit: cover;}
253 }
254 h3{position: absolute;bottom: 0;color: #fff;
255 font-size: 36px;margin: 0;
256 text-align: center;width: 100%;padding: 60px 0 40px;
257 background: linear-gradient(0deg,rgba(0,0,0,0.5),rgba(0,0,0,0));
258 }
122 } 259 }
260 .tablebody{width: 100%;overflow: auto}
123 261
124 // 禁选背景色 262 @media (max-width: 800px) {
125 .disabled-row{ 263 .box{width: 96%}
126 --el-table-tr-bg-color: rgba(36, 37, 37,0.1);
127 } 264 }
128 </style> 265 </style>
......
1 <template>
2 <router-view />
3 <reset-pwd ref="resetPwdRef" />
4 </template>
5
6 <script setup>
7 import { nextTick, onMounted, watch } from 'vue'
8 import { handleThemeStyle } from '@/utils/theme'
9 import useSettingsStore from '@/store/modules/settings'
10 import ResetPwd from '@/views/system/user/profile/components/resetPwd'
11 import useUserStore from '@/store/modules/user'
12 import { getCurrentInstance } from '@vue/runtime-core'
13
14 const userStore = useUserStore()
15 const { proxy } = getCurrentInstance()
16
17 onMounted(() => {
18 document.body.style.setProperty('--el-color-primary', '#453DEA')
19 document.body.style.setProperty('--el-color-primary-light-3', '#8623FC')
20 document.body.style.setProperty('--el-button-hover-bg-color', '#fff')
21 nextTick(() => {
22 // 初始化主题样式
23 handleThemeStyle(useSettingsStore().theme)
24 })
25 })
26
27 // watch(() => userStore.user?.changePassFlag, (val) => {
28 // if (val === '1') {
29 // proxy.$modal.confirm('密码长期未更新,请及时更新').then(() => {
30 // proxy.$refs['resetPwdRef'].open()
31 // })
32 // }
33 // })
34
35 </script>
36
37 <style lang="scss">
38 :root {
39 --el-color-golden: #946A12;
40 --el-fill-color-light: #faf5f5;
41 --el-button-hover-border-color: #94080B;
42 --el-button-hover-bg-color: rgba(148, 8, 11, 0.3);
43 --el-fill-color-lighter: #F6F9FE!important;
44 }
45
46 .el-button:focus, .el-button:hover {
47 //--el-button-hover-border-color: #94080B;
48 //--el-button-hover-bg-color: transparent;
49 }
50
51 .box {
52 width: 90%;
53 max-width: 1400px;
54 margin: auto;
55 }
56
57 .app-container {
58 min-height: 100vh;
59 }
60
61 .app-main {
62 background: #F4F4F4;
63 }
64
65 .el-breadcrumb__inner {
66 display: flex;
67
68 .el-icon {
69 margin: 0 4px;
70 }
71 }
72
73 li.el-select-dropdown__item {
74 height: auto;
75 }
76
77 :root {
78 --el-menu-active-color: var(--el-color-primary);
79 }
80
81 .el-popper .el-menu {
82 background: #fff;
83 }
84 .el-popper .el-menu--horizontal .el-menu .el-menu-item {
85 background: transparent;
86 justify-content: center;
87 height: 50px;
88 font-size: 18px;
89 }
90 .el-popper .el-menu--horizontal .el-menu .el-sub-menu .el-sub-menu__title {
91 background: transparent;
92 justify-content: center;
93 height: 50px;
94 font-size: 18px;
95 }
96 .el-popper .el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title {
97 color: #fff;
98 }
99
100 .el-popper .el-menu--horizontal .el-menu .el-menu-item.is-active {
101 color:var(--el-color-primary);
102 }
103
104 .el-popper, .el-menu--popup {
105 border-radius: 0;
106 }
107
108 :deep(.el-menu--popup) {
109 min-width: 130px;padding: 0;
110 }
111
112 .el-popper.is-light.is-pure {
113 border: none;
114 }
115
116 .el-popper {
117 .el-menu--horizontal .el-menu-item:not(.is-disabled):focus, .el-menu--horizontal .el-menu-item:not(.is-disabled):hover {
118 color: var(--el-color-primary);
119 }
120
121 .el-menu--horizontal {
122 border: none;
123 }
124 }
125
126 .home-menu {
127
128 .el-menu {color: #000;}
129
130 .el-menu--horizontal>.el-menu-item {
131 transition: none;color: #000;padding: 6px 10px ;margin: 0 10px;border-radius: 18px;
132 }
133
134 .el-sub-menu .el-sub-menu__title {
135 font-size: 20px;color: #000;
136 }
137
138 .el-menu--horizontal > .el-sub-menu.is-active .el-sub-menu__title {
139 border-bottom: none;
140 color: var(--el-color-primary);
141 }
142
143 .el-menu--horizontal .el-menu .el-menu-item {
144 justify-content: center;
145 }
146
147 .el-menu--horizontal > .el-sub-menu .el-sub-menu__title:hover {
148 color: #453DEA;
149 }
150
151 .el-menu--horizontal .el-menu-item:not(.is-disabled):focus {
152
153 }
154
155 .el-menu--horizontal .el-menu-item:not(.is-disabled):hover {
156 color: #453DEA;
157 }
158
159 .el-menu--horizontal > .el-menu-item.is-active {
160 border-bottom: none;background: linear-gradient(-90deg, #8623FC, #453DEA);
161 border-radius: 18px;color: #fff!important;
162 }
163
164 .el-menu--horizontal {
165 height: 35px;
166 border-bottom: none;
167 justify-content: space-between;
168 }
169
170 .el-menu--horizontal > .el-menu-item {
171 font-size: 20px;
172 }
173 }
174
175 @media (max-width: 1600px) {
176 .el-menu--horizontal > .el-menu-item {
177 padding: 0 15px;
178 }
179 }
180
181 @media (max-width: 1500px) {
182 .home-menu .el-menu--horizontal > .el-menu-item {
183 padding: 0 10px;
184 }
185 }
186
187 @media (max-width: 1440px) {
188 .fixed_nav{ transform: scale(0.8);
189 transform-origin: left;}
190 .home-menu .el-menu--horizontal > .el-menu-item {
191 font-size: 16px;
192 padding: 0 10px;
193 }
194 .home-menu .el-sub-menu .el-sub-menu__title {
195 font-size: 16px;
196 }
197 .serverRow .item {
198 height: 260px;
199 }
200 .el-popper .el-menu--horizontal .el-menu .el-menu-item {
201 font-size: 16px;
202 }
203 }
204
205 //思源宋体
206 @font-face {
207 font-family: SC-song;
208 src: url("@/assets/fonts/SHSCN_regular.otf") format('otf');
209 }
210
211 .imgbox {
212 img {
213 width: 100%;
214 }
215 }
216
217 .searchpp {
218 .el-dialog__headerbtn .el-dialog__close {
219 font-size: 33px;
220 }
221
222 &.el-dialog {
223 padding: 0 100px;
224 --el-dialog-title-font-size: 40px;
225 --el-dialog-padding-primary: 50px 20px 0 0;
226 box-shadow: 0 2000px 0 2000px rgba(0, 0, 0, 0.6);
227 }
228
229 .el-dialog__headerbtn {
230 right: 20px;
231 top: 30px;
232 }
233 }
234 .searchPark{padding: 10px 20px;height: 100%;
235 background: #F6F6F6;
236 .el-input__suffix{color:var(--el-color-primary)}
237 .el-icon{color:var(--el-color-primary)}
238 .el-input{--el-input-icon-color:var(--el-color-primary)}
239 }
240 .flexformItem{
241 display: flex;width: 100%;
242 .el-date-editor{
243 --el-date-editor-width:100%
244 }
245 .el-input__suffix{color:var(--el-color-primary)}
246 .el-icon{color:var(--el-color-primary)}
247 .el-input{--el-input-icon-color:var(--el-color-primary)}
248 }
249
250 .topBanner{
251 .imgbox{position: relative;height: 100%;
252 img{height: 100%;object-fit: cover;}
253 }
254 h3{position: absolute;bottom: 0;color: #fff;
255 font-size: 36px;margin: 0;
256 text-align: center;width: 100%;padding: 60px 0 40px;
257 background: linear-gradient(0deg,rgba(0,0,0,0.5),rgba(0,0,0,0));
258 }
259 }
260
261
262 </style>
1 <template>
2 <!-- <el-config-provider :locale="locale">-->
3 <router-view />
4 <!-- </el-config-provider>-->
5
6 <reset-pwd ref="resetPwdRef" />
7 </template>
8
9 <script setup>
10 import useSettingsStore from '@/store/modules/settings'
11 import { handleThemeStyle } from '@/utils/theme'
12 import { nextTick, onMounted, watch } from 'vue'
13 import useUserStore from '@/store/modules/user'
14 import ResetPwd from '@/views/system/user/profile/components/resetPwd'
15 import { getCurrentInstance } from '@vue/runtime-core'
16 // import { ElConfigProvider } from 'element-plus'
17 // import locale from 'element-plus/lib/locale/lang/zh-cn'
18
19 const userStore = useUserStore()
20 const { proxy } = getCurrentInstance()
21
22 onMounted(() => {
23 document.body.style.setProperty('--el-color-primary', '#453DEA')
24 // 鼠标移动到按钮上方时显示的颜色,默认蓝色,可以和primary设置的颜色不一样
25 document.body.style.setProperty('--el-color-primary-light-3', '#8623FC')
26
27 document.body.style.setProperty('--el-color-success', '#29c490')
28 document.body.style.setProperty('--el-color-success-light-3', '#54d0a6')
29 // danger
30 document.body.style.setProperty('--el-color-danger', '#d51515')
31 document.body.style.setProperty('--el-color-danger-light-3', '#d44')
32 // warning
33 document.body.style.setProperty('--el-color-warning', '#e6a23c')
34 document.body.style.setProperty('--el-color-warning-light-3', '#ebb563')
35
36 nextTick(() => {
37 // 初始化主题样式
38 handleThemeStyle(useSettingsStore().theme)
39 })
40 })
41
42 watch(() => userStore.user?.changePassFlag, (val) => {
43 if (val === '1') {
44 proxy.$modal.confirm('密码长期未更新,请及时更新').then(() => {
45 proxy.$refs['resetPwdRef'].open()
46 })
47 }
48 })
49
50 </script>
51 <style lang="scss">
52 .app-container{
53 background-color: #F5F7F9;
54 padding:20px;
55 min-height: calc(100vh - 85px);
56 }
57
58 /* 搜索栏 */
59 .from-Card{
60 background-color: #fff;
61 padding: 20px;
62 }
63 .btn-card{
64 padding: 20px;
65 background: #fff;
66 border-radius: 10px;
67
68 }
69 /* 表格 */
70 .table{
71 background-color: #fff;
72 padding:0 20px 10px;
73 position: relative;
74
75 }
76
77 .box{
78 background: #fff;
79 border-radius: 5px;
80 padding: 10px;
81 }
82
83 /* 分页 */
84 .foot{
85 background-color: #fff;
86 height: 50px;
87 }
88
89
90 .btn-top{
91 margin-top: 10px;
92 }
93 .el-table{
94 background: url("@/assets/admin/tableBg.png") #F5FBFE no-repeat top;
95 background-color:#F5FBFE!important;
96 background-size: 750px;
97 --el-bg-color:#F5FBFE;
98 --el-table-border-color:#e1e4ec;
99 --el-fill-color-blank:transparent;
100 --el-fill-color-light:#fff;
101 }
102
103 // 审核通过添加背景色
104 .success-row{
105 --el-table-tr-bg-color: rgba(41, 196, 144,.15);
106 }
107
108 .totalCost{
109 font-weight: 700;
110 font-size: 16px;
111 margin-top: 10px;
112 position: absolute;
113 bottom: 30px;
114 left: 20px;
115 z-index: 999;
116
117 span{
118 color: orange;
119 margin-right: 20px;
120 }
121
122 }
123
124 // 禁选背景色
125 .disabled-row{
126 --el-table-tr-bg-color: rgba(36, 37, 37,0.1);
127 }
128 </style>

291 KB | W: | H:

129 KB | W: | H:

src/assets/dance/map.png
src/assets/dance/map.png
src/assets/dance/map.png
src/assets/dance/map.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -496,13 +496,13 @@ img{display: block;} ...@@ -496,13 +496,13 @@ img{display: block;}
496 } 496 }
497 } 497 }
498 .bg-lineg{ background: linear-gradient(90deg, #8623FC, #453DEA);color: #fff;} 498 .bg-lineg{ background: linear-gradient(90deg, #8623FC, #453DEA);color: #fff;}
499 .lineHead{height: 50px;padding: 15px; 499 .lineHead{height: 50px;padding: 15px;overflow: auto;
500 background: linear-gradient(90deg, #8623FC, #453DEA); 500 background: linear-gradient(90deg, #8623FC, #453DEA);
501 h3{margin: 0;background: #FFFFFF; 501 h3{margin: 0;background: #FFFFFF;
502 font-size: 18px; 502 font-size: 18px;
503 color: var(--el-color-primary); 503 color: var(--el-color-primary);
504 border-radius: 5px;display: inline;padding: 5px 15px;} 504 border-radius: 5px;display: inline;padding: 5px 15px;}
505 ul{margin: 0;padding: 0; 505 ul{margin: 0;padding: 0;white-space: nowrap;
506 li{border-radius: 5px;display: inline;padding: 5px 15px; font-size: 18px; 506 li{border-radius: 5px;display: inline;padding: 5px 15px; font-size: 18px;
507 color: #fff;cursor: pointer;} 507 color: #fff;cursor: pointer;}
508 li.active{background: #FFFFFF;color: var(--el-color-primary);cursor: default;} 508 li.active{background: #FFFFFF;color: var(--el-color-primary);cursor: default;}
...@@ -510,7 +510,7 @@ img{display: block;} ...@@ -510,7 +510,7 @@ img{display: block;}
510 } 510 }
511 .news-l-r{ 511 .news-l-r{
512 .item{display: flex;border-bottom: 1px dashed #EEEEEE;padding: 15px;cursor: pointer; 512 .item{display: flex;border-bottom: 1px dashed #EEEEEE;padding: 15px;cursor: pointer;
513 .imgbox{aspect-ratio: 16/9;width: 110px;margin-right: 10px; flex: 0 0 auto; 513 .imgbox{aspect-ratio: 16/9;width: 200px;margin-right: 10px; flex: 0 0 auto;
514 img{height: 100%;object-fit: cover;} 514 img{height: 100%;object-fit: cover;}
515 } 515 }
516 .info{ flex: 1 1 auto; 516 .info{ flex: 1 1 auto;
...@@ -535,6 +535,7 @@ img{display: block;} ...@@ -535,6 +535,7 @@ img{display: block;}
535 } 535 }
536 .item:hover{ 536 .item:hover{
537 h3{color:var(--el-color-primary);} 537 h3{color:var(--el-color-primary);}
538 h2{color:var(--el-color-primary);}
538 } 539 }
539 } 540 }
540 .nakedTitle{display: flex;justify-content: space-between;align-items: baseline; 541 .nakedTitle{display: flex;justify-content: space-between;align-items: baseline;
...@@ -552,7 +553,7 @@ img{display: block;} ...@@ -552,7 +553,7 @@ img{display: block;}
552 } 553 }
553 .topNews{align-items: flex-start;} 554 .topNews{align-items: flex-start;}
554 .carouselImg{position: relative;height: 100%; 555 .carouselImg{position: relative;height: 100%;
555 background: url("@/assets/v1/default.jpg") #f4f4f4 no-repeat center; 556 background: #f4f4f4;
556 background-size: cover; 557 background-size: cover;
557 img{object-fit: cover;height: 100%;} 558 img{object-fit: cover;height: 100%;}
558 .date{width: 60px;height: 60px;text-align: center; 559 .date{width: 60px;height: 60px;text-align: center;
...@@ -911,7 +912,7 @@ img{display: block;} ...@@ -911,7 +912,7 @@ img{display: block;}
911 912
912 .item{ 913 .item{
913 .imgbox{ 914 .imgbox{
914 background: url("@/assets/v1/default.jpg") #f4f4f4 no-repeat center; 915 background: #f4f4f4;
915 background-size: cover; 916 background-size: cover;
916 } 917 }
917 } 918 }
...@@ -960,8 +961,8 @@ img{display: block;} ...@@ -960,8 +961,8 @@ img{display: block;}
960 line-height: 1;padding-left: 10px; 961 line-height: 1;padding-left: 10px;
961 border-left: 1px solid var(--el-color-primary); 962 border-left: 1px solid var(--el-color-primary);
962 color: var(--el-color-primary);} 963 color: var(--el-color-primary);}
963 @media (max-width: 500px) { 964 @media (max-width: 800px) {
964 .app-main{height: 100vh; 965 .app-main{
965 overflow: auto; 966 overflow: auto;
966 background: #F7F8FA;} 967 background: #F7F8FA;}
967 } 968 }
...@@ -1378,3 +1379,16 @@ img{display: block;} ...@@ -1378,3 +1379,16 @@ img{display: block;}
1378 span:hover{font-weight: bold;} 1379 span:hover{font-weight: bold;}
1379 .active{color: var(--el-color-primary);font-weight: bold;cursor: pointer;} 1380 .active{color: var(--el-color-primary);font-weight: bold;cursor: pointer;}
1380 } 1381 }
1382 .mapBox{word-break: break-all;}
1383 @media (max-width: 800px) {
1384 //.liveImgbox{margin: 0 0 20px;}
1385 //.videoImgbox{margin: 0 0 20px;}
1386 //.picbox{margin: 0 0 20px;}
1387 .leftboderTT{font-size: 20px}
1388 .mapBox{
1389 div{padding-left: 40px;}
1390 .content{ width: 80%;left: 10%;padding:10px 20px 0 20px;}
1391 .address{margin: 30px 0;}
1392 p{text-align: left;word-break: break-all;}
1393 }
1394 }
......

200 Bytes | W: | H:

3.53 KB | W: | H:

src/assets/v1/menu.png
src/assets/v1/menu.png
src/assets/v1/menu.png
src/assets/v1/menu.png
  • 2-up
  • Swipe
  • Onion skin

399 KB | W: | H:

191 KB | W: | H:

src/assets/zhinan/map.png
src/assets/zhinan/map.png
src/assets/zhinan/map.png
src/assets/zhinan/map.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -21,7 +21,6 @@ const tagsViewStore = useTagsViewStore() ...@@ -21,7 +21,6 @@ const tagsViewStore = useTagsViewStore()
21 <style lang="scss" scoped> 21 <style lang="scss" scoped>
22 .app-main { 22 .app-main {
23 /* 50= navbar 50 */ 23 /* 50= navbar 50 */
24 min-height: calc(100vh - 50px);
25 width: 100%; 24 width: 100%;
26 position: relative; 25 position: relative;
27 overflow: hidden; 26 overflow: hidden;
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
5 <el-col :lg="12" :md="12" :xs="24"> 5 <el-col :lg="12" :md="12" :xs="24">
6 <ul> 6 <ul>
7 <li> 7 <li>
8 <router-link to="/about">亚洲舞蹈大赛版权所有</router-link> 8 <router-link to="/about">亚洲体育舞蹈节版权所有</router-link>
9 </li> 9 </li>
10 <li> 10 <li>
11 <a target="_blank" href="https://beian.miit.gov.cn/">ICP备案号:京ICP备2022009428号-1</a> 11 <a target="_blank" href="https://beian.miit.gov.cn/">ICP备案号:京ICP备2022009428号-1</a>
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
30 <router-link to="/about">All rights reserved WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024</router-link> 30 <router-link to="/about">All rights reserved WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024</router-link>
31 </li> 31 </li>
32 <li> 32 <li>
33 Phone: Miss Chang +86 13921876678 33 Phone: Miss Chang +86 18888888888
34 </li> 34 </li>
35 </ul> 35 </ul>
36 </el-col> 36 </el-col>
......
1 <template> 1 <template>
2 <div class="topNav forPc"> 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 </router-link> 5 </router-link>
6 6
7 <div class="home-menu"> 7 <div class="home-menu forPc">
8 <el-menu 8 <el-menu
9 v-if="language==0" 9 v-if="language==0"
10 router :default-active="activeIndex" mode="horizontal" :ellipsis="false" 10 router :default-active="activeIndex" :mode="mode" :ellipsis="true"
11 popper-effect="dark" @select="handleSelect" 11 popper-effect="dark" @select="handleSelect"
12 > 12 >
13 <el-menu-item index="/">首页</el-menu-item> 13 <el-menu-item index="/">首页</el-menu-item>
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
25 </el-menu> 25 </el-menu>
26 <el-menu 26 <el-menu
27 v-if="language==1" 27 v-if="language==1"
28 router :default-active="activeIndex" mode="horizontal" :ellipsis="false" 28 router :default-active="activeIndex" mode="horizontal" :ellipsis="true"
29 popper-effect="dark" @select="handleSelect" 29 popper-effect="dark" @select="handleSelect"
30 > 30 >
31 <el-menu-item index="/">HOME</el-menu-item> 31 <el-menu-item index="/">HOME</el-menu-item>
...@@ -36,22 +36,25 @@ ...@@ -36,22 +36,25 @@
36 <el-menu-item index="/meta">MEDIA</el-menu-item> 36 <el-menu-item index="/meta">MEDIA</el-menu-item>
37 <el-menu-item index="/guide">GUIDELINE</el-menu-item> 37 <el-menu-item index="/guide">GUIDELINE</el-menu-item>
38 <el-sub-menu index="/about"> 38 <el-sub-menu index="/about">
39 <template #title>ABOUT US</template> 39 <template #title>CONTACT & MORE</template>
40 <el-menu-item index="/about/wuDao">舞蹈节</el-menu-item> 40 <el-menu-item index="/about/wuDao">About Us</el-menu-item>
41 <el-menu-item index="/about/culture">地方文化</el-menu-item> 41 <el-menu-item index="/about/regulations">Rules & Regulations</el-menu-item>
42 <el-menu-item index="/about/culture">Culture</el-menu-item>
42 </el-sub-menu> 43 </el-sub-menu>
43 </el-menu> 44 </el-menu>
44 </div> 45 </div>
45 46
46 <div class="flex-right"> 47 <div class="flex-right">
47 <div class="search mr20"> 48 <div class="search mr20 forPc">
48 <el-button :icon="Search" circle @click="searchNews" /> 49 <el-button :icon="Search" circle @click="searchNews" />
49 </div> 50 </div>
50 <div class="languageBtn"> 51 <div class="languageBtn">
51 <span :class="language==0?'active':''" @click="changeLanguage(0)">中文</span> 52 <span v-if="language==0" :class="language==0?'active':''" @click="changeLanguage(0)">中文</span>
53 <span v-else :class="language==0?'active':''" @click="changeLanguage(0)">CN</span>
54 |
52 <span :class="language==1?'active':''" @click="changeLanguage(1)">EN</span> 55 <span :class="language==1?'active':''" @click="changeLanguage(1)">EN</span>
53 </div> 56 </div>
54 <div class="ml20"> 57 <div class="ml20 forPc" >
55 <el-button v-if="!isLogin" style="border-radius: 20px;" class="loginBtn"> 58 <el-button v-if="!isLogin" style="border-radius: 20px;" class="loginBtn">
56 <span v-if="language==0" @click="goLogin">登录</span> 59 <span v-if="language==0" @click="goLogin">登录</span>
57 <span v-if="language==1" @click="goLogin">LOGIN</span> 60 <span v-if="language==1" @click="goLogin">LOGIN</span>
...@@ -62,27 +65,63 @@ ...@@ -62,27 +65,63 @@
62 &nbsp;&nbsp;<span @click="logout()">退出</span></el-button> 65 &nbsp;&nbsp;<span @click="logout()">退出</span></el-button>
63 </div> 66 </div>
64 </div> 67 </div>
65 </div>
66
67 <div class="forWei ">
68 <div class="weitop">
69 <img src="@/assets/v1/nav_logo.png" style="height: 40px;margin: 10px">
70 <a class="ropenbtn" @click="showDrawer"> 68 <a class="ropenbtn" @click="showDrawer">
71 <img src="@/assets/v1/menu.png"> 69 <img src="@/assets/v1/menu.png">
72 </a> 70 </a>
73 </div> 71 </div>
74 </div> 72
75 <el-drawer 73 <el-drawer
76 v-model="drawer" 74 v-model="drawer" size="100%"
77 :style="{'--el-drawer-padding-primary':0}" direction="ltr" :with-header="false" title="菜单" 75 :style="{'--el-drawer-padding-primary':0}" direction="ltr"
76 :with-header="false" title="菜单"
78 > 77 >
79 <el-menu 78 <div class="weiHead">
80 :style="{'--el-menu-hover-bg-color':'#faeeed'}" 79 <div class="languageBtn">
81 class="weiMenu" 80 <span v-if="language==0" :class="language==0?'active':''" @click="changeLanguage(0)">中文</span>
81 <span v-else :class="language==0?'active':''" @click="changeLanguage(0)">CN</span>
82 |
83 <span :class="language==1?'active':''" @click="changeLanguage(1)">EN</span>
84 </div>
85
86 <el-icon color="#453DEA" size="30" @click="closeDrawer"><close/></el-icon>
87 </div>
88
89 <el-menu class="weiMenu"
90 v-if="language==0"
82 router :default-active="activeIndex" mode="vertical" :ellipsis="false" 91 router :default-active="activeIndex" mode="vertical" :ellipsis="false"
83 popper-effect="dark" @select="handleSelect" 92 popper-effect="dark" @select="handleSelect"
84 > 93 >
85 <el-menu-item index="/">首页</el-menu-item> 94 <el-menu-item index="/">首页</el-menu-item>
95 <el-menu-item index="/news">新闻资讯</el-menu-item>
96 <el-menu-item index="/notice">通知公告</el-menu-item>
97 <el-menu-item index="/match/list/0">大赛报名</el-menu-item>
98 <el-menu-item index="/saiC">赛程安排</el-menu-item>
99 <el-menu-item index="/meta">媒体中心</el-menu-item>
100 <el-menu-item index="/guide">参赛指南</el-menu-item>
101 <el-sub-menu index="/about">
102 <template #title>关于我们</template>
103 <el-menu-item index="/about/wuDao">舞蹈节</el-menu-item>
104 <el-menu-item index="/about/culture">地方文化</el-menu-item>
105 </el-sub-menu>
106 </el-menu>
107 <el-menu class="weiMenu"
108 v-if="language==1"
109 router :default-active="activeIndex" mode="vertical" :ellipsis="false"
110 popper-effect="dark" @select="handleSelect"
111 >
112 <el-menu-item index="/">HOME</el-menu-item>
113 <el-menu-item index="/news">NEWS</el-menu-item>
114 <el-menu-item index="/notice">NOTICEBOARD</el-menu-item>
115 <el-menu-item index="/match/list/0">SIGN UP</el-menu-item>
116 <el-menu-item index="/saiC">COMPETITIONS</el-menu-item>
117 <el-menu-item index="/meta">MEDIA</el-menu-item>
118 <el-menu-item index="/guide">GUIDELINE</el-menu-item>
119 <el-sub-menu index="/about">
120 <template #title>CONTACT & MORE</template>
121 <el-menu-item index="/about/wuDao">About Us</el-menu-item>
122 <el-menu-item index="/about/regulations">Rules & Regulations</el-menu-item>
123 <el-menu-item index="/about/culture">Culture</el-menu-item>
124 </el-sub-menu>
86 </el-menu> 125 </el-menu>
87 </el-drawer> 126 </el-drawer>
88 <LoginDialog ref="pcloginDialog" @submitForm="reFlash" /> 127 <LoginDialog ref="pcloginDialog" @submitForm="reFlash" />
...@@ -149,24 +188,29 @@ const activeIndex = ref('/') ...@@ -149,24 +188,29 @@ const activeIndex = ref('/')
149 const registerVisible = ref(false) 188 const registerVisible = ref(false)
150 const loginForm = ref({}) 189 const loginForm = ref({})
151 const drawer = ref(false) 190 const drawer = ref(false)
191 const mode = ref('horizontal')
152 const language = ref(cache.local.get('language') || 0) 192 const language = ref(cache.local.get('language') || 0)
153 onMounted(() => { 193 onMounted(() => {
194 console.log(window.location.href)
154 if (useUserStore().perId) { 195 if (useUserStore().perId) {
155 isLogin.value = true 196 isLogin.value = true
156 } 197 }
157 198 if (window.location.href.indexOf('en') > -1) {
199 cache.local.set('language', 1)
200 // location.reload()
201 }
158 if (route.fullPath.indexOf('news') > -1) { 202 if (route.fullPath.indexOf('news') > -1) {
159 activeIndex.value = '/news' 203 activeIndex.value = '/news'
160 } else if (route.fullPath.indexOf('notice') > -1) { 204 } else if (route.fullPath.indexOf('notice') > -1) {
161 activeIndex.value = '/notice' 205 activeIndex.value = '/notice'
162 } else if (route.fullPath.indexOf('about') > -1) { 206 } else if (route.fullPath.indexOf('about') > -1) {
163 activeIndex.value = '/about' 207 activeIndex.value = '/about'
164 } else if (route.fullPath.indexOf('teen') > -1) { 208 } else if (route.fullPath.indexOf('mate') > -1) {
165 activeIndex.value = '/teen' 209 activeIndex.value = '/mate'
166 } else if (route.fullPath.indexOf('fitness') > -1) { 210 } else if (route.fullPath.indexOf('guide') > -1) {
167 activeIndex.value = '/fitness' 211 activeIndex.value = '/guide'
168 } else if (route.fullPath.indexOf('dope') > -1) { 212 } else if (route.fullPath.indexOf('saiC') > -1) {
169 activeIndex.value = '/dope' 213 activeIndex.value = '/saiC'
170 } 214 }
171 // console.log(activeIndex.value) 215 // console.log(activeIndex.value)
172 }) 216 })
...@@ -178,6 +222,9 @@ function changeLanguage(n) { ...@@ -178,6 +222,9 @@ function changeLanguage(n) {
178 function showDrawer() { 222 function showDrawer() {
179 drawer.value = true 223 drawer.value = true
180 } 224 }
225 function closeDrawer() {
226 drawer.value = false
227 }
181 function handleSelect(key, keyPath) { 228 function handleSelect(key, keyPath) {
182 // console.log(key) 229 // console.log(key)
183 activeIndex.value = key 230 activeIndex.value = key
...@@ -194,13 +241,13 @@ const logout = () => { ...@@ -194,13 +241,13 @@ const logout = () => {
194 } 241 }
195 242
196 const goLogin = (flag) => { 243 const goLogin = (flag) => {
197 let param = null 244 // let param = null
198 if (_.isBoolean(flag)) { 245 // if (_.isBoolean(flag)) {
199 param = { 246 // param = {
200 notShowClose: flag 247 // notShowClose: flag
201 } 248 // }
202 } 249 // }
203 proxy.$refs['pcloginDialog'].open(param) 250 // proxy.$refs['pcloginDialog'].open(param)
204 } 251 }
205 const goRegister = () => { 252 const goRegister = () => {
206 registerVisible.value = true 253 registerVisible.value = true
...@@ -240,20 +287,7 @@ function getCode() { ...@@ -240,20 +287,7 @@ function getCode() {
240 287
241 } 288 }
242 289
243 .quickNav {
244 a {
245 padding: 0 25px;
246 line-height: 1;
247 border-right: 1px solid #DCDCDC;
248 font-size: 14px;
249 color: #9D630F;
250 290
251 &:last-child {
252 border-right: none;
253 }
254 &:hover{font-weight: bold;text-decoration: underline;}
255 }
256 }
257 291
258 .topNav { 292 .topNav {
259 box-shadow: 0px 0px 13px rgba(113,113,113); 293 box-shadow: 0px 0px 13px rgba(113,113,113);
...@@ -305,37 +339,51 @@ function getCode() { ...@@ -305,37 +339,51 @@ function getCode() {
305 background: var(--el-color-primary); 339 background: var(--el-color-primary);
306 } 340 }
307 341
308 @media (max-width: 1000px) { 342
309 .box { 343 .ropenbtn{padding: 10px;display: none;
310 width: 100% 344 img{ width: 50px;}
311 } 345 }
312 .flex-right { 346
313 .quickNav a { 347 :deep(.el-input){height: 100%}
314 padding: 0 4px; 348 :deep(.el-form-item){height: 40px;}
349 .weiMenu.el-menu{
315 border: none; 350 border: none;
316 } 351 :deep(.el-menu-item.is-active){color: var(--el-color-primary);}
317 } 352 }
353 .weiHead{display: flex;justify-content: end;padding: 15px;align-items: center;
354 .languageBtn{font-size: 20px;margin-right: 20px;line-height: 30px;}
355 }
356 .weiMenu{
357 .el-menu-item{font-size: 20px}
358 :deep(.el-sub-menu__title){font-size: 20px}
359 :deep(.el-sub-menu .el-sub-menu__icon-arrow){font-size: 20px}
318 } 360 }
319 361
320 @media (max-width: 750px) { 362 @media (max-width: 1400px) {
321 .search { 363 .search {
322 display: none 364 display: none;
323 } 365 }
324 } 366 }
325 367 @media (max-width: 1340px) {
326 @media (max-width: 500px) { 368 .loginBtn {
327 .forPc {
328 display: none; 369 display: none;
329 } 370 }
371 .home-menu .el-menu--horizontal > .el-menu-item{margin: 0; }
330 } 372 }
331 .weitop{display: flex;justify-content: space-between; 373 @media (max-width: 1000px) {
332 .ropenbtn{padding: 10px} 374 .box {
375 width: 100%
376 }
333 } 377 }
334 :deep(.el-input){height: 100%} 378
335 :deep(.el-form-item){height: 40px;} 379 @media (max-width: 800px) {
336 .weiMenu.el-menu{ 380
337 border: none; 381 .ropenbtn{display: block}
338 :deep(.el-menu-item.is-active){color: var(--el-color-primary);} 382
383 .forPc {
384 display: none;
385 }
339 } 386 }
387
340 </style> 388 </style>
341 389
......
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
13 <style lang="scss" scoped> 13 <style lang="scss" scoped>
14 .app-main { 14 .app-main {
15 /* 50= navbar 50 */ 15 /* 50= navbar 50 */
16 min-height: calc(100vh - 50px);
17 width: 100%; 16 width: 100%;
18 position: relative; 17 position: relative;
19 overflow: auto; 18 overflow: auto;
......
...@@ -6,18 +6,9 @@ ...@@ -6,18 +6,9 @@
6 > 6 >
7 <div class="searchBody"> 7 <div class="searchBody">
8 <div class="searchline"> 8 <div class="searchline">
9 <el-input v-model="query.name" placeholder="请输入关键词搜索" @change="search" /> 9 <el-input v-model="query.name" placeholder="Search entire site" @change="search" />
10 <el-button :icon="Search" @click="search">search</el-button> 10 <el-button :icon="Search" @click="search">search</el-button>
11 </div> 11 </div>
12 <h2>近期热门</h2>
13 <el-row class="newsimgcover" :gutter="20">
14 <el-col v-for="(n,index) in hottest" v-show="index<4" :key="index" :span="6">
15 <div class="item shadow" @click="goDetail(n)">
16 <div class="imgbox"><img :src="fillImgUrl_webSite(n.picUrl)"></div>
17 <h3 class="esp">{{ n.name }}</h3>
18 </div>
19 </el-col>
20 </el-row>
21 12
22 </div> 13 </div>
23 </el-dialog> 14 </el-dialog>
......
...@@ -3,12 +3,9 @@ import { createApp } from 'vue' ...@@ -3,12 +3,9 @@ import { createApp } from 'vue'
3 import Cookies from 'js-cookie' 3 import Cookies from 'js-cookie'
4 4
5 import ElementPlus from 'element-plus' 5 import ElementPlus from 'element-plus'
6 import locale from 'element-plus/lib/locale/lang/zh-cn' // 中文语言
7
8 import '@/assets/styles/index.scss' // global css 6 import '@/assets/styles/index.scss' // global css
9 import App from './App' 7 import App from './App'
10 import store from './store' 8 import store from './store'
11 import router from './router'
12 import directive from './directive' // directive 9 import directive from './directive' // directive
13 10
14 // 注册指令 11 // 注册指令
...@@ -20,29 +17,20 @@ import 'virtual:svg-icons-register' ...@@ -20,29 +17,20 @@ import 'virtual:svg-icons-register'
20 import SvgIcon from '@/components/SvgIcon' 17 import SvgIcon from '@/components/SvgIcon'
21 import elementIcons from '@/components/SvgIcon/svgicon' 18 import elementIcons from '@/components/SvgIcon/svgicon'
22 19
23 import './permission' // permission control 20 import './permissionPc' // permission control
21 import * as socket from './utils/sockets'
24 22
25 import { useDict } from '@/utils/dict' 23 import { useDict } from '@/utils/dict'
26 import { getConfigKey, updateConfigByKey } from '@/api/system/config' 24 import { getConfigKey, updateConfigByKey } from '@/api/system/config'
27 import { 25 import { parseTime, resetForm, addDateRange, handleTree, selectDictLabel, selectDictLabels, fillImgUrl, downloadFile } from '@/utils/ruoyi'
28 parseTime, 26 import { CountDown } from 'vant'
29 resetForm, 27 import 'vant/lib/index.css'
30 addDateRange,
31 handleTree,
32 selectDictLabel,
33 selectDictLabels,
34 fillImgUrl
35 } from '@/utils/ruoyi'
36
37 import VueUeditorWrap from 'vue-ueditor-wrap'
38
39 // 分页组件 28 // 分页组件
40 import Pagination from '@/components/Pagination' 29 import PaginationPc from '@/components/PaginationPc'
41 // 自定义表格工具组件 30 // 自定义表格工具组件
42 import RightToolbar from '@/components/RightToolbar' 31 import RightToolbar from '@/components/RightToolbar'
43 // 富文本组件 32 // 富文本组件
44 import Editor from '@/components/Editor' 33 import Editor from '@/components/Editor'
45 import UEditor from '@/components/UEditor'
46 // 文件上传组件 34 // 文件上传组件
47 import FileUpload from '@/components/FileUpload' 35 import FileUpload from '@/components/FileUpload'
48 // 图片上传组件 36 // 图片上传组件
...@@ -56,7 +44,18 @@ import TreeSelect from '@/components/TreeSelect' ...@@ -56,7 +44,18 @@ import TreeSelect from '@/components/TreeSelect'
56 import DictTag from '@/components/DictTag' 44 import DictTag from '@/components/DictTag'
57 45
58 import draggable from 'vuedraggable' 46 import draggable from 'vuedraggable'
47 import wePay from '@/components/hy/wePay'
48
49 import VueVideoPlayer from '@videojs-player/vue'
50 import 'video.js/dist/video-js.min.css'
51 import cache from '@/plugins/cache'
59 52
53 import routerCn from './routerPc/cn'
54 import routerEn from './routerPc/en'
55 import localeCn from 'element-plus/lib/locale/lang/zh-cn' // 中文语言
56 import localeEn from 'element-plus/lib/locale/lang/en'
57
58 const language = cache.local.get('language') || 0
60 const app = createApp(App) 59 const app = createApp(App)
61 60
62 // 全局方法挂载 61 // 全局方法挂载
...@@ -71,10 +70,17 @@ app.config.globalProperties.addDateRange = addDateRange ...@@ -71,10 +70,17 @@ app.config.globalProperties.addDateRange = addDateRange
71 app.config.globalProperties.selectDictLabel = selectDictLabel 70 app.config.globalProperties.selectDictLabel = selectDictLabel
72 app.config.globalProperties.selectDictLabels = selectDictLabels 71 app.config.globalProperties.selectDictLabels = selectDictLabels
73 app.config.globalProperties.fillImgUrl = fillImgUrl 72 app.config.globalProperties.fillImgUrl = fillImgUrl
73 app.config.globalProperties.fillImgUrl_train = (url) => fillImgUrl(url, 'ztx-train')
74 app.config.globalProperties.fillImgUrl_match = (url) => fillImgUrl(url, 'ztx-match')
75 app.config.globalProperties.fillImgUrl_webSite = (url) => fillImgUrl(url, 'ztx-webSite')
76 app.config.globalProperties.downloadFile = downloadFile
77 app.config.globalProperties.downloadFile_match = (filePath) => downloadFile(filePath, 'ztx-webSite')
78 app.config.globalProperties.downloadFile_webSite = (filePath) => downloadFile(filePath, 'ztx-webSite')
79 app.config.globalProperties.$socket = socket
74 80
75 // 全局组件挂载 81 // 全局组件挂载
76 app.component('DictTag', DictTag) 82 app.component('DictTag', DictTag)
77 app.component('Pagination', Pagination) 83 app.component('PaginationPc', PaginationPc)
78 app.component('TreeSelect', TreeSelect) 84 app.component('TreeSelect', TreeSelect)
79 app.component('FileUpload', FileUpload) 85 app.component('FileUpload', FileUpload)
80 app.component('ImageUpload', ImageUpload) 86 app.component('ImageUpload', ImageUpload)
...@@ -82,25 +88,33 @@ app.component('ImageUpload2', ImageUpload2) ...@@ -82,25 +88,33 @@ app.component('ImageUpload2', ImageUpload2)
82 app.component('ImagePreview', ImagePreview) 88 app.component('ImagePreview', ImagePreview)
83 app.component('RightToolbar', RightToolbar) 89 app.component('RightToolbar', RightToolbar)
84 app.component('Editor', Editor) 90 app.component('Editor', Editor)
85 app.component('UEditor', UEditor)
86 app.component('Draggable', draggable) 91 app.component('Draggable', draggable)
92 app.component('WePay', wePay)
93
94
95 if (language == 0) {
96 app.use(routerCn)
97 app.use(ElementPlus, {
98 locale: localeCn,
99 size: Cookies.get('size') || 'default'
100 })
101 } else {
102 app.use(routerEn)
103 app.use(ElementPlus, {
104 locale: localeEn,
105 size: Cookies.get('size') || 'default'
106 })
107 }
87 108
88 app.use(router)
89 app.use(store) 109 app.use(store)
90 app.use(VueUeditorWrap)
91 app.use(plugins) 110 app.use(plugins)
92 app.use(elementIcons) 111 app.use(elementIcons)
112 app.use(CountDown)
93 app.component('SvgIcon', SvgIcon) 113 app.component('SvgIcon', SvgIcon)
94 114
115 app.use(VueVideoPlayer)
95 directive(app) 116 directive(app)
96 117
97 // 使用element-plus 并且设置全局的大小
98 app.use(ElementPlus, {
99 locale: locale,
100 // 支持 large、default、small
101 size: Cookies.get('size') || 'default'
102 })
103
104 // 修改 el-dialog 默认点击遮照为不关闭 118 // 修改 el-dialog 默认点击遮照为不关闭
105 app._context.components.ElDialog.props.closeOnClickModal.default = false 119 app._context.components.ElDialog.props.closeOnClickModal.default = false
106 120
......
...@@ -3,9 +3,12 @@ import { createApp } from 'vue' ...@@ -3,9 +3,12 @@ import { createApp } from 'vue'
3 import Cookies from 'js-cookie' 3 import Cookies from 'js-cookie'
4 4
5 import ElementPlus from 'element-plus' 5 import ElementPlus from 'element-plus'
6 import locale from 'element-plus/lib/locale/lang/zh-cn' // 中文语言
7
6 import '@/assets/styles/index.scss' // global css 8 import '@/assets/styles/index.scss' // global css
7 import App from './AppPc' 9 import App from './App'
8 import store from './store' 10 import store from './store'
11 import router from './router'
9 import directive from './directive' // directive 12 import directive from './directive' // directive
10 13
11 // 注册指令 14 // 注册指令
...@@ -17,20 +20,29 @@ import 'virtual:svg-icons-register' ...@@ -17,20 +20,29 @@ import 'virtual:svg-icons-register'
17 import SvgIcon from '@/components/SvgIcon' 20 import SvgIcon from '@/components/SvgIcon'
18 import elementIcons from '@/components/SvgIcon/svgicon' 21 import elementIcons from '@/components/SvgIcon/svgicon'
19 22
20 import './permissionPc' // permission control 23 import './permission' // permission control
21 import * as socket from './utils/sockets'
22 24
23 import { useDict } from '@/utils/dict' 25 import { useDict } from '@/utils/dict'
24 import { getConfigKey, updateConfigByKey } from '@/api/system/config' 26 import { getConfigKey, updateConfigByKey } from '@/api/system/config'
25 import { parseTime, resetForm, addDateRange, handleTree, selectDictLabel, selectDictLabels, fillImgUrl, downloadFile } from '@/utils/ruoyi' 27 import {
26 import { CountDown } from 'vant' 28 parseTime,
27 import 'vant/lib/index.css' 29 resetForm,
30 addDateRange,
31 handleTree,
32 selectDictLabel,
33 selectDictLabels,
34 fillImgUrl
35 } from '@/utils/ruoyi'
36
37 import VueUeditorWrap from 'vue-ueditor-wrap'
38
28 // 分页组件 39 // 分页组件
29 import PaginationPc from '@/components/PaginationPc' 40 import Pagination from '@/components/Pagination'
30 // 自定义表格工具组件 41 // 自定义表格工具组件
31 import RightToolbar from '@/components/RightToolbar' 42 import RightToolbar from '@/components/RightToolbar'
32 // 富文本组件 43 // 富文本组件
33 import Editor from '@/components/Editor' 44 import Editor from '@/components/Editor'
45 import UEditor from '@/components/UEditor'
34 // 文件上传组件 46 // 文件上传组件
35 import FileUpload from '@/components/FileUpload' 47 import FileUpload from '@/components/FileUpload'
36 // 图片上传组件 48 // 图片上传组件
...@@ -44,18 +56,7 @@ import TreeSelect from '@/components/TreeSelect' ...@@ -44,18 +56,7 @@ import TreeSelect from '@/components/TreeSelect'
44 import DictTag from '@/components/DictTag' 56 import DictTag from '@/components/DictTag'
45 57
46 import draggable from 'vuedraggable' 58 import draggable from 'vuedraggable'
47 import wePay from '@/components/hy/wePay'
48
49 import VueVideoPlayer from '@videojs-player/vue'
50 import 'video.js/dist/video-js.min.css'
51 import cache from '@/plugins/cache'
52 59
53 import routerCn from './routerPc/cn'
54 import routerEn from './routerPc/en'
55 import localeCn from 'element-plus/lib/locale/lang/zh-cn' // 中文语言
56 import localeEn from 'element-plus/lib/locale/lang/en'
57
58 const language = cache.local.get('language') || 0
59 const app = createApp(App) 60 const app = createApp(App)
60 61
61 // 全局方法挂载 62 // 全局方法挂载
...@@ -70,17 +71,10 @@ app.config.globalProperties.addDateRange = addDateRange ...@@ -70,17 +71,10 @@ app.config.globalProperties.addDateRange = addDateRange
70 app.config.globalProperties.selectDictLabel = selectDictLabel 71 app.config.globalProperties.selectDictLabel = selectDictLabel
71 app.config.globalProperties.selectDictLabels = selectDictLabels 72 app.config.globalProperties.selectDictLabels = selectDictLabels
72 app.config.globalProperties.fillImgUrl = fillImgUrl 73 app.config.globalProperties.fillImgUrl = fillImgUrl
73 app.config.globalProperties.fillImgUrl_train = (url) => fillImgUrl(url, 'ztx-train')
74 app.config.globalProperties.fillImgUrl_match = (url) => fillImgUrl(url, 'ztx-match')
75 app.config.globalProperties.fillImgUrl_webSite = (url) => fillImgUrl(url, 'ztx-webSite')
76 app.config.globalProperties.downloadFile = downloadFile
77 app.config.globalProperties.downloadFile_match = (filePath) => downloadFile(filePath, 'ztx-webSite')
78 app.config.globalProperties.downloadFile_webSite = (filePath) => downloadFile(filePath, 'ztx-webSite')
79 app.config.globalProperties.$socket = socket
80 74
81 // 全局组件挂载 75 // 全局组件挂载
82 app.component('DictTag', DictTag) 76 app.component('DictTag', DictTag)
83 app.component('PaginationPc', PaginationPc) 77 app.component('Pagination', Pagination)
84 app.component('TreeSelect', TreeSelect) 78 app.component('TreeSelect', TreeSelect)
85 app.component('FileUpload', FileUpload) 79 app.component('FileUpload', FileUpload)
86 app.component('ImageUpload', ImageUpload) 80 app.component('ImageUpload', ImageUpload)
...@@ -88,33 +82,25 @@ app.component('ImageUpload2', ImageUpload2) ...@@ -88,33 +82,25 @@ app.component('ImageUpload2', ImageUpload2)
88 app.component('ImagePreview', ImagePreview) 82 app.component('ImagePreview', ImagePreview)
89 app.component('RightToolbar', RightToolbar) 83 app.component('RightToolbar', RightToolbar)
90 app.component('Editor', Editor) 84 app.component('Editor', Editor)
85 app.component('UEditor', UEditor)
91 app.component('Draggable', draggable) 86 app.component('Draggable', draggable)
92 app.component('WePay', wePay)
93
94
95 if (language == 0) {
96 app.use(routerCn)
97 app.use(ElementPlus, {
98 locale: localeCn,
99 size: Cookies.get('size') || 'default'
100 })
101 } else {
102 app.use(routerEn)
103 app.use(ElementPlus, {
104 locale: localeEn,
105 size: Cookies.get('size') || 'default'
106 })
107 }
108 87
88 app.use(router)
109 app.use(store) 89 app.use(store)
90 app.use(VueUeditorWrap)
110 app.use(plugins) 91 app.use(plugins)
111 app.use(elementIcons) 92 app.use(elementIcons)
112 app.use(CountDown)
113 app.component('SvgIcon', SvgIcon) 93 app.component('SvgIcon', SvgIcon)
114 94
115 app.use(VueVideoPlayer)
116 directive(app) 95 directive(app)
117 96
97 // 使用element-plus 并且设置全局的大小
98 app.use(ElementPlus, {
99 locale: locale,
100 // 支持 large、default、small
101 size: Cookies.get('size') || 'default'
102 })
103
118 // 修改 el-dialog 默认点击遮照为不关闭 104 // 修改 el-dialog 默认点击遮照为不关闭
119 app._context.components.ElDialog.props.closeOnClickModal.default = false 105 app._context.components.ElDialog.props.closeOnClickModal.default = false
120 106
......
...@@ -84,15 +84,21 @@ export const constantRoutes = [ ...@@ -84,15 +84,21 @@ export const constantRoutes = [
84 children: [ 84 children: [
85 { 85 {
86 path: 'wudao', 86 path: 'wudao',
87 component: () => import('@/viewsPc/about/wudao'), 87 component: () => import('@/viewsPc/about/wudao_en'),
88 name: 'dangNews', 88 name: 'dangNews',
89 meta: { title: '舞蹈节' } 89 meta: { title: 'about us' }
90 }, 90 },
91 { 91 {
92 path: 'culture', 92 path: 'culture',
93 component: () => import('@/viewsPc/about/culture'), 93 component: () => import('@/viewsPc/about/culture_en'),
94 name: 'culture', 94 name: 'culture',
95 meta: { title: '地方文化' } 95 meta: { title: 'culture' }
96 },
97 {
98 path: 'regulations',
99 component: () => import('@/viewsPc/about/fileList'),
100 name: 'regulations',
101 meta: { title: 'rules and regulations' }
96 } 102 }
97 ] 103 ]
98 }, 104 },
...@@ -103,7 +109,7 @@ export const constantRoutes = [ ...@@ -103,7 +109,7 @@ export const constantRoutes = [
103 children: [ 109 children: [
104 { 110 {
105 path: 'index', 111 path: 'index',
106 component: () => import('@/viewsPc/notice/index'), 112 component: () => import('@/viewsPc/notice/index_en'),
107 name: 'notice', 113 name: 'notice',
108 meta: { title: 'NOTICEBOARD' } 114 meta: { title: 'NOTICEBOARD' }
109 }, 115 },
...@@ -140,13 +146,13 @@ export const constantRoutes = [ ...@@ -140,13 +146,13 @@ export const constantRoutes = [
140 children: [ 146 children: [
141 { 147 {
142 path: 'index', 148 path: 'index',
143 component: () => import('@/viewsPc/news/index'), 149 component: () => import('@/viewsPc/news/index_en'),
144 name: 'news', 150 name: 'news',
145 meta: { title: 'NEWS' } 151 meta: { title: 'NEWS' }
146 }, 152 },
147 { 153 {
148 path: 'list/:id', 154 path: 'list/:id',
149 component: () => import('@/viewsPc/news/list'), 155 component: () => import('@/viewsPc/news/list_en'),
150 name: 'newsList', 156 name: 'newsList',
151 meta: { title: '新闻列表' } 157 meta: { title: '新闻列表' }
152 }, 158 },
...@@ -185,9 +191,9 @@ export const constantRoutes = [ ...@@ -185,9 +191,9 @@ export const constantRoutes = [
185 children: [ 191 children: [
186 { 192 {
187 path: 'index', 193 path: 'index',
188 component: () => import('@/viewsPc/meta/index'), 194 component: () => import('@/viewsPc/meta/index_en'),
189 name: 'meta', 195 name: 'meta',
190 meta: { title: '媒体中心' } 196 meta: { title: 'MEDIA' }
191 } 197 }
192 ] 198 ]
193 }, 199 },
...@@ -198,9 +204,9 @@ export const constantRoutes = [ ...@@ -198,9 +204,9 @@ export const constantRoutes = [
198 children: [ 204 children: [
199 { 205 {
200 path: 'index', 206 path: 'index',
201 component: () => import('@/viewsPc/saiC/index'), 207 component: () => import('@/viewsPc/saiC/index_en'),
202 name: 'saiC', 208 name: 'saiC',
203 meta: { title: '赛程安排' } 209 meta: { title: 'COMPETITIONS' }
204 } 210 }
205 ] 211 ]
206 }, 212 },
...@@ -213,108 +219,7 @@ export const constantRoutes = [ ...@@ -213,108 +219,7 @@ export const constantRoutes = [
213 path: 'index', 219 path: 'index',
214 component: () => import('@/viewsPc/guide/index_en'), 220 component: () => import('@/viewsPc/guide/index_en'),
215 name: 'guide', 221 name: 'guide',
216 meta: { title: '参赛指南' } 222 meta: { title: 'GUIDELINE' }
217 }
218 ]
219 },
220 {
221 path: 'fitness',
222 component: Empty,
223 redirect: '/fitness/index',
224 children: [
225 {
226 path: 'index',
227 component: () => import('@/viewsPc/fitness/index'),
228 name: 'fitness',
229 meta: { title: '全民健身' }
230 }
231 ]
232 },
233 {
234 path: 'dope',
235 component: Empty,
236 redirect: '/dope/index',
237 children: [
238 {
239 path: 'index',
240 component: () => import('@/viewsPc/dope/index'),
241 name: 'dope',
242 meta: { title: '反兴奋剂' }
243 }
244 ]
245 },
246 {
247 path: 'vip',
248 component: Empty,
249 redirect: '/vip/index',
250 children: [
251 {
252 path: 'index',
253 component: () => import('@/viewsPc/vip/index'),
254 name: 'vip',
255 meta: { title: '会员服务' }
256 },
257 {
258 path: 'index/teamVip',
259 component: () => import('@/viewsPc/vip/teamVip'),
260 name: 'teamVip',
261 meta: { title: '会员服务' }
262 },
263 {
264 path: 'index/examPoints',
265 component: () => import('@/viewsPc/vip/examPoints'),
266 name: 'examPoints',
267 meta: { title: '考点展示' }
268 },
269 {
270 path: 'index/plan',
271 component: () => import('@/viewsPc/vip/plan'),
272 name: 'plan',
273 meta: { title: '培训计划' }
274 },
275 {
276 path: 'pplist/:id',
277 component: () => import('@/viewsPc/vip/pplist'),
278 name: 'ppList',
279 meta: { title: '人员列表' }
280 }
281 ]
282 },
283 {
284 path: 'business',
285 component: Empty,
286 redirect: '/business/index',
287 children: [
288 {
289 path: 'index',
290 component: () => import('@/viewsPc/business/index'),
291 name: 'business',
292 meta: { title: '商务专区' }
293 }
294 ]
295 },
296 {
297 path: 'local',
298 component: Empty,
299 redirect: '/local/index',
300 children: [
301 {
302 path: 'index',
303 component: () => import('@/viewsPc/local/index'),
304 name: 'local',
305 meta: { title: '地方协会' }
306 },
307 {
308 path: 'index/list',
309 component: () => import('@/viewsPc/local/list'),
310 name: 'locallist',
311 meta: { title: '地方协会' }
312 },
313 {
314 path: 'index/:id',
315 component: () => import('@/viewsPc/local/detail'),
316 name: 'localDetail',
317 meta: { title: '地方协会' }
318 } 223 }
319 ] 224 ]
320 }, 225 },
...@@ -375,7 +280,7 @@ export const constantRoutes = [ ...@@ -375,7 +280,7 @@ export const constantRoutes = [
375 }, 280 },
376 { 281 {
377 path: 'list/:id', 282 path: 'list/:id',
378 component: () => import('@/viewsPc/match/detail'), 283 component: () => import('@/viewsPc/match/detail_en'),
379 name: 'matchDetail', 284 name: 'matchDetail',
380 meta: { title: '赛事详情' } 285 meta: { title: '赛事详情' }
381 }, 286 },
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
2 <div class="login"> 2 <div class="login">
3 <el-row :inline="true" justify="space-between" class="title"> 3 <el-row :inline="true" justify="space-between" class="title">
4 <div class="imgBox"> 4 <div class="imgBox">
5 <img class="img" src="@/assets/images/logo@2x.png" alt=""> 5 <!-- <img class="img" src="@/assets/images/logo@2x.png" alt="">-->
6 </div> 6 </div>
7 <div class="title-right"> 7 <div class="title-right">
8 <router-link to="login" class="tilt-btn"> 8 <router-link to="login" class="tilt-btn">
...@@ -104,8 +104,6 @@ watch(() => route.name, (val) => { ...@@ -104,8 +104,6 @@ watch(() => route.name, (val) => {
104 104
105 .login { 105 .login {
106 height: 100%; 106 height: 100%;
107 background-image: url("@/assets/images/bg@2x.png");
108 background-size: cover;
109 } 107 }
110 .login-center { 108 .login-center {
111 height: 80%; 109 height: 80%;
......
...@@ -344,7 +344,7 @@ import { deptTreeSelect } from '@/api/system/user' ...@@ -344,7 +344,7 @@ import { deptTreeSelect } from '@/api/system/user'
344 import { getCurrentInstance } from '@vue/runtime-core' 344 import { getCurrentInstance } from '@vue/runtime-core'
345 import { ref, reactive, toRefs } from 'vue' 345 import { ref, reactive, toRefs } from 'vue'
346 import auditEdit from './auditEdit' 346 import auditEdit from './auditEdit'
347 import image from '@/assets/images/certificate.png' 347 // import image from '@/assets/images/certificate.png'
348 import { certifiedDeptTree } from '@/api/system/userInfo.js' 348 import { certifiedDeptTree } from '@/api/system/userInfo.js'
349 import { ElMessageBox } from 'element-plus' 349 import { ElMessageBox } from 'element-plus'
350 // import type { Action } from 'element-plus' 350 // import type { Action } from 'element-plus'
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
33 </script> 33 </script>
34 34
35 <style scoped lang="scss"> 35 <style scoped lang="scss">
36 .bban{width: 100%;} 36 .bban{width: 100%;min-height: 280px;object-fit: cover;object-position: center;}
37 .prbox{position: relative;padding: 0 0 20px;margin: 0 0 30px; 37 .prbox{position: relative;padding: 0 0 20px;margin: 0 0 30px;
38 .bbg{max-width: 100%;margin: auto;} 38 .bbg{max-width: 100%;margin: auto;}
39 .bbtn{position: absolute;right: 5px;bottom: 0px; 39 .bbtn{position: absolute;right: 5px;bottom: 0px;
......
1 <template>
2 <div>
3 <div>
4 <img class="bban" src="@/assets/zhinan/banner_en.png"/>
5 </div>
6 <div class="box">
7 <el-row :gutter="20" class="mt30">
8 <el-col :lg="8">
9 <div class="prbox">
10 <img class="bbg" src="@/assets/zhinan/bg01.png"/>
11 <!-- <img class="bbtn" src="@/assets/zhinan/btn01.png"/>-->
12 <div class="bbtn">WuXi Culture</div>
13
14 </div>
15 </el-col>
16 <el-col :lg="8">
17 <div class="prbox">
18 <img class="bbg" src="@/assets/zhinan/bg02.png"/>
19 <div class="bbtn">Local Specialties</div>
20 <!-- <img class="bbtn" src="@/assets/zhinan/btn02.png"/>-->
21 </div>
22 </el-col>
23 <el-col :lg="8">
24 <div class="prbox">
25 <img class="bbg" src="@/assets/zhinan/bg03.png"/>
26 <div class="bbtn">Scenic Spots</div>
27 <!-- <img class="bbtn" src="@/assets/zhinan/btn03.png"/>-->
28 </div>
29 </el-col>
30 </el-row>
31 </div>
32 </div>
33 </template>
34
35 <script setup>
36
37 </script>
38
39 <style scoped lang="scss">
40 .bban{width: 100%;min-height: 280px;object-fit: cover;object-position: center;}
41 .prbox{position: relative;padding: 0 0 20px;margin: 0 0 30px;
42 .bbg{max-width: 100%;margin: auto;}
43 .bbtn{position: absolute;right: 5px;bottom: 0px;
44 color: #fff;border-radius: 50px;padding: 10px 20px;
45 font-size: 18px;cursor: pointer;
46 background: linear-gradient(-90deg, #8623FC, #453DEA); ;
47 &:hover{filter: brightness(1.6)}
48 }
49 }
50 </style>
1 <template>
2 <div>
3 <div class="box">
4 <!-- <el-breadcrumb class="mt20" :separator-icon="ArrowRight">-->
5 <!-- <el-breadcrumb-item :to="{ path: '/' }">-->
6 <!-- <el-icon>-->
7 <!-- <HomeFilled/>-->
8 <!-- </el-icon>-->
9 <!-- 首页-->
10 <!-- </el-breadcrumb-item>-->
11 <!-- <el-breadcrumb-item :to="{ path: '/business/index' }">商务专区</el-breadcrumb-item>-->
12 <!-- <el-breadcrumb-item>文件下载</el-breadcrumb-item>-->
13 <!-- </el-breadcrumb>-->
14 <el-card class=" mt20 mb20" style="min-height: 70vh;">
15 <div>
16
17 <div v-for="n in newsList" class="item" @click="goDetail(n)">
18 <a class="file-item" target="_blank" :href="fillImgUrl_webSite(n.attacthJsonObj[0]?.url)">
19 <h3 class="esp underline" style="color: var(--el-color-primary)">
20 <i class="icon pdf" v-if="n.attacthJsonObj[0]?.url.indexOf('pdf')>-1"></i>
21 <i class="icon doc" v-else-if="n.attacthJsonObj[0]?.url.indexOf('doc')>-1"></i>
22 <i class="icon xls" v-else-if="n.attacthJsonObj[0]?.url.indexOf('xls')>-1"></i>
23 <i class="icon txt" v-else-if="n.attacthJsonObj[0]?.url.indexOf('txt')>-1"></i>
24 <i class="icon ppt" v-else-if="n.attacthJsonObj[0]?.url.indexOf('ppt')>-1"></i>
25 <i class="icon zip" v-else-if="n.attacthJsonObj[0]?.url.indexOf('zip')>-1"></i>
26 <i class="icon zip" v-else-if="n.attacthJsonObj[0]?.url.indexOf('rar')>-1"></i>
27 <i class="icon othe" v-else></i>
28 <el-icon color="#453DEA" size="20" style="position: relative;top: 2px"><download/></el-icon>
29 {{ n.name }}
30 </h3>
31 </a>
32 </div>
33
34 </div>
35
36 <div class="pc-page-box" v-if="total>8">
37 <PaginationPc v-model:page="query.pageNum" v-model:limit="query.pageSize" :total="total" @pagination="getList"/>
38 </div>
39
40 <el-empty v-if="newsList.length == 0" description="暂无数据"/>
41
42 </el-card>
43 </div>
44 </div>
45 </template>
46
47 <script setup>
48 import { ArrowRight } from '@element-plus/icons-vue'
49
50 const route = useRoute()
51 const router = useRouter()
52 import { onMounted, ref } from 'vue'
53 import { getNewsListById } from '@/apiPc/webSite'
54 import { useRoute, useRouter } from 'vue-router'
55
56 const query = ref({
57 pageSize: 10,
58 pageNum: 1
59 })
60 const total = ref(0)
61 const newsList = ref([
62 {name:'Invitation to WDSF Asian DanceSport Festival 2023(230502).pdf',attacthJsonObj:{}},
63 {name:'Invitation WDSF World Championship Junior 2 Standard and Adult Latin 2023.pdf',attacthJsonObj:{}},
64 {name:'WDSF DanceSport Championship Protocol .pdf',attacthJsonObj:{}},
65 ])
66 onMounted(() => {
67 query.value.sortId = route.query.sortId
68 query.value.code = route.query.code
69 // getList()
70 })
71 const getList = () => {
72 getNewsListById(query.value).then(res => {
73 newsList.value = res.rows
74 for(var f of newsList.value){
75 f.attacthJsonObj = JSON.parse(f.attacthJson)
76 }
77 total.value = res.total
78 })
79 }
80 const goDetail = (n) => {
81 // if (n.isOut == '1') {
82 // window.open(n.jumpUrl)
83 // } else {
84 // router.push({
85 // path: `/news/detail/${n.noteId}`
86 // })
87 // }
88 }
89 </script>
90
91 <style scoped lang="scss">
92 .file-item{
93 &:hover{background: #BE8EFB;}
94 }
95 </style>
...@@ -45,11 +45,11 @@ ...@@ -45,11 +45,11 @@
45 <div class="content"> 45 <div class="content">
46 <div class="phone"> 46 <div class="phone">
47 <h4>电话</h4> 47 <h4>电话</h4>
48 <p>张小姐:13921876678</p> 48 <p>张小姐:18888888888</p>
49 </div> 49 </div>
50 <div class="address"> 50 <div class="address">
51 <h4>地址</h4> 51 <h4>地址</h4>
52 <p>江苏省无锡市滨湖区体育中心A区201</p> 52 <p>无锡市经开区清舒道88号</p>
53 </div> 53 </div>
54 <div class="email"> 54 <div class="email">
55 <h4>邮箱</h4> 55 <h4>邮箱</h4>
......
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 class="active">About the Organizer</li>
11 <li>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">
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 </el-col>
33 </el-row>
34 </el-card>
35
36 <div class="indexTitle">
37 <h3 class="leftboderTT">CONTACT</h3>
38 </div>
39 <div class="mapBox mb20">
40 <div class="content">
41 <div class="phone">
42 <h4>Phone</h4>
43 <p>Miss Chang:+86 18888888888</p>
44 </div>
45 <div class="address">
46 <h4>Address</h4>
47 <p>No.88 Qingshu Road,Economic and Development District, Wuxi City,Jiangsu Province,China</p>
48 </div>
49 <div class="email">
50 <h4>Email</h4>
51 <p>8888989@163.com</p>
52 </div>
53 </div>
54 </div>
55 </div>
56 </div>
57 </template>
58
59 <script setup>
60
61 </script>
62
63 <style scoped lang="scss">
64 .leftNav{
65 ul{border-right: 2px solid #E5E5E5;padding:0 20px 0 0;}
66 li{margin: 30px 0;padding: 10px;text-align: right;
67 border-radius: 2px;position: relative;
68 font-weight: 600;
69 font-size: 18px;
70 background: linear-gradient(90deg, rgba(134, 35, 252, 0.1), rgba(69, 61, 234, 0.1));}
71 li::after{content: '';position: absolute;background: #898989;width: 8px;height: 8px;
72 border-radius: 50%;right: -29px;border: 4px solid #fff;outline: 2px solid #898989;
73 box-sizing: content-box;top: 0;bottom: 0;margin: auto;}
74 li.active{color: #fff;
75 background: linear-gradient(90deg, #8623FC, #453DEA);
76 &::after{outline: 2px solid #453DEA;background: #453DEA;}
77 }
78 }
79 .infoPart{
80 .leftboderTT{font-size:20px;color: var(--el-color-primary); }
81 }
82 .content{margin: 20px 0 0;text-indent: 2em;
83 line-height: 1.8;
84 font-weight: 400;
85 font-size: 16px;
86 color: #29343C;
87 img{max-width: 100%;margin: 20px auto;display: block;}
88 h4{text-indent: 0}
89 }
90 .mapBox{background: url("@/assets/zhinan/map.png") no-repeat right;height: 375px;
91 background-size: cover;padding: 1px;position: relative;display: flex;
92 .content{background: #fff;width: 60%;left: 40px;padding: 30px;text-indent: 0;
93 line-height: 1;
94 position: absolute;height: 90%;top: 0;bottom: 0;margin: auto;
95 }
96 div{padding-left: 60px;}
97 .phone{background: url("@/assets/dance/map01.png") no-repeat left;background-size: 30px;}
98 .address{background: url("@/assets/dance/map02.png") no-repeat left;background-size: 30px;
99 margin:50px 0;
100 }
101 .email{background: url("@/assets/dance/map03.png") no-repeat left;background-size: 30px;}
102 h4{margin: 0;
103 font-size: 16px;
104 color: #AAAAAA;}
105 p{margin: 13px 0 0;}
106 }
107 @media (max-width: 800px) {
108 .mapBox {
109 div {
110 padding-left: 40px;
111 }
112
113 .content {
114 width: 80%;
115 left: 10%;
116 padding: 10px 20px 0 20px;
117 }
118
119 .address {
120 margin: 30px 0;
121 }
122
123 p {
124 text-align: left;
125 word-break: break-all;
126 }
127 }
128 }
129 </style>
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
93 <div class="content" v-if="activeName==7"><el-empty description="暂未上线"></el-empty></div> 93 <div class="content" v-if="activeName==7"><el-empty description="暂未上线"></el-empty></div>
94 <div class="content" v-if="activeName==8"> 94 <div class="content" v-if="activeName==8">
95 <label>点击下载:</label> 95 <label>点击下载:</label>
96 <a target="_blank" class="text-primary" href="@/assets/zhinan/参赛指南.pdf"> 96 <a target="_blank" class="text-primary">
97 <el-icon style="position: relative;top: 2px"><download/></el-icon> 97 <el-icon style="position: relative;top: 2px"><download/></el-icon>
98 WDSF亚洲体育舞蹈节参赛指南0714 98 WDSF亚洲体育舞蹈节参赛指南0714
99 </a> 99 </a>
...@@ -181,7 +181,7 @@ h4.leftboderTT{text-indent: 0; ...@@ -181,7 +181,7 @@ h4.leftboderTT{text-indent: 0;
181 span{color: #929AA0;font-size: 16px;margin-left: 5px;} 181 span{color: #929AA0;font-size: 16px;margin-left: 5px;}
182 } 182 }
183 .custom-tabs-label { 183 .custom-tabs-label {
184 display: flex; 184 display: flex;font-size: 16px;
185 align-items: center; 185 align-items: center;
186 } 186 }
187 187
......
...@@ -23,79 +23,84 @@ ...@@ -23,79 +23,84 @@
23 <img src="@/assets/zhinan/1.png"/> 23 <img src="@/assets/zhinan/1.png"/>
24 <img src="@/assets/zhinan/2.png"/> 24 <img src="@/assets/zhinan/2.png"/>
25 </div> 25 </div>
26 <h4 class="leftboderTT">Flow Chart In The Venue<span>(Funtional Area and Flow Chart)</span></h4> 26 <h4 class="leftboderTT">Flow Chart In The Venue<span>(Functional Area and Flow Chart)</span></h4>
27 <img src="@/assets/zhinan/3.png"/> 27 <img src="@/assets/zhinan/3.png"/>
28 <div>Sports teams enter the venue through security check at the main gate on the first floor, take escalators to the second floor, and arrive the competition area. Technical officers take vehicles arranged by the organizing committee directly from the northern ramp of the venue to the entrance of Venue B5 on the second floor platform and enter the venue.</div> 28 <div>Sports teams enter the venue through security check at the main gate on the first floor, take escalators to the second floor, and arrive the competition area. Technical officers take vehicles arranged by the organizing committee directly from the northern ramp of the venue to the entrance of Venue B5 on the second floor platform and enter the venue.</div>
29 <div>The second floor is divided into five areas according to different functions. All personnel may arrive at different areas according to their access permissions. Red is the VIP area, blue is the office area, yellow is the spectator area, purple is the competition area and pink is the public area.</div> 29 <div>The second floor is divided into five areas according to different functions. All personnel may arrive at different areas according to their access permissions. Red is the VIP area, blue is the office area, yellow is the spectator area, purple is the competition area and pink is the public area.</div>
30 </div> 30 </div>
31 31
32 <div class="content" v-if="activeName==1"> 32 <div class="content" v-if="activeName==1">
33 <div>注册报到中心位于酒店大堂,服务时间为7月19-22日10:00-22:00, 同时也作为咨询台。</div> 33 <div>The Registration Center is located in the hotel lobby from 10:00-22:00 on July 19-22, also serves as the info desk.</div>
34 <div>相关紧急通知、餐食安排和交通服务等信息将公布在公告栏,如有疑 问或需服务,可前往注册报到中心进行咨询。</div> 34 <div>For information about emergency notices, catering services, and transportation services will be announced on the notice board. If you have any questions or need services, please contact the Registration Center.</div>
35 </div> 35 </div>
36 <div class="content" v-if="activeName==2"> 36 <div class="content" v-if="activeName==2">
37 <h4>一、证件使用与保管</h4> 37 <h4>1 Use and Storage of Licenses</h4>
38 <p>证件要妥善保管,不得故意损毁,证件仅限本人使用,严禁转让, 严禁超范围使用,严禁私自增减,涂改证件内容。 38 <p>Licenses shall be properly kept and shall not be intentionally damaged. Licenses shall be used only by the holders, which shall not be transferred to others, used for unauthorized purposes, or altered.</p>
39 <p>For access to relevant activity and competition venue, license holders shall wear licenses in a conspicuous position against the chest.</p>
40 <p>License holders shall be subject to the inspection and management of on-site security personnel.</p>
41 <h4>2 Temporary Access Pass Application</h4>
42 <p>
43 If you lose your license and urgently need to enter the venue, you can apply to the competition department and go to the venue operation center to get a temporary access pass.
39 </p> 44 </p>
40 <p>出入有关活动和比赛场馆时,应将证件佩戴于胸前明显位置。</p> 45 <h4>3 Type of License and Access Permissions</h4>
41 <p>持证人员应自觉接受现场安保人员的检查和管理。</p> 46 <p>The following colors and numbers will be used to indicate the different areas:</p>
42 <h4>二、证件丢失申领临时证件</h4> 47 <img src="@/assets/zhinan/5.jpg"/>
43 <p>遗落、丢失证件的人员急需进入场馆的,可以向竞赛部申请,前 往场馆运营中心领取临时证件。</p>
44 <h4>三、代表队人员证件类别及通行权限</h4>
45 <p>本次赛事将使用以下颜色和数字表示相关注册分区:</p>
46 <img src="@/assets/zhinan/6.jpg"/>
47 </div> 48 </div>
48 <div class="content" v-if="activeName==3"> 49 <div class="content" v-if="activeName==3">
49 <el-empty description="暂未上线"></el-empty> 50 <el-empty description="no data"></el-empty>
50 </div> 51 </div>
51 <div class="content" v-if="activeName==4"> 52 <div class="content" v-if="activeName==4">
52 <h4>一、抵离安排</h4> 53 <h4>1.Arrivals and Departures</h4>
53 <p>所有技术官员、运动队接送站由组委会统一安排车辆接送,抵达站 应选择无锡苏南硕放机场、上海浦东国际机场和上海虹桥国际机场。 54 <p>All technical officials and sports teams will be picked up by the organizing committee,
54 </p> 55 and the arrival stations should be Wuxi Sunan Shuofang International Airport, Shanghai Pudong International Airport, and Shanghai Hongqiao International Airport.</p>
55 <p>(1)技术官员和运动队报到</p> 56 <p>(1) Registration of Technical Officials and Sports Teams</p>
56 <p>报到时间:7月19-22日,10:00-22:00</p> 57 <p>Registration Time: July 19-22, 10: 00-22: 00</p>
57 <p>报到(酒店)地点:无锡太湖华邑酒店</p> 58 <p>Registration (hotel) Location: HUALUXE Wuxi Taihu Hotel</p>
58 <p>(2)报到材料</p> 59 <p>(2) Registration Materials</p>
59 <p>技术代表、技术官员及相关人员等报到时提交往返差旅交通票据, 60 <p>Technical delegates, technical officials and relevant personnel shall provide round-trip traffic invoices for reimbursement.
60 以便于相关费用报销。所有技术官员报到时,须向组委会提供:</p> 61 All technical officials are required to provide the Organizing Committee with the following materials:</p>
61 <p>1. 纸质版登机牌(往返机票)</p> 62 <p>1. Paper boarding card (round-trip ticket)</p>
62 <p>2. 往返机票的行程单(有金额)或付款凭证(有金额)</p> 63 <p>2. Itinerary of the round-trip ticket (with the amount) or receipt of payment (with the amount)</p>
63 <p>3. 办理签证的票据(有金额)</p> 64 <p>3. Receipt for visa application (with amount)</p>
64 <h4>二、 餐食服务</h4> 65 <h4>2.Catering Service</h4>
65 <p>用餐时间与形式:</p> 66
66 <img src="@/assets/zhinan/14.png"/> 67 <img src="@/assets/zhinan/12.png"/>
67 <h5>提示:具体时间可能有所调整,调整过的时间表将于注册报到中心公告栏另行通知。</h5> 68 <h5>Notes: Time subject to changes, once adjusted, it will be announced on the notice board of the Registration Center.</h5>
68 <img src="@/assets/zhinan/13.png"/> 69 <img src="@/assets/zhinan/13.png"/>
69 70
70 <h4>三、通行车辆安排</h4> 71 <h4>3.Transportation Service</h4>
71 <p>酒店、赛场间通行车辆按《发车时刻表》发车,用于酒店、赛场 之间往返,接送技术官员和运动队参赛及训练,《发车时刻表》详见 注册报到中心公告栏。</p> 72 <p>
72 <p>接送站用车:主要用于参赛人员报到及离会。</p> 73 Vehicles shuttle the technical officers and sports teams between the hotel and the competition venue as per the Departure Timetable. For details of the Departure Timetable,
73 <h4 style="text-indent: 2em">友情提示:</h4> 74 please refer to the notice board of the Registration Center.
74 <p>1. 认真阅读《发车时刻表》,提前规划出行时间。</p> 75 </p>
75 <p>2. 时刻关注车辆行驶途中自身安全,坐好抓稳。</p> 76 <p>Pick-up and drop-off vehicles: mainly used for participants to make registration and departure.
76 <p>3. 各领队、教练有义务在每次乘车时清点人数,确保同进同出。</p> 77 </p>
77 <p>4. 下车时务必带齐自身携带物品,谨防遗失。</p> 78 <h4 style="text-indent: 2em">Tips:</h4>
78 <p>5. 如错失赛会车辆或中途临时需要出行,请及时与咨询台联系。</p> 79 <p>1. Read the Departure Timetable carefully and schedule your travel in advance.</p>
80 <p>2. Always sit securely to ensure your safety during the travel.</p>
81 <p>3. Each head of team and coach shall count the number of people at each travel to ensure nobody is left.</p>
82 <p>4. When getting off the vehicles, make sure to bring all belongings with you.</p>
83 <p>5. If you miss the vehicle or need to make an unplanned travel, please contact the info desk in time.</p>
79 </div> 84 </div>
80 <div class="content" v-if="activeName==5"> 85 <div class="content" v-if="activeName==5">
81 <h4>一、服务时间安排</h4> 86 <h4>1. Service Time</h4>
82 <p>2023年7月20日-2023年7月23日</p> 87 <p>July 20-23, 2023</p>
83 <h4>二、医疗点位设置</h4> 88 <h4>2. Medical Stations</h4>
84 <p>馆内设置医疗室一个,竞赛区医疗点一个,救护车两辆。</p> 89 <p>The venue has one medical room, one medical station in the competition area, and two ambulances.</p>
85 <h4>三、现场医疗力量安排</h4> 90 <h4>3. On-site Medical Service</h4>
86 <p>4馆设立医务室一间,配备一名外科医生,一名护士,一名英语 志愿者。</p> 91 <p>Venue B4 has one medical room and equipped with one surgeon, one nurse, and one English-speaking volunteer.</p>
87 <p> 92 <p>
88 B6馆竞赛区设立医疗点一个,配备一名骨科医生,一名急救医生, 一名护士,两名急救人员,一名英语志愿者,一名工作人员。两个医疗 点均配备齐全的现场医疗急救所需药品。 93 Venue B6 has one medical station in the competition area, equipped with one orthopedic surgeon, one emergency doctor,
89 </p> 94 one nurse, two first aiders, one English-speaking volunteer, and one staff. Both medical stations are fully equipped with medicines needed for on-site medical emergencies.</p>
90 <p>120急救车一辆及急救转运车一辆停在G14通道口等候,车上均配 备除颤仪、氧气钢瓶等急救器材。</p> 95 <p>One ambulance and one emergency transfer vehicle are waiting at the entrance of G14, and all of them are equipped with first aid equipment such as defibrilla- tors and oxygen cylinders.</p>
91 </div> 96 </div>
92 <div class="content" v-if="activeName==6"><el-empty description="暂未上线"></el-empty></div> 97 <div class="content" v-if="activeName==6"><el-empty description="no data"></el-empty></div>
93 <div class="content" v-if="activeName==7"><el-empty description="暂未上线"></el-empty></div> 98 <div class="content" v-if="activeName==7"><el-empty description="no data"></el-empty></div>
94 <div class="content" v-if="activeName==8"> 99 <div class="content" v-if="activeName==8">
95 <label>点击下载</label> 100 <label>Download</label>
96 <a target="_blank" class="text-primary" href="@/assets/zhinan/参赛指南.pdf"> 101 <a target="_blank" class="text-primary" >
97 <el-icon style="position: relative;top: 2px"><download/></el-icon> 102 <el-icon style="position: relative;top: 2px"><download/></el-icon>
98 WDSF亚洲体育舞蹈节参赛指南0714 103 WDSF ASIAN DANCESPORT FESTIVAL ENTRY GUIDE 0714
99 </a> 104 </a>
100 </div> 105 </div>
101 </div> 106 </div>
...@@ -115,12 +120,12 @@ const list = ref([ ...@@ -115,12 +120,12 @@ const list = ref([
115 {name:'Introduction of the Competition Venue'}, 120 {name:'Introduction of the Competition Venue'},
116 {name:' Registration Center '}, 121 {name:' Registration Center '},
117 {name:'License Management '}, 122 {name:'License Management '},
118 {name:'地图指引 '}, 123 {name:'Map Guidance '},
119 {name:'Service for Technical Officers and Sports Teams '}, 124 {name:'Service for Technical Officers and Sports Teams '},
120 {name:'Medical Services '}, 125 {name:'Medical Services '},
121 {name:'周边交通图 '}, 126 {name:'Surrounding Traffic Map '},
122 {name:'VISA 签证 '}, 127 {name:'VISA '},
123 {name:'指南手册下载'} 128 {name:'The Manual'}
124 ]) 129 ])
125 const newsList = ref([]) 130 const newsList = ref([])
126 const nowTab = ref({ 131 const nowTab = ref({
...@@ -181,7 +186,7 @@ h4.leftboderTT{text-indent: 0; ...@@ -181,7 +186,7 @@ h4.leftboderTT{text-indent: 0;
181 span{color: #929AA0;font-size: 16px;margin-left: 5px;} 186 span{color: #929AA0;font-size: 16px;margin-left: 5px;}
182 } 187 }
183 .custom-tabs-label { 188 .custom-tabs-label {
184 display: flex; 189 display: flex;font-size: 16px;
185 align-items: center; 190 align-items: center;
186 } 191 }
187 192
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
35 35
36 <div class="box zn-bg"> 36 <div class="box zn-bg">
37 <div class="zn-Box"> 37 <div class="zn-Box">
38 <el-row> 38 <el-row style="align-items: center">
39 <el-col :sm="24" :lg="10"> 39 <el-col :sm="24" :lg="10">
40 <div class="bgbg"> 40 <div class="bgbg">
41 <img src="@/assets/dance/text.png"> 41 <img src="@/assets/dance/text.png">
...@@ -75,7 +75,7 @@ ...@@ -75,7 +75,7 @@
75 <el-col :sm="24" :lg="12"> 75 <el-col :sm="24" :lg="12">
76 <div class="indexTitle"> 76 <div class="indexTitle">
77 <h3 class="leftboderTT">赛事日程</h3> 77 <h3 class="leftboderTT">赛事日程</h3>
78 <a class="more" @click="goMatch">MORE</a> 78 <a class="more" href="#/saiC">MORE</a>
79 </div> 79 </div>
80 <!--赛事日历--> 80 <!--赛事日历-->
81 <el-card :body-style="{'padding':'20px 20px'}"> 81 <el-card :body-style="{'padding':'20px 20px'}">
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
113 <el-col :sm="24" :lg="12"> 113 <el-col :sm="24" :lg="12">
114 <div class="indexTitle"> 114 <div class="indexTitle">
115 <h3 class="leftboderTT">历史排名</h3> 115 <h3 class="leftboderTT">历史排名</h3>
116 <a class="more" @click="goMatch">MORE</a> 116 <a class="more" href="#/saiC">MORE</a>
117 </div> 117 </div>
118 <!--历史排名--> 118 <!--历史排名-->
119 <el-card :body-style="{'padding':'10px 20px 18px'}"> 119 <el-card :body-style="{'padding':'10px 20px 18px'}">
...@@ -129,7 +129,7 @@ ...@@ -129,7 +129,7 @@
129 </template> 129 </template>
130 </el-table-column> 130 </el-table-column>
131 <el-table-column label="姓名" prop="name" /> 131 <el-table-column label="姓名" prop="name" />
132 <el-table-column label="国家" /> 132 <el-table-column label="国家" prop="gj" />
133 <el-table-column label="分值" align="center"> 133 <el-table-column label="分值" align="center">
134 <template #default="scope"> 134 <template #default="scope">
135 <div class="text-primary">{{ scope.row.score }}</div> 135 <div class="text-primary">{{ scope.row.score }}</div>
...@@ -148,15 +148,15 @@ ...@@ -148,15 +148,15 @@
148 <div class="box"> 148 <div class="box">
149 <div class="indexTitle"> 149 <div class="indexTitle">
150 <h3 class="leftboderTT">新闻资讯</h3> 150 <h3 class="leftboderTT">新闻资讯</h3>
151 <a class="more" @click="goMatch">MORE</a> 151 <a class="more" @click="goNews">MORE</a>
152 </div> 152 </div>
153 <el-row :gutter="20"> 153 <el-row :gutter="20">
154 <el-col 154 <el-col
155 v-for="(n,index) in newest2" 155 v-for="(n,index) in newest2"
156 :key="n.id" :xs="12" :sm="8" 156 :key="n.id" :xs="24" :sm="8"
157 :lg="8" 157 :lg="8"
158 > 158 >
159 <div class="activeItem"> 159 <div class="activeItem" @click="goDetail(n)">
160 <div class="imgbox"> 160 <div class="imgbox">
161 <img :src="fillImgUrl_webSite(n.picUrl)"> 161 <img :src="fillImgUrl_webSite(n.picUrl)">
162 </div> 162 </div>
...@@ -183,7 +183,7 @@ ...@@ -183,7 +183,7 @@
183 <el-card> 183 <el-card>
184 <el-row :gutter="20"> 184 <el-row :gutter="20">
185 <el-col :lg="8"> 185 <el-col :lg="8">
186 <div class="liveImgbox"> 186 <div class="liveImgbox" @click="goDetail(livelist[0])">
187 <i class="ii">直播中</i> 187 <i class="ii">直播中</i>
188 <img :src="fillImgUrl_webSite(livelist[0]?.picUrl)"> 188 <img :src="fillImgUrl_webSite(livelist[0]?.picUrl)">
189 <h3 class="esp">{{ livelist[0]?.name }} 189 <h3 class="esp">{{ livelist[0]?.name }}
...@@ -212,7 +212,7 @@ ...@@ -212,7 +212,7 @@
212 </el-row> 212 </el-row>
213 <el-row class="news-l-r"> 213 <el-row class="news-l-r">
214 <el-col v-for="(n,index) in livelist" v-show="index>0" :lg="8"> 214 <el-col v-for="(n,index) in livelist" v-show="index>0" :lg="8">
215 <div class="item" style="padding: 0;margin: 20px 0 0"> 215 <div class="item" style="padding: 0;margin: 20px 0 0" @click="goDetail(n)">
216 <div class="imgbox"> 216 <div class="imgbox">
217 <i class="playIcon"></i> 217 <i class="playIcon"></i>
218 <img :src="fillImgUrl_webSite(n.picUrl)"></div> 218 <img :src="fillImgUrl_webSite(n.picUrl)"></div>
...@@ -234,7 +234,7 @@ ...@@ -234,7 +234,7 @@
234 <h3 class="leftboderTT">评委介绍</h3> 234 <h3 class="leftboderTT">评委介绍</h3>
235 </div> 235 </div>
236 <el-row :gutter="20"> 236 <el-row :gutter="20">
237 <el-col :sm="12" :xl="12" :xs="12" :lg="4" v-for="n in personList" :key="n.name"> 237 <el-col :sm="12" :xl="4" :xs="12" :lg="4" :md="8" v-for="n in personList" :key="n.name">
238 <div class="teacher"> 238 <div class="teacher">
239 <div class="imgbox"><img :src="n.src"></div> 239 <div class="imgbox"><img :src="n.src"></div>
240 <h3 class="esp">{{ n.name }}</h3> 240 <h3 class="esp">{{ n.name }}</h3>
...@@ -250,7 +250,7 @@ ...@@ -250,7 +250,7 @@
250 <el-col :lg="12"> 250 <el-col :lg="12">
251 <div class="indexTitle"> 251 <div class="indexTitle">
252 <h3 class="leftboderTT">关于我们</h3> 252 <h3 class="leftboderTT">关于我们</h3>
253 <a class="more" style="filter: brightness(10)" @click="goMatch">MORE</a> 253 <a class="more" style="filter: brightness(10)">MORE</a>
254 </div> 254 </div>
255 <div class="aboutBox"> 255 <div class="aboutBox">
256 <div class="content">中国体育舞蹈联合会成立于1991年,其前身为“中国体育舞蹈运动协会”。2002年与文化部所属“中国业余舞蹈竞技协会”实现联合,形成“中国体育舞蹈联合会”,并成为世界体育舞蹈联合会正式会员(该组织于1997年获得国际奥委会正式承认)。2018年从国家体育总局社体中心“五分离”脱钩,目前霹雳舞项目与总局社体中心联合进行奥运备战。 256 <div class="content">中国体育舞蹈联合会成立于1991年,其前身为“中国体育舞蹈运动协会”。2002年与文化部所属“中国业余舞蹈竞技协会”实现联合,形成“中国体育舞蹈联合会”,并成为世界体育舞蹈联合会正式会员(该组织于1997年获得国际奥委会正式承认)。2018年从国家体育总局社体中心“五分离”脱钩,目前霹雳舞项目与总局社体中心联合进行奥运备战。
...@@ -259,7 +259,7 @@ ...@@ -259,7 +259,7 @@
259 <div class="shadowbox" /> 259 <div class="shadowbox" />
260 </div> 260 </div>
261 <div class="mt30 text-center"> 261 <div class="mt30 text-center">
262 <a class="btn-lineG" style="display: inline-flex;align-items: center;">了解更多<img style="filter: brightness(2);height: 8px" src="@/assets/v1/more.png"/></a> 262 <a class="btn-lineG" href="#/about/wuDao" style="display: inline-flex;align-items: center;">了解更多<img style="filter: brightness(2);height: 8px" src="@/assets/v1/more.png"/></a>
263 </div> 263 </div>
264 264
265 </div> 265 </div>
...@@ -267,17 +267,17 @@ ...@@ -267,17 +267,17 @@
267 <el-col :lg="12"> 267 <el-col :lg="12">
268 <div class="indexTitle"> 268 <div class="indexTitle">
269 <h3 class="leftboderTT">联系我们</h3> 269 <h3 class="leftboderTT">联系我们</h3>
270 <a class="more" style="filter: brightness(10)" @click="goMatch">MORE</a> 270 <a class="more" style="filter: brightness(10)">MORE</a>
271 </div> 271 </div>
272 <div class="mapBox"> 272 <div class="mapBox">
273 <div class="content"> 273 <div class="content">
274 <div class="phone"> 274 <div class="phone">
275 <h4>电话</h4> 275 <h4>电话</h4>
276 <p>张小姐:13921876678</p> 276 <p>张小姐:18888888888</p>
277 </div> 277 </div>
278 <div class="address"> 278 <div class="address">
279 <h4>地址</h4> 279 <h4>地址</h4>
280 <p>江苏省无锡市滨湖区体育中心A区201</p> 280 <p>无锡市经开区清舒道88号</p>
281 </div> 281 </div>
282 <div class="email"> 282 <div class="email">
283 <h4>邮箱</h4> 283 <h4>邮箱</h4>
...@@ -335,6 +335,13 @@ import { Swiper, SwiperSlide } from 'swiper/vue' ...@@ -335,6 +335,13 @@ import { Swiper, SwiperSlide } from 'swiper/vue'
335 import { Autoplay, Navigation } from 'swiper' 335 import { Autoplay, Navigation } from 'swiper'
336 import 'swiper/css' 336 import 'swiper/css'
337 import { dayjs } from 'element-plus' 337 import { dayjs } from 'element-plus'
338 import r01 from '@/assets/dance/r01.png'
339 import r02 from '@/assets/dance/r02.png'
340 import r03 from '@/assets/dance/r03.png'
341 import r04 from '@/assets/dance/r04.png'
342 import r05 from '@/assets/dance/r05.png'
343 import r06 from '@/assets/dance/r06.png'
344
338 const modules = [Autoplay, Navigation] 345 const modules = [Autoplay, Navigation]
339 const navigationPic = ref({ 346 const navigationPic = ref({
340 nextEl: '.picnext', 347 nextEl: '.picnext',
...@@ -349,12 +356,12 @@ const canNext = ref(false) ...@@ -349,12 +356,12 @@ const canNext = ref(false)
349 const activeRankName = ref(0) 356 const activeRankName = ref(0)
350 const time = ref(0) 357 const time = ref(0)
351 const rankList = ref([ 358 const rankList = ref([
352 { index: '1', name: 'wawa', score: '170' }, 359 { index: '1', name: '陈莎莎', score: '170',gj:'中国' },
353 { index: '2', name: 'wawa', score: '170' }, 360 { index: '2', name: '陈莎莎', score: '170' ,gj:'中国'},
354 { index: '3', name: 'wawa', score: '170' }, 361 { index: '3', name: '陈莎莎', score: '170',gj:'中国' },
355 { index: '4', name: 'wawa', score: '170' }, 362 { index: '4', name: '陈莎莎', score: '170',gj:'中国' },
356 { index: '5', name: 'wawa', score: '170' }, 363 { index: '5', name: '陈莎莎', score: '170' ,gj:'中国'},
357 { index: '6', name: 'wawa', score: '170' } 364 { index: '6', name: '陈莎莎', score: '170' ,gj:'中国'}
358 ]) 365 ])
359 const rankTabs = ref([ 366 const rankTabs = ref([
360 { name: '拉丁舞' }, 367 { name: '拉丁舞' },
...@@ -364,12 +371,12 @@ const rankTabs = ref([ ...@@ -364,12 +371,12 @@ const rankTabs = ref([
364 { name: '街舞' } 371 { name: '街舞' }
365 ]) 372 ])
366 const personList = ref([ 373 const personList = ref([
367 { name: '张晋', pp:'欧洲舞团团长、艺术总监',src:'@/assets/dance/r01.png' }, 374 { name: '张晋', pp:'欧洲舞团团长、艺术总监',src:r01 },
368 { name: '王晓敏', pp:'欧洲舞团团长、艺术总监',src:'@/assets/dance/r02.png' }, 375 { name: '王晓敏', pp:'欧洲舞团团长、艺术总监',src:r02 },
369 { name: '徐徐', pp:'欧洲舞团团长、艺术总监',src:'@/assets/dance/r03.png' }, 376 { name: '徐徐', pp:'欧洲舞团团长、艺术总监',src:r03 },
370 { name: '汪莉莉', pp:'欧洲舞团团长、艺术总监',src:'@/assets/dance/r04.png' }, 377 { name: '汪莉莉', pp:'欧洲舞团团长、艺术总监',src:r04},
371 { name: '蒋云澜', pp:'欧洲舞团团长、艺术总监',src:'@/assets/dance/r05.png' }, 378 { name: '蒋云澜', pp:'欧洲舞团团长、艺术总监',src:r05 },
372 { name: '钱一帆', pp:'欧洲舞团团长、艺术总监',src:'@/assets/dance/r06.png' } 379 { name: '钱一帆', pp:'欧洲舞团团长、艺术总监',src:r06 }
373 ]) 380 ])
374 const activeNews = ref(0) 381 const activeNews = ref(0)
375 const banners = ref([]) 382 const banners = ref([])
...@@ -394,14 +401,14 @@ const init = () => { ...@@ -394,14 +401,14 @@ const init = () => {
394 getNewsListById( 401 getNewsListById(
395 { pageSize: 4, 402 { pageSize: 4,
396 pageNum: 1, 403 pageNum: 1,
397 sortId: '30000000' } 404 sortId: '10000006' }
398 ).then(res => { 405 ).then(res => {
399 livelist.value = res.rows 406 livelist.value = res.rows
400 }) 407 })
401 getNewsListById( 408 getNewsListById(
402 { pageSize: 5, 409 { pageSize: 5,
403 pageNum: 1, 410 pageNum: 1,
404 sortId: '30000001' } 411 sortId: '10000007' }
405 ).then(res => { 412 ).then(res => {
406 picList.value = res.rows 413 picList.value = res.rows
407 }) 414 })
...@@ -413,44 +420,8 @@ const init = () => { ...@@ -413,44 +420,8 @@ const init = () => {
413 ).then(res => { 420 ).then(res => {
414 newest2.value = res.rows 421 newest2.value = res.rows
415 }) 422 })
416
417
418 // getHomePage().then(res => {
419 // banners.value = res.data.banners
420 // for (var b of banners.value) {
421 // if (b.attacthJson) {
422 // b.attacthJsonObj = JSON.parse(b.attacthJson)
423 // }
424 // }
425 // newest.value = res.data.newest
426 // news.value = res.data.news
427 // notice.value = res.data.notice
428 //
429 // display.value = res.data.display
430 // activity.value = res.data.activity
431 // scores.value = _.chunk(res.data.scores, 6)
432 // nowscores.value = scores.value[0]
433 // if (scores.value.length > 1) {
434 // canNext.value = true
435 // }
436 // })
437 }
438 const nextScores = () => {
439 nowscores.value = scores.value[1]
440 canPrev.value = true
441 canNext.value = false
442 }
443 const prevScores = () => {
444 nowscores.value = scores.value[0]
445 canPrev.value = false
446 canNext.value = true
447 } 423 }
448 424
449 const goMatch = () => {
450 router.push({
451 path: `/match/list`
452 })
453 }
454 const goDetail = (n) => { 425 const goDetail = (n) => {
455 if (n.isOut == '1') { 426 if (n.isOut == '1') {
456 window.open(n.jumpUrl) 427 window.open(n.jumpUrl)
...@@ -467,10 +438,15 @@ const goList = (query, name) => { ...@@ -467,10 +438,15 @@ const goList = (query, name) => {
467 query: query 438 query: query
468 }) 439 })
469 } 440 }
441 const goNews = () => {
442 router.push({
443 path: `/news/index`
444 })
445 }
470 </script> 446 </script>
471 447
472 <style scoped lang="scss"> 448 <style scoped lang="scss">
473 //参赛指南 449
474 .zn-bg{background: linear-gradient(90deg, #8623FC, #8623FC, #8623FC, #8623FC, #8623FC, #8623FC, #453DEA, #8623FC); 450 .zn-bg{background: linear-gradient(90deg, #8623FC, #8623FC, #8623FC, #8623FC, #8623FC, #8623FC, #453DEA, #8623FC);
475 border-radius: 15px;} 451 border-radius: 15px;}
476 .zn-Box{background: url("@/assets/dance/cszn_bg.png") no-repeat top left;background-size: contain; 452 .zn-Box{background: url("@/assets/dance/cszn_bg.png") no-repeat top left;background-size: contain;
...@@ -714,4 +690,42 @@ const goList = (query, name) => { ...@@ -714,4 +690,42 @@ const goList = (query, name) => {
714 cursor: pointer; 690 cursor: pointer;
715 &:hover{filter:brightness(2)}} 691 &:hover{filter:brightness(2)}}
716 } 692 }
693 @media (max-width: 1200px) {
694 .teacher{height: 460px;margin: 0 0 20px;
695 img{height: 400px}
696 }
697 }
698
699 @media (max-width: 800px) {
700 .box{width: 94%}
701 .calendarList{padding: 0;
702 ul{
703 li{margin: 10px}
704 }
705 }
706 .aboutBox{padding: 20px 30px;}
707 .indexTitle{margin: 30px 0 20px}
708 .teacher{height: 320px;margin: 0 0 20px;
709 img{height: 260px}
710 }
711 .activeItem{margin: 0 0 20px;}
712 .mapBox{
713 div{padding-left: 40px;}
714 .content{ width: 80%;left: 10%;padding:10px 20px 0 20px;}
715 .address{margin: 30px 0;}
716 p{text-align: left;word-break: break-all;}
717 }
718 .fixed_gg {
719 display: none;
720 }
721 .bannerItem .banner-count{flex-direction: column;
722 transform: scale(0.8); left: 0;
723 right: 0;
724 .van-count-down{margin: 30px 0 0;}
725 }
726 .bgbg{ text-align: center;
727 img{max-width:100%; }
728 h1{text-align: center}
729 }
730 }
717 </style> 731 </style>
......
...@@ -5,23 +5,23 @@ ...@@ -5,23 +5,23 @@
5 <el-carousel-item style="height: 450px;"> 5 <el-carousel-item style="height: 450px;">
6 <div class="bannerItem"> 6 <div class="bannerItem">
7 <div class="h100"> 7 <div class="h100">
8 <img class="bannerImg" src="@/assets/dance/banner_en.jpg"> 8 <img class="bannerImg" src="@/assets/dance/banner.png">
9 <div class="box" style="position: absolute;top: 0;left: 0;right: 0;margin: auto;"> 9 <div class="box" style="position: absolute;top: 0;left: 0;right: 0;margin: auto;">
10 <div class="banner-count"> 10 <div class="banner-count">
11 Countdown 11 Countdown
12 <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒"> 12 <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒">
13 <template #default="timeData"> 13 <template #default="timeData">
14 <div class="block">{{ timeData.days }} 14 <div class="block">{{ timeData.days }}
15 <span class="colon">day</span> 15 <span class="colon">Days</span>
16 </div> 16 </div>
17 <div class="block">{{ timeData.hours }} 17 <div class="block">{{ timeData.hours }}
18 <span class="colon">hour</span> 18 <span class="colon">Hrs</span>
19 </div> 19 </div>
20 <div class="block">{{ timeData.minutes }} 20 <div class="block">{{ timeData.minutes }}
21 <span class="colon">minute</span> 21 <span class="colon">Min</span>
22 </div> 22 </div>
23 <div class="block">{{ timeData.seconds }} 23 <div class="block">{{ timeData.seconds }}
24 <span class="colon">second</span> 24 <span class="colon">Sec</span>
25 </div> 25 </div>
26 </template> 26 </template>
27 </van-count-down> 27 </van-count-down>
...@@ -48,19 +48,31 @@ ...@@ -48,19 +48,31 @@
48 <div class="itemBox"> 48 <div class="itemBox">
49 <el-row :gutter="20"> 49 <el-row :gutter="20">
50 <el-col :sm="12" :lg="8"> 50 <el-col :sm="12" :lg="8">
51 <div class="item"><img src="@/assets/dance/btn01.png">EVENT INTRODUCTION</div></el-col> 51 <div class="item"><img src="@/assets/dance/btn01.png">
52 <p>EVENT INTRODUCTION</p>
53 </div></el-col>
52 <el-col :sm="12" :lg="8"> 54 <el-col :sm="12" :lg="8">
53 <div class="item"><img src="@/assets/dance/btn02.png">EVENT NOTIFICATIONS</div></el-col> 55 <div class="item"><img src="@/assets/dance/btn02.png">
56 <p>EVENT NOTIFICATIONS</p>
57 </div></el-col>
54 <el-col :sm="12" :lg="8"> 58 <el-col :sm="12" :lg="8">
55 <div class="item"><img src="@/assets/dance/btn03.png">EVENT NOTIFICATIONS</div> 59 <div class="item"><img src="@/assets/dance/btn03.png">
60 <p>REGISTER TO PARTICIPATE</p>
61 </div>
56 </el-col> 62 </el-col>
57 <el-col :sm="12" :lg="8"> 63 <el-col :sm="12" :lg="8">
58 <div class="item"><img src="@/assets/dance/btn04.png">TICKET BOOKING</div> 64 <div class="item"><img src="@/assets/dance/btn04.png">
65 <p>TICKET BOOKING</p>
66 </div>
59 </el-col> 67 </el-col>
60 <el-col :sm="12" :lg="8"> 68 <el-col :sm="12" :lg="8">
61 <div class="item"><img src="@/assets/dance/btn05.png">HOTEL RESERVATIONS</div></el-col> 69 <div class="item"><img src="@/assets/dance/btn05.png">
70 <p> HOTEL RESERVATIONS</p>
71 </div></el-col>
62 <el-col :sm="12" :lg="8"> 72 <el-col :sm="12" :lg="8">
63 <div class="item"><img src="@/assets/dance/btn06.png">MAKEUP APPOINTMENTS</div></el-col> 73 <div class="item"><img src="@/assets/dance/btn06.png">
74 <p>MAKEUP APPOINTMENTS</p>
75 </div></el-col>
64 </el-row> 76 </el-row>
65 </div> 77 </div>
66 78
...@@ -75,7 +87,7 @@ ...@@ -75,7 +87,7 @@
75 <el-col :sm="24" :lg="12"> 87 <el-col :sm="24" :lg="12">
76 <div class="indexTitle"> 88 <div class="indexTitle">
77 <h3 class="leftboderTT">COMPETITION SCHEDULE</h3> 89 <h3 class="leftboderTT">COMPETITION SCHEDULE</h3>
78 <a class="more" @click="goMatch">MORE</a> 90 <a class="more" @click="gosaiC">MORE</a>
79 </div> 91 </div>
80 <!--赛事日历--> 92 <!--赛事日历-->
81 <el-card :body-style="{'padding':'20px 20px'}"> 93 <el-card :body-style="{'padding':'20px 20px'}">
...@@ -90,19 +102,19 @@ ...@@ -90,19 +102,19 @@
90 </el-calendar> 102 </el-calendar>
91 <div class="calendarList"> 103 <div class="calendarList">
92 <ul> 104 <ul>
93 <li> 105 <li class="esp">
94 <label>08:00~10:30</label> Wuxi Open 106 <label>08:00~10:30</label> Wuxi Open
95 </li> 107 </li>
96 <li> 108 <li class="esp">
97 <label>11:00</label> 2024 WDSF Open Group A 109 <label>11:00</label> 2024 WDSF Open Group A
98 </li> 110 </li>
99 <li> 111 <li class="esp">
100 <label>12:00</label> 2024 WDSF Open Group B 112 <label>12:00</label> 2024 WDSF Open Group B
101 </li> 113 </li>
102 <li> 114 <li class="esp">
103 <label>13:00</label> 2024 WDSF Open Group C 115 <label>13:00</label> 2024 WDSF Open Group C
104 </li> 116 </li>
105 <li> 117 <li class="esp">
106 <label>15:00</label> 2024 WDSF Open Group D 118 <label>15:00</label> 2024 WDSF Open Group D
107 </li> 119 </li>
108 </ul> 120 </ul>
...@@ -113,7 +125,7 @@ ...@@ -113,7 +125,7 @@
113 <el-col :sm="24" :lg="12"> 125 <el-col :sm="24" :lg="12">
114 <div class="indexTitle"> 126 <div class="indexTitle">
115 <h3 class="leftboderTT">RESULT</h3> 127 <h3 class="leftboderTT">RESULT</h3>
116 <a class="more" @click="goMatch">MORE</a> 128 <a class="more" @click="gosaiC">MORE</a>
117 </div> 129 </div>
118 <!--历史排名--> 130 <!--历史排名-->
119 <el-card :body-style="{'padding':'10px 20px 18px'}"> 131 <el-card :body-style="{'padding':'10px 20px 18px'}">
...@@ -129,7 +141,7 @@ ...@@ -129,7 +141,7 @@
129 </template> 141 </template>
130 </el-table-column> 142 </el-table-column>
131 <el-table-column label="Name" prop="name" /> 143 <el-table-column label="Name" prop="name" />
132 <el-table-column label="Country" /> 144 <el-table-column label="Country" prop="gj" />
133 <el-table-column label="Score" align="center"> 145 <el-table-column label="Score" align="center">
134 <template #default="scope"> 146 <template #default="scope">
135 <div class="text-primary">{{ scope.row.score }}</div> 147 <div class="text-primary">{{ scope.row.score }}</div>
...@@ -148,15 +160,15 @@ ...@@ -148,15 +160,15 @@
148 <div class="box"> 160 <div class="box">
149 <div class="indexTitle"> 161 <div class="indexTitle">
150 <h3 class="leftboderTT">NEWS</h3> 162 <h3 class="leftboderTT">NEWS</h3>
151 <a class="more" @click="goMatch">MORE</a> 163 <a class="more" @click="goNews">MORE</a>
152 </div> 164 </div>
153 <el-row :gutter="20"> 165 <el-row :gutter="20">
154 <el-col 166 <el-col
155 v-for="(n,index) in newest2" 167 v-for="(n,index) in newest2"
156 :key="n.id" :xs="12" :sm="8" 168 :key="n.id" :xs="24" :sm="8"
157 :lg="8" 169 :lg="8"
158 > 170 >
159 <div class="activeItem"> 171 <div class="activeItem" @click="goNewsDetail(n)">
160 <div class="imgbox"> 172 <div class="imgbox">
161 <img :src="fillImgUrl_webSite(n.picUrl)"> 173 <img :src="fillImgUrl_webSite(n.picUrl)">
162 </div> 174 </div>
...@@ -166,7 +178,7 @@ ...@@ -166,7 +178,7 @@
166 </div> 178 </div>
167 <h3 class="esp">{{ n.name }}</h3> 179 <h3 class="esp">{{ n.name }}</h3>
168 <p class="esp_2"> 180 <p class="esp_2">
169 The national standard Latin dance is a sports competitive dance with a strong explosive style and skill as its characteristic. It has a great potential for competitive sports dance and has been included in the official competition of the Asian Games 181 {{n.subName}}
170 </p> 182 </p>
171 <a>DETAIL</a> 183 <a>DETAIL</a>
172 </div> 184 </div>
...@@ -185,7 +197,7 @@ ...@@ -185,7 +197,7 @@
185 <el-card> 197 <el-card>
186 <el-row :gutter="20"> 198 <el-row :gutter="20">
187 <el-col :lg="8"> 199 <el-col :lg="8">
188 <div class="liveImgbox"> 200 <div class="liveImgbox" @click="goNewsDetail(livelist[0])">
189 <i class="ii">Living</i> 201 <i class="ii">Living</i>
190 <img :src="fillImgUrl_webSite(livelist[0]?.picUrl)"> 202 <img :src="fillImgUrl_webSite(livelist[0]?.picUrl)">
191 <h3 class="esp">{{ livelist[0]?.name }} 203 <h3 class="esp">{{ livelist[0]?.name }}
...@@ -194,14 +206,14 @@ ...@@ -194,14 +206,14 @@
194 </el-col> 206 </el-col>
195 <el-col :lg="16"> 207 <el-col :lg="16">
196 208
197 <div class="swiperPic"> 209 <div class="swiperPic forPx">
198 <swiper 210 <swiper
199 class="swiper-wrapper" :modules="modules" :slides-per-view="3" :space-between="20" 211 class="swiper-wrapper" :modules="modules" :slides-per-view="3" :space-between="20"
200 :navigation="navigationPic" 212 :navigation="navigationPic"
201 :autoplay="true" :loop="true" 213 :autoplay="true" :loop="true"
202 > 214 >
203 <swiper-slide v-for="(n,i) in picList" :key="i"> 215 <swiper-slide v-for="(n,i) in picList" :key="i" >
204 <div class="picbox" @click="goDetail(n)"> 216 <div class="picbox" @click="goNewsDetail(n)">
205 <img :src="fillImgUrl_webSite(n.picUrl)"> 217 <img :src="fillImgUrl_webSite(n.picUrl)">
206 </div> 218 </div>
207 </swiper-slide> 219 </swiper-slide>
...@@ -214,12 +226,12 @@ ...@@ -214,12 +226,12 @@
214 </el-row> 226 </el-row>
215 <el-row class="news-l-r"> 227 <el-row class="news-l-r">
216 <el-col v-for="(n,index) in livelist" v-show="index>0" :lg="8"> 228 <el-col v-for="(n,index) in livelist" v-show="index>0" :lg="8">
217 <div class="item" style="padding: 0;margin: 20px 0 0"> 229 <div class="item" style="padding: 0;margin: 20px 0 0" @click="goNewsDetail(n)">
218 <div class="imgbox"> 230 <div class="imgbox">
219 <i class="playIcon" /> 231 <i class="playIcon" />
220 <img :src="fillImgUrl_webSite(n.picUrl)"></div> 232 <img :src="fillImgUrl_webSite(n.picUrl)"></div>
221 <div class="info"> 233 <div class="info">
222 <div class="text-primary small-size">Standard dancing | {{ n.belongTime }}</div> 234 <div class="text-primary small-size">Standard | {{ n.belongTime }}</div>
223 <h2 class="esp_2">{{ n.name }}</h2> 235 <h2 class="esp_2">{{ n.name }}</h2>
224 </div> 236 </div>
225 </div> 237 </div>
...@@ -233,11 +245,11 @@ ...@@ -233,11 +245,11 @@
233 <div> 245 <div>
234 <div class="box"> 246 <div class="box">
235 <div class="indexTitle"> 247 <div class="indexTitle">
236 <h3 class="leftboderTT">JUDGE</h3> 248 <h3 class="leftboderTT">JUDGES</h3>
237 </div> 249 </div>
238 <el-row :gutter="20"> 250 <el-row :gutter="20">
239 <el-col 251 <el-col
240 v-for="n in personList" :key="n.name" :sm="12" :xl="12" :xs="12" 252 v-for="n in personList" :key="n.name" :sm="12" :xl="4" :xs="12"
241 :lg="4" 253 :lg="4"
242 > 254 >
243 <div class="teacher"> 255 <div class="teacher">
...@@ -255,7 +267,7 @@ ...@@ -255,7 +267,7 @@
255 <el-col :lg="12"> 267 <el-col :lg="12">
256 <div class="indexTitle"> 268 <div class="indexTitle">
257 <h3 class="leftboderTT">About Us </h3> 269 <h3 class="leftboderTT">About Us </h3>
258 <a class="more" style="filter: brightness(10)" @click="goMatch">MORE</a> 270 <a class="more" style="filter: brightness(10)">MORE</a>
259 </div> 271 </div>
260 <div class="aboutBox"> 272 <div class="aboutBox">
261 <div class="content"> 273 <div class="content">
...@@ -264,7 +276,7 @@ ...@@ -264,7 +276,7 @@
264 <div class="shadowbox" /> 276 <div class="shadowbox" />
265 </div> 277 </div>
266 <div class="mt30 text-center"> 278 <div class="mt30 text-center">
267 <a class="btn-lineG" style="display: inline-flex;align-items: center;">Learn more <img style="filter: brightness(2);height: 8px;margin-left: 10px" src="@/assets/v1/more.png"></a> 279 <a class="btn-lineG" href="#/about/wuDao" style="display: inline-flex;align-items: center;">Learn more <img style="filter: brightness(2);height: 8px;margin-left: 10px" src="@/assets/v1/more.png"></a>
268 </div> 280 </div>
269 281
270 </div> 282 </div>
...@@ -272,13 +284,13 @@ ...@@ -272,13 +284,13 @@
272 <el-col :lg="12"> 284 <el-col :lg="12">
273 <div class="indexTitle"> 285 <div class="indexTitle">
274 <h3 class="leftboderTT">CONTACT</h3> 286 <h3 class="leftboderTT">CONTACT</h3>
275 <a class="more" style="filter: brightness(10)" @click="goMatch">MORE</a> 287 <a class="more" style="filter: brightness(10)" href="#/about/wuDao">MORE</a>
276 </div> 288 </div>
277 <div class="mapBox"> 289 <div class="mapBox">
278 <div class="content"> 290 <div class="content">
279 <div class="phone"> 291 <div class="phone">
280 <h4>Phone</h4> 292 <h4>Phone</h4>
281 <p>Miss Chang:+86 13921876678</p> 293 <p>Miss Chang:+86 18888888888</p>
282 </div> 294 </div>
283 <div class="address"> 295 <div class="address">
284 <h4>Address</h4> 296 <h4>Address</h4>
...@@ -325,7 +337,7 @@ ...@@ -325,7 +337,7 @@
325 <div v-if="showgg" class="fixed_gg"> 337 <div v-if="showgg" class="fixed_gg">
326 <!--天气--> 338 <!--天气-->
327 <el-icon @click="showgg=false"><circle-close /></el-icon> 339 <el-icon @click="showgg=false"><circle-close /></el-icon>
328 <img src="@/assets/dance/weather.png"> 340 <img src="@/assets/dance/weather_en.png">
329 </div> 341 </div>
330 </div> 342 </div>
331 </template> 343 </template>
...@@ -340,6 +352,13 @@ import { Swiper, SwiperSlide } from 'swiper/vue' ...@@ -340,6 +352,13 @@ import { Swiper, SwiperSlide } from 'swiper/vue'
340 import { Autoplay, Navigation } from 'swiper' 352 import { Autoplay, Navigation } from 'swiper'
341 import 'swiper/css' 353 import 'swiper/css'
342 import { dayjs } from 'element-plus' 354 import { dayjs } from 'element-plus'
355 import r01 from '@/assets/dance/r01.png'
356 import r02 from '@/assets/dance/r02.png'
357 import r03 from '@/assets/dance/r03.png'
358 import r04 from '@/assets/dance/r04.png'
359 import r05 from '@/assets/dance/r05.png'
360 import r06 from '@/assets/dance/r06.png'
361
343 const modules = [Autoplay, Navigation] 362 const modules = [Autoplay, Navigation]
344 const navigationPic = ref({ 363 const navigationPic = ref({
345 nextEl: '.picnext', 364 nextEl: '.picnext',
...@@ -350,27 +369,27 @@ const { proxy } = getCurrentInstance() ...@@ -350,27 +369,27 @@ const { proxy } = getCurrentInstance()
350 const activeRankName = ref(0) 369 const activeRankName = ref(0)
351 const time = ref(0) 370 const time = ref(0)
352 const rankList = ref([ 371 const rankList = ref([
353 { index: '1', name: 'wawa', score: '170' }, 372 { index: '1', name: 'Chen Shasha', score: '170',gj:'CHINA' },
354 { index: '2', name: 'wawa', score: '170' }, 373 { index: '2', name: 'Chen Shasha', score: '170' ,gj:'CHINA'},
355 { index: '3', name: 'wawa', score: '170' }, 374 { index: '3', name: 'Chen Shasha', score: '170',gj:'CHINA' },
356 { index: '4', name: 'wawa', score: '170' }, 375 { index: '4', name: 'Chen Shasha', score: '170',gj:'CHINA' },
357 { index: '5', name: 'wawa', score: '170' }, 376 { index: '5', name: 'Chen Shasha', score: '170' ,gj:'CHINA'},
358 { index: '6', name: 'wawa', score: '170' } 377 { index: '6', name: 'Chen Shasha', score: '170' ,gj:'CHINA'}
359 ]) 378 ])
360 const rankTabs = ref([ 379 const rankTabs = ref([
361 { name: 'Latin dance' }, 380 { name: 'Latin' },
362 { name: 'Standard dancing' }, 381 { name: 'Standard' },
363 { name: 'Rock and roll' }, 382 { name: 'Rock and roll' },
364 { name: 'Sharsa' }, 383 { name: 'Sharsa' },
365 { name: 'Street dance' } 384 { name: 'Breaking' }
366 ]) 385 ])
367 const personList = ref([ 386 const personList = ref([
368 { name: 'Zhang Jin', pp: 'artistic director', src: '@/assets/dance/r01.png' }, 387 { name: 'Zhang Jin', pp: 'artistic director', src: r01 },
369 { name: 'Wang min', pp: 'regimental commander', src: '@/assets/dance/r02.png' }, 388 { name: 'Wang min', pp: 'regimental commander', src: r02 },
370 { name: 'Xuxu', pp: 'artistic director', src: '@/assets/dance/r03.png' }, 389 { name: 'Xuxu', pp: 'artistic director', src: r03 },
371 { name: 'Wang Li', pp: 'regimental commander ', src: '@/assets/dance/r04.png' }, 390 { name: 'Wang Li', pp: 'regimental commander ', src: r04 },
372 { name: 'Yunlan', pp: 'artistic director', src: '@/assets/dance/r05.png' }, 391 { name: 'Yunlan', pp: 'artistic director', src: r05},
373 { name: 'Qian Yifan', pp: 'artistic director', src: '@/assets/dance/r06.png' } 392 { name: 'Qian Yifan', pp: 'artistic director', src: r06 }
374 ]) 393 ])
375 const activeNews = ref(0) 394 const activeNews = ref(0)
376 const banners = ref([]) 395 const banners = ref([])
...@@ -397,14 +416,14 @@ const init = () => { ...@@ -397,14 +416,14 @@ const init = () => {
397 getNewsListById( 416 getNewsListById(
398 { pageSize: 4, 417 { pageSize: 4,
399 pageNum: 1, 418 pageNum: 1,
400 sortId: '30000000' } 419 sortId: '10000008' }
401 ).then(res => { 420 ).then(res => {
402 livelist.value = res.rows 421 livelist.value = res.rows
403 }) 422 })
404 getNewsListById( 423 getNewsListById(
405 { pageSize: 5, 424 { pageSize: 5,
406 pageNum: 1, 425 pageNum: 1,
407 sortId: '30000001' } 426 sortId: '10000009' }
408 ).then(res => { 427 ).then(res => {
409 picList.value = res.rows 428 picList.value = res.rows
410 }) 429 })
...@@ -417,19 +436,24 @@ const init = () => { ...@@ -417,19 +436,24 @@ const init = () => {
417 newest2.value = res.rows 436 newest2.value = res.rows
418 }) 437 })
419 438
420 getHotActivity({ pageSize: 4, pageNum: 1 }) 439 // getHotActivity({ pageSize: 4, pageNum: 1 })
421 .then((res) => { 440 // .then((res) => {
422 hotActivity.value = res.rows 441 // hotActivity.value = res.rows
423 }) 442 // })
424 } 443 }
425 444
426 445
427 const goMatch = () => { 446 const gosaiC = () => {
428 router.push({ 447 router.push({
429 path: `/match/list` 448 path: `/saiC/index`
430 }) 449 })
431 } 450 }
432 const goDetail = (n) => { 451 const goNews = () => {
452 router.push({
453 path: `/news/index`
454 })
455 }
456 const goNewsDetail = (n) => {
433 if (n.isOut == '1') { 457 if (n.isOut == '1') {
434 window.open(n.jumpUrl) 458 window.open(n.jumpUrl)
435 } else { 459 } else {
...@@ -457,18 +481,21 @@ const goList = (query, name) => { ...@@ -457,18 +481,21 @@ const goList = (query, name) => {
457 } 481 }
458 .itemBox{ 482 .itemBox{
459 padding: 20px 40px; 483 padding: 20px 40px;
484 p{margin: 0;height: 40px;line-height: 20px;display: flex;align-items: center;}
460 } 485 }
461 border-radius: 15px; 486 border-radius: 15px;
462 .zn-btn{background: #FFFFFF; 487 .zn-btn{background: #FFFFFF;
463 font-size: 18px; 488 font-size: 18px;
464 color: #453DEA; 489 color: #453DEA;
465 border-radius: 23px;padding: 10px 20px;display: inline-flex;align-items: center;} 490 border-radius: 23px;padding: 10px 20px;display: inline-flex;align-items: center;}
466 .item{box-shadow: 0px 0px 21px 0px rgba(41,23,101,0.14);margin: 10px 0; 491 .item{box-shadow: 0px 0px 21px 0px rgba(41,23,101,0.14);margin: 20px 0;
467 display: flex;align-items: center; 492 display: flex;align-items: center;text-align: center;
468 font-size: 22px; 493 font-size: 18px; flex-direction: column;padding: 50px 10px 20px;
469 background: #FFFFFF; 494 background:url("@/assets/dance/znbb.png") no-repeat left #FFFFFF;
495 background-size: cover;
496 position: relative;
470 border-radius: 15px; 497 border-radius: 15px;
471 img{margin: 0 5%;} 498 img{position: absolute;top: -30px}
472 } 499 }
473 } 500 }
474 501
...@@ -603,11 +630,6 @@ const goList = (query, name) => { ...@@ -603,11 +630,6 @@ const goList = (query, name) => {
603 } 630 }
604 } 631 }
605 632
606
607 #part1 {
608 padding: 0 0 40px;
609 }
610
611 .relativebox { 633 .relativebox {
612 position: relative; 634 position: relative;
613 height: 400px; 635 height: 400px;
...@@ -691,4 +713,36 @@ const goList = (query, name) => { ...@@ -691,4 +713,36 @@ const goList = (query, name) => {
691 cursor: pointer; 713 cursor: pointer;
692 &:hover{filter:brightness(2)}} 714 &:hover{filter:brightness(2)}}
693 } 715 }
716
717 @media (max-width: 800px) {
718 .box{width: 94%}
719 .calendarList{padding: 0;
720 ul{
721 li{margin: 10px}
722 }
723 }
724 .aboutBox{padding: 20px 30px;}
725 .indexTitle{margin: 30px 0 20px}
726 .teacher{height: 320px;margin: 0 0 20px;
727 img{height: 260px}
728 }
729 .activeItem{margin: 0 0 20px;}
730 .mapBox{
731 div{padding-left: 40px;}
732 .content{ width: 80%;left: 10%;padding:10px 20px 0 20px;}
733 .address{margin: 30px 0;}
734 p{text-align: left;word-break: break-all;}
735 }
736 .fixed_gg {
737 display: none;
738 }
739 .bannerItem .banner-count{flex-direction: column;
740 transform: scale(0.8); left: 0;
741 right: 0;
742 .van-count-down{margin: 30px 0 0;}
743 }
744 .bgbg{ text-align: center;
745 h1{text-align: center}
746 }
747 }
694 </style> 748 </style>
......
...@@ -4,10 +4,10 @@ ...@@ -4,10 +4,10 @@
4 <div class="box mb20 "> 4 <div class="box mb20 ">
5 <el-card class="mb20"> 5 <el-card class="mb20">
6 <el-row :gutter="20"> 6 <el-row :gutter="20">
7 <el-col :lg="6"> 7 <el-col :lg="7" :md="24" :xl="6" >
8 <img> 8 <img class="mauto" src="@/assets/dance/fm.jpg">
9 </el-col> 9 </el-col>
10 <el-col :lg="10"> 10 <el-col :lg="9" :md="12" :xl="10">
11 <h3> 11 <h3>
12 2024年WDSF亚洲体育舞蹈节亚洲体育 舞蹈节 12 2024年WDSF亚洲体育舞蹈节亚洲体育 舞蹈节
13 </h3> 13 </h3>
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
16 <p class="ppl"><label class="bm3">&ensp;&ensp;&ensp;&ensp;点:</label>江苏省无锡市滨湖区体育中心A区201</p> 16 <p class="ppl"><label class="bm3">&ensp;&ensp;&ensp;&ensp;点:</label>江苏省无锡市滨湖区体育中心A区201</p>
17 <p class="ppl"><label class="bm4">报名截止:</label>2024-06-30 13:00</p> 17 <p class="ppl"><label class="bm4">报名截止:</label>2024-06-30 13:00</p>
18 </el-col> 18 </el-col>
19 <el-col :lg="8"> 19 <el-col :lg="8" :md="12" :xl="8">
20 <p class="countDownTitle"><span>报名截止倒计时</span></p> 20 <p class="countDownTitle"><span>报名截止倒计时</span></p>
21 <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒"> 21 <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒">
22 <template #default="timeData"> 22 <template #default="timeData">
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
50 </el-card> 50 </el-card>
51 51
52 <el-row :gutter="20"> 52 <el-row :gutter="20">
53 <el-col :span="18"> 53 <el-col :lg="18">
54 <el-card :body-style="{'padding':'0'}"> 54 <el-card :body-style="{'padding':'0'}">
55 55
56 <div class="lineHead"> 56 <div class="lineHead">
...@@ -359,9 +359,10 @@ ...@@ -359,9 +359,10 @@
359 </div> 359 </div>
360 </div> 360 </div>
361 </el-card> 361 </el-card>
362 <div style="height: 20px"></div>
362 363
363 </el-col> 364 </el-col>
364 <el-col :span="6"> 365 <el-col :lg="6">
365 <a class="btn-lineG mb20" style="display: block;text-align: center;">我要报名</a> 366 <a class="btn-lineG mb20" style="display: block;text-align: center;">我要报名</a>
366 <el-card :body-style="{padding: 0}"> 367 <el-card :body-style="{padding: 0}">
367 <el-tabs v-model="activeName2" class="match-tabs" @tab-click="handleClick"> 368 <el-tabs v-model="activeName2" class="match-tabs" @tab-click="handleClick">
...@@ -394,7 +395,7 @@ ...@@ -394,7 +395,7 @@
394 </div> 395 </div>
395 </el-dialog> 396 </el-dialog>
396 397
397 <groupDetail ref="dialogEditGroup" @submitForm="getMyGroupList" /> 398
398 </div> 399 </div>
399 </template> 400 </template>
400 401
...@@ -410,180 +411,8 @@ import * as match from '@/apiPc/match' ...@@ -410,180 +411,8 @@ import * as match from '@/apiPc/match'
410 import { toRefs } from '@vueuse/shared' 411 import { toRefs } from '@vueuse/shared'
411 import { ElMessage } from 'element-plus' 412 import { ElMessage } from 'element-plus'
412 import groupDetail from '../center/component/teamInfo_form' 413 import groupDetail from '../center/component/teamInfo_form'
414 const activeName2 = ref('first')
413 415
414 const data = reactive({
415 activeName: 'tab1',
416 matchData: {},
417 activeName2: 'first',
418 projectList: [],
419 groupList: [],
420 levelList: [],
421 levelListGirl: [],
422 levelListBoy: [],
423 popup: false,
424 popupGroupList: false,
425 groupListArr: [],
426 matchId: 0,
427 groups: [],
428 time: 0,
429 groupId: '',
430 signDoneGroupList: [],
431 cptLabelsList: [],
432 secondTabName: '参赛队',
433 collapseActive: '0',
434 activeNames: '1'
435 })
436 const {
437 activeName, activeName2, matchData, projectList, groupList, levelList, popup, popupGroupList, time,
438 groupListArr, matchId, groups, groupId, signDoneGroupList, levelListGirl, levelListBoy, cptLabelsList, secondTabName,
439 collapseActive, activeNames
440 } = toRefs(data)
441
442 onMounted(() => {
443 matchId.value = route.params.id
444 })
445
446 function getMyGroupList() {
447 match.getMyGroupList().then(res => {
448 groups.value = res.data
449 popupGroupList.value = true
450 })
451 }
452
453 function getMatch(id) {
454 match.getMatchById({ id: id }).then(res => {
455 matchData.value = res.data
456 if (matchData.value.disclaimerUrl && (matchData.value.disclaimerUrl.indexOf('https://') > -1)) {
457 matchData.value.dUrl = JSON.parse(matchData.value.disclaimerUrl)
458 }
459 if (matchData.value.signKnowUrl && (matchData.value.signKnowUrl.indexOf('https://') > -1)) {
460 matchData.value.sUrl = JSON.parse(matchData.value.signKnowUrl)
461 }
462 if (matchData.value.ruleUrl && (matchData.value.ruleUrl.indexOf('https://') > -1)) {
463 matchData.value.rUrl = JSON.parse(matchData.value.ruleUrl)
464 }
465
466 time.value = res.data.secondRemain * 1000
467 if (matchData.value.signType == 1 || matchData.value.signType == 2) {
468
469 } else {
470 secondTabName.value = '参赛人员'
471 }
472 if (matchData.value.type == 1 && matchData.value.cpts) {
473 secondTabName.value = '分站赛'
474 activeName.value = 'third'
475 }
476 if (res.data.cptLabels && cptLabelsList.value.length == 0) {
477 cptLabelsList.value = res.data.cptLabels
478 for (const c of cptLabelsList.value) {
479 if (c.fileUrl && c.fileUrl != 'null') {
480 var arr = JSON.parse(c.fileUrl)
481 c.fileObj = arr[0]
482 console.log(c.fileObj)
483 }
484 }
485 }
486 })
487 }
488
489 function getGroupListByCptId(id) {
490 match.getGroupListByCptId(id).then(res => {
491 signDoneGroupList.value = res.data
492 })
493 }
494
495 function getThisGroupId(item) {
496 groupId.value = item.id
497 checkIsSign(matchData.value.signType).then(() => {
498 goSignType2()
499 })
500 }
501
502 function handleClick(tab, event) {
503 // console.log(tab, event)
504 }
505
506
507 // 获取已报信息
508 function checkIsSign(signType) {
509 var obj = {
510 cptId: matchId.value,
511 groupId: groupId.value || ''
512 }
513 return match.getMySignInfo(obj).then(res => {
514 if (res.data.type == '1') {
515 let str = ''
516 if (signType == '0') {
517 str = '已报名,不能重复报名'
518 } else {
519 str = '该参赛队已报名,请选择其他参赛队'
520 }
521 ElMessage.error(str)
522 return Promise.reject('rejected message')
523 }
524 })
525 }
526
527 function choseSignType(item) {
528 if (item.signType == '0') {
529 // 个人报名
530 checkIsSign(item.signType).then((res) => {
531 router.push({
532 path: `${route.params.id}/singleSign`
533 })
534 })
535 } else {
536 // 团队报名 团体-队伍报名
537 getMyGroupList()
538 }
539 }
540
541 function goSignType2() {
542 router.push({
543 path: `${route.params.id}/teamSign`,
544 query: {
545 matchId: matchId.value,
546 groupId: groupId.value,
547 signType: matchData.value.signType
548 }
549 })
550 }
551
552 function goAddgroup() {
553 // 新团
554 proxy.$refs['dialogEditGroup'].open({
555 title: '新建参赛队'
556 })
557 }
558
559 function goDetail(id) {
560 const routeData = router.resolve({
561 path: `${id}`
562 })
563 window.open(routeData.href, '_blank')
564 }
565
566 function getLevelList(val) {
567 levelList.value = []
568 levelListGirl.value = []
569 levelListBoy.value = []
570 if (val) {
571 match.getLeveListByGroupId(val).then(res => {
572 for (const l of res.data) {
573 if (l.levelType == '1') {
574 levelListBoy.value.push(l)
575 } else if (l.levelType == '2') {
576 levelListGirl.value.push(l)
577 } else {
578 levelList.value.push(l)
579 }
580 }
581 })
582 }
583 }
584
585 // getMatch(route.params.id)
586 // getGroupListByCptId(router.currentRoute.value.params.id)
587 </script> 416 </script>
588 417
589 <style scoped lang="scss"> 418 <style scoped lang="scss">
...@@ -1016,4 +845,17 @@ function getLevelList(val) { ...@@ -1016,4 +845,17 @@ function getLevelList(val) {
1016 h4{margin: 0;font-size: 16px;} 845 h4{margin: 0;font-size: 16px;}
1017 } 846 }
1018 } 847 }
848 .table{white-space: nowrap}
849 @media (max-width: 800px) {
850 .van-count-down{
851 .block{margin: 0 10px;}
852 }
853 .colon{display: none;}
854 .funcBtns{
855 div{padding: 0 0 10px;
856 margin: 0 5px;
857
858 }
859 }
860 }
1019 </style> 861 </style>
......
1 <template>
2 <div class="app-container">
3 <div class="mt30" />
4 <div class="box mb20 ">
5 <el-card class="mb20">
6 <el-row :gutter="20">
7 <el-col :lg="7" :md="24" :xl="6" >
8 <img class="mauto" src="@/assets/dance/fm.jpg">
9 </el-col>
10 <el-col :lg="9" :md="12" :xl="10">
11 <h3>
12 WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024
13 </h3>
14 <p class="ppl"><label class="bm1">Playing Time:</label>2024.07.21-2024.07.23</p>
15 <p class="ppl"><label class="bm2">Event Level:</label>league</p>
16 <p class="ppl"><label class="bm3">Location:</label>201 201, Zone A, Sports Center, Binhu District, Wuxi City, Jiangsu Province </p>
17 <p class="ppl"><label class="bm4">Registration Deadline:</label>2024-06-30 13:00</p>
18 </el-col>
19 <el-col :lg="8" :md="12" :xl="8">
20 <p class="countDownTitle"><span>Registration deadline countdown</span></p>
21 <van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒">
22 <template #default="timeData">
23 <span class="block">{{ timeData.days }}</span>
24 <span class="colon">Days</span>
25 <span class="block">{{ timeData.hours }}</span>
26 <span class="colon">Hrs</span>
27 <span class="block">{{ timeData.minutes }}</span>
28 <span class="colon">Min</span>
29 <span class="block">{{ timeData.seconds }}</span>
30 <span class="colon">Sec</span>
31 </template>
32 </van-count-down>
33
34 <div class="funcBtns">
35 <div>
36 <img src="@/assets/dance/ds01.png"/>
37 <h4>TICKET BOOKING</h4>
38 </div>
39 <div>
40 <img src="@/assets/dance/ds02.png"/>
41 <h4>HOTEL RESERVATIONS</h4>
42 </div>
43 <div>
44 <img src="@/assets/dance/ds03.png"/>
45 <h4>MAKEUP APPOINTMENTS</h4>
46 </div>
47 </div>
48 </el-col>
49 </el-row>
50 </el-card>
51
52 <el-row :gutter="20">
53 <el-col :lg="18">
54 <el-card :body-style="{'padding':'0'}">
55
56 <div class="lineHead">
57 <ul>
58 <li class="active">Event Details</li>
59 <li>Schedule</li>
60 <li>Participating Teams</li>
61 <li>Achievement</li>
62 <li>Notes</li>
63 </ul>
64 </div>
65
66 <div style="padding: 0 20px 20px">
67 <!-- 赛事详情-->
68 <div class="indexTitle"><h3 class="leftboderTT">Organization</h3></div>
69 <el-row :gutter="20">
70 <el-col :lg="8">
71 <div class="dlbox">
72 <dl>
73 <dt>Organizer</dt>
74 <dd>World Sports Dance Federation(WDSF)</dd>
75 <dd>Asian Sports Dance Federation(DSA)</dd>
76 <dd>China Sports Federation(CDSF)</dd>
77 </dl>
78 </div>
79 </el-col>
80 <el-col :lg="8">
81 <div class="dlbox">
82 <dl>
83 <dt>Undertaker</dt>
84 <dd>Jiangsu Provincial Sports Federation</dd>
85 <dd>Wuxi Municipal People's Government</dd>
86 </dl>
87 </div>
88 </el-col>
89 <el-col :lg="8">
90 <div class="dlbox">
91 <dl>
92 <dt>Co-organizer</dt>
93 <dd>Wuxi Sports Bureau</dd>
94 <dd>Jiangsu Wuxi Economic Development Zone Management Committee</dd>
95 <dd>Jiangsu Provincial Sports Dance Association</dd>
96 </dl>
97 </div>
98 </el-col>
99 <el-col :lg="8">
100 <div class="dlbox">
101 <dl>
102 <dt>Operator</dt>
103 <dd>Jijin Wuxi Sports and Health Co., Ltd</dd>
104 </dl>
105 </div>
106 </el-col>
107
108 </el-row>
109 <div class="indexTitle"><h3 class="leftboderTT">Notes</h3></div>
110 <div class="xzbox">
111 1. Each unit is limited to reporting one team, each team needs to report one leader (athletes can also serve), and athletes are limited to reporting four<br>
112 2. Participating athletes must be employees of the participating companies (including labor dispatch and foreign employees)<br>
113 3. Contestants must be between the ages of 18 and 50, and those over 50 are not recommended to participate in this competition
114 <br>
115 4.Contestants must be physically healthy
116 </div>
117
118 <div class="indexTitle"><h3 class="leftboderTT">Competition projects</h3></div>
119 <div class="collapsebox">
120 <el-collapse v-model="activeNames" @change="handleChange">
121 <el-collapse-item title="Breaking" name="1">
122 <div class="pd20">
123 <div class="tablebody">
124 <table class="table">
125 <tr>
126 <td>date</td>
127 <td>unit</td>
128 <td>group</td>
129 <td>time</td>
130 <td>stage</td>
131 </tr>
132 <tr>
133 <td rowspan="4">2023/10/6(Friday)</td>
134 <td rowspan="4">BRK01</td>
135 <td>man</td>
136 <td>14:30 - 15:30</td>
137 <td>Qualification Tournament</td>
138 </tr>
139 <tr>
140 <td>woman</td>
141 <td>14:30 - 15:30</td>
142 <td>Qualification Tournament</td>
143 </tr>
144 <tr>
145 <td>man</td>
146 <td>14:30 - 15:30</td>
147 <td>round robin </td>
148 </tr>
149 <tr>
150 <td>woman</td>
151 <td>14:30 - 15:30</td>
152 <td>round robin </td>
153 </tr>
154 <tr>
155 <td rowspan="8">2023/10/7(Saturday)</td>
156 <td rowspan="8">BRK02</td>
157 <td>man</td>
158 <td>14:30 - 15:30</td>
159 <td>quarter final </td>
160 </tr>
161 <tr>
162 <td>man</td>
163 <td>14:30 - 15:30</td>
164 <td>quarter final </td>
165 </tr>
166 <tr>
167 <td>woman</td>
168 <td>14:30 - 15:30</td>
169 <td>semifinal</td>
170 </tr>
171 <tr>
172 <td>woman</td>
173 <td>14:30 - 15:30</td>
174 <td>semifinal</td>
175 </tr>
176 <tr>
177 <td>man</td>
178 <td>14:30 - 15:30</td>
179 <td>LPL</td>
180 </tr>
181 <tr>
182 <td>woman</td>
183 <td>14:30 - 15:30</td>
184 <td>LPL</td>
185 </tr>
186 <tr>
187 <td>man</td>
188 <td>14:30 - 15:30</td>
189 <td>decider</td>
190 </tr>
191 <tr>
192 <td>woman</td>
193 <td>14:30 - 15:30</td>
194 <td>decider</td>
195 </tr>
196 <tr>
197 <td colspan="5" style="text-align: left">
198 Note: The competition schedule will be adjusted based on the final number of participants and the requirements for television broadcasting
199 </td>
200 </tr>
201 </table>
202 </div>
203 </div>
204 </el-collapse-item>
205 <el-collapse-item title="Latin " name="2">
206 <div class="pd20">
207 <table class="table">
208 <tr>
209 <td>date</td>
210 <td>unit</td>
211 <td>group</td>
212 <td>time</td>
213 <td>stage</td>
214 </tr>
215 <tr>
216 <td rowspan="4">2023/10/6(Friday )</td>
217 <td rowspan="4">BRK01</td>
218 <td>man</td>
219 <td>14:30 - 15:30</td>
220 <td>Qualification Tournament</td>
221 </tr>
222 <tr>
223 <td>woman</td>
224 <td>14:30 - 15:30</td>
225 <td>Qualification Tournament</td>
226 </tr>
227 <tr>
228 <td>man</td>
229 <td>14:30 - 15:30</td>
230 <td>round robin </td>
231 </tr>
232 <tr>
233 <td>woman</td>
234 <td>14:30 - 15:30</td>
235 <td>round robin </td>
236 </tr>
237 <tr>
238 <td rowspan="8">2023/10/7(Saturday )</td>
239 <td rowspan="8">BRK02</td>
240 <td>man</td>
241 <td>14:30 - 15:30</td>
242 <td>quarter final </td>
243 </tr>
244 <tr>
245 <td>man</td>
246 <td>14:30 - 15:30</td>
247 <td>quarter final </td>
248 </tr>
249 <tr>
250 <td>woman</td>
251 <td>14:30 - 15:30</td>
252 <td>semifinal</td>
253 </tr>
254 <tr>
255 <td>woman</td>
256 <td>14:30 - 15:30</td>
257 <td>semifinal</td>
258 </tr>
259 <tr>
260 <td>man</td>
261 <td>14:30 - 15:30</td>
262 <td>LPL</td>
263 </tr>
264 <tr>
265 <td>woman</td>
266 <td>14:30 - 15:30</td>
267 <td>LPL</td>
268 </tr>
269 <tr>
270 <td>man</td>
271 <td>14:30 - 15:30</td>
272 <td>decider</td>
273 </tr>
274 <tr>
275 <td>woman</td>
276 <td>14:30 - 15:30</td>
277 <td>decider</td>
278 </tr>
279
280 </table>
281 </div>
282 </el-collapse-item>
283 <el-collapse-item title="Standard " name="3">
284 <div class="pd20">
285 <table class="table">
286 <tr>
287 <td>date</td>
288 <td>unit</td>
289 <td>group</td>
290 <td>time</td>
291 <td>stage</td>
292 </tr>
293 <tr>
294 <td rowspan="4">2023/10/6(Friday )</td>
295 <td rowspan="4">BRK01</td>
296 <td>man</td>
297 <td>14:30 - 15:30</td>
298 <td>Qualification Tournament</td>
299 </tr>
300 <tr>
301 <td>woman</td>
302 <td>14:30 - 15:30</td>
303 <td>Qualification Tournament</td>
304 </tr>
305 <tr>
306 <td>man</td>
307 <td>14:30 - 15:30</td>
308 <td>round robin </td>
309 </tr>
310 <tr>
311 <td>woman</td>
312 <td>14:30 - 15:30</td>
313 <td>round robin </td>
314 </tr>
315 <tr>
316 <td rowspan="8">2023/10/7(Saturday )</td>
317 <td rowspan="8">BRK02</td>
318 <td>man</td>
319 <td>14:30 - 15:30</td>
320 <td>quarter final </td>
321 </tr>
322 <tr>
323 <td>man</td>
324 <td>14:30 - 15:30</td>
325 <td>quarter final </td>
326 </tr>
327 <tr>
328 <td>woman</td>
329 <td>14:30 - 15:30</td>
330 <td>semifinal</td>
331 </tr>
332 <tr>
333 <td>woman</td>
334 <td>14:30 - 15:30</td>
335 <td>semifinal</td>
336 </tr>
337 <tr>
338 <td>man</td>
339 <td>14:30 - 15:30</td>
340 <td>LPL</td>
341 </tr>
342 <tr>
343 <td>woman</td>
344 <td>14:30 - 15:30</td>
345 <td>LPL</td>
346 </tr>
347 <tr>
348 <td>man</td>
349 <td>14:30 - 15:30</td>
350 <td>decider</td>
351 </tr>
352 <tr>
353 <td>woman</td>
354 <td>14:30 - 15:30</td>
355 <td>decider</td>
356 </tr>
357
358 </table>
359 </div>
360 </el-collapse-item>
361 </el-collapse>
362 </div>
363 </div>
364 </el-card>
365 <div style="height: 20px"></div>
366 </el-col>
367 <el-col :lg="6">
368 <a class="btn-lineG mb20" style="display: block;text-align: center;">Application</a>
369 <el-card :body-style="{padding: 0}">
370 <el-tabs v-model="activeName2" class="match-tabs" @tab-click="handleClick">
371 <el-tab-pane label="Registration Time" name="first">
372 <div class="gg">
373 <p><label>Registration Time:</label>2023-03-23 ~ 2023-05-09</p>
374 <p><label>Playing Time:</label>2023-05-14 ~ 2023-05-14</p>
375 <p><label>Contact Information:</label>13915234567</p>
376 </div>
377 </el-tab-pane>
378 </el-tabs>
379 </el-card>
380 </el-col>
381 </el-row>
382 </div>
383 <div style="height: 50px"></div>
384
385 </div>
386 </template>
387
388 <script setup>
389 import { getCurrentInstance, ref } from 'vue'
390 import { reactive, onMounted } from '@vue/runtime-core'
391 import { useRoute, useRouter } from 'vue-router'
392
393 const route = useRoute()
394 const router = useRouter()
395 const { proxy } = getCurrentInstance()
396 import * as match from '@/apiPc/match'
397 import { toRefs } from '@vueuse/shared'
398 import { ElMessage } from 'element-plus'
399 import groupDetail from '../center/component/teamInfo_form'
400
401 const data = reactive({
402 activeName: 'tab1',
403 matchData: {},
404 activeName2: 'first',
405 projectList: [],
406 groupList: [],
407 levelList: [],
408 levelListGirl: [],
409 levelListBoy: [],
410 popup: false,
411 popupGroupList: false,
412 groupListArr: [],
413 matchId: 0,
414 groups: [],
415 time: 0,
416 groupId: '',
417 signDoneGroupList: [],
418 cptLabelsList: [],
419 secondTabName: '参赛队',
420 collapseActive: '0',
421 activeNames: '1'
422 })
423 const {
424 activeName, activeName2, matchData, projectList, groupList, levelList, popup, popupGroupList, time,
425 groupListArr, matchId, groups, groupId, signDoneGroupList, levelListGirl, levelListBoy, cptLabelsList, secondTabName,
426 collapseActive, activeNames
427 } = toRefs(data)
428
429
430
431 </script>
432
433 <style scoped lang="scss">
434 .indexTitle{margin: 20px 0 12px;
435 h3{
436 font-size: 20px;
437 color:var(--el-color-primary);
438 }
439 }
440 .xzbox{border: 2px solid #DDECFB;padding: 20px;line-height: 2;
441 color: #29343C;
442 font-size: 16px;}
443 .dlbox{background: url("@/assets/dance/ds_bg.png") no-repeat left;background-size: 100% 100%;
444 padding: 0 0 20px;margin: 0 0 20px;height: 90%;
445 dl{min-height: 120px;margin: 0;
446 dt{
447 height: 30px;
448 font-size: 16px;margin: 0 0 18px;
449 font-weight: 600;line-height: 30px;display: inline-block;padding:0 20px 0 14px;
450 background: linear-gradient(90deg, #8623FC, #453DEA);
451 border-radius: 0px 0px 15px 0px;color: #fff;}
452 }
453 dd{
454 font-size: 14px;line-height: 1.6;
455 color: #29343C;}
456 }
457 .ppl{color: #29343C;
458 label{color: #929AA0;}
459 }
460 .bm1{background: url("@/assets/dance/bm1.png") no-repeat left;background-size: contain;padding-left: 24px;}
461 .bm2{background: url("@/assets/dance/bm2.png") no-repeat left;background-size: contain;padding-left: 24px;}
462 .bm3{background: url("@/assets/dance/bm3.png") no-repeat left;background-size: contain;padding-left: 24px;}
463 .bm4{background: url("@/assets/dance/bm4.png") no-repeat left;background-size: contain;padding-left: 24px;}
464 .app-container {
465 padding: 0;
466 background: #F5F7F9;
467 }
468
469 .countDownTitle {
470 text-align: center;
471 color: #525F6B;
472 position: relative;
473 width: 100%;
474 left: 0;
475 font-size: 14px;
476 }
477
478 .countDownTitle span {
479 background: #fff;
480 padding: 0 10px;
481 position: relative;
482 z-index: 1;
483 }
484
485 .countDownTitle::after {
486 position: absolute;
487 background: #ccc;
488 height: 1px;
489 content: '';
490 top: 0;
491 bottom: 0;
492 margin: auto;
493 width: 100%;
494 left: 0;
495 }
496
497 .typeTag {
498 border-radius: 10px 10px 10px 0px;
499 padding: 2px 12px;
500 background: #FF8124;
501 font-size: 14px;
502 color: #fff;
503 }
504
505 .matchItem {
506 cursor: pointer;
507 margin-bottom: 40px;
508 height: 180px;
509 background: #FFFFFF;
510 position: relative;
511 border-radius: 10px;
512
513 .el-avatar {
514 position: absolute;
515 left: 20px;
516 top: 30px;
517
518 img {
519 background: #fff;
520 }
521 }
522
523 .info {
524 padding: 12px 0 0 140px;
525
526 p {
527 font-size: 14px;
528 }
529 }
530
531 .typeTag {
532 position: absolute;
533 right: 0;
534 top: 0;
535 }
536
537 h3 {
538 font-weight: 500;
539 font-size: 18px;
540 color: #000000;
541 text-overflow: ellipsis;
542 }
543
544 &:hover h3 {
545 font-weight: bold;
546 }
547 }
548
549 .el-pagination {
550 justify-content: center;
551 --el-pagination-bg-color: none;
552 }
553
554 .kind {
555 background: #fff;
556 margin: 0 0 30px;
557
558 ul {
559 list-style: none;
560 padding: 30px 0 10px;
561
562 li {
563 margin: 0 0 20px;
564 display: flex;
565 align-items: center;
566 }
567 }
568 }
569
570 .listTitle {
571 display: flex;
572 justify-content: space-between;
573 align-items: center;
574 }
575
576 .match-tabs {
577 background: #fff;
578 padding: 10px 20px 20px;
579 }
580
581 .teamItem {
582 height: 80px;
583 background: #FBFCFD;
584 border-radius: 10px;
585 margin: 10px 0;
586 display: flex;
587 align-items: center;
588 padding: 0 20px;
589 overflow: hidden;
590 text-overflow: ellipsis;
591
592 .el-avatar {
593 border: 1px solid #EEEEEE;
594 }
595
596 .name {
597 margin-left: 15px;
598 flex: 1;
599 font-size: 14px;
600 }
601 }
602
603 .grid-top {
604 background: #fff;
605 min-height: 300px;
606 padding: 28px 28px 10px;
607 border-radius: 10px;
608 margin: 30px auto;
609 position: relative;
610
611 .cover {
612 width: 420px;
613 height: 250px;
614 position: absolute;
615 border-radius: 10px;
616 background: #fff;
617 object-fit: cover;
618 }
619
620 .info {
621 padding-left: 440px;
622
623 h3 {
624 font-weight: 500;
625 color: #000000;
626 margin: 0 0 10px;
627 font-size: 24px;
628 img{margin-right: 10px}
629 .typeTag {
630 border-radius: 13px 13px 13px 0;
631 margin-left: 10px;
632 }
633 }
634
635 p {
636 color: #7B7F83;
637 font-size: 16px;
638 }
639 .countDownTitle{font-size: 14px;}
640 .el-button.el-button--primary {
641 background: #CA171D;
642 border: none;
643 }
644 }
645 }
646
647 .gg {
648 margin: 0 0 28px;
649
650 h3 {border-left: 2px solid #BA2E29; padding: 0 0 0 12px;
651 margin: 20px 0 8px;
652 font-weight: 500;
653 font-size: 16px;
654 }
655
656 p {
657 font-size: 16px;
658 color: #000;
659 margin: 0 0 8px;
660 line-height: 24px;
661 label{color: #7D8790;}
662 }
663
664 .pp {
665 border: 1px solid rgba(186, 46, 41, 0.3);
666 padding: 20px;
667 }
668 }
669
670 .van-count-down {
671 text-align: center;
672 margin: 20px 0;
673 }
674
675 .colon {
676 display: inline-block;
677 font-size: 16px;
678 margin: 0 6px;
679 color: #7B7F83;
680 }
681
682 .block {
683 display: inline-block;
684 width: 52px;
685 color: #fff;
686 font-size: 26px;
687 font-weight: bold;
688 border-radius: 10px;
689 background: url(@/assets/img/djs_bg.png) left;
690 background-size: 100% 100%;
691 line-height: 50px;
692 text-align: center;
693 }
694
695
696 .time-address {
697 font-size: 15px;
698 margin: 10px 0 0;
699 color: #999;
700 }
701
702 .popList .teamItem {
703 cursor: pointer;
704 }
705
706 .popList .teamItem:hover {
707 background: #e7e7e7;
708 }
709
710 .richContent {
711 overflow: hidden;
712 }
713
714 .richContent img {
715 max-width: 100%;
716 }
717
718 .red-center {
719 font-size: 24px;
720 text-align: center;
721 font-family: DIN Alternate;
722 padding: 30px 0;
723 font-weight: bold;
724 color: #E60012;
725 }
726
727 .plist {
728 dt {
729 font-size: 14px;
730 }
731
732 dd {
733 display: inline-block;
734 margin: 0 15px 0 0;
735 }
736
737 dd.t {
738 display: block;
739 margin: 15px 0 6px;
740 border-left: 3px solid #1ec886;
741 line-height: 1;
742 padding: 6px;
743 background: #f5f5f5;
744 }
745
746 li {
747 line-height: 40px;
748 display: flex;
749 justify-content: space-between;
750 padding: 0 20px;
751 align-items: center;
752 cursor: pointer;
753 }
754
755 li:hover {
756 background: #eee;
757 }
758 }
759
760 .pp .el-link {
761 margin-right: 15px;
762 font-size: 16px;
763 }
764
765 :deep(.el-collapse-item__header) {
766 font-weight: 500;
767 font-size: 16px;
768 }
769
770 .pobtns {
771 position: absolute;
772 right: 20px;
773 bottom: 20px;
774 }
775
776 :deep(.el-tabs__item) {
777 font-size: 16px;
778 }
779
780 .signButton {
781 margin: 0 0 20px;
782
783 button {
784 width: 90%;background: var(--el-color-primary);
785 font-size: 20px;margin: 30px auto 0;display: block;
786 height: 50px;
787 }
788 }
789
790 .el-timeline-item__timestamp.is-top {
791 font-size: 16px;
792 }
793
794 .el-timeline-item__content {
795 font-size: 16px;
796 margin: 10px 0 0;
797 }
798
799 .typeTag.blue {
800 background: #00a0e9;
801 }
802
803 .typeTag.green {
804 background: #34cf96;
805 }
806
807 :deep(.el-tabs__nav-wrap::after) {
808 height: 1px;
809 }
810
811 .table{width: 100%;border-left: 1px solid #e1e1e1;border-top:1px solid #e1e1e1;
812 th{background: #eee;padding: 6px 10px;
813 border-right: 1px solid #e1e1e1;
814 border-bottom:1px solid #e1e1e1;
815 font-size: 15px;
816 }
817 td{padding: 6px 10px;border-right: 1px solid #e1e1e1;font-size: 15px;
818 border-bottom:1px solid #e1e1e1;vertical-align: middle;text-align: center;
819 span{margin-right: 10px}
820 span::after{content: ','}
821 span:last-child::after{content: ''}
822 }
823 }
824 .flexLine{display: flex;
825 label{font-weight: normal}
826 }
827
828 .nowteamItem{
829 height: 100px;
830 background: #FBFCFD;
831 border-radius: 10px;
832 margin: 20px 0;
833 display: flex;
834 align-items: center;
835 padding: 0 20px;
836 overflow: hidden;
837 text-overflow: ellipsis;
838 .el-avatar {margin: 0 20px}
839 .info{
840 h3{margin: 0 0 15px;}
841 p{margin: 0;color: #1ab394}
842 }
843 .rr{text-align: right; flex: 1;
844 span{color: #1ab394}
845 }
846 }
847
848 .collapsebox{
849 .el-collapse-item{margin-bottom: 15px;--el-collapse-content-bg-color:#F4F9FE;
850 border: 2px solid #DDECFB;
851 .table{background: #fff;}
852 }
853 .is-active{--el-collapse-header-bg-color:#F4F9FE}
854 :deep(.el-collapse-item__header){padding: 0 20px;}
855 }
856 .funcBtns{display: flex; justify-content: space-around;
857 div{text-align: center;background: #F7FAFF;box-shadow:0 0 10px #d4cae4;margin: 0 5px;
858 border-radius: 15px;padding:0 10px 15px;
859 img{margin: auto}
860 h4{margin: 0;font-size: 14px;}
861 }
862 }
863 .table{white-space: nowrap}
864
865 @media (max-width: 800px) {
866 .van-count-down{
867 .block{margin: 0 10px;}
868 }
869 .colon{display: none;}
870 .funcBtns{
871 div{padding: 0 0 10px;
872 margin: 0 5px;
873
874 }
875 }
876 }
877 </style>
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
8 8
9 <el-row :gutter="20"> 9 <el-row :gutter="20">
10 <el-col :lg="12" :sm="24" :md="12"> 10 <el-col :lg="12" :sm="24" :md="12">
11 <div class="liveImgbox"> 11 <div class="liveImgbox" @click="goDetail(newsList[0])">
12 <i class="ii">直播中</i> 12 <i class="ii">直播中</i>
13 <img :src="fillImgUrl_webSite(newsList[0]?.picUrl)"> 13 <img :src="fillImgUrl_webSite(newsList[0]?.picUrl)">
14 <h3 class="esp">{{ newsList[0]?.name }} 14 <h3 class="esp">{{ newsList[0]?.name }}
...@@ -45,25 +45,25 @@ ...@@ -45,25 +45,25 @@
45 45
46 <div class="indexTitle"> 46 <div class="indexTitle">
47 <h3 class="leftboderTT">精彩图片</h3> 47 <h3 class="leftboderTT">精彩图片</h3>
48 <a class="more" @click="goList(query2.sortId,'舞蹈动态')">MORE</a> 48 <a class="more" @click="goList(query2.sortId,'精彩图片')">MORE</a>
49 </div> 49 </div>
50 <el-row class="mb20" :gutter="20"> 50 <el-row class="mb20" :gutter="20">
51 <el-col :lg="9"> 51 <el-col :lg="9">
52 <div class="picbox" ><img :src="fillImgUrl_webSite(newsList2[0]?.picUrl)"/></div> 52 <div class="picbox" @click="goDetail(newsList2[0])"><img :src="fillImgUrl_webSite(newsList2[0]?.picUrl)"/></div>
53 </el-col> 53 </el-col>
54 <el-col :lg="15"> 54 <el-col :lg="15">
55 <el-row :gutter="20"> 55 <el-row :gutter="20">
56 <el-col :lg="16"> 56 <el-col :lg="16">
57 <div class="picbox"><img :src="fillImgUrl_webSite(newsList2[1]?.picUrl)"/></div> 57 <div class="picbox" @click="goDetail(newsList2[1])"><img :src="fillImgUrl_webSite(newsList2[1]?.picUrl)"/></div>
58 </el-col> 58 </el-col>
59 <el-col :lg="8"> 59 <el-col :lg="8">
60 <div class="picbox" style="height: calc(50% - 10px)"><img :src="fillImgUrl_webSite(newsList2[2]?.picUrl)"/></div> 60 <div class="picbox" @click="goDetail(newsList2[2])" style="height: calc(50% - 10px)"><img :src="fillImgUrl_webSite(newsList2[2]?.picUrl)"/></div>
61 <div class="picbox" style="height: calc(50% - 10px);margin-top: 20px"><img :src="fillImgUrl_webSite(newsList2[3]?.picUrl)"/></div> 61 <div class="picbox" @click="goDetail(newsList2[3])" style="height: calc(50% - 10px);margin-top: 20px"><img :src="fillImgUrl_webSite(newsList2[3]?.picUrl)"/></div>
62 </el-col> 62 </el-col>
63 </el-row> 63 </el-row>
64 <el-row :gutter="20" class="mt20"> 64 <el-row :gutter="20" class="mt20">
65 <el-col :lg="8" v-for="(n,index) in newsList2" :key="index" v-show="index>3"> 65 <el-col :lg="8" v-for="(n,index) in newsList2" :key="index" v-show="index>3">
66 <div class="picbox"><img :src="fillImgUrl_webSite(n.picUrl)"/></div> 66 <div class="picbox" @click="goDetail(n)" ><img :src="fillImgUrl_webSite(n.picUrl)"/></div>
67 </el-col> 67 </el-col>
68 </el-row> 68 </el-row>
69 </el-col> 69 </el-col>
...@@ -88,12 +88,12 @@ const newsList2 = ref([]) ...@@ -88,12 +88,12 @@ const newsList2 = ref([])
88 const query1 = ref({ 88 const query1 = ref({
89 pageSize: 5, 89 pageSize: 5,
90 pageNum: 1, 90 pageNum: 1,
91 sortId: '30000000' 91 sortId: '10000006'
92 }) 92 })
93 const query2 = ref({ 93 const query2 = ref({
94 pageSize: 7, 94 pageSize: 7,
95 pageNum: 1, 95 pageNum: 1,
96 sortId: '30000001' 96 sortId: '10000007'
97 }) 97 })
98 98
99 onMounted(() => { 99 onMounted(() => {
...@@ -133,5 +133,7 @@ const goDetail = (n) => { ...@@ -133,5 +133,7 @@ const goDetail = (n) => {
133 <style lang="scss" scoped> 133 <style lang="scss" scoped>
134 .leftboderTT{ 134 .leftboderTT{
135 font-size: 20px;} 135 font-size: 20px;}
136 136 @media (max-width: 800px) {
137 [class*=el-col-]{display: block;margin: 0 0 20px}
138 }
137 </style> 139 </style>
......
1 <template>
2 <div>
3 <div class="box">
4 <div class="indexTitle">
5 <h3 class="leftboderTT">Event Video</h3>
6 <a class="more" @click="goList(query1.sortId,'Event Video')">MORE</a>
7 </div>
8
9 <el-row :gutter="20">
10 <el-col :lg="12" :sm="24" :md="12">
11 <div class="liveImgbox" @click="goDetail(newsList[0])">
12 <i class="ii">LIVE</i>
13 <img :src="fillImgUrl_webSite(newsList[0]?.picUrl)">
14 <h3 class="esp">{{ newsList[0]?.name }}
15 </h3>
16 </div>
17 </el-col>
18 <el-col :lg="12" :sm="24">
19 <el-row :gutter="20">
20 <el-col :md="12" :lg="12">
21 <div class="videoImgbox" @click="goDetail(newsList[1])">
22 <img :src="fillImgUrl_webSite(newsList[1]?.picUrl)">
23 </div>
24 </el-col>
25 <el-col :md="12" :lg="12">
26 <div class="videoImgbox" @click="goDetail(newsList[2])">
27 <img :src="fillImgUrl_webSite(newsList[2]?.picUrl)">
28 </div>
29 </el-col>
30 <el-col :md="12" :lg="12" class="mt20">
31 <div class="videoImgbox" @click="goDetail(newsList[3])">
32 <img :src="fillImgUrl_webSite(newsList[3]?.picUrl)">
33 </div>
34 </el-col>
35 <el-col :md="12" :lg="12" class="mt20">
36 <div class="videoImgbox" @click="goDetail(newsList[4])">
37 <img :src="fillImgUrl_webSite(newsList[4]?.picUrl)">
38 </div>
39 </el-col>
40 </el-row>
41 </el-col>
42
43 </el-row>
44
45
46 <div class="indexTitle">
47 <h3 class="leftboderTT">Exciting Pictures</h3>
48 <a class="more" @click="goList(query2.sortId,'Exciting Pictures')">MORE</a>
49 </div>
50 <el-row class="mb20" :gutter="20">
51 <el-col :lg="9">
52 <div class="picbox" @click="goDetail(newsList2[0])"><img :src="fillImgUrl_webSite(newsList2[0]?.picUrl)"/></div>
53 </el-col>
54 <el-col :lg="15">
55 <el-row :gutter="20" style="height: 100%">
56 <el-col :lg="16">
57 <div class="picbox" @click="goDetail(newsList2[1])"><img :src="fillImgUrl_webSite(newsList2[1]?.picUrl)"/></div>
58 </el-col>
59 <el-col :lg="8">
60 <div class="picbox" @click="goDetail(newsList2[2])" style="height: calc(50% - 10px)"><img :src="fillImgUrl_webSite(newsList2[2]?.picUrl)"/></div>
61 <div class="picbox" @click="goDetail(newsList2[3])" style="height: calc(50% - 10px);margin-top: 20px"><img :src="fillImgUrl_webSite(newsList2[3]?.picUrl)"/></div>
62 </el-col>
63 </el-row>
64 <el-row :gutter="20" class="mt20">
65 <el-col :lg="8" v-for="(n,index) in newsList2" :key="index" v-show="index>3">
66 <div class="picbox" @click="goDetail(n)"><img :src="fillImgUrl_webSite(n.picUrl)"/></div>
67 </el-col>
68 </el-row>
69 </el-col>
70 </el-row>
71
72 <div class="mb60" />
73 </div>
74 </div>
75 </template>
76 <script setup>
77 import { ArrowRight, Search } from '@element-plus/icons-vue'
78 import { onMounted, ref } from 'vue'
79 import { getNewsListById } from '@/apiPc/webSite'
80 import { useRouter } from 'vue-router'
81
82 const router = useRouter()
83 const activeName = ref(0)
84 const total = ref(0)
85 const list = ref([])
86 const newsList = ref([])
87 const newsList2 = ref([])
88 const query1 = ref({
89 pageSize: 5,
90 pageNum: 1,
91 sortId: '10000008'
92 })
93 const query2 = ref({
94 pageSize: 7,
95 pageNum: 1,
96 sortId: '10000009'
97 })
98
99 onMounted(() => {
100 getList(query1.value)
101 getList2(query2.value)
102 })
103
104 const getList = (obj) => {
105 getNewsListById(obj).then(res => {
106 newsList.value = res.rows
107 })
108 }
109 const getList2 = (obj) => {
110 getNewsListById(obj).then(res => {
111 newsList2.value = res.rows
112 })
113 }
114
115 const goList = (sortId, name) => {
116 router.push({
117 path: `/news/list/${sortId}`,
118 query: {
119 kindName: name
120 }
121 })
122 }
123 const goDetail = (n) => {
124 if (n.isOut == '1') {
125 window.open(n.jumpUrl)
126 } else {
127 window.open(router.resolve({
128 path: `/news/detail/${n.noteId}`
129 }).href)
130 }
131 }
132 </script>
133 <style lang="scss" scoped>
134 .leftboderTT{
135 font-size: 20px;}
136 @media (max-width: 800px) {
137 [class*=el-col-]{display: block;margin: 0 0 20px}
138 }
139 </style>
1 <template> 1 <template>
2 <div> 2 <div>
3 <div class="box"> 3 <div class="box">
4 <el-breadcrumb class="mt20 forPc" :separator-icon="ArrowRight"> 4 <!-- <el-breadcrumb class="mt20 forPc" :separator-icon="ArrowRight">-->
5 <el-breadcrumb-item :to="{ path: '/' }"> 5 <!-- <el-breadcrumb-item :to="{ path: '/' }">-->
6 <el-icon> 6 <!-- <el-icon>-->
7 <HomeFilled /> 7 <!-- <HomeFilled />-->
8 </el-icon> 8 <!-- </el-icon>-->
9 首页 9 <!-- 首页-->
10 </el-breadcrumb-item> 10 <!-- </el-breadcrumb-item>-->
11 <el-breadcrumb-item :to="{ name: 'news' }">新闻</el-breadcrumb-item> 11 <!-- <el-breadcrumb-item :to="{ name: 'news' }">新闻</el-breadcrumb-item>-->
12 <el-breadcrumb-item>详情</el-breadcrumb-item> 12 <!-- <el-breadcrumb-item>详情</el-breadcrumb-item>-->
13 </el-breadcrumb> 13 <!-- </el-breadcrumb>-->
14 14
15 <el-row :gutter="30" class="forPc"> 15
16 <el-col :lg="24" :sm="24">
17 <el-card v-if="form.isOld=='1'" class="mt20 mb20"> 16 <el-card v-if="form.isOld=='1'" class="mt20 mb20">
18 <iframe 17 <iframe
19 id="newsIframe" :src="`./source${form.jumpUrl}`" width="100%" height="0" frameborder="none" 18 id="newsIframe" :src="`./source${form.jumpUrl}`" width="100%" height="0" frameborder="none"
20 scrolling="no" 19 scrolling="no"
21 /> 20 />
22 </el-card> 21 </el-card>
23 <el-card v-else class="mt20 mb20" :body-style="{padding:'30px 60px'}"> 22 <el-card v-else class="mt20 mb20">
23 <div class="bpd">
24 <h3 class="title"> 24 <h3 class="title">
25 <span v-if="form.publishType"> 25 <span v-if="form.publishType">
26 <span v-for="(t,index) in form.publishType.split(',')" :key="index" class="jstype">{{ t }}</span> 26 <span v-for="(t,index) in form.publishType.split(',')" :key="index" class="jstype">{{ t }}</span>
...@@ -47,9 +47,10 @@ ...@@ -47,9 +47,10 @@
47 </p> 47 </p>
48 48
49 </div> 49 </div>
50 </div>
51
50 </el-card> 52 </el-card>
51 </el-col> 53
52 </el-row>
53 54
54 </div> 55 </div>
55 </div> 56 </div>
...@@ -73,7 +74,7 @@ let newsId ...@@ -73,7 +74,7 @@ let newsId
73 onMounted(() => { 74 onMounted(() => {
74 newsId = route.params.id 75 newsId = route.params.id
75 getData(newsId) 76 getData(newsId)
76 getNew() 77 // getNew()
77 78
78 window.addEventListener('message', onMessage) 79 window.addEventListener('message', onMessage)
79 }) 80 })
...@@ -108,6 +109,9 @@ function setIframeHeight(height, iframe, handleTimeout) { ...@@ -108,6 +109,9 @@ function setIframeHeight(height, iframe, handleTimeout) {
108 109
109 watch(() => route.params.id, (val) => { 110 watch(() => route.params.id, (val) => {
110 if (val) { 111 if (val) {
112 if(val==0){
113 return
114 }
111 getData(val) 115 getData(val)
112 } 116 }
113 }) 117 })
...@@ -175,7 +179,7 @@ const goDetail = (n) => { ...@@ -175,7 +179,7 @@ const goDetail = (n) => {
175 179
176 .content { 180 .content {
177 text-align: justify; 181 text-align: justify;
178 182 :deep(video){max-width: 100%;}
179 p { 183 p {
180 img { 184 img {
181 max-width: 100%; 185 max-width: 100%;
...@@ -303,33 +307,12 @@ h2 { ...@@ -303,33 +307,12 @@ h2 {
303 .forWei { 307 .forWei {
304 display: none; 308 display: none;
305 } 309 }
306 310 .bpd{padding:30px 60px;
307 @media (max-width: 500px) { 311 video{max-width: 100%;}
308 .forWei { 312 img{max-width: 100%;}
309 height: 100vh; 313 }
310 box-sizing: border-box; 314 @media (max-width: 800px) {
311 overflow: auto; 315 .bpd{padding:30px 10px}
312 display: block;
313 background: #fff;
314 padding: 1px 15px;
315
316 .title {
317 text-align: left;
318 }
319
320 .nInfo {
321 text-align: left;
322
323 span {
324 padding: 0;
325 margin-right: 10px;
326 }
327 }
328 }
329 .forPc {
330 display: none;
331 font-size: 17px;
332 }
333 } 316 }
334 317
335 </style> 318 </style>
......
...@@ -10,12 +10,12 @@ ...@@ -10,12 +10,12 @@
10 <el-col :lg="12" :sm="24" :md="12"> 10 <el-col :lg="12" :sm="24" :md="12">
11 <el-carousel indicator-position="none" height="330"> 11 <el-carousel indicator-position="none" height="330">
12 <el-carousel-item v-for="(n,index) in newsList" :key="index"> 12 <el-carousel-item v-for="(n,index) in newsList" :key="index">
13 <div class="imgbox carouselImg"> 13 <div class="imgbox carouselImg" @click="goDetail(n)">
14 <div class="date"> 14 <div class="date">
15 <div class="day">{{ n.belongTime?.substring(8, 10) }}</div> 15 <div class="day">{{ n.belongTime?.substring(8, 10) }}</div>
16 <p>{{ n.belongTime?.substring(0, 7).replace(/-/g, '/') }}</p> 16 <p>{{ n.belongTime?.substring(0, 7).replace(/-/g, '/') }}</p>
17 </div> 17 </div>
18 <img :src="fillImgUrl_webSite(n.bannerUrl)"> 18 <img :src="fillImgUrl_webSite(n.picUrl)">
19 <h3 class="esp">{{ n.name }} 19 <h3 class="esp">{{ n.name }}
20 </h3> 20 </h3>
21 </div> 21 </div>
...@@ -72,13 +72,13 @@ ...@@ -72,13 +72,13 @@
72 <el-row :gutter="20"> 72 <el-row :gutter="20">
73 <el-col 73 <el-col
74 v-for="(n,index) in newsList3" 74 v-for="(n,index) in newsList3"
75 v-show="index<3" :key="n.id" :xs="12" :sm="8" 75 v-show="index<3" :key="n.id" :xs="24" :sm="8"
76 :lg="8" 76 :lg="8"
77 > 77 >
78 <div class="activeItem"> 78 <div class="activeItem" @click="goDetail(n)">
79 <div class="info"> 79 <div class="info">
80 <div class="date"> 80 <div class="date">
81 2023-12-12 81 {{n.belongTime}}
82 </div> 82 </div>
83 <h3 class="esp_2" style="height: 50px">{{ n.name }}</h3> 83 <h3 class="esp_2" style="height: 50px">{{ n.name }}</h3>
84 <p class="esp_2" /> 84 <p class="esp_2" />
...@@ -337,25 +337,11 @@ const goDetail = (n) => { ...@@ -337,25 +337,11 @@ const goDetail = (n) => {
337 height: 100%; 337 height: 100%;
338 } 338 }
339 } 339 }
340 .forWei {
341 display: none;
342 }
343 340
344 @media (max-width: 500px) { 341
345 .box { 342 @media (max-width: 800px) {
346 width: 100%
347 }
348 .forWei {
349 display: block;
350 :deep(.el-input__wrapper){
351 border-radius: 20px;
352 background: #F4F6FA;
353 }
354 }
355 .forPc {
356 display: none
357 }
358 .infoPart{padding: 0;} 343 .infoPart{padding: 0;}
344 .activeItem{margin: 0 0 20px;}
359 .topBannerbox { 345 .topBannerbox {
360 background: #fff; 346 background: #fff;
361 padding: 1px; 347 padding: 1px;
......
...@@ -2,20 +2,20 @@ ...@@ -2,20 +2,20 @@
2 <div> 2 <div>
3 <div class="box"> 3 <div class="box">
4 <div class="indexTitle"> 4 <div class="indexTitle">
5 <h3 class="leftboderTT">要闻</h3> 5 <h3 class="leftboderTT">Asian Games News</h3>
6 <a class="more" @click="goList(query1.sortId,'要闻')">MORE</a> 6 <a class="more" @click="goList(query1.sortId,'Asian Games News')">MORE</a>
7 </div> 7 </div>
8 <el-card> 8 <el-card>
9 <el-row class="topNews" :gutter="20"> 9 <el-row class="topNews" :gutter="20">
10 <el-col :lg="12" :sm="24" :md="12"> 10 <el-col :lg="12" :sm="24" :md="12">
11 <el-carousel indicator-position="none" height="330"> 11 <el-carousel indicator-position="none" height="330">
12 <el-carousel-item v-for="(n,index) in newsList" :key="index"> 12 <el-carousel-item v-for="(n,index) in newsList" :key="index">
13 <div class="imgbox carouselImg"> 13 <div class="imgbox carouselImg" @click="goDetail(n)">
14 <div class="date"> 14 <div class="date">
15 <div class="day">{{ n.belongTime?.substring(8, 10) }}</div> 15 <div class="day">{{ n.belongTime?.substring(8, 10) }}</div>
16 <p>{{ n.belongTime?.substring(0, 7).replace(/-/g, '/') }}</p> 16 <p>{{ n.belongTime?.substring(0, 7).replace(/-/g, '/') }}</p>
17 </div> 17 </div>
18 <img :src="fillImgUrl_webSite(n.bannerUrl)"> 18 <img :src="fillImgUrl_webSite(n.picUrl)">
19 <h3 class="esp">{{ n.name }} 19 <h3 class="esp">{{ n.name }}
20 </h3> 20 </h3>
21 </div> 21 </div>
...@@ -41,8 +41,8 @@ ...@@ -41,8 +41,8 @@
41 </el-card> 41 </el-card>
42 42
43 <div class="indexTitle"> 43 <div class="indexTitle">
44 <h3 class="leftboderTT">舞蹈动态</h3> 44 <h3 class="leftboderTT">Official Release</h3>
45 <a class="more" @click="goList(query2.sortId,'舞蹈动态')">MORE</a> 45 <a class="more" @click="goList(query2.sortId,'Official Release')">MORE</a>
46 </div> 46 </div>
47 <el-row class="newsflex mb20"> 47 <el-row class="newsflex mb20">
48 <el-col 48 <el-col
...@@ -63,45 +63,46 @@ ...@@ -63,45 +63,46 @@
63 </div> 63 </div>
64 </el-col> 64 </el-col>
65 </el-row> 65 </el-row>
66 <div class="indexTitle">
67 <h3 class="leftboderTT">官方发布</h3>
68 <a class="more" @click="goList(query3.sortId,'官方发布')">MORE</a>
69 </div>
70 <el-row :gutter="20">
71 <el-col
72 v-for="(n,index) in newsList3"
73 v-show="index<3" :key="n.id" :xs="12" :sm="8"
74 :lg="8"
75 >
76 <div class="activeItem">
77 <div class="info">
78 <div class="date">
79 2023-12-12
80 </div>
81 <h3 class="esp_2" style="height: 50px">{{ n.name }}</h3>
82 <p class="esp_2" />
83 <a>查看详情</a>
84 </div>
85 </div>
86 </el-col>
87 </el-row>
88 66
89 <div class="indexTitle"> 67 <!-- <div class="indexTitle">-->
90 <h3 class="leftboderTT">专题报道</h3> 68 <!-- <h3 class="leftboderTT">官方发布</h3>-->
91 <a class="more" @click="goList(query4.sortId,'专题报道')">MORE</a> 69 <!-- <a class="more" @click="goList(query3.sortId,'官方发布')">MORE</a>-->
92 </div> 70 <!-- </div>-->
93 <el-row :gutter="30" class="newsimgcover"> 71 <!-- <el-row :gutter="20">-->
94 <el-col v-for="(n,index) in newsList4" v-show="index<3" :lg="8" @click="goDetail(n)"> 72 <!-- <el-col-->
95 <div class="item shadow"> 73 <!-- v-for="(n,index) in newsList3"-->
96 <div class="imgbox"><img :src="fillImgUrl_webSite(n.picUrl)"></div> 74 <!-- v-show="index<3" :key="n.id" :xs="12" :sm="8"-->
97 <h3 class="esp"> 75 <!-- :lg="8"-->
98 <span v-if="n.publishType"> 76 <!-- >-->
99 <span v-for="(t,index) in n.publishType.split(',')" :key="index" class="jstype">{{ t }}</span> 77 <!-- <div class="activeItem">-->
100 </span> 78 <!-- <div class="info">-->
101 {{ n.name }}</h3> 79 <!-- <div class="date">-->
102 </div> 80 <!-- 2023-12-12-->
103 </el-col> 81 <!-- </div>-->
104 </el-row> 82 <!-- <h3 class="esp_2" style="height: 50px">{{ n.name }}</h3>-->
83 <!-- <p class="esp_2" />-->
84 <!-- <a>查看详情</a>-->
85 <!-- </div>-->
86 <!-- </div>-->
87 <!-- </el-col>-->
88 <!-- </el-row>-->
89
90 <!-- <div class="indexTitle">-->
91 <!-- <h3 class="leftboderTT">专题报道</h3>-->
92 <!-- <a class="more" @click="goList(query4.sortId,'专题报道')">MORE</a>-->
93 <!-- </div>-->
94 <!-- <el-row :gutter="30" class="newsimgcover">-->
95 <!-- <el-col v-for="(n,index) in newsList4" v-show="index<3" :lg="8" @click="goDetail(n)">-->
96 <!-- <div class="item shadow">-->
97 <!-- <div class="imgbox"><img :src="fillImgUrl_webSite(n.picUrl)"></div>-->
98 <!-- <h3 class="esp">-->
99 <!-- <span v-if="n.publishType">-->
100 <!-- <span v-for="(t,index) in n.publishType.split(',')" :key="index" class="jstype">{{ t }}</span>-->
101 <!-- </span>-->
102 <!-- {{ n.name }}</h3>-->
103 <!-- </div>-->
104 <!-- </el-col>-->
105 <!-- </el-row>-->
105 106
106 <div class="mb60" /> 107 <div class="mb60" />
107 </div> 108 </div>
...@@ -124,12 +125,12 @@ const newsList4 = ref([]) ...@@ -124,12 +125,12 @@ const newsList4 = ref([])
124 const query1 = ref({ 125 const query1 = ref({
125 pageSize: 5, 126 pageSize: 5,
126 pageNum: 1, 127 pageNum: 1,
127 sortId:'10000001' 128 sortId:'10000004'
128 }) 129 })
129 const query2 = ref({ 130 const query2 = ref({
130 pageSize: 4, 131 pageSize: 4,
131 pageNum: 1, 132 pageNum: 1,
132 sortId:'10000002' 133 sortId:'10000005'
133 }) 134 })
134 const query3 = ref({ 135 const query3 = ref({
135 pageSize: 6, 136 pageSize: 6,
...@@ -145,8 +146,8 @@ const query4 = ref({ ...@@ -145,8 +146,8 @@ const query4 = ref({
145 onMounted(() => { 146 onMounted(() => {
146 getList(query1.value) 147 getList(query1.value)
147 getList2(query2.value) 148 getList2(query2.value)
148 getList3(query3.value) 149 // getList3(query3.value)
149 getList4(query4.value) 150 // getList4(query4.value)
150 }) 151 })
151 152
152 const getList = (obj) => { 153 const getList = (obj) => {
...@@ -339,20 +340,7 @@ const goDetail = (n) => { ...@@ -339,20 +340,7 @@ const goDetail = (n) => {
339 display: none; 340 display: none;
340 } 341 }
341 342
342 @media (max-width: 500px) { 343 @media (max-width: 800px) {
343 .box {
344 width: 100%
345 }
346 .forWei {
347 display: block;
348 :deep(.el-input__wrapper){
349 border-radius: 20px;
350 background: #F4F6FA;
351 }
352 }
353 .forPc {
354 display: none
355 }
356 .infoPart{padding: 0;} 344 .infoPart{padding: 0;}
357 .topBannerbox { 345 .topBannerbox {
358 background: #fff; 346 background: #fff;
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
5 <div class="lineHead"> 5 <div class="lineHead">
6 <h3>全部{{ kindName }}</h3> 6 <h3>全部{{ kindName }}</h3>
7 </div> 7 </div>
8 <div class="infoPart forPc"> 8 <div class="infoPart">
9 <div class="newsBlock"> 9 <div class="newsBlock">
10 <div v-for="(n,i) in newsList" :key="i" class="item" @click="goDetail(n)"> 10 <div v-for="(n,i) in newsList" :key="i" class="item" @click="goDetail(n)">
11 <div class="date"> 11 <div class="date">
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
17 </div> 17 </div>
18 <div class="item-body"> 18 <div class="item-body">
19 <h3 v-html="n.name" /> 19 <h3 v-html="n.name" />
20 <p v-html="n.subName" /> 20 <p v-html="n.subName"/>
21 <a class="go">查看详情 21 <a class="go">查看详情
22 <el-icon class="rotate90_180"><sort-down/></el-icon> 22 <el-icon class="rotate90_180"><sort-down/></el-icon>
23 </a> 23 </a>
...@@ -118,25 +118,11 @@ const goDetail = (n) => { ...@@ -118,25 +118,11 @@ const goDetail = (n) => {
118 height: 100%; 118 height: 100%;
119 } 119 }
120 } 120 }
121 .forWei {
122 display: none;
123 }
124 121
125 @media (max-width: 500px) { 122
126 .box { 123 @media (max-width: 800px) {
127 width: 100% 124
128 } 125 //.infoPart{padding: 0;}
129 .forWei {
130 display: block;
131 :deep(.el-input__wrapper){
132 border-radius: 20px;
133 background: #F4F6FA;
134 }
135 }
136 .forPc {
137 display: none
138 }
139 .infoPart{padding: 0;}
140 .topBannerbox { 126 .topBannerbox {
141 background: #fff; 127 background: #fff;
142 padding: 1px; 128 padding: 1px;
...@@ -162,5 +148,11 @@ const goDetail = (n) => { ...@@ -162,5 +148,11 @@ const goDetail = (n) => {
162 font-size: 14px; 148 font-size: 14px;
163 } 149 }
164 } 150 }
151 .newsBlock{
152 .item{flex-direction: column;margin: 0 0 40px;padding: 0;
153 .date{position: absolute;top: 20px}
154 }
155 .imgbox{width: 100%;height: auto;margin: 0 0 20px}
156 }
165 } 157 }
166 </style> 158 </style>
......
1 <template>
2 <div>
3 <div class="box">
4 <el-card class="mt20 mb20" :body-style="{'padding':'0'}">
5 <div class="lineHead">
6 <h3>All {{ kindName }}</h3>
7 </div>
8 <div class="infoPart">
9 <div class="newsBlock">
10 <div v-for="(n,i) in newsList" :key="i" class="item" @click="goDetail(n)">
11 <div class="date">
12 <div class="day">{{ n.belongTime?.substring(8, 10) }}</div>
13 <p>{{ n.belongTime?.substring(0, 7).replace(/-/g, '/') }}</p>
14 </div>
15 <div v-if="n.picUrl" class="imgbox">
16 <img :src="fillImgUrl_webSite(n.picUrl)">
17 </div>
18 <div class="item-body">
19 <h3 v-html="n.name" />
20 <p v-html="n.subName" />
21 <a class="go">Detail
22 <el-icon class="rotate90_180"><sort-down/></el-icon>
23 </a>
24 </div>
25 </div>
26 <el-empty v-if="newsList.length == 0" description="no data" />
27
28 <div v-if="total>9" class="pc-page-box">
29 <!-- <el-pagination @current-change="getList" layout="prev, pager, next" :total="total" />-->
30 <PaginationPc
31 v-model:page="query.pageNum" v-model:limit="query.pageSize" :total="total"
32 @pagination="getList"
33 />
34 </div>
35 </div>
36 </div>
37 </el-card>
38
39 </div>
40 </div>
41 </template>
42 <script setup>
43 import { ArrowRight, Search } from '@element-plus/icons-vue'
44 import { onMounted, ref } from 'vue'
45 import { getNewsListById } from '@/apiPc/webSite'
46 import { useRoute, useRouter } from 'vue-router'
47 // import Pagination from '@/components/Pagination'
48 const route = useRoute()
49 const router = useRouter()
50 const kindName = ref('')
51 const total = ref(0)
52 const list = ref([])
53 const newsList = ref([])
54 const query = ref({
55 pageSize: 10,
56 pageNum: 1
57 })
58 onMounted(() => {
59 console.log(route)
60 query.value.sortId = route.params.id
61 kindName.value = route.query.kindName
62 getList()
63 })
64
65 const getList = () => {
66 console.log(query.value)
67 getNewsListById(query.value).then(res => {
68 newsList.value = res.rows
69 total.value = res.total
70 })
71 }
72
73 const goDetail = (n) => {
74 if (n.isOut == '1') {
75 window.open(n.jumpUrl)
76 } else {
77 window.open(router.resolve({
78 path: `/news/detail/${n.noteId}`
79 }).href)
80
81 // router.push({
82 // path: `/news/detail/${n.noteId}`
83 // })
84 }
85 }
86 </script>
87 <style lang="scss" scoped>
88 .flexBody {
89 display: flex;
90 align-items: center;
91
92 .el-form-item {
93 margin-bottom: 0
94 }
95 }
96
97 .infoPart {
98 padding: 20px;
99 flex: 1;
100
101 & > h3 {
102 font-size: 24px;
103 color: var(--el-color-primary);
104 }
105 }
106
107 .firstItem {
108 background: #FAFAFA;
109 }
110
111 .searchPark {
112 background: #F6F6F6;
113 }
114
115
116 .topBanner {height:500px;
117 :deep(.el-carousel__container) {
118 height: 100%;
119 }
120 }
121 .forWei {
122 display: none;
123 }
124
125 @media (max-width: 800px) {
126
127 //.infoPart{padding: 0;}
128 .topBannerbox {
129 background: #fff;
130 padding: 1px;
131
132 .el-carousel {
133 --el-carousel-indicator-height: 4px;
134 --el-carousel-indicator-width: 4px;
135 }
136 }
137 .topBanner {
138 height: 160px;
139 border-radius: 6px;
140 margin: 10px;
141 h3{text-align: left;font-size: 15px;padding: 30px 15px 20px;
142 }
143 :deep(.el-carousel__indicators--horizontal){left: auto;right: 0;
144 bottom: 12px;
145 }
146 :deep(.el-carousel__button){border-radius: 5px;}
147 :deep(.el-carousel__indicator.is-active button){width: 12px;}
148
149 h3 {
150 font-size: 14px;
151 }
152 }
153 .newsBlock{
154 .item{flex-direction: column;margin: 0 0 40px;padding: 0;
155 .date{position: absolute;top: 20px}
156 }
157 .imgbox{width: 100%;height: auto;margin: 0 0 20px}
158 }
159 }
160 </style>
...@@ -93,7 +93,7 @@ const total = ref(0) ...@@ -93,7 +93,7 @@ const total = ref(0)
93 const query = ref({ 93 const query = ref({
94 pageSize: 10, 94 pageSize: 10,
95 pageNum: 1, 95 pageNum: 1,
96 sortId:2000 96 sortId:20000000
97 }) 97 })
98 onMounted(() => { 98 onMounted(() => {
99 getList() 99 getList()
......
1 <template>
2 <div>
3 <div class="box">
4
5 <el-card class="mt20 mb20" :body-style="{'padding':'0'}">
6 <div class="lineHead">
7 <h3> NOTICE </h3>
8 </div>
9 <!-- <el-tabs v-model="activeName" @tab-change="changeTab" @tab-click="clickTab">-->
10 <!-- <el-tab-pane v-for="(tab,index) in list" :key="index" :label="tab.name" :name="index" />-->
11 <!-- </el-tabs>-->
12 <div class="pd20">
13 <el-row class="mb20">
14 <el-col :lg="24" :xs="24">
15 <div v-for="(n,index) in newsList?.slice(0,1)" v-show="index<1" :key="index" class="firstItem" @click="goDetail(n)">
16 <div class="date">
17 <p>{{ n.belongTime }}</p>
18 </div>
19 <div class="item-body">
20 <h3 class="esp_2"><span class="istop">TOP</span>{{n.name}}</h3>
21 </div>
22 <a class="go">DETAIL ⇀</a>
23 </div>
24 </el-col>
25 <!-- <el-col :lg="8" :xs="24" class="forPc">-->
26 <!-- <div class="searchPark">-->
27 <!-- <h3>通知搜索</h3>-->
28 <!-- <el-form>-->
29 <!-- <el-form-item>-->
30 <!-- <div class="flexformItem">-->
31 <!-- <el-date-picker-->
32 <!-- v-model="query.year"-->
33 <!-- class="mr10"-->
34 <!-- type="year" value-format="YYYY"-->
35 <!-- placeholder="选择年份" @change="getList"-->
36 <!-- />-->
37 <!-- <el-date-picker-->
38 <!-- v-model="query.month"-->
39 <!-- format="MM" value-format="MM"-->
40 <!-- type="month"-->
41 <!-- placeholder="选择月份" @change="getList"-->
42 <!-- />-->
43 <!-- </div>-->
44
45 <!-- </el-form-item>-->
46 <!-- <el-form-item>-->
47 <!-- <el-input-->
48 <!-- v-model="query.name"-->
49 <!-- placeholder="输入关键字"-->
50 <!-- :suffix-icon="Search" @change="getList"-->
51 <!-- />-->
52 <!-- </el-form-item>-->
53 <!-- </el-form>-->
54 <!-- </div>-->
55 <!-- </el-col>-->
56 </el-row>
57
58 <div class="newsLine">
59
60
61 <div v-for="(n,index) in newsList" v-show="index>0" :key="index" class="item" @click=" goDetail(n)">
62 <div class="date">
63 <div class="day">{{ n.belongTime?.substring(8, 10) }}</div>
64 <p>{{ n.belongTime?.substring(0, 7).replace(/-/g, '/') }}</p>
65 </div>
66 <div class="item-body">
67 <h3 v-html="n.name" />
68 </div>
69 <a class="go" />
70 </div>
71 </div>
72 <div v-if="total>8" class="pc-page-box">
73 <PaginationPc v-model:page="query.pageNum" v-model:limit="query.pageSize" :total="total" @pagination="getList" />
74 </div>
75 <el-empty v-if="newsList.length == 0" description="暂无数据" />
76 </div>
77 </el-card>
78
79 </div>
80 </div>
81 </template>
82 <script setup>
83 import { ArrowRight, Search } from '@element-plus/icons-vue'
84 import { onMounted, ref } from 'vue'
85 import { getNewsListById, getNoticeSorts } from '@/apiPc/webSite'
86 import { useRouter } from 'vue-router'
87 const router = useRouter()
88 const activeName = ref(0)
89 const list = ref([])
90 const newsList = ref([])
91 const nowTab = ref({})
92 const total = ref(0)
93 const query = ref({
94 pageSize: 10,
95 pageNum: 1,
96 sortId:20000001
97 })
98 onMounted(() => {
99 getList()
100 })
101
102 const getList = () => {
103 getNewsListById(query.value).then(res => {
104 newsList.value = res.rows
105 total.value = res.total
106 if (query.value.name) {
107 const pattern = new RegExp(query.value.name, 'gi')
108 for (var n of newsList.value) {
109 n.name = n.name.replace(pattern, `<span class="highlight">$&</span>`)
110 n.subName = n.name.replace(pattern, `<span class="highlight">$&</span>`)
111 }
112 }
113 })
114 }
115 const clickTab = (pane, ev) => {
116 console.log(pane, ev)
117 }
118 const goDetail = (n) => {
119 if (n.isOut == '1') {
120 window.open(n.jumpUrl)
121 } else {
122 router.push({
123 path: `/news/detail/${n.noteId}`
124 })
125 }
126 }
127
128 </script>
129 <style lang="scss" scoped>
130
131 .infoPart{padding: 20px; flex: 1;
132 &>h3{
133 font-size: 24px;
134 color: var(--el-color-primary);}
135 }
136 .firstItem{cursor: pointer;
137 background: #F8F4FF;height: 100%;padding: 10px 20px;
138 .date{font-weight: bold;transform: scaleX(0.7);transform-origin: left;
139 font-size: 18px;
140 color: var(--el-color-primary);}
141 h3{margin: 10px 0;
142 font-size: 22px;}
143 .go{color: var(--el-color-primary);
144 font-size: 14px;padding: 0 0 5px;}
145 }
146
147
148 .newsLine{
149 .item{display: flex;position: relative;width: 100%;height: 90px;
150 align-items: center;cursor: pointer;border-bottom: 1px dashed #EEEEEE;
151 .date{width: 60px;height: 60px;text-align: center;background: #FAFAFA;margin: 0 10px;
152 .day{color: var(--el-color-primary);transform: scaleX(0.7);font-weight: bold;font-size: 24px;}
153 p{font-size: 14px;margin: 0;transform: scaleX(0.7);font-weight: bold;color: #7B7F83;}
154 }
155 .item-body{width: 60%;
156 h3{padding: 0 10px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;font-size: 18px;color: #000000;}
157 }
158 .go{background: url("@/assets/v1/about/go.png") no-repeat center;background-size: contain;
159 position: absolute;width: 30px;height: 30px;right: 10px;
160 filter:grayscale(1);
161 }
162 }
163 .item:hover{background: #F8F4FF;
164 .date{
165 background: var(--el-color-primary);
166 .day{color: #fff;}
167 p{color: #fff;}
168 }
169 .item-body{
170 h3{color: var(--el-color-primary);}
171 }
172 }
173 }
174
175 @media (max-width: 500px) {
176 .box{width: 100%}
177 .forWei {
178 display: block;
179 }
180 .forPc{display: none}
181 :deep(.el-tabs__nav-scroll){overflow: auto;}
182 :deep(.el-card__body){padding: 10px;}
183 .flexBody{display: block;background: transparent;}
184 .infoPart{background: #fff;padding: 10px;margin:0 15px}
185 .firstItem{padding: 10px 20px;
186 .date{
187 font-size: 14px;}
188 h3{margin: 10px 0;
189 font-size: 14px;}
190 .go{font-size: 12px;}
191 }
192 .newsLine{
193 .item{height: 50px;
194 .date{height: 34px;width: 44px;margin: 0;
195 .day{font-size: 16px;}
196 p{font-size: 12px;}
197 }
198 .item-body{width: 80%;
199 h3{font-size: 14px;}
200 }
201 }
202 .go{display: none;}
203
204 }
205 }
206 </style>
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
48 <el-card class="mt20 mb20"> 48 <el-card class="mt20 mb20">
49 <div class="leftboderTT">2023.07.22 赛事成绩</div> 49 <div class="leftboderTT">2023.07.22 赛事成绩</div>
50 <h3 class="text-center">08:00-09:30 拉丁舞第一组比赛结果</h3> 50 <h3 class="text-center">08:00-09:30 拉丁舞第一组比赛结果</h3>
51 <div class="tablebody">
51 <table class="table table-striped"> 52 <table class="table table-striped">
52 <thead> 53 <thead>
53 <tr class="bg-lineg"> 54 <tr class="bg-lineg">
...@@ -111,11 +112,12 @@ ...@@ -111,11 +112,12 @@
111 112
112 </tbody> 113 </tbody>
113 </table> 114 </table>
114 115 </div>
115 <br><br> 116 <br><br>
116 <div class="leftboderTT">2023.07.22 赛事成绩</div> 117 <div class="leftboderTT">2023.07.22 赛事成绩</div>
117 118
118 <h3 class="text-center">08:00-09:30 拉丁舞第一组比赛结果</h3> 119 <h3 class="text-center">08:00-09:30 拉丁舞第一组比赛结果</h3>
120 <div class="tablebody">
119 <table class="table table-striped"> 121 <table class="table table-striped">
120 <tr class="bg-lineg"> 122 <tr class="bg-lineg">
121 <td>编号</td> 123 <td>编号</td>
...@@ -168,6 +170,7 @@ ...@@ -168,6 +170,7 @@
168 170
169 171
170 </table> 172 </table>
173 </div>
171 </el-card> 174 </el-card>
172 </div> 175 </div>
173 </div> 176 </div>
...@@ -188,18 +191,18 @@ const loading = ref(false) ...@@ -188,18 +191,18 @@ const loading = ref(false)
188 const calendarValue = ref('2024-07-22') 191 const calendarValue = ref('2024-07-22')
189 192
190 193
191 onMounted(() => { 194 // onMounted(() => {
192 currYear.value = dayjs().year() 195 // currYear.value = dayjs().year()
193 getPlanYears().then(res => { 196 // getPlanYears().then(res => {
194 years.value = res.data 197 // years.value = res.data
195 }) 198 // })
196 }) 199 // })
197 200 //
198 watch(currYear, (val) => { 201 // watch(currYear, (val) => {
199 if (val) { 202 // if (val) {
200 getPlanList() 203 // getPlanList()
201 } 204 // }
202 }) 205 // })
203 206
204 function getPlanList() { 207 function getPlanList() {
205 loading.value = true 208 loading.value = true
......
1 <template>
2 <div>
3 <div class="box">
4
5 <div class="mt20" />
6 <el-card>
7 <el-row :gutter="20">
8 <el-col :sm="24" :lg="12">
9 <!--赛事日历-->
10
11 <el-calendar v-model="calendarValue">
12 <template #date-cell="data">
13 <div v-if="data.data.day.slice(8,10)==22" class="primaryDate date">22</div>
14 <div v-else class="date">
15 {{ data.data.day.slice(8,10) }}
16 </div>
17
18 </template>
19 </el-calendar>
20
21 </el-col>
22 <el-col :sm="24" :lg="12">
23 <div class="calendarList">
24 <ul>
25 <li>
26 <label>08:00~10:30</label> Wuxi Open
27 </li>
28 <li>
29 <label>11:00</label> the WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024 group A
30 </li>
31 <li>
32 <label>12:00</label> the WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024 group B
33 </li>
34 <li>
35 <label>13:00</label> the WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024 group C
36 </li>
37 <li>
38 <label>15:00</label> the WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024 group D
39 </li>
40 </ul>
41
42 </div>
43
44 </el-col>
45 </el-row>
46 </el-card>
47
48 <el-card class="mt20 mb20">
49 <div class="leftboderTT">2023.07.22 Result</div>
50 <h3 class="text-center">08:00-09:30 The results of the group A of Latin dance competitions</h3>
51 <div class="tablebody">
52 <table class="table table-striped">
53 <thead>
54 <tr class="bg-lineg">
55 <td>Number</td>
56 <td>Name</td>
57 <td>Country</td>
58 <td>Score</td>
59 <td>Ranking</td>
60 <td>Final result</td>
61 </tr>
62 </thead>
63 <tbody>
64 <tr>
65 <td>3456</td>
66 <td>Wang wenwen</td>
67 <td>China</td>
68 <td class="text-primary">198.00</td>
69 <td>1</td>
70 <td class="text-primary">advancement</td>
71 </tr>
72 <tr>
73 <td>4567</td>
74 <td>Zhang</td>
75 <td>China</td>
76 <td class="text-primary">191.00</td>
77 <td>2</td>
78 <td class="text-primary">advancement</td>
79 </tr>
80 <tr>
81 <td>3456</td>
82 <td>Sdehj Lijukl</td>
83 <td>Uzbekistan</td>
84 <td class="text-primary">190.00</td>
85 <td>3</td>
86 <td class="text-primary">advancement</td>
87 </tr>
88 <tr>
89 <td>1255</td>
90 <td>XuDu</td>
91 <td>Hong Kong, China</td>
92 <td class="text-primary">188.00</td>
93 <td>4</td>
94 <td class="text-primary">advancement</td>
95 </tr>
96 <tr>
97 <td>1299</td>
98 <td>Alice Luyr</td>
99 <td>Thailand</td>
100 <td class="text-primary">180.00</td>
101 <td>5</td>
102 <td class="text-primary">advancement</td>
103 </tr>
104 <tr>
105 <td>1652</td>
106 <td>Wu Yuan</td>
107 <td>Hong Kong, China</td>
108 <td class="text-primary">188.00</td>
109 <td>6</td>
110 <td>Out</td>
111 </tr>
112
113 </tbody>
114 </table>
115 </div>
116 <br><br>
117 <div class="leftboderTT">2023.07.22 Result</div>
118
119 <h3 class="text-center">08:00-09:30 The results of the group A of Latin dance competitions</h3>
120 <div class="tablebody">
121 <table class="table table-striped">
122 <tr class="bg-lineg">
123 <td>Number</td>
124 <td>Name</td>
125 <td>Country</td>
126 <td>Score</td>
127 <td>Ranking</td>
128 <td>Final result</td>
129 </tr>
130 <tr>
131 <td>3456</td>
132 <td>Chen Sha</td>
133 <td>China</td>
134 <td class="text-primary">198.00</td>
135 <td>1</td>
136 <td class="text-primary">advancement</td>
137 </tr>
138 <tr>
139 <td>3001</td>
140 <td>ZhaoQian</td>
141 <td>China</td>
142 <td class="text-primary">196.00</td>
143 <td>2</td>
144 <td class="text-primary">advancement</td>
145 </tr>
146 <tr>
147 <td>1005</td>
148 <td>ZhangChuChu</td>
149 <td>China</td>
150 <td class="text-primary">190.00</td>
151 <td>3</td>
152 <td class="text-primary">advancement</td>
153 </tr>
154 <tr>
155 <td>1544</td>
156 <td>LiuYiwan</td>
157 <td>China</td>
158 <td class="text-primary">186.90</td>
159 <td>4</td>
160 <td class="text-primary">advancement</td>
161 </tr>
162 <tr>
163 <td>1293</td>
164 <td>LiHan</td>
165 <td>China</td>
166 <td class="text-primary">186.90</td>
167 <td>5</td>
168 <td>Out</td>
169 </tr>
170
171
172 </table>
173 </div>
174 </el-card>
175 </div>
176 </div>
177 </template>
178
179 <script setup>
180 import { onMounted, ref, watch } from 'vue'
181 import { getPlanYears, getYearZtxPlanList } from '@/apiPc/train'
182 import { ArrowRight } from '@element-plus/icons-vue'
183 import { dayjs } from 'element-plus'
184 import { szToHz } from '@/utils/ruoyi'
185
186 const years = ref([])
187 const currYear = ref(null)
188 const ztxPlanList = ref([])
189 const planList = ref([])
190 const loading = ref(false)
191 const calendarValue = ref('2024-07-22')
192
193
194 // onMounted(() => {
195 // currYear.value = dayjs().year()
196 // getPlanYears().then(res => {
197 // years.value = res.data
198 // })
199 // })
200 //
201 // watch(currYear, (val) => {
202 // if (val) {
203 // getPlanList()
204 // }
205 // })
206
207 function getPlanList() {
208 loading.value = true
209
210 Promise.all([
211 getYearZtxPlanList({
212 year: currYear.value,
213 type: 1// 中跆协
214 }),
215 getYearZtxPlanList({
216 year: currYear.value,
217 type: 0 // 省
218 })
219 ]).then(res => {
220 loading.value = false
221 ztxPlanList.value = res[0].rows
222 planList.value = res[1].rows
223 })
224 }
225
226 </script>
227
228 <style scoped lang="scss">
229 .leftboderTT{margin: 0 0 20px;color: var(--el-color-primary);
230 font-size: 20px;}
231 h3{background: #F5F0FF;margin: 0;padding: 10px 0;
232 color: var(--el-color-primary);
233 font-size: 18px;}
234 .table { border-spacing: 0;
235 border-collapse: collapse;
236 width: 100%;
237 max-width: 100%;
238 margin-bottom: 20px;
239 td,th{ padding: 8px; font-size: 14px;}
240 }
241 :deep(.table-striped > tbody > tr:nth-of-type(odd)){
242 background: #F6F9FE;
243 }
244
245 .el-calendar{--el-calendar-border:none;--el-calendar-cell-width:51px;text-align:center;
246 --el-text-color-regular:#8E8D94;
247 :deep(.el-calendar__header){justify-content: center;}
248 :deep(.el-calendar__body){border: 1px solid #F0F0F0;padding: 0}
249 :deep(.el-calendar-table .el-calendar-day){padding: 1px;}
250 :deep(.el-calendar-table td.is-selected){background: transparent;}
251 :deep(.el-calendar__button-group){display: none;}
252 }
253 .primaryDate{color: #fff;
254 background: linear-gradient(90deg, #8623FC, #453DEA);}
255 .date{ margin:5px auto;border-radius: 50%;width: 30px;height: 30px;line-height: 30px;
256 font-weight: bold;
257 }
258 .calendarList{border: 1px solid #F0F0F0;padding:12px 20px;overflow: hidden;
259 margin: 46px 0 0;
260 ul{
261 li{background: #F6F9FE;margin:7px 0 7px 20px;position: relative;padding: 13px;
262 border-radius: 10px;
263 font-weight: 500;
264 font-size: 15px;
265 label{color: #453DEA;margin-right: 15px;
266 &::before{content: '';background:#fff;left: -17px;top: 0px;bottom: 0;margin: auto;
267 border-radius: 50%;width: 2px;height: 2px;position: absolute;z-index: 1}
268 }
269 }
270 li::before{content: '';background: linear-gradient(0deg, #8623FC, #453DEA);
271 border-radius: 50%;width: 8px;height: 8px;position: absolute;
272 left: -20px;top: 0;bottom: 0;margin: auto;z-index: 1;
273 }
274 li::after{content: ''; left: -16px;width: 1px;height: 100%;
275 background: #EBEBEB; position: absolute;top: 20px}
276 li:hover{color: #fff;
277 background: linear-gradient(-90deg, #8623FC, #453DEA);
278 label{color: #fff;}
279 }
280 }
281 }
282
283 </style>
1 <template> 1 <template>
2 <div> 2 <div>
3 <div class="box"> 3 <div class="box">
4 <el-breadcrumb class="mt20" :separator-icon="ArrowRight"> 4 <!-- <el-breadcrumb class="mt20" :separator-icon="ArrowRight">-->
5 <el-breadcrumb-item :to="{ path: '/' }"> 5 <!-- <el-breadcrumb-item :to="{ path: '/' }">-->
6 <el-icon> 6 <!-- <el-icon>-->
7 <HomeFilled/> 7 <!-- <HomeFilled/>-->
8 </el-icon> 8 <!-- </el-icon>-->
9 首页 9 <!-- 首页-->
10 </el-breadcrumb-item> 10 <!-- </el-breadcrumb-item>-->
11 <el-breadcrumb-item>搜索结果</el-breadcrumb-item> 11 <!-- <el-breadcrumb-item>搜索结果</el-breadcrumb-item>-->
12 </el-breadcrumb> 12 <!-- </el-breadcrumb>-->
13 13
14 <el-card class="mt20 mb20"> 14 <el-card class="mt20 mb20">
15 <div class="infoPart"> 15 <div class="infoPart" style="min-height: 65vh">
16 <div class="newsBlock"> 16 <div class="newsBlock">
17 <div v-for="n in newsList" class="item" @click="goDetail(n)"> 17 <div v-for="n in newsList" class="item" @click="goDetail(n)">
18 <div class="date"> 18 <div class="date">
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
29 <a class="go"/> 29 <a class="go"/>
30 </div> 30 </div>
31 </div> 31 </div>
32 <el-empty v-if="newsList.length == 0" description="暂无数据"/> 32 <el-empty v-if="newsList.length == 0" />
33 33
34 </div> 34 </div>
35 35
......
...@@ -53,18 +53,18 @@ ...@@ -53,18 +53,18 @@
53 <el-col :lg="12" :xs="24" :sm="12"> 53 <el-col :lg="12" :xs="24" :sm="12">
54 <div class="black-pic-bg"> 54 <div class="black-pic-bg">
55 <div class="item" @click="goCoach(1)"> 55 <div class="item" @click="goCoach(1)">
56 <div><img src="@/assets/v1/hy_btn01.png"> 56 <div>
57 <h3>教练员</h3></div> 57 <h3>教练员</h3></div>
58 </div> 58 </div>
59 <div class="item" @click="goCoach(2)"> 59 <div class="item" @click="goCoach(2)">
60 <div><img src="@/assets/v1/hy_btn02.png"> 60 <div>
61 <h3>裁判员</h3></div> 61 <h3>裁判员</h3></div>
62 </div> 62 </div>
63 <!-- <div class="item" @click="goNationalTeam('t1')">--> 63 <!-- <div class="item" @click="goNationalTeam('t1')">-->
64 <!-- <div><img src="@/assets/v1/hy_btn03.png"><h3>运动员</h3></div>--> 64 <!-- <div><img src="@/assets/v1/hy_btn03.png"><h3>运动员</h3></div>-->
65 <!-- </div>--> 65 <!-- </div>-->
66 <div class="item" @click="goCoach(3)"> 66 <div class="item" @click="goCoach(3)">
67 <div><img src="@/assets/v1/hy_btn04.png"> 67 <div>
68 <h3>考官</h3></div> 68 <h3>考官</h3></div>
69 </div> 69 </div>
70 </div> 70 </div>
......
...@@ -111,7 +111,6 @@ export default defineConfig(({ mode, command }) => { ...@@ -111,7 +111,6 @@ export default defineConfig(({ mode, command }) => {
111 rollupOptions: { 111 rollupOptions: {
112 input: { 112 input: {
113 main: resolve(__dirname, 'index.html') 113 main: resolve(__dirname, 'index.html')
114 // pc: resolve(__dirname, 'pc.html')
115 } 114 }
116 } 115 }
117 } 116 }
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!