no message
Showing
51 changed files
with
1873 additions
and
1214 deletions
.env.development
0 → 100644
| 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' |
.env.production
0 → 100644
| 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 |
.env.staging
0 → 100644
| 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> | ... | ... |
pc.html
deleted
100644 → 0
| 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> | ... | ... |
src/AppPc.vue
deleted
100644 → 0
| 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> |
src/App_bak.vue
0 → 100644
| 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> |
src/assets/dance/fm.jpg
0 → 100644
25.8 KB
src/assets/dance/weather_en.png
0 → 100644
24.3 KB
src/assets/dance/znbb.png
0 → 100644
37.9 KB
| ... | @@ -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 | } | ... | ... |
src/assets/zhinan/banner_en.png
0 → 100644
617 KB
| ... | @@ -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 | | <span @click="logout()">退出</span></el-button> | 65 | | <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; | ... | ... |
src/viewsPc/about/culture_en.vue
0 → 100644
| 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> |
src/viewsPc/about/fileList.vue
0 → 100644
| 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> | ... | ... |
src/viewsPc/about/wudao_en.vue
0 → 100644
| 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 | ... | ... |
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
| ... | @@ -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">地    点:</label>江苏省无锡市滨湖区体育中心A区201</p> | 16 | <p class="ppl"><label class="bm3">地    点:</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> | ... | ... |
src/viewsPc/match/detail_en.vue
0 → 100644
This diff is collapsed.
Click to expand it.
| ... | @@ -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> | ... | ... |
src/viewsPc/meta/index_en.vue
0 → 100644
| 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> | ... | ... |
src/viewsPc/news/list_en.vue
0 → 100644
| 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() | ... | ... |
src/viewsPc/notice/index_en.vue
0 → 100644
| 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 | ... | ... |
src/viewsPc/saiC/index_en.vue
0 → 100644
| 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 | } | ... | ... |
-
Please register or sign in to post a comment