no message
Showing
51 changed files
with
1895 additions
and
1236 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 |
This diff is collapsed.
Click to expand it.
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; | ||
| 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 | } | ||
| 87 | } | 173 | } |
| 88 | 174 | ||
| 175 | @media (max-width: 1600px) { | ||
| 176 | .el-menu--horizontal > .el-menu-item { | ||
| 177 | padding: 0 15px; | ||
| 178 | } | ||
| 179 | } | ||
| 89 | 180 | ||
| 90 | .btn-top{ | 181 | @media (max-width: 1500px) { |
| 91 | margin-top: 10px; | 182 | .home-menu .el-menu--horizontal > .el-menu-item { |
| 183 | padding: 0 10px; | ||
| 184 | } | ||
| 92 | } | 185 | } |
| 93 | .el-table{ | 186 | |
| 94 | background: url("@/assets/admin/tableBg.png") #F5FBFE no-repeat top; | 187 | @media (max-width: 1440px) { |
| 95 | background-color:#F5FBFE!important; | 188 | .fixed_nav{ transform: scale(0.8); |
| 96 | background-size: 750px; | 189 | transform-origin: left;} |
| 97 | --el-bg-color:#F5FBFE; | 190 | .home-menu .el-menu--horizontal > .el-menu-item { |
| 98 | --el-table-border-color:#e1e4ec; | 191 | font-size: 16px; |
| 99 | --el-fill-color-blank:transparent; | 192 | padding: 0 10px; |
| 100 | --el-fill-color-light:#fff; | 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 | } | ||
| 101 | } | 203 | } |
| 102 | 204 | ||
| 103 | // 审核通过添加背景色 | 205 | //思源宋体 |
| 104 | .success-row{ | 206 | @font-face { |
| 105 | --el-table-tr-bg-color: rgba(41, 196, 144,.15); | 207 | font-family: SC-song; |
| 208 | src: url("@/assets/fonts/SHSCN_regular.otf") format('otf'); | ||
| 106 | } | 209 | } |
| 107 | 210 | ||
| 108 | .totalCost{ | 211 | .imgbox { |
| 109 | font-weight: 700; | 212 | img { |
| 110 | font-size: 16px; | 213 | width: 100%; |
| 111 | margin-top: 10px; | 214 | } |
| 112 | position: absolute; | 215 | } |
| 113 | bottom: 30px; | ||
| 114 | left: 20px; | ||
| 115 | z-index: 999; | ||
| 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> |
| 68 | <a class="ropenbtn" @click="showDrawer"> | ||
| 69 | <img src="@/assets/v1/menu.png"> | ||
| 70 | </a> | ||
| 65 | </div> | 71 | </div> |
| 66 | 72 | ||
| 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"> | ||
| 71 | <img src="@/assets/v1/menu.png"> | ||
| 72 | </a> | ||
| 73 | </div> | ||
| 74 | </div> | ||
| 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> |
| 82 | router :default-active="activeIndex" mode="vertical" :ellipsis="false" | 81 | <span v-else :class="language==0?'active':''" @click="changeLanguage(0)">CN</span> |
| 83 | popper-effect="dark" @select="handleSelect" | 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" | ||
| 91 | router :default-active="activeIndex" mode="vertical" :ellipsis="false" | ||
| 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 | } | ||
| 312 | .flex-right { | ||
| 313 | .quickNav a { | ||
| 314 | padding: 0 4px; | ||
| 315 | border: none; | ||
| 316 | } | ||
| 317 | } | 345 | } |
| 346 | |||
| 347 | :deep(.el-input){height: 100%} | ||
| 348 | :deep(.el-form-item){height: 40px;} | ||
| 349 | .weiMenu.el-menu{ | ||
| 350 | border: none; | ||
| 351 | :deep(.el-menu-item.is-active){color: var(--el-color-primary);} | ||
| 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%; |
| ... | @@ -151,10 +149,10 @@ watch(() => route.name, (val) => { | ... | @@ -151,10 +149,10 @@ watch(() => route.name, (val) => { |
| 151 | } | 149 | } |
| 152 | 150 | ||
| 153 | .btnText{ | 151 | .btnText{ |
| 154 | color:#014A9F | 152 | color:#014A9F |
| 155 | } | 153 | } |
| 156 | .btn-B{ | 154 | .btn-B{ |
| 157 | color:#008BF7 | 155 | color:#008BF7 |
| 158 | } | 156 | } |
| 159 | 157 | ||
| 160 | :deep(.el-button--success){ | 158 | :deep(.el-button--success){ |
| ... | @@ -168,7 +166,7 @@ color:#014A9F | ... | @@ -168,7 +166,7 @@ color:#014A9F |
| 168 | font-weight: 400; | 166 | font-weight: 400; |
| 169 | color: #FFFFFF; | 167 | color: #FFFFFF; |
| 170 | } | 168 | } |
| 171 | 169 | ||
| 172 | } | 170 | } |
| 173 | 171 | ||
| 174 | :deep(.el-tabs__item){ | 172 | :deep(.el-tabs__item){ | ... | ... |
| ... | @@ -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"> |
| 24 | <h3 class="title"> | 23 | <div class="bpd"> |
| 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> |
| 27 | </span> | 27 | </span> |
| 28 | 28 | ||
| 29 | {{ form.name }}</h3> | 29 | {{ form.name }}</h3> |
| 30 | <div class="nInfo"> | 30 | <div class="nInfo"> |
| 31 | <span>{{ form.belongTime }}</span> | 31 | <span>{{ form.belongTime }}</span> |
| 32 | <span v-if="form.source">{{ form.source }}</span> | 32 | <span v-if="form.source">{{ form.source }}</span> |
| 33 | <span v-if="form.author">责任编辑:{{ form.author }}</span> | 33 | <span v-if="form.author">责任编辑:{{ form.author }}</span> |
| 34 | </div> | ||
| 35 | <el-divider /> | ||
| 36 | <div class="content" v-html="form.content" /> | ||
| 37 | |||
| 38 | <!-- 视频--> | ||
| 39 | <div v-if="hasMp4"> | ||
| 40 | <video-player v-for="(f,index) in fileList" :key="index" class="videoPlay mb20" controls :src="fillImgUrl_webSite(f.url)" /> | ||
| 41 | </div> | ||
| 42 | <div v-if="!hasMp4 && fileList.length>0" class="mt20"> | ||
| 43 | <!-- 附件--> | ||
| 44 | <p class="fwb mt20">附件下载:</p> | ||
| 45 | <p v-for="(f,index) in fileList" :key="index" class="fwb"> | ||
| 46 | {{ index + 1 }}、<a :href="fillImgUrl_webSite(f.url)" target="_blank">{{ f.name }}</a> | ||
| 47 | </p> | ||
| 48 | |||
| 49 | </div> | ||
| 34 | </div> | 50 | </div> |
| 35 | <el-divider /> | ||
| 36 | <div class="content" v-html="form.content" /> | ||
| 37 | 51 | ||
| 38 | <!-- 视频--> | ||
| 39 | <div v-if="hasMp4"> | ||
| 40 | <video-player v-for="(f,index) in fileList" :key="index" class="videoPlay mb20" controls :src="fillImgUrl_webSite(f.url)" /> | ||
| 41 | </div> | ||
| 42 | <div v-if="!hasMp4 && fileList.length>0" class="mt20"> | ||
| 43 | <!-- 附件--> | ||
| 44 | <p class="fwb mt20">附件下载:</p> | ||
| 45 | <p v-for="(f,index) in fileList" :key="index" class="fwb"> | ||
| 46 | {{ index + 1 }}、<a :href="fillImgUrl_webSite(f.url)" target="_blank">{{ f.name }}</a> | ||
| 47 | </p> | ||
| 48 | |||
| 49 | </div> | ||
| 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