0610fc57 by 杨炀

no message

1 parent 261424a0
# 页面标题
VITE_APP_TITLE = 中跆协后台管理系统
# 开发环境配置
VITE_APP_ENV = 'development'
# 中跆协管理系统/开发环境
VITE_APP_BASE_API = '/dev-api'
# 应用访问路径 例如使用前缀 /admin/
VITE_APP_CONTEXT_PATH = '/'
# 监控地址
VITE_APP_MONITRO_ADMIN = 'http://localhost:9090/admin/login'
# xxl-job 控制台地址
VITE_APP_XXL_JOB_ADMIN = 'http://localhost:9100/xxl-job-admin'
VITE_APP_SOCKET_URL='http://192.168.1.133:8088'
# 页面标题
VITE_APP_TITLE = 中跆协后台管理系统
# 生产环境配置
VITE_APP_ENV = 'production'
# 应用访问路径 例如使用前缀 /admin/
VITE_APP_CONTEXT_PATH = '/'
# 监控地址
VITE_APP_MONITRO_ADMIN = '/admin/login'
# 监控地址
VITE_APP_XXL_JOB_ADMIN = '/xxl-job-admin'
# 中跆协管理系统/生产环境
VITE_APP_BASE_API = '/prod-api'
# 是否在打包时开启压缩,支持 gzip 和 brotli
VITE_BUILD_COMPRESS = gzip
# 页面标题
VITE_APP_TITLE = 中跆协后台管理系统
# 生产环境配置
VITE_APP_ENV = 'production'
# 应用访问路径 例如使用前缀 /admin/
VITE_APP_CONTEXT_PATH = '/'
# 监控地址
VITE_APP_MONITRO_ADMIN = '/admin/login'
# 监控地址
VITE_APP_XXL_JOB_ADMIN = '/xxl-job-admin'
# 中跆协管理系统/测试环境
VITE_APP_BASE_API = '/stage-api'
# 是否在打包时开启压缩,支持 gzip 和 brotli
VITE_BUILD_COMPRESS = gzip
VITE_APP_SOCKET_URL='http://192.168.1.133:8088'
\ No newline at end of file
......@@ -6,9 +6,9 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="/ico.png">
<title>中跆协管理系统</title>
<!-- <script src="./browser.js"></script>-->
<link rel="icon" href="/favicon.ico">
<title>亚洲体育舞蹈节</title>
<!-- <script src="./browser.js"></script>-->
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
<style>
html,
......@@ -202,15 +202,15 @@
</head>
<body>
<div id="app">
<div id="app">
<div id="loader-wrapper">
<div id="loader"></div>
<div class="loader-section section-left"></div>
<div class="loader-section section-right"></div>
<div class="load_title">正在加载系统资源,请耐心等待</div>
<!-- <div class="load_title">正在加载系统资源,请耐心等待</div>-->
</div>
</div>
<script type="module" src="/src/main.js"></script>
</div>
<script type="module" src="/src/main.js"></script>
</body>
</html>
......
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="/favicon.ico">
<title>亚洲舞蹈大赛</title>
<!-- <script src="./browser.js"></script>-->
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
<style>
html,
body,
#app {
height: 100%;
margin: 0px;
padding: 0px;
}
.chromeframe {
margin: 0.2em 0;
background: #ccc;
color: #000;
padding: 0.2em 0;
}
#loader-wrapper {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 999999;
}
#loader {
display: block;
position: relative;
left: 50%;
top: 50%;
width: 150px;
height: 150px;
margin: -75px 0 0 -75px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
-webkit-animation: spin 2s linear infinite;
-ms-animation: spin 2s linear infinite;
-moz-animation: spin 2s linear infinite;
-o-animation: spin 2s linear infinite;
animation: spin 2s linear infinite;
z-index: 1001;
}
#loader:before {
content: "";
position: absolute;
top: 5px;
left: 5px;
right: 5px;
bottom: 5px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
-webkit-animation: spin 3s linear infinite;
-moz-animation: spin 3s linear infinite;
-o-animation: spin 3s linear infinite;
-ms-animation: spin 3s linear infinite;
animation: spin 3s linear infinite;
}
#loader:after {
content: "";
position: absolute;
top: 15px;
left: 15px;
right: 15px;
bottom: 15px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
-moz-animation: spin 1.5s linear infinite;
-o-animation: spin 1.5s linear infinite;
-ms-animation: spin 1.5s linear infinite;
-webkit-animation: spin 1.5s linear infinite;
animation: spin 1.5s linear infinite;
}
@-webkit-keyframes spin {
0% {
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes spin {
0% {
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
#loader-wrapper .loader-section {
position: fixed;
top: 0;
width: 51%;
height: 100%;
background: #7171C6;
z-index: 1000;
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
}
#loader-wrapper .loader-section.section-left {
left: 0;
}
#loader-wrapper .loader-section.section-right {
right: 0;
}
.loaded #loader-wrapper .loader-section.section-left {
-webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
}
.loaded #loader-wrapper .loader-section.section-right {
-webkit-transform: translateX(100%);
-ms-transform: translateX(100%);
transform: translateX(100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
}
.loaded #loader {
opacity: 0;
-webkit-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}
.loaded #loader-wrapper {
visibility: hidden;
-webkit-transform: translateY(-100%);
-ms-transform: translateY(-100%);
transform: translateY(-100%);
-webkit-transition: all 0.3s 1s ease-out;
transition: all 0.3s 1s ease-out;
}
.no-js #loader-wrapper {
display: none;
}
.no-js h1 {
color: #222222;
}
#loader-wrapper .load_title {
font-family: 'Open Sans';
color: #FFF;
font-size: 19px;
width: 100%;
text-align: center;
z-index: 9999999999999;
position: absolute;
top: 60%;
opacity: 1;
line-height: 30px;
}
#loader-wrapper .load_title span {
font-weight: normal;
font-style: italic;
font-size: 13px;
color: #FFF;
opacity: 0.5;
}
</style>
</head>
<body>
<div id="app">
<div id="loader-wrapper">
<div id="loader"></div>
<div class="loader-section section-left"></div>
<div class="loader-section section-right"></div>
<div class="load_title">正在加载系统资源,请耐心等待</div>
</div>
</div>
<script type="module" src="/src/mainPc.js"></script>
</body>
</html>
<template>
<!-- <el-config-provider :locale="locale">-->
<router-view />
<!-- </el-config-provider>-->
<reset-pwd ref="resetPwdRef" />
</template>
<script setup>
import useSettingsStore from '@/store/modules/settings'
import { handleThemeStyle } from '@/utils/theme'
import { nextTick, onMounted, watch } from 'vue'
import useUserStore from '@/store/modules/user'
import { handleThemeStyle } from '@/utils/theme'
import useSettingsStore from '@/store/modules/settings'
import ResetPwd from '@/views/system/user/profile/components/resetPwd'
import useUserStore from '@/store/modules/user'
import { getCurrentInstance } from '@vue/runtime-core'
// import { ElConfigProvider } from 'element-plus'
// import locale from 'element-plus/lib/locale/lang/zh-cn'
const userStore = useUserStore()
const { proxy } = getCurrentInstance()
onMounted(() => {
document.body.style.setProperty('--el-color-primary', '#453DEA')
// 鼠标移动到按钮上方时显示的颜色,默认蓝色,可以和primary设置的颜色不一样
document.body.style.setProperty('--el-color-primary-light-3', '#8623FC')
document.body.style.setProperty('--el-color-success', '#29c490')
document.body.style.setProperty('--el-color-success-light-3', '#54d0a6')
// danger
document.body.style.setProperty('--el-color-danger', '#d51515')
document.body.style.setProperty('--el-color-danger-light-3', '#d44')
// warning
document.body.style.setProperty('--el-color-warning', '#e6a23c')
document.body.style.setProperty('--el-color-warning-light-3', '#ebb563')
document.body.style.setProperty('--el-button-hover-bg-color', '#fff')
nextTick(() => {
// 初始化主题样式
handleThemeStyle(useSettingsStore().theme)
})
})
watch(() => userStore.user?.changePassFlag, (val) => {
if (val === '1') {
proxy.$modal.confirm('密码长期未更新,请及时更新').then(() => {
proxy.$refs['resetPwdRef'].open()
})
}
})
// watch(() => userStore.user?.changePassFlag, (val) => {
// if (val === '1') {
// proxy.$modal.confirm('密码长期未更新,请及时更新').then(() => {
// proxy.$refs['resetPwdRef'].open()
// })
// }
// })
</script>
<style lang="scss">
.app-container{
background-color: #F5F7F9;
padding:20px;
min-height: calc(100vh - 85px);
:root {
--el-color-golden: #946A12;
--el-fill-color-light: #faf5f5;
--el-button-hover-border-color: #94080B;
--el-button-hover-bg-color: rgba(148, 8, 11, 0.3);
--el-fill-color-lighter: #F6F9FE!important;
}
/* 搜索栏 */
.from-Card{
background-color: #fff;
padding: 20px;
.el-button:focus, .el-button:hover {
//--el-button-hover-border-color: #94080B;
//--el-button-hover-bg-color: transparent;
}
.btn-card{
padding: 20px;
background: #fff;
border-radius: 10px;
.box {
width: 90%;
max-width: 1600px;
margin: auto;
}
/* 表格 */
.table{
background-color: #fff;
padding:0 20px 10px;
position: relative;
.app-container {
min-height: 100vh;
}
.box{
background: #fff;
border-radius: 5px;
padding: 10px;
.app-main {
background: #F4F4F4;
}
.el-breadcrumb__inner {
display: flex;
.el-icon {
margin: 0 4px;
}
}
li.el-select-dropdown__item {
height: auto;
}
:root {
--el-menu-active-color: var(--el-color-primary);
}
/* 分页 */
.foot{
background-color: #fff;
.el-popper .el-menu {
background: #fff;
}
.el-popper .el-menu--horizontal .el-menu .el-menu-item {
background: transparent;
justify-content: center;
height: 50px;
font-size: 18px;
}
.el-popper .el-menu--horizontal .el-menu .el-sub-menu .el-sub-menu__title {
background: transparent;
justify-content: center;
height: 50px;
font-size: 18px;
}
.el-popper .el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title {
color: #fff;
}
.el-popper .el-menu--horizontal .el-menu .el-menu-item.is-active {
color:var(--el-color-primary);
}
.btn-top{
margin-top: 10px;
.el-popper, .el-menu--popup {
border-radius: 0;
}
.el-table{
background: url("@/assets/admin/tableBg.png") #F5FBFE no-repeat top;
background-color:#F5FBFE!important;
background-size: 750px;
--el-bg-color:#F5FBFE;
--el-table-border-color:#e1e4ec;
--el-fill-color-blank:transparent;
--el-fill-color-light:#fff;
:deep(.el-menu--popup) {
min-width: 130px;padding: 0;
}
// 审核通过添加背景色
.success-row{
--el-table-tr-bg-color: rgba(41, 196, 144,.15);
.el-popper.is-light.is-pure {
border: none;
}
.el-popper {
.el-menu--horizontal .el-menu-item:not(.is-disabled):focus, .el-menu--horizontal .el-menu-item:not(.is-disabled):hover {
color: var(--el-color-primary);
}
.el-menu--horizontal {
border: none;
}
}
.totalCost{
font-weight: 700;
.home-menu {
.el-menu {color: #000;}
.el-menu--horizontal>.el-menu-item {
transition: none;color: #000;padding: 6px 10px ;margin: 0 10px;border-radius: 18px;
}
.el-sub-menu .el-sub-menu__title {
font-size: 20px;color: #000;
}
.el-menu--horizontal > .el-sub-menu.is-active .el-sub-menu__title {
border-bottom: none;
color: var(--el-color-primary);
}
.el-menu--horizontal .el-menu .el-menu-item {
justify-content: center;
}
.el-menu--horizontal > .el-sub-menu .el-sub-menu__title:hover {
color: #453DEA;
}
.el-menu--horizontal .el-menu-item:not(.is-disabled):focus {
}
.el-menu--horizontal .el-menu-item:not(.is-disabled):hover {
color: #453DEA;
}
.el-menu--horizontal > .el-menu-item.is-active {
border-bottom: none;background: linear-gradient(-90deg, #8623FC, #453DEA);
border-radius: 18px;color: #fff!important;
}
.el-menu--horizontal {
height: 35px;
border-bottom: none;
justify-content: space-between;
}
.el-menu--horizontal > .el-menu-item {
font-size: 20px;
}
}
@media (max-width: 1600px) {
.el-menu--horizontal > .el-menu-item {
padding: 0 15px;
}
}
@media (max-width: 1500px) {
.home-menu .el-menu--horizontal > .el-menu-item {
padding: 0 10px;
}
}
@media (max-width: 1440px) {
.fixed_nav{ transform: scale(0.8);
transform-origin: left;}
.home-menu .el-menu--horizontal > .el-menu-item {
font-size: 16px;
margin-top: 10px;
position: absolute;
bottom: 30px;
left: 20px;
z-index: 999;
padding: 0 10px;
}
.home-menu .el-sub-menu .el-sub-menu__title {
font-size: 16px;
}
.serverRow .item {
height: 260px;
}
.el-popper .el-menu--horizontal .el-menu .el-menu-item {
font-size: 16px;
}
}
//思源宋体
@font-face {
font-family: SC-song;
src: url("@/assets/fonts/SHSCN_regular.otf") format('otf');
}
.imgbox {
img {
width: 100%;
}
}
span{
color: orange;
margin-right: 20px;
.searchpp {
.el-dialog__headerbtn .el-dialog__close {
font-size: 33px;
}
&.el-dialog {
padding: 0 100px;
--el-dialog-title-font-size: 40px;
--el-dialog-padding-primary: 50px 20px 0 0;
box-shadow: 0 2000px 0 2000px rgba(0, 0, 0, 0.6);
}
.el-dialog__headerbtn {
right: 20px;
top: 30px;
}
}
.searchPark{padding: 10px 20px;height: 100%;
background: #F6F6F6;
.el-input__suffix{color:var(--el-color-primary)}
.el-icon{color:var(--el-color-primary)}
.el-input{--el-input-icon-color:var(--el-color-primary)}
}
.flexformItem{
display: flex;width: 100%;
.el-date-editor{
--el-date-editor-width:100%
}
.el-input__suffix{color:var(--el-color-primary)}
.el-icon{color:var(--el-color-primary)}
.el-input{--el-input-icon-color:var(--el-color-primary)}
}
.topBanner{
.imgbox{position: relative;height: 100%;
img{height: 100%;object-fit: cover;}
}
h3{position: absolute;bottom: 0;color: #fff;
font-size: 36px;margin: 0;
text-align: center;width: 100%;padding: 60px 0 40px;
background: linear-gradient(0deg,rgba(0,0,0,0.5),rgba(0,0,0,0));
}
}
.tablebody{width: 100%;overflow: auto}
// 禁选背景色
.disabled-row{
--el-table-tr-bg-color: rgba(36, 37, 37,0.1);
@media (max-width: 800px) {
.box{width: 96%}
}
</style>
......
<template>
<router-view />
<reset-pwd ref="resetPwdRef" />
</template>
<script setup>
import { nextTick, onMounted, watch } from 'vue'
import { handleThemeStyle } from '@/utils/theme'
import useSettingsStore from '@/store/modules/settings'
import ResetPwd from '@/views/system/user/profile/components/resetPwd'
import useUserStore from '@/store/modules/user'
import { getCurrentInstance } from '@vue/runtime-core'
const userStore = useUserStore()
const { proxy } = getCurrentInstance()
onMounted(() => {
document.body.style.setProperty('--el-color-primary', '#453DEA')
document.body.style.setProperty('--el-color-primary-light-3', '#8623FC')
document.body.style.setProperty('--el-button-hover-bg-color', '#fff')
nextTick(() => {
// 初始化主题样式
handleThemeStyle(useSettingsStore().theme)
})
})
// watch(() => userStore.user?.changePassFlag, (val) => {
// if (val === '1') {
// proxy.$modal.confirm('密码长期未更新,请及时更新').then(() => {
// proxy.$refs['resetPwdRef'].open()
// })
// }
// })
</script>
<style lang="scss">
:root {
--el-color-golden: #946A12;
--el-fill-color-light: #faf5f5;
--el-button-hover-border-color: #94080B;
--el-button-hover-bg-color: rgba(148, 8, 11, 0.3);
--el-fill-color-lighter: #F6F9FE!important;
}
.el-button:focus, .el-button:hover {
//--el-button-hover-border-color: #94080B;
//--el-button-hover-bg-color: transparent;
}
.box {
width: 90%;
max-width: 1400px;
margin: auto;
}
.app-container {
min-height: 100vh;
}
.app-main {
background: #F4F4F4;
}
.el-breadcrumb__inner {
display: flex;
.el-icon {
margin: 0 4px;
}
}
li.el-select-dropdown__item {
height: auto;
}
:root {
--el-menu-active-color: var(--el-color-primary);
}
.el-popper .el-menu {
background: #fff;
}
.el-popper .el-menu--horizontal .el-menu .el-menu-item {
background: transparent;
justify-content: center;
height: 50px;
font-size: 18px;
}
.el-popper .el-menu--horizontal .el-menu .el-sub-menu .el-sub-menu__title {
background: transparent;
justify-content: center;
height: 50px;
font-size: 18px;
}
.el-popper .el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title {
color: #fff;
}
.el-popper .el-menu--horizontal .el-menu .el-menu-item.is-active {
color:var(--el-color-primary);
}
.el-popper, .el-menu--popup {
border-radius: 0;
}
:deep(.el-menu--popup) {
min-width: 130px;padding: 0;
}
.el-popper.is-light.is-pure {
border: none;
}
.el-popper {
.el-menu--horizontal .el-menu-item:not(.is-disabled):focus, .el-menu--horizontal .el-menu-item:not(.is-disabled):hover {
color: var(--el-color-primary);
}
.el-menu--horizontal {
border: none;
}
}
.home-menu {
.el-menu {color: #000;}
.el-menu--horizontal>.el-menu-item {
transition: none;color: #000;padding: 6px 10px ;margin: 0 10px;border-radius: 18px;
}
.el-sub-menu .el-sub-menu__title {
font-size: 20px;color: #000;
}
.el-menu--horizontal > .el-sub-menu.is-active .el-sub-menu__title {
border-bottom: none;
color: var(--el-color-primary);
}
.el-menu--horizontal .el-menu .el-menu-item {
justify-content: center;
}
.el-menu--horizontal > .el-sub-menu .el-sub-menu__title:hover {
color: #453DEA;
}
.el-menu--horizontal .el-menu-item:not(.is-disabled):focus {
}
.el-menu--horizontal .el-menu-item:not(.is-disabled):hover {
color: #453DEA;
}
.el-menu--horizontal > .el-menu-item.is-active {
border-bottom: none;background: linear-gradient(-90deg, #8623FC, #453DEA);
border-radius: 18px;color: #fff!important;
}
.el-menu--horizontal {
height: 35px;
border-bottom: none;
justify-content: space-between;
}
.el-menu--horizontal > .el-menu-item {
font-size: 20px;
}
}
@media (max-width: 1600px) {
.el-menu--horizontal > .el-menu-item {
padding: 0 15px;
}
}
@media (max-width: 1500px) {
.home-menu .el-menu--horizontal > .el-menu-item {
padding: 0 10px;
}
}
@media (max-width: 1440px) {
.fixed_nav{ transform: scale(0.8);
transform-origin: left;}
.home-menu .el-menu--horizontal > .el-menu-item {
font-size: 16px;
padding: 0 10px;
}
.home-menu .el-sub-menu .el-sub-menu__title {
font-size: 16px;
}
.serverRow .item {
height: 260px;
}
.el-popper .el-menu--horizontal .el-menu .el-menu-item {
font-size: 16px;
}
}
//思源宋体
@font-face {
font-family: SC-song;
src: url("@/assets/fonts/SHSCN_regular.otf") format('otf');
}
.imgbox {
img {
width: 100%;
}
}
.searchpp {
.el-dialog__headerbtn .el-dialog__close {
font-size: 33px;
}
&.el-dialog {
padding: 0 100px;
--el-dialog-title-font-size: 40px;
--el-dialog-padding-primary: 50px 20px 0 0;
box-shadow: 0 2000px 0 2000px rgba(0, 0, 0, 0.6);
}
.el-dialog__headerbtn {
right: 20px;
top: 30px;
}
}
.searchPark{padding: 10px 20px;height: 100%;
background: #F6F6F6;
.el-input__suffix{color:var(--el-color-primary)}
.el-icon{color:var(--el-color-primary)}
.el-input{--el-input-icon-color:var(--el-color-primary)}
}
.flexformItem{
display: flex;width: 100%;
.el-date-editor{
--el-date-editor-width:100%
}
.el-input__suffix{color:var(--el-color-primary)}
.el-icon{color:var(--el-color-primary)}
.el-input{--el-input-icon-color:var(--el-color-primary)}
}
.topBanner{
.imgbox{position: relative;height: 100%;
img{height: 100%;object-fit: cover;}
}
h3{position: absolute;bottom: 0;color: #fff;
font-size: 36px;margin: 0;
text-align: center;width: 100%;padding: 60px 0 40px;
background: linear-gradient(0deg,rgba(0,0,0,0.5),rgba(0,0,0,0));
}
}
</style>
<template>
<!-- <el-config-provider :locale="locale">-->
<router-view />
<!-- </el-config-provider>-->
<reset-pwd ref="resetPwdRef" />
</template>
<script setup>
import useSettingsStore from '@/store/modules/settings'
import { handleThemeStyle } from '@/utils/theme'
import { nextTick, onMounted, watch } from 'vue'
import useUserStore from '@/store/modules/user'
import ResetPwd from '@/views/system/user/profile/components/resetPwd'
import { getCurrentInstance } from '@vue/runtime-core'
// import { ElConfigProvider } from 'element-plus'
// import locale from 'element-plus/lib/locale/lang/zh-cn'
const userStore = useUserStore()
const { proxy } = getCurrentInstance()
onMounted(() => {
document.body.style.setProperty('--el-color-primary', '#453DEA')
// 鼠标移动到按钮上方时显示的颜色,默认蓝色,可以和primary设置的颜色不一样
document.body.style.setProperty('--el-color-primary-light-3', '#8623FC')
document.body.style.setProperty('--el-color-success', '#29c490')
document.body.style.setProperty('--el-color-success-light-3', '#54d0a6')
// danger
document.body.style.setProperty('--el-color-danger', '#d51515')
document.body.style.setProperty('--el-color-danger-light-3', '#d44')
// warning
document.body.style.setProperty('--el-color-warning', '#e6a23c')
document.body.style.setProperty('--el-color-warning-light-3', '#ebb563')
nextTick(() => {
// 初始化主题样式
handleThemeStyle(useSettingsStore().theme)
})
})
watch(() => userStore.user?.changePassFlag, (val) => {
if (val === '1') {
proxy.$modal.confirm('密码长期未更新,请及时更新').then(() => {
proxy.$refs['resetPwdRef'].open()
})
}
})
</script>
<style lang="scss">
.app-container{
background-color: #F5F7F9;
padding:20px;
min-height: calc(100vh - 85px);
}
/* 搜索栏 */
.from-Card{
background-color: #fff;
padding: 20px;
}
.btn-card{
padding: 20px;
background: #fff;
border-radius: 10px;
}
/* 表格 */
.table{
background-color: #fff;
padding:0 20px 10px;
position: relative;
}
.box{
background: #fff;
border-radius: 5px;
padding: 10px;
}
/* 分页 */
.foot{
background-color: #fff;
height: 50px;
}
.btn-top{
margin-top: 10px;
}
.el-table{
background: url("@/assets/admin/tableBg.png") #F5FBFE no-repeat top;
background-color:#F5FBFE!important;
background-size: 750px;
--el-bg-color:#F5FBFE;
--el-table-border-color:#e1e4ec;
--el-fill-color-blank:transparent;
--el-fill-color-light:#fff;
}
// 审核通过添加背景色
.success-row{
--el-table-tr-bg-color: rgba(41, 196, 144,.15);
}
.totalCost{
font-weight: 700;
font-size: 16px;
margin-top: 10px;
position: absolute;
bottom: 30px;
left: 20px;
z-index: 999;
span{
color: orange;
margin-right: 20px;
}
}
// 禁选背景色
.disabled-row{
--el-table-tr-bg-color: rgba(36, 37, 37,0.1);
}
</style>

291 KB | W: | H:

129 KB | W: | H:

src/assets/dance/map.png
src/assets/dance/map.png
src/assets/dance/map.png
src/assets/dance/map.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -496,13 +496,13 @@ img{display: block;}
}
}
.bg-lineg{ background: linear-gradient(90deg, #8623FC, #453DEA);color: #fff;}
.lineHead{height: 50px;padding: 15px;
.lineHead{height: 50px;padding: 15px;overflow: auto;
background: linear-gradient(90deg, #8623FC, #453DEA);
h3{margin: 0;background: #FFFFFF;
font-size: 18px;
color: var(--el-color-primary);
border-radius: 5px;display: inline;padding: 5px 15px;}
ul{margin: 0;padding: 0;
ul{margin: 0;padding: 0;white-space: nowrap;
li{border-radius: 5px;display: inline;padding: 5px 15px; font-size: 18px;
color: #fff;cursor: pointer;}
li.active{background: #FFFFFF;color: var(--el-color-primary);cursor: default;}
......@@ -510,7 +510,7 @@ img{display: block;}
}
.news-l-r{
.item{display: flex;border-bottom: 1px dashed #EEEEEE;padding: 15px;cursor: pointer;
.imgbox{aspect-ratio: 16/9;width: 110px;margin-right: 10px; flex: 0 0 auto;
.imgbox{aspect-ratio: 16/9;width: 200px;margin-right: 10px; flex: 0 0 auto;
img{height: 100%;object-fit: cover;}
}
.info{ flex: 1 1 auto;
......@@ -535,6 +535,7 @@ img{display: block;}
}
.item:hover{
h3{color:var(--el-color-primary);}
h2{color:var(--el-color-primary);}
}
}
.nakedTitle{display: flex;justify-content: space-between;align-items: baseline;
......@@ -552,7 +553,7 @@ img{display: block;}
}
.topNews{align-items: flex-start;}
.carouselImg{position: relative;height: 100%;
background: url("@/assets/v1/default.jpg") #f4f4f4 no-repeat center;
background: #f4f4f4;
background-size: cover;
img{object-fit: cover;height: 100%;}
.date{width: 60px;height: 60px;text-align: center;
......@@ -911,7 +912,7 @@ img{display: block;}
.item{
.imgbox{
background: url("@/assets/v1/default.jpg") #f4f4f4 no-repeat center;
background: #f4f4f4;
background-size: cover;
}
}
......@@ -960,8 +961,8 @@ img{display: block;}
line-height: 1;padding-left: 10px;
border-left: 1px solid var(--el-color-primary);
color: var(--el-color-primary);}
@media (max-width: 500px) {
.app-main{height: 100vh;
@media (max-width: 800px) {
.app-main{
overflow: auto;
background: #F7F8FA;}
}
......@@ -1378,3 +1379,16 @@ img{display: block;}
span:hover{font-weight: bold;}
.active{color: var(--el-color-primary);font-weight: bold;cursor: pointer;}
}
.mapBox{word-break: break-all;}
@media (max-width: 800px) {
//.liveImgbox{margin: 0 0 20px;}
//.videoImgbox{margin: 0 0 20px;}
//.picbox{margin: 0 0 20px;}
.leftboderTT{font-size: 20px}
.mapBox{
div{padding-left: 40px;}
.content{ width: 80%;left: 10%;padding:10px 20px 0 20px;}
.address{margin: 30px 0;}
p{text-align: left;word-break: break-all;}
}
}
......

200 Bytes | W: | H:

3.53 KB | W: | H:

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

399 KB | W: | H:

191 KB | W: | H:

src/assets/zhinan/map.png
src/assets/zhinan/map.png
src/assets/zhinan/map.png
src/assets/zhinan/map.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -21,7 +21,6 @@ const tagsViewStore = useTagsViewStore()
<style lang="scss" scoped>
.app-main {
/* 50= navbar 50 */
min-height: calc(100vh - 50px);
width: 100%;
position: relative;
overflow: hidden;
......
......@@ -5,7 +5,7 @@
<el-col :lg="12" :md="12" :xs="24">
<ul>
<li>
<router-link to="/about">亚洲舞蹈大赛版权所有</router-link>
<router-link to="/about">亚洲体育舞蹈节版权所有</router-link>
</li>
<li>
<a target="_blank" href="https://beian.miit.gov.cn/">ICP备案号:京ICP备2022009428号-1</a>
......@@ -30,7 +30,7 @@
<router-link to="/about">All rights reserved WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024</router-link>
</li>
<li>
Phone: Miss Chang +86 13921876678
Phone: Miss Chang +86 18888888888
</li>
</ul>
</el-col>
......
<template>
<div class="topNav forPc">
<div class="topNav">
<router-link to="/">
<img class="logo" src="@/assets/v1/nav_logo.png">
</router-link>
<div class="home-menu">
<div class="home-menu forPc">
<el-menu
v-if="language==0"
router :default-active="activeIndex" mode="horizontal" :ellipsis="false"
router :default-active="activeIndex" :mode="mode" :ellipsis="true"
popper-effect="dark" @select="handleSelect"
>
<el-menu-item index="/">首页</el-menu-item>
......@@ -25,7 +25,7 @@
</el-menu>
<el-menu
v-if="language==1"
router :default-active="activeIndex" mode="horizontal" :ellipsis="false"
router :default-active="activeIndex" mode="horizontal" :ellipsis="true"
popper-effect="dark" @select="handleSelect"
>
<el-menu-item index="/">HOME</el-menu-item>
......@@ -36,22 +36,25 @@
<el-menu-item index="/meta">MEDIA</el-menu-item>
<el-menu-item index="/guide">GUIDELINE</el-menu-item>
<el-sub-menu index="/about">
<template #title>ABOUT US</template>
<el-menu-item index="/about/wuDao">舞蹈节</el-menu-item>
<el-menu-item index="/about/culture">地方文化</el-menu-item>
<template #title>CONTACT & MORE</template>
<el-menu-item index="/about/wuDao">About Us</el-menu-item>
<el-menu-item index="/about/regulations">Rules & Regulations</el-menu-item>
<el-menu-item index="/about/culture">Culture</el-menu-item>
</el-sub-menu>
</el-menu>
</div>
<div class="flex-right">
<div class="search mr20">
<div class="search mr20 forPc">
<el-button :icon="Search" circle @click="searchNews" />
</div>
<div class="languageBtn">
<span :class="language==0?'active':''" @click="changeLanguage(0)">中文</span>
<span v-if="language==0" :class="language==0?'active':''" @click="changeLanguage(0)">中文</span>
<span v-else :class="language==0?'active':''" @click="changeLanguage(0)">CN</span>
|
<span :class="language==1?'active':''" @click="changeLanguage(1)">EN</span>
</div>
<div class="ml20">
<div class="ml20 forPc" >
<el-button v-if="!isLogin" style="border-radius: 20px;" class="loginBtn">
<span v-if="language==0" @click="goLogin">登录</span>
<span v-if="language==1" @click="goLogin">LOGIN</span>
......@@ -62,27 +65,63 @@
&nbsp;&nbsp;<span @click="logout()">退出</span></el-button>
</div>
</div>
</div>
<div class="forWei ">
<div class="weitop">
<img src="@/assets/v1/nav_logo.png" style="height: 40px;margin: 10px">
<a class="ropenbtn" @click="showDrawer">
<img src="@/assets/v1/menu.png">
</a>
</div>
</div>
<el-drawer
v-model="drawer"
:style="{'--el-drawer-padding-primary':0}" direction="ltr" :with-header="false" title="菜单"
v-model="drawer" size="100%"
:style="{'--el-drawer-padding-primary':0}" direction="ltr"
:with-header="false" title="菜单"
>
<el-menu
:style="{'--el-menu-hover-bg-color':'#faeeed'}"
class="weiMenu"
<div class="weiHead">
<div class="languageBtn">
<span v-if="language==0" :class="language==0?'active':''" @click="changeLanguage(0)">中文</span>
<span v-else :class="language==0?'active':''" @click="changeLanguage(0)">CN</span>
|
<span :class="language==1?'active':''" @click="changeLanguage(1)">EN</span>
</div>
<el-icon color="#453DEA" size="30" @click="closeDrawer"><close/></el-icon>
</div>
<el-menu class="weiMenu"
v-if="language==0"
router :default-active="activeIndex" mode="vertical" :ellipsis="false"
popper-effect="dark" @select="handleSelect"
>
<el-menu-item index="/">首页</el-menu-item>
<el-menu-item index="/news">新闻资讯</el-menu-item>
<el-menu-item index="/notice">通知公告</el-menu-item>
<el-menu-item index="/match/list/0">大赛报名</el-menu-item>
<el-menu-item index="/saiC">赛程安排</el-menu-item>
<el-menu-item index="/meta">媒体中心</el-menu-item>
<el-menu-item index="/guide">参赛指南</el-menu-item>
<el-sub-menu index="/about">
<template #title>关于我们</template>
<el-menu-item index="/about/wuDao">舞蹈节</el-menu-item>
<el-menu-item index="/about/culture">地方文化</el-menu-item>
</el-sub-menu>
</el-menu>
<el-menu class="weiMenu"
v-if="language==1"
router :default-active="activeIndex" mode="vertical" :ellipsis="false"
popper-effect="dark" @select="handleSelect"
>
<el-menu-item index="/">HOME</el-menu-item>
<el-menu-item index="/news">NEWS</el-menu-item>
<el-menu-item index="/notice">NOTICEBOARD</el-menu-item>
<el-menu-item index="/match/list/0">SIGN UP</el-menu-item>
<el-menu-item index="/saiC">COMPETITIONS</el-menu-item>
<el-menu-item index="/meta">MEDIA</el-menu-item>
<el-menu-item index="/guide">GUIDELINE</el-menu-item>
<el-sub-menu index="/about">
<template #title>CONTACT & MORE</template>
<el-menu-item index="/about/wuDao">About Us</el-menu-item>
<el-menu-item index="/about/regulations">Rules & Regulations</el-menu-item>
<el-menu-item index="/about/culture">Culture</el-menu-item>
</el-sub-menu>
</el-menu>
</el-drawer>
<LoginDialog ref="pcloginDialog" @submitForm="reFlash" />
......@@ -149,24 +188,29 @@ const activeIndex = ref('/')
const registerVisible = ref(false)
const loginForm = ref({})
const drawer = ref(false)
const mode = ref('horizontal')
const language = ref(cache.local.get('language') || 0)
onMounted(() => {
console.log(window.location.href)
if (useUserStore().perId) {
isLogin.value = true
}
if (window.location.href.indexOf('en') > -1) {
cache.local.set('language', 1)
// location.reload()
}
if (route.fullPath.indexOf('news') > -1) {
activeIndex.value = '/news'
} else if (route.fullPath.indexOf('notice') > -1) {
activeIndex.value = '/notice'
} else if (route.fullPath.indexOf('about') > -1) {
activeIndex.value = '/about'
} else if (route.fullPath.indexOf('teen') > -1) {
activeIndex.value = '/teen'
} else if (route.fullPath.indexOf('fitness') > -1) {
activeIndex.value = '/fitness'
} else if (route.fullPath.indexOf('dope') > -1) {
activeIndex.value = '/dope'
} else if (route.fullPath.indexOf('mate') > -1) {
activeIndex.value = '/mate'
} else if (route.fullPath.indexOf('guide') > -1) {
activeIndex.value = '/guide'
} else if (route.fullPath.indexOf('saiC') > -1) {
activeIndex.value = '/saiC'
}
// console.log(activeIndex.value)
})
......@@ -178,6 +222,9 @@ function changeLanguage(n) {
function showDrawer() {
drawer.value = true
}
function closeDrawer() {
drawer.value = false
}
function handleSelect(key, keyPath) {
// console.log(key)
activeIndex.value = key
......@@ -194,13 +241,13 @@ const logout = () => {
}
const goLogin = (flag) => {
let param = null
if (_.isBoolean(flag)) {
param = {
notShowClose: flag
}
}
proxy.$refs['pcloginDialog'].open(param)
// let param = null
// if (_.isBoolean(flag)) {
// param = {
// notShowClose: flag
// }
// }
// proxy.$refs['pcloginDialog'].open(param)
}
const goRegister = () => {
registerVisible.value = true
......@@ -240,20 +287,7 @@ function getCode() {
}
.quickNav {
a {
padding: 0 25px;
line-height: 1;
border-right: 1px solid #DCDCDC;
font-size: 14px;
color: #9D630F;
&:last-child {
border-right: none;
}
&:hover{font-weight: bold;text-decoration: underline;}
}
}
.topNav {
box-shadow: 0px 0px 13px rgba(113,113,113);
......@@ -305,37 +339,51 @@ function getCode() {
background: var(--el-color-primary);
}
@media (max-width: 1000px) {
.box {
width: 100%
.ropenbtn{padding: 10px;display: none;
img{ width: 50px;}
}
.flex-right {
.quickNav a {
padding: 0 4px;
:deep(.el-input){height: 100%}
:deep(.el-form-item){height: 40px;}
.weiMenu.el-menu{
border: none;
}
}
:deep(.el-menu-item.is-active){color: var(--el-color-primary);}
}
.weiHead{display: flex;justify-content: end;padding: 15px;align-items: center;
.languageBtn{font-size: 20px;margin-right: 20px;line-height: 30px;}
}
.weiMenu{
.el-menu-item{font-size: 20px}
:deep(.el-sub-menu__title){font-size: 20px}
:deep(.el-sub-menu .el-sub-menu__icon-arrow){font-size: 20px}
}
@media (max-width: 750px) {
@media (max-width: 1400px) {
.search {
display: none
display: none;
}
}
@media (max-width: 500px) {
.forPc {
@media (max-width: 1340px) {
.loginBtn {
display: none;
}
.home-menu .el-menu--horizontal > .el-menu-item{margin: 0; }
}
.weitop{display: flex;justify-content: space-between;
.ropenbtn{padding: 10px}
@media (max-width: 1000px) {
.box {
width: 100%
}
}
:deep(.el-input){height: 100%}
:deep(.el-form-item){height: 40px;}
.weiMenu.el-menu{
border: none;
:deep(.el-menu-item.is-active){color: var(--el-color-primary);}
@media (max-width: 800px) {
.ropenbtn{display: block}
.forPc {
display: none;
}
}
</style>
......
......@@ -13,7 +13,6 @@
<style lang="scss" scoped>
.app-main {
/* 50= navbar 50 */
min-height: calc(100vh - 50px);
width: 100%;
position: relative;
overflow: auto;
......
......@@ -6,18 +6,9 @@
>
<div class="searchBody">
<div class="searchline">
<el-input v-model="query.name" placeholder="请输入关键词搜索" @change="search" />
<el-input v-model="query.name" placeholder="Search entire site" @change="search" />
<el-button :icon="Search" @click="search">search</el-button>
</div>
<h2>近期热门</h2>
<el-row class="newsimgcover" :gutter="20">
<el-col v-for="(n,index) in hottest" v-show="index<4" :key="index" :span="6">
<div class="item shadow" @click="goDetail(n)">
<div class="imgbox"><img :src="fillImgUrl_webSite(n.picUrl)"></div>
<h3 class="esp">{{ n.name }}</h3>
</div>
</el-col>
</el-row>
</div>
</el-dialog>
......
......@@ -3,12 +3,9 @@ import { createApp } from 'vue'
import Cookies from 'js-cookie'
import ElementPlus from 'element-plus'
import locale from 'element-plus/lib/locale/lang/zh-cn' // 中文语言
import '@/assets/styles/index.scss' // global css
import App from './App'
import store from './store'
import router from './router'
import directive from './directive' // directive
// 注册指令
......@@ -20,29 +17,20 @@ import 'virtual:svg-icons-register'
import SvgIcon from '@/components/SvgIcon'
import elementIcons from '@/components/SvgIcon/svgicon'
import './permission' // permission control
import './permissionPc' // permission control
import * as socket from './utils/sockets'
import { useDict } from '@/utils/dict'
import { getConfigKey, updateConfigByKey } from '@/api/system/config'
import {
parseTime,
resetForm,
addDateRange,
handleTree,
selectDictLabel,
selectDictLabels,
fillImgUrl
} from '@/utils/ruoyi'
import VueUeditorWrap from 'vue-ueditor-wrap'
import { parseTime, resetForm, addDateRange, handleTree, selectDictLabel, selectDictLabels, fillImgUrl, downloadFile } from '@/utils/ruoyi'
import { CountDown } from 'vant'
import 'vant/lib/index.css'
// 分页组件
import Pagination from '@/components/Pagination'
import PaginationPc from '@/components/PaginationPc'
// 自定义表格工具组件
import RightToolbar from '@/components/RightToolbar'
// 富文本组件
import Editor from '@/components/Editor'
import UEditor from '@/components/UEditor'
// 文件上传组件
import FileUpload from '@/components/FileUpload'
// 图片上传组件
......@@ -56,7 +44,18 @@ import TreeSelect from '@/components/TreeSelect'
import DictTag from '@/components/DictTag'
import draggable from 'vuedraggable'
import wePay from '@/components/hy/wePay'
import VueVideoPlayer from '@videojs-player/vue'
import 'video.js/dist/video-js.min.css'
import cache from '@/plugins/cache'
import routerCn from './routerPc/cn'
import routerEn from './routerPc/en'
import localeCn from 'element-plus/lib/locale/lang/zh-cn' // 中文语言
import localeEn from 'element-plus/lib/locale/lang/en'
const language = cache.local.get('language') || 0
const app = createApp(App)
// 全局方法挂载
......@@ -71,10 +70,17 @@ app.config.globalProperties.addDateRange = addDateRange
app.config.globalProperties.selectDictLabel = selectDictLabel
app.config.globalProperties.selectDictLabels = selectDictLabels
app.config.globalProperties.fillImgUrl = fillImgUrl
app.config.globalProperties.fillImgUrl_train = (url) => fillImgUrl(url, 'ztx-train')
app.config.globalProperties.fillImgUrl_match = (url) => fillImgUrl(url, 'ztx-match')
app.config.globalProperties.fillImgUrl_webSite = (url) => fillImgUrl(url, 'ztx-webSite')
app.config.globalProperties.downloadFile = downloadFile
app.config.globalProperties.downloadFile_match = (filePath) => downloadFile(filePath, 'ztx-webSite')
app.config.globalProperties.downloadFile_webSite = (filePath) => downloadFile(filePath, 'ztx-webSite')
app.config.globalProperties.$socket = socket
// 全局组件挂载
app.component('DictTag', DictTag)
app.component('Pagination', Pagination)
app.component('PaginationPc', PaginationPc)
app.component('TreeSelect', TreeSelect)
app.component('FileUpload', FileUpload)
app.component('ImageUpload', ImageUpload)
......@@ -82,25 +88,33 @@ app.component('ImageUpload2', ImageUpload2)
app.component('ImagePreview', ImagePreview)
app.component('RightToolbar', RightToolbar)
app.component('Editor', Editor)
app.component('UEditor', UEditor)
app.component('Draggable', draggable)
app.component('WePay', wePay)
if (language == 0) {
app.use(routerCn)
app.use(ElementPlus, {
locale: localeCn,
size: Cookies.get('size') || 'default'
})
} else {
app.use(routerEn)
app.use(ElementPlus, {
locale: localeEn,
size: Cookies.get('size') || 'default'
})
}
app.use(router)
app.use(store)
app.use(VueUeditorWrap)
app.use(plugins)
app.use(elementIcons)
app.use(CountDown)
app.component('SvgIcon', SvgIcon)
app.use(VueVideoPlayer)
directive(app)
// 使用element-plus 并且设置全局的大小
app.use(ElementPlus, {
locale: locale,
// 支持 large、default、small
size: Cookies.get('size') || 'default'
})
// 修改 el-dialog 默认点击遮照为不关闭
app._context.components.ElDialog.props.closeOnClickModal.default = false
......
......@@ -3,9 +3,12 @@ import { createApp } from 'vue'
import Cookies from 'js-cookie'
import ElementPlus from 'element-plus'
import locale from 'element-plus/lib/locale/lang/zh-cn' // 中文语言
import '@/assets/styles/index.scss' // global css
import App from './AppPc'
import App from './App'
import store from './store'
import router from './router'
import directive from './directive' // directive
// 注册指令
......@@ -17,20 +20,29 @@ import 'virtual:svg-icons-register'
import SvgIcon from '@/components/SvgIcon'
import elementIcons from '@/components/SvgIcon/svgicon'
import './permissionPc' // permission control
import * as socket from './utils/sockets'
import './permission' // permission control
import { useDict } from '@/utils/dict'
import { getConfigKey, updateConfigByKey } from '@/api/system/config'
import { parseTime, resetForm, addDateRange, handleTree, selectDictLabel, selectDictLabels, fillImgUrl, downloadFile } from '@/utils/ruoyi'
import { CountDown } from 'vant'
import 'vant/lib/index.css'
import {
parseTime,
resetForm,
addDateRange,
handleTree,
selectDictLabel,
selectDictLabels,
fillImgUrl
} from '@/utils/ruoyi'
import VueUeditorWrap from 'vue-ueditor-wrap'
// 分页组件
import PaginationPc from '@/components/PaginationPc'
import Pagination from '@/components/Pagination'
// 自定义表格工具组件
import RightToolbar from '@/components/RightToolbar'
// 富文本组件
import Editor from '@/components/Editor'
import UEditor from '@/components/UEditor'
// 文件上传组件
import FileUpload from '@/components/FileUpload'
// 图片上传组件
......@@ -44,18 +56,7 @@ import TreeSelect from '@/components/TreeSelect'
import DictTag from '@/components/DictTag'
import draggable from 'vuedraggable'
import wePay from '@/components/hy/wePay'
import VueVideoPlayer from '@videojs-player/vue'
import 'video.js/dist/video-js.min.css'
import cache from '@/plugins/cache'
import routerCn from './routerPc/cn'
import routerEn from './routerPc/en'
import localeCn from 'element-plus/lib/locale/lang/zh-cn' // 中文语言
import localeEn from 'element-plus/lib/locale/lang/en'
const language = cache.local.get('language') || 0
const app = createApp(App)
// 全局方法挂载
......@@ -70,17 +71,10 @@ app.config.globalProperties.addDateRange = addDateRange
app.config.globalProperties.selectDictLabel = selectDictLabel
app.config.globalProperties.selectDictLabels = selectDictLabels
app.config.globalProperties.fillImgUrl = fillImgUrl
app.config.globalProperties.fillImgUrl_train = (url) => fillImgUrl(url, 'ztx-train')
app.config.globalProperties.fillImgUrl_match = (url) => fillImgUrl(url, 'ztx-match')
app.config.globalProperties.fillImgUrl_webSite = (url) => fillImgUrl(url, 'ztx-webSite')
app.config.globalProperties.downloadFile = downloadFile
app.config.globalProperties.downloadFile_match = (filePath) => downloadFile(filePath, 'ztx-webSite')
app.config.globalProperties.downloadFile_webSite = (filePath) => downloadFile(filePath, 'ztx-webSite')
app.config.globalProperties.$socket = socket
// 全局组件挂载
app.component('DictTag', DictTag)
app.component('PaginationPc', PaginationPc)
app.component('Pagination', Pagination)
app.component('TreeSelect', TreeSelect)
app.component('FileUpload', FileUpload)
app.component('ImageUpload', ImageUpload)
......@@ -88,33 +82,25 @@ app.component('ImageUpload2', ImageUpload2)
app.component('ImagePreview', ImagePreview)
app.component('RightToolbar', RightToolbar)
app.component('Editor', Editor)
app.component('UEditor', UEditor)
app.component('Draggable', draggable)
app.component('WePay', wePay)
if (language == 0) {
app.use(routerCn)
app.use(ElementPlus, {
locale: localeCn,
size: Cookies.get('size') || 'default'
})
} else {
app.use(routerEn)
app.use(ElementPlus, {
locale: localeEn,
size: Cookies.get('size') || 'default'
})
}
app.use(router)
app.use(store)
app.use(VueUeditorWrap)
app.use(plugins)
app.use(elementIcons)
app.use(CountDown)
app.component('SvgIcon', SvgIcon)
app.use(VueVideoPlayer)
directive(app)
// 使用element-plus 并且设置全局的大小
app.use(ElementPlus, {
locale: locale,
// 支持 large、default、small
size: Cookies.get('size') || 'default'
})
// 修改 el-dialog 默认点击遮照为不关闭
app._context.components.ElDialog.props.closeOnClickModal.default = false
......
......@@ -84,15 +84,21 @@ export const constantRoutes = [
children: [
{
path: 'wudao',
component: () => import('@/viewsPc/about/wudao'),
component: () => import('@/viewsPc/about/wudao_en'),
name: 'dangNews',
meta: { title: '舞蹈节' }
meta: { title: 'about us' }
},
{
path: 'culture',
component: () => import('@/viewsPc/about/culture'),
component: () => import('@/viewsPc/about/culture_en'),
name: 'culture',
meta: { title: '地方文化' }
meta: { title: 'culture' }
},
{
path: 'regulations',
component: () => import('@/viewsPc/about/fileList'),
name: 'regulations',
meta: { title: 'rules and regulations' }
}
]
},
......@@ -103,7 +109,7 @@ export const constantRoutes = [
children: [
{
path: 'index',
component: () => import('@/viewsPc/notice/index'),
component: () => import('@/viewsPc/notice/index_en'),
name: 'notice',
meta: { title: 'NOTICEBOARD' }
},
......@@ -140,13 +146,13 @@ export const constantRoutes = [
children: [
{
path: 'index',
component: () => import('@/viewsPc/news/index'),
component: () => import('@/viewsPc/news/index_en'),
name: 'news',
meta: { title: 'NEWS' }
},
{
path: 'list/:id',
component: () => import('@/viewsPc/news/list'),
component: () => import('@/viewsPc/news/list_en'),
name: 'newsList',
meta: { title: '新闻列表' }
},
......@@ -185,9 +191,9 @@ export const constantRoutes = [
children: [
{
path: 'index',
component: () => import('@/viewsPc/meta/index'),
component: () => import('@/viewsPc/meta/index_en'),
name: 'meta',
meta: { title: '媒体中心' }
meta: { title: 'MEDIA' }
}
]
},
......@@ -198,9 +204,9 @@ export const constantRoutes = [
children: [
{
path: 'index',
component: () => import('@/viewsPc/saiC/index'),
component: () => import('@/viewsPc/saiC/index_en'),
name: 'saiC',
meta: { title: '赛程安排' }
meta: { title: 'COMPETITIONS' }
}
]
},
......@@ -213,108 +219,7 @@ export const constantRoutes = [
path: 'index',
component: () => import('@/viewsPc/guide/index_en'),
name: 'guide',
meta: { title: '参赛指南' }
}
]
},
{
path: 'fitness',
component: Empty,
redirect: '/fitness/index',
children: [
{
path: 'index',
component: () => import('@/viewsPc/fitness/index'),
name: 'fitness',
meta: { title: '全民健身' }
}
]
},
{
path: 'dope',
component: Empty,
redirect: '/dope/index',
children: [
{
path: 'index',
component: () => import('@/viewsPc/dope/index'),
name: 'dope',
meta: { title: '反兴奋剂' }
}
]
},
{
path: 'vip',
component: Empty,
redirect: '/vip/index',
children: [
{
path: 'index',
component: () => import('@/viewsPc/vip/index'),
name: 'vip',
meta: { title: '会员服务' }
},
{
path: 'index/teamVip',
component: () => import('@/viewsPc/vip/teamVip'),
name: 'teamVip',
meta: { title: '会员服务' }
},
{
path: 'index/examPoints',
component: () => import('@/viewsPc/vip/examPoints'),
name: 'examPoints',
meta: { title: '考点展示' }
},
{
path: 'index/plan',
component: () => import('@/viewsPc/vip/plan'),
name: 'plan',
meta: { title: '培训计划' }
},
{
path: 'pplist/:id',
component: () => import('@/viewsPc/vip/pplist'),
name: 'ppList',
meta: { title: '人员列表' }
}
]
},
{
path: 'business',
component: Empty,
redirect: '/business/index',
children: [
{
path: 'index',
component: () => import('@/viewsPc/business/index'),
name: 'business',
meta: { title: '商务专区' }
}
]
},
{
path: 'local',
component: Empty,
redirect: '/local/index',
children: [
{
path: 'index',
component: () => import('@/viewsPc/local/index'),
name: 'local',
meta: { title: '地方协会' }
},
{
path: 'index/list',
component: () => import('@/viewsPc/local/list'),
name: 'locallist',
meta: { title: '地方协会' }
},
{
path: 'index/:id',
component: () => import('@/viewsPc/local/detail'),
name: 'localDetail',
meta: { title: '地方协会' }
meta: { title: 'GUIDELINE' }
}
]
},
......@@ -375,7 +280,7 @@ export const constantRoutes = [
},
{
path: 'list/:id',
component: () => import('@/viewsPc/match/detail'),
component: () => import('@/viewsPc/match/detail_en'),
name: 'matchDetail',
meta: { title: '赛事详情' }
},
......
......@@ -2,7 +2,7 @@
<div class="login">
<el-row :inline="true" justify="space-between" class="title">
<div class="imgBox">
<img class="img" src="@/assets/images/logo@2x.png" alt="">
<!-- <img class="img" src="@/assets/images/logo@2x.png" alt="">-->
</div>
<div class="title-right">
<router-link to="login" class="tilt-btn">
......@@ -104,8 +104,6 @@ watch(() => route.name, (val) => {
.login {
height: 100%;
background-image: url("@/assets/images/bg@2x.png");
background-size: cover;
}
.login-center {
height: 80%;
......
......@@ -344,7 +344,7 @@ import { deptTreeSelect } from '@/api/system/user'
import { getCurrentInstance } from '@vue/runtime-core'
import { ref, reactive, toRefs } from 'vue'
import auditEdit from './auditEdit'
import image from '@/assets/images/certificate.png'
// import image from '@/assets/images/certificate.png'
import { certifiedDeptTree } from '@/api/system/userInfo.js'
import { ElMessageBox } from 'element-plus'
// import type { Action } from 'element-plus'
......
......@@ -33,7 +33,7 @@
</script>
<style scoped lang="scss">
.bban{width: 100%;}
.bban{width: 100%;min-height: 280px;object-fit: cover;object-position: center;}
.prbox{position: relative;padding: 0 0 20px;margin: 0 0 30px;
.bbg{max-width: 100%;margin: auto;}
.bbtn{position: absolute;right: 5px;bottom: 0px;
......
<template>
<div>
<div>
<img class="bban" src="@/assets/zhinan/banner_en.png"/>
</div>
<div class="box">
<el-row :gutter="20" class="mt30">
<el-col :lg="8">
<div class="prbox">
<img class="bbg" src="@/assets/zhinan/bg01.png"/>
<!-- <img class="bbtn" src="@/assets/zhinan/btn01.png"/>-->
<div class="bbtn">WuXi Culture</div>
</div>
</el-col>
<el-col :lg="8">
<div class="prbox">
<img class="bbg" src="@/assets/zhinan/bg02.png"/>
<div class="bbtn">Local Specialties</div>
<!-- <img class="bbtn" src="@/assets/zhinan/btn02.png"/>-->
</div>
</el-col>
<el-col :lg="8">
<div class="prbox">
<img class="bbg" src="@/assets/zhinan/bg03.png"/>
<div class="bbtn">Scenic Spots</div>
<!-- <img class="bbtn" src="@/assets/zhinan/btn03.png"/>-->
</div>
</el-col>
</el-row>
</div>
</div>
</template>
<script setup>
</script>
<style scoped lang="scss">
.bban{width: 100%;min-height: 280px;object-fit: cover;object-position: center;}
.prbox{position: relative;padding: 0 0 20px;margin: 0 0 30px;
.bbg{max-width: 100%;margin: auto;}
.bbtn{position: absolute;right: 5px;bottom: 0px;
color: #fff;border-radius: 50px;padding: 10px 20px;
font-size: 18px;cursor: pointer;
background: linear-gradient(-90deg, #8623FC, #453DEA); ;
&:hover{filter: brightness(1.6)}
}
}
</style>
<template>
<div>
<div class="box">
<!-- <el-breadcrumb class="mt20" :separator-icon="ArrowRight">-->
<!-- <el-breadcrumb-item :to="{ path: '/' }">-->
<!-- <el-icon>-->
<!-- <HomeFilled/>-->
<!-- </el-icon>-->
<!-- 首页-->
<!-- </el-breadcrumb-item>-->
<!-- <el-breadcrumb-item :to="{ path: '/business/index' }">商务专区</el-breadcrumb-item>-->
<!-- <el-breadcrumb-item>文件下载</el-breadcrumb-item>-->
<!-- </el-breadcrumb>-->
<el-card class=" mt20 mb20" style="min-height: 70vh;">
<div>
<div v-for="n in newsList" class="item" @click="goDetail(n)">
<a class="file-item" target="_blank" :href="fillImgUrl_webSite(n.attacthJsonObj[0]?.url)">
<h3 class="esp underline" style="color: var(--el-color-primary)">
<i class="icon pdf" v-if="n.attacthJsonObj[0]?.url.indexOf('pdf')>-1"></i>
<i class="icon doc" v-else-if="n.attacthJsonObj[0]?.url.indexOf('doc')>-1"></i>
<i class="icon xls" v-else-if="n.attacthJsonObj[0]?.url.indexOf('xls')>-1"></i>
<i class="icon txt" v-else-if="n.attacthJsonObj[0]?.url.indexOf('txt')>-1"></i>
<i class="icon ppt" v-else-if="n.attacthJsonObj[0]?.url.indexOf('ppt')>-1"></i>
<i class="icon zip" v-else-if="n.attacthJsonObj[0]?.url.indexOf('zip')>-1"></i>
<i class="icon zip" v-else-if="n.attacthJsonObj[0]?.url.indexOf('rar')>-1"></i>
<i class="icon othe" v-else></i>
<el-icon color="#453DEA" size="20" style="position: relative;top: 2px"><download/></el-icon>
{{ n.name }}
</h3>
</a>
</div>
</div>
<div class="pc-page-box" v-if="total>8">
<PaginationPc v-model:page="query.pageNum" v-model:limit="query.pageSize" :total="total" @pagination="getList"/>
</div>
<el-empty v-if="newsList.length == 0" description="暂无数据"/>
</el-card>
</div>
</div>
</template>
<script setup>
import { ArrowRight } from '@element-plus/icons-vue'
const route = useRoute()
const router = useRouter()
import { onMounted, ref } from 'vue'
import { getNewsListById } from '@/apiPc/webSite'
import { useRoute, useRouter } from 'vue-router'
const query = ref({
pageSize: 10,
pageNum: 1
})
const total = ref(0)
const newsList = ref([
{name:'Invitation to WDSF Asian DanceSport Festival 2023(230502).pdf',attacthJsonObj:{}},
{name:'Invitation WDSF World Championship Junior 2 Standard and Adult Latin 2023.pdf',attacthJsonObj:{}},
{name:'WDSF DanceSport Championship Protocol .pdf',attacthJsonObj:{}},
])
onMounted(() => {
query.value.sortId = route.query.sortId
query.value.code = route.query.code
// getList()
})
const getList = () => {
getNewsListById(query.value).then(res => {
newsList.value = res.rows
for(var f of newsList.value){
f.attacthJsonObj = JSON.parse(f.attacthJson)
}
total.value = res.total
})
}
const goDetail = (n) => {
// if (n.isOut == '1') {
// window.open(n.jumpUrl)
// } else {
// router.push({
// path: `/news/detail/${n.noteId}`
// })
// }
}
</script>
<style scoped lang="scss">
.file-item{
&:hover{background: #BE8EFB;}
}
</style>
......@@ -45,11 +45,11 @@
<div class="content">
<div class="phone">
<h4>电话</h4>
<p>张小姐:13921876678</p>
<p>张小姐:18888888888</p>
</div>
<div class="address">
<h4>地址</h4>
<p>江苏省无锡市滨湖区体育中心A区201</p>
<p>无锡市经开区清舒道88号</p>
</div>
<div class="email">
<h4>邮箱</h4>
......
<template>
<div>
<div class="mt20" />
<div class="box">
<el-card>
<el-row :gutter="20">
<el-col :lg="5">
<div class="leftNav">
<ul>
<li class="active">About the Organizer</li>
<li>WDSF Asian Dancesport Festival</li>
<li>About Sports Dance</li>
</ul>
</div>
</el-col>
<el-col :lg="19">
<div class="infoPart pd20">
<h3 class="leftboderTT">About the organizer</h3>
<div class="content">
<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>
<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>
<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>
<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>
<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.
</p>
<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>
<img src="@/assets/zhinan/photo.png"/>
</div>
</div>
</el-col>
</el-row>
</el-card>
<div class="indexTitle">
<h3 class="leftboderTT">CONTACT</h3>
</div>
<div class="mapBox mb20">
<div class="content">
<div class="phone">
<h4>Phone</h4>
<p>Miss Chang:+86 18888888888</p>
</div>
<div class="address">
<h4>Address</h4>
<p>No.88 Qingshu Road,Economic and Development District, Wuxi City,Jiangsu Province,China</p>
</div>
<div class="email">
<h4>Email</h4>
<p>8888989@163.com</p>
</div>
</div>
</div>
</div>
</div>
</template>
<script setup>
</script>
<style scoped lang="scss">
.leftNav{
ul{border-right: 2px solid #E5E5E5;padding:0 20px 0 0;}
li{margin: 30px 0;padding: 10px;text-align: right;
border-radius: 2px;position: relative;
font-weight: 600;
font-size: 18px;
background: linear-gradient(90deg, rgba(134, 35, 252, 0.1), rgba(69, 61, 234, 0.1));}
li::after{content: '';position: absolute;background: #898989;width: 8px;height: 8px;
border-radius: 50%;right: -29px;border: 4px solid #fff;outline: 2px solid #898989;
box-sizing: content-box;top: 0;bottom: 0;margin: auto;}
li.active{color: #fff;
background: linear-gradient(90deg, #8623FC, #453DEA);
&::after{outline: 2px solid #453DEA;background: #453DEA;}
}
}
.infoPart{
.leftboderTT{font-size:20px;color: var(--el-color-primary); }
}
.content{margin: 20px 0 0;text-indent: 2em;
line-height: 1.8;
font-weight: 400;
font-size: 16px;
color: #29343C;
img{max-width: 100%;margin: 20px auto;display: block;}
h4{text-indent: 0}
}
.mapBox{background: url("@/assets/zhinan/map.png") no-repeat right;height: 375px;
background-size: cover;padding: 1px;position: relative;display: flex;
.content{background: #fff;width: 60%;left: 40px;padding: 30px;text-indent: 0;
line-height: 1;
position: absolute;height: 90%;top: 0;bottom: 0;margin: auto;
}
div{padding-left: 60px;}
.phone{background: url("@/assets/dance/map01.png") no-repeat left;background-size: 30px;}
.address{background: url("@/assets/dance/map02.png") no-repeat left;background-size: 30px;
margin:50px 0;
}
.email{background: url("@/assets/dance/map03.png") no-repeat left;background-size: 30px;}
h4{margin: 0;
font-size: 16px;
color: #AAAAAA;}
p{margin: 13px 0 0;}
}
@media (max-width: 800px) {
.mapBox {
div {
padding-left: 40px;
}
.content {
width: 80%;
left: 10%;
padding: 10px 20px 0 20px;
}
.address {
margin: 30px 0;
}
p {
text-align: left;
word-break: break-all;
}
}
}
</style>
......@@ -93,7 +93,7 @@
<div class="content" v-if="activeName==7"><el-empty description="暂未上线"></el-empty></div>
<div class="content" v-if="activeName==8">
<label>点击下载:</label>
<a target="_blank" class="text-primary" href="@/assets/zhinan/参赛指南.pdf">
<a target="_blank" class="text-primary">
<el-icon style="position: relative;top: 2px"><download/></el-icon>
WDSF亚洲体育舞蹈节参赛指南0714
</a>
......@@ -181,7 +181,7 @@ h4.leftboderTT{text-indent: 0;
span{color: #929AA0;font-size: 16px;margin-left: 5px;}
}
.custom-tabs-label {
display: flex;
display: flex;font-size: 16px;
align-items: center;
}
......
......@@ -23,79 +23,84 @@
<img src="@/assets/zhinan/1.png"/>
<img src="@/assets/zhinan/2.png"/>
</div>
<h4 class="leftboderTT">Flow Chart In The Venue<span>(Funtional Area and Flow Chart)</span></h4>
<h4 class="leftboderTT">Flow Chart In The Venue<span>(Functional Area and Flow Chart)</span></h4>
<img src="@/assets/zhinan/3.png"/>
<div>Sports teams enter the venue through security check at the main gate on the first floor, take escalators to the second floor, and arrive the competition area. Technical officers take vehicles arranged by the organizing committee directly from the northern ramp of the venue to the entrance of Venue B5 on the second floor platform and enter the venue.</div>
<div>The second floor is divided into five areas according to different functions. All personnel may arrive at different areas according to their access permissions. Red is the VIP area, blue is the office area, yellow is the spectator area, purple is the competition area and pink is the public area.</div>
</div>
<div class="content" v-if="activeName==1">
<div>注册报到中心位于酒店大堂,服务时间为7月19-22日10:00-22:00, 同时也作为咨询台。</div>
<div>相关紧急通知、餐食安排和交通服务等信息将公布在公告栏,如有疑 问或需服务,可前往注册报到中心进行咨询。</div>
<div>The Registration Center is located in the hotel lobby from 10:00-22:00 on July 19-22, also serves as the info desk.</div>
<div>For information about emergency notices, catering services, and transportation services will be announced on the notice board. If you have any questions or need services, please contact the Registration Center.</div>
</div>
<div class="content" v-if="activeName==2">
<h4>一、证件使用与保管</h4>
<p>证件要妥善保管,不得故意损毁,证件仅限本人使用,严禁转让, 严禁超范围使用,严禁私自增减,涂改证件内容。
<h4>1 Use and Storage of Licenses</h4>
<p>Licenses shall be properly kept and shall not be intentionally damaged. Licenses shall be used only by the holders, which shall not be transferred to others, used for unauthorized purposes, or altered.</p>
<p>For access to relevant activity and competition venue, license holders shall wear licenses in a conspicuous position against the chest.</p>
<p>License holders shall be subject to the inspection and management of on-site security personnel.</p>
<h4>2 Temporary Access Pass Application</h4>
<p>
If you lose your license and urgently need to enter the venue, you can apply to the competition department and go to the venue operation center to get a temporary access pass.
</p>
<p>出入有关活动和比赛场馆时,应将证件佩戴于胸前明显位置。</p>
<p>持证人员应自觉接受现场安保人员的检查和管理。</p>
<h4>二、证件丢失申领临时证件</h4>
<p>遗落、丢失证件的人员急需进入场馆的,可以向竞赛部申请,前 往场馆运营中心领取临时证件。</p>
<h4>三、代表队人员证件类别及通行权限</h4>
<p>本次赛事将使用以下颜色和数字表示相关注册分区:</p>
<img src="@/assets/zhinan/6.jpg"/>
<h4>3 Type of License and Access Permissions</h4>
<p>The following colors and numbers will be used to indicate the different areas:</p>
<img src="@/assets/zhinan/5.jpg"/>
</div>
<div class="content" v-if="activeName==3">
<el-empty description="暂未上线"></el-empty>
<el-empty description="no data"></el-empty>
</div>
<div class="content" v-if="activeName==4">
<h4>一、抵离安排</h4>
<p>所有技术官员、运动队接送站由组委会统一安排车辆接送,抵达站 应选择无锡苏南硕放机场、上海浦东国际机场和上海虹桥国际机场。
</p>
<p>(1)技术官员和运动队报到</p>
<p>报到时间:7月19-22日,10:00-22:00</p>
<p>报到(酒店)地点:无锡太湖华邑酒店</p>
<p>(2)报到材料</p>
<p>技术代表、技术官员及相关人员等报到时提交往返差旅交通票据,
以便于相关费用报销。所有技术官员报到时,须向组委会提供:</p>
<p>1. 纸质版登机牌(往返机票)</p>
<p>2. 往返机票的行程单(有金额)或付款凭证(有金额)</p>
<p>3. 办理签证的票据(有金额)</p>
<h4>二、 餐食服务</h4>
<p>用餐时间与形式:</p>
<img src="@/assets/zhinan/14.png"/>
<h5>提示:具体时间可能有所调整,调整过的时间表将于注册报到中心公告栏另行通知。</h5>
<h4>1.Arrivals and Departures</h4>
<p>All technical officials and sports teams will be picked up by the organizing committee,
and the arrival stations should be Wuxi Sunan Shuofang International Airport, Shanghai Pudong International Airport, and Shanghai Hongqiao International Airport.</p>
<p>(1) Registration of Technical Officials and Sports Teams</p>
<p>Registration Time: July 19-22, 10: 00-22: 00</p>
<p>Registration (hotel) Location: HUALUXE Wuxi Taihu Hotel</p>
<p>(2) Registration Materials</p>
<p>Technical delegates, technical officials and relevant personnel shall provide round-trip traffic invoices for reimbursement.
All technical officials are required to provide the Organizing Committee with the following materials:</p>
<p>1. Paper boarding card (round-trip ticket)</p>
<p>2. Itinerary of the round-trip ticket (with the amount) or receipt of payment (with the amount)</p>
<p>3. Receipt for visa application (with amount)</p>
<h4>2.Catering Service</h4>
<img src="@/assets/zhinan/12.png"/>
<h5>Notes: Time subject to changes, once adjusted, it will be announced on the notice board of the Registration Center.</h5>
<img src="@/assets/zhinan/13.png"/>
<h4>三、通行车辆安排</h4>
<p>酒店、赛场间通行车辆按《发车时刻表》发车,用于酒店、赛场 之间往返,接送技术官员和运动队参赛及训练,《发车时刻表》详见 注册报到中心公告栏。</p>
<p>接送站用车:主要用于参赛人员报到及离会。</p>
<h4 style="text-indent: 2em">友情提示:</h4>
<p>1. 认真阅读《发车时刻表》,提前规划出行时间。</p>
<p>2. 时刻关注车辆行驶途中自身安全,坐好抓稳。</p>
<p>3. 各领队、教练有义务在每次乘车时清点人数,确保同进同出。</p>
<p>4. 下车时务必带齐自身携带物品,谨防遗失。</p>
<p>5. 如错失赛会车辆或中途临时需要出行,请及时与咨询台联系。</p>
<h4>3.Transportation Service</h4>
<p>
Vehicles shuttle the technical officers and sports teams between the hotel and the competition venue as per the Departure Timetable. For details of the Departure Timetable,
please refer to the notice board of the Registration Center.
</p>
<p>Pick-up and drop-off vehicles: mainly used for participants to make registration and departure.
</p>
<h4 style="text-indent: 2em">Tips:</h4>
<p>1. Read the Departure Timetable carefully and schedule your travel in advance.</p>
<p>2. Always sit securely to ensure your safety during the travel.</p>
<p>3. Each head of team and coach shall count the number of people at each travel to ensure nobody is left.</p>
<p>4. When getting off the vehicles, make sure to bring all belongings with you.</p>
<p>5. If you miss the vehicle or need to make an unplanned travel, please contact the info desk in time.</p>
</div>
<div class="content" v-if="activeName==5">
<h4>一、服务时间安排</h4>
<p>2023年7月20日-2023年7月23日</p>
<h4>二、医疗点位设置</h4>
<p>馆内设置医疗室一个,竞赛区医疗点一个,救护车两辆。</p>
<h4>三、现场医疗力量安排</h4>
<p>4馆设立医务室一间,配备一名外科医生,一名护士,一名英语 志愿者。</p>
<h4>1. Service Time</h4>
<p>July 20-23, 2023</p>
<h4>2. Medical Stations</h4>
<p>The venue has one medical room, one medical station in the competition area, and two ambulances.</p>
<h4>3. On-site Medical Service</h4>
<p>Venue B4 has one medical room and equipped with one surgeon, one nurse, and one English-speaking volunteer.</p>
<p>
B6馆竞赛区设立医疗点一个,配备一名骨科医生,一名急救医生, 一名护士,两名急救人员,一名英语志愿者,一名工作人员。两个医疗 点均配备齐全的现场医疗急救所需药品。
</p>
<p>120急救车一辆及急救转运车一辆停在G14通道口等候,车上均配 备除颤仪、氧气钢瓶等急救器材。</p>
Venue B6 has one medical station in the competition area, equipped with one orthopedic surgeon, one emergency doctor,
one nurse, two first aiders, one English-speaking volunteer, and one staff. Both medical stations are fully equipped with medicines needed for on-site medical emergencies.</p>
<p>One ambulance and one emergency transfer vehicle are waiting at the entrance of G14, and all of them are equipped with first aid equipment such as defibrilla- tors and oxygen cylinders.</p>
</div>
<div class="content" v-if="activeName==6"><el-empty description="暂未上线"></el-empty></div>
<div class="content" v-if="activeName==7"><el-empty description="暂未上线"></el-empty></div>
<div class="content" v-if="activeName==6"><el-empty description="no data"></el-empty></div>
<div class="content" v-if="activeName==7"><el-empty description="no data"></el-empty></div>
<div class="content" v-if="activeName==8">
<label>点击下载</label>
<a target="_blank" class="text-primary" href="@/assets/zhinan/参赛指南.pdf">
<label>Download</label>
<a target="_blank" class="text-primary" >
<el-icon style="position: relative;top: 2px"><download/></el-icon>
WDSF亚洲体育舞蹈节参赛指南0714
WDSF ASIAN DANCESPORT FESTIVAL ENTRY GUIDE 0714
</a>
</div>
</div>
......@@ -115,12 +120,12 @@ const list = ref([
{name:'Introduction of the Competition Venue'},
{name:' Registration Center '},
{name:'License Management '},
{name:'地图指引 '},
{name:'Map Guidance '},
{name:'Service for Technical Officers and Sports Teams '},
{name:'Medical Services '},
{name:'周边交通图 '},
{name:'VISA 签证 '},
{name:'指南手册下载'}
{name:'Surrounding Traffic Map '},
{name:'VISA '},
{name:'The Manual'}
])
const newsList = ref([])
const nowTab = ref({
......@@ -181,7 +186,7 @@ h4.leftboderTT{text-indent: 0;
span{color: #929AA0;font-size: 16px;margin-left: 5px;}
}
.custom-tabs-label {
display: flex;
display: flex;font-size: 16px;
align-items: center;
}
......
......@@ -35,7 +35,7 @@
<div class="box zn-bg">
<div class="zn-Box">
<el-row>
<el-row style="align-items: center">
<el-col :sm="24" :lg="10">
<div class="bgbg">
<img src="@/assets/dance/text.png">
......@@ -75,7 +75,7 @@
<el-col :sm="24" :lg="12">
<div class="indexTitle">
<h3 class="leftboderTT">赛事日程</h3>
<a class="more" @click="goMatch">MORE</a>
<a class="more" href="#/saiC">MORE</a>
</div>
<!--赛事日历-->
<el-card :body-style="{'padding':'20px 20px'}">
......@@ -113,7 +113,7 @@
<el-col :sm="24" :lg="12">
<div class="indexTitle">
<h3 class="leftboderTT">历史排名</h3>
<a class="more" @click="goMatch">MORE</a>
<a class="more" href="#/saiC">MORE</a>
</div>
<!--历史排名-->
<el-card :body-style="{'padding':'10px 20px 18px'}">
......@@ -129,7 +129,7 @@
</template>
</el-table-column>
<el-table-column label="姓名" prop="name" />
<el-table-column label="国家" />
<el-table-column label="国家" prop="gj" />
<el-table-column label="分值" align="center">
<template #default="scope">
<div class="text-primary">{{ scope.row.score }}</div>
......@@ -148,15 +148,15 @@
<div class="box">
<div class="indexTitle">
<h3 class="leftboderTT">新闻资讯</h3>
<a class="more" @click="goMatch">MORE</a>
<a class="more" @click="goNews">MORE</a>
</div>
<el-row :gutter="20">
<el-col
v-for="(n,index) in newest2"
:key="n.id" :xs="12" :sm="8"
:key="n.id" :xs="24" :sm="8"
:lg="8"
>
<div class="activeItem">
<div class="activeItem" @click="goDetail(n)">
<div class="imgbox">
<img :src="fillImgUrl_webSite(n.picUrl)">
</div>
......@@ -183,7 +183,7 @@
<el-card>
<el-row :gutter="20">
<el-col :lg="8">
<div class="liveImgbox">
<div class="liveImgbox" @click="goDetail(livelist[0])">
<i class="ii">直播中</i>
<img :src="fillImgUrl_webSite(livelist[0]?.picUrl)">
<h3 class="esp">{{ livelist[0]?.name }}
......@@ -212,7 +212,7 @@
</el-row>
<el-row class="news-l-r">
<el-col v-for="(n,index) in livelist" v-show="index>0" :lg="8">
<div class="item" style="padding: 0;margin: 20px 0 0">
<div class="item" style="padding: 0;margin: 20px 0 0" @click="goDetail(n)">
<div class="imgbox">
<i class="playIcon"></i>
<img :src="fillImgUrl_webSite(n.picUrl)"></div>
......@@ -234,7 +234,7 @@
<h3 class="leftboderTT">评委介绍</h3>
</div>
<el-row :gutter="20">
<el-col :sm="12" :xl="12" :xs="12" :lg="4" v-for="n in personList" :key="n.name">
<el-col :sm="12" :xl="4" :xs="12" :lg="4" :md="8" v-for="n in personList" :key="n.name">
<div class="teacher">
<div class="imgbox"><img :src="n.src"></div>
<h3 class="esp">{{ n.name }}</h3>
......@@ -250,7 +250,7 @@
<el-col :lg="12">
<div class="indexTitle">
<h3 class="leftboderTT">关于我们</h3>
<a class="more" style="filter: brightness(10)" @click="goMatch">MORE</a>
<a class="more" style="filter: brightness(10)">MORE</a>
</div>
<div class="aboutBox">
<div class="content">中国体育舞蹈联合会成立于1991年,其前身为“中国体育舞蹈运动协会”。2002年与文化部所属“中国业余舞蹈竞技协会”实现联合,形成“中国体育舞蹈联合会”,并成为世界体育舞蹈联合会正式会员(该组织于1997年获得国际奥委会正式承认)。2018年从国家体育总局社体中心“五分离”脱钩,目前霹雳舞项目与总局社体中心联合进行奥运备战。
......@@ -259,7 +259,7 @@
<div class="shadowbox" />
</div>
<div class="mt30 text-center">
<a class="btn-lineG" style="display: inline-flex;align-items: center;">了解更多<img style="filter: brightness(2);height: 8px" src="@/assets/v1/more.png"/></a>
<a class="btn-lineG" href="#/about/wuDao" style="display: inline-flex;align-items: center;">了解更多<img style="filter: brightness(2);height: 8px" src="@/assets/v1/more.png"/></a>
</div>
</div>
......@@ -267,17 +267,17 @@
<el-col :lg="12">
<div class="indexTitle">
<h3 class="leftboderTT">联系我们</h3>
<a class="more" style="filter: brightness(10)" @click="goMatch">MORE</a>
<a class="more" style="filter: brightness(10)">MORE</a>
</div>
<div class="mapBox">
<div class="content">
<div class="phone">
<h4>电话</h4>
<p>张小姐:13921876678</p>
<p>张小姐:18888888888</p>
</div>
<div class="address">
<h4>地址</h4>
<p>江苏省无锡市滨湖区体育中心A区201</p>
<p>无锡市经开区清舒道88号</p>
</div>
<div class="email">
<h4>邮箱</h4>
......@@ -335,6 +335,13 @@ import { Swiper, SwiperSlide } from 'swiper/vue'
import { Autoplay, Navigation } from 'swiper'
import 'swiper/css'
import { dayjs } from 'element-plus'
import r01 from '@/assets/dance/r01.png'
import r02 from '@/assets/dance/r02.png'
import r03 from '@/assets/dance/r03.png'
import r04 from '@/assets/dance/r04.png'
import r05 from '@/assets/dance/r05.png'
import r06 from '@/assets/dance/r06.png'
const modules = [Autoplay, Navigation]
const navigationPic = ref({
nextEl: '.picnext',
......@@ -349,12 +356,12 @@ const canNext = ref(false)
const activeRankName = ref(0)
const time = ref(0)
const rankList = ref([
{ index: '1', name: 'wawa', score: '170' },
{ index: '2', name: 'wawa', score: '170' },
{ index: '3', name: 'wawa', score: '170' },
{ index: '4', name: 'wawa', score: '170' },
{ index: '5', name: 'wawa', score: '170' },
{ index: '6', name: 'wawa', score: '170' }
{ index: '1', name: '陈莎莎', score: '170',gj:'中国' },
{ index: '2', name: '陈莎莎', score: '170' ,gj:'中国'},
{ index: '3', name: '陈莎莎', score: '170',gj:'中国' },
{ index: '4', name: '陈莎莎', score: '170',gj:'中国' },
{ index: '5', name: '陈莎莎', score: '170' ,gj:'中国'},
{ index: '6', name: '陈莎莎', score: '170' ,gj:'中国'}
])
const rankTabs = ref([
{ name: '拉丁舞' },
......@@ -364,12 +371,12 @@ const rankTabs = ref([
{ name: '街舞' }
])
const personList = ref([
{ name: '张晋', pp:'欧洲舞团团长、艺术总监',src:'@/assets/dance/r01.png' },
{ name: '王晓敏', pp:'欧洲舞团团长、艺术总监',src:'@/assets/dance/r02.png' },
{ name: '徐徐', pp:'欧洲舞团团长、艺术总监',src:'@/assets/dance/r03.png' },
{ name: '汪莉莉', pp:'欧洲舞团团长、艺术总监',src:'@/assets/dance/r04.png' },
{ name: '蒋云澜', pp:'欧洲舞团团长、艺术总监',src:'@/assets/dance/r05.png' },
{ name: '钱一帆', pp:'欧洲舞团团长、艺术总监',src:'@/assets/dance/r06.png' }
{ name: '张晋', pp:'欧洲舞团团长、艺术总监',src:r01 },
{ name: '王晓敏', pp:'欧洲舞团团长、艺术总监',src:r02 },
{ name: '徐徐', pp:'欧洲舞团团长、艺术总监',src:r03 },
{ name: '汪莉莉', pp:'欧洲舞团团长、艺术总监',src:r04},
{ name: '蒋云澜', pp:'欧洲舞团团长、艺术总监',src:r05 },
{ name: '钱一帆', pp:'欧洲舞团团长、艺术总监',src:r06 }
])
const activeNews = ref(0)
const banners = ref([])
......@@ -394,14 +401,14 @@ const init = () => {
getNewsListById(
{ pageSize: 4,
pageNum: 1,
sortId: '30000000' }
sortId: '10000006' }
).then(res => {
livelist.value = res.rows
})
getNewsListById(
{ pageSize: 5,
pageNum: 1,
sortId: '30000001' }
sortId: '10000007' }
).then(res => {
picList.value = res.rows
})
......@@ -413,44 +420,8 @@ const init = () => {
).then(res => {
newest2.value = res.rows
})
// getHomePage().then(res => {
// banners.value = res.data.banners
// for (var b of banners.value) {
// if (b.attacthJson) {
// b.attacthJsonObj = JSON.parse(b.attacthJson)
// }
// }
// newest.value = res.data.newest
// news.value = res.data.news
// notice.value = res.data.notice
//
// display.value = res.data.display
// activity.value = res.data.activity
// scores.value = _.chunk(res.data.scores, 6)
// nowscores.value = scores.value[0]
// if (scores.value.length > 1) {
// canNext.value = true
// }
// })
}
const nextScores = () => {
nowscores.value = scores.value[1]
canPrev.value = true
canNext.value = false
}
const prevScores = () => {
nowscores.value = scores.value[0]
canPrev.value = false
canNext.value = true
}
const goMatch = () => {
router.push({
path: `/match/list`
})
}
const goDetail = (n) => {
if (n.isOut == '1') {
window.open(n.jumpUrl)
......@@ -467,10 +438,15 @@ const goList = (query, name) => {
query: query
})
}
const goNews = () => {
router.push({
path: `/news/index`
})
}
</script>
<style scoped lang="scss">
//参赛指南
.zn-bg{background: linear-gradient(90deg, #8623FC, #8623FC, #8623FC, #8623FC, #8623FC, #8623FC, #453DEA, #8623FC);
border-radius: 15px;}
.zn-Box{background: url("@/assets/dance/cszn_bg.png") no-repeat top left;background-size: contain;
......@@ -714,4 +690,42 @@ const goList = (query, name) => {
cursor: pointer;
&:hover{filter:brightness(2)}}
}
@media (max-width: 1200px) {
.teacher{height: 460px;margin: 0 0 20px;
img{height: 400px}
}
}
@media (max-width: 800px) {
.box{width: 94%}
.calendarList{padding: 0;
ul{
li{margin: 10px}
}
}
.aboutBox{padding: 20px 30px;}
.indexTitle{margin: 30px 0 20px}
.teacher{height: 320px;margin: 0 0 20px;
img{height: 260px}
}
.activeItem{margin: 0 0 20px;}
.mapBox{
div{padding-left: 40px;}
.content{ width: 80%;left: 10%;padding:10px 20px 0 20px;}
.address{margin: 30px 0;}
p{text-align: left;word-break: break-all;}
}
.fixed_gg {
display: none;
}
.bannerItem .banner-count{flex-direction: column;
transform: scale(0.8); left: 0;
right: 0;
.van-count-down{margin: 30px 0 0;}
}
.bgbg{ text-align: center;
img{max-width:100%; }
h1{text-align: center}
}
}
</style>
......
......@@ -5,23 +5,23 @@
<el-carousel-item style="height: 450px;">
<div class="bannerItem">
<div class="h100">
<img class="bannerImg" src="@/assets/dance/banner_en.jpg">
<img class="bannerImg" src="@/assets/dance/banner.png">
<div class="box" style="position: absolute;top: 0;left: 0;right: 0;margin: auto;">
<div class="banner-count">
Countdown
<van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒">
<template #default="timeData">
<div class="block">{{ timeData.days }}
<span class="colon">day</span>
<span class="colon">Days</span>
</div>
<div class="block">{{ timeData.hours }}
<span class="colon">hour</span>
<span class="colon">Hrs</span>
</div>
<div class="block">{{ timeData.minutes }}
<span class="colon">minute</span>
<span class="colon">Min</span>
</div>
<div class="block">{{ timeData.seconds }}
<span class="colon">second</span>
<span class="colon">Sec</span>
</div>
</template>
</van-count-down>
......@@ -48,19 +48,31 @@
<div class="itemBox">
<el-row :gutter="20">
<el-col :sm="12" :lg="8">
<div class="item"><img src="@/assets/dance/btn01.png">EVENT INTRODUCTION</div></el-col>
<div class="item"><img src="@/assets/dance/btn01.png">
<p>EVENT INTRODUCTION</p>
</div></el-col>
<el-col :sm="12" :lg="8">
<div class="item"><img src="@/assets/dance/btn02.png">EVENT NOTIFICATIONS</div></el-col>
<div class="item"><img src="@/assets/dance/btn02.png">
<p>EVENT NOTIFICATIONS</p>
</div></el-col>
<el-col :sm="12" :lg="8">
<div class="item"><img src="@/assets/dance/btn03.png">EVENT NOTIFICATIONS</div>
<div class="item"><img src="@/assets/dance/btn03.png">
<p>REGISTER TO PARTICIPATE</p>
</div>
</el-col>
<el-col :sm="12" :lg="8">
<div class="item"><img src="@/assets/dance/btn04.png">TICKET BOOKING</div>
<div class="item"><img src="@/assets/dance/btn04.png">
<p>TICKET BOOKING</p>
</div>
</el-col>
<el-col :sm="12" :lg="8">
<div class="item"><img src="@/assets/dance/btn05.png">HOTEL RESERVATIONS</div></el-col>
<div class="item"><img src="@/assets/dance/btn05.png">
<p> HOTEL RESERVATIONS</p>
</div></el-col>
<el-col :sm="12" :lg="8">
<div class="item"><img src="@/assets/dance/btn06.png">MAKEUP APPOINTMENTS</div></el-col>
<div class="item"><img src="@/assets/dance/btn06.png">
<p>MAKEUP APPOINTMENTS</p>
</div></el-col>
</el-row>
</div>
......@@ -75,7 +87,7 @@
<el-col :sm="24" :lg="12">
<div class="indexTitle">
<h3 class="leftboderTT">COMPETITION SCHEDULE</h3>
<a class="more" @click="goMatch">MORE</a>
<a class="more" @click="gosaiC">MORE</a>
</div>
<!--赛事日历-->
<el-card :body-style="{'padding':'20px 20px'}">
......@@ -90,19 +102,19 @@
</el-calendar>
<div class="calendarList">
<ul>
<li>
<li class="esp">
<label>08:00~10:30</label> Wuxi Open
</li>
<li>
<li class="esp">
<label>11:00</label> 2024 WDSF Open Group A
</li>
<li>
<li class="esp">
<label>12:00</label> 2024 WDSF Open Group B
</li>
<li>
<li class="esp">
<label>13:00</label> 2024 WDSF Open Group C
</li>
<li>
<li class="esp">
<label>15:00</label> 2024 WDSF Open Group D
</li>
</ul>
......@@ -113,7 +125,7 @@
<el-col :sm="24" :lg="12">
<div class="indexTitle">
<h3 class="leftboderTT">RESULT</h3>
<a class="more" @click="goMatch">MORE</a>
<a class="more" @click="gosaiC">MORE</a>
</div>
<!--历史排名-->
<el-card :body-style="{'padding':'10px 20px 18px'}">
......@@ -129,7 +141,7 @@
</template>
</el-table-column>
<el-table-column label="Name" prop="name" />
<el-table-column label="Country" />
<el-table-column label="Country" prop="gj" />
<el-table-column label="Score" align="center">
<template #default="scope">
<div class="text-primary">{{ scope.row.score }}</div>
......@@ -148,15 +160,15 @@
<div class="box">
<div class="indexTitle">
<h3 class="leftboderTT">NEWS</h3>
<a class="more" @click="goMatch">MORE</a>
<a class="more" @click="goNews">MORE</a>
</div>
<el-row :gutter="20">
<el-col
v-for="(n,index) in newest2"
:key="n.id" :xs="12" :sm="8"
:key="n.id" :xs="24" :sm="8"
:lg="8"
>
<div class="activeItem">
<div class="activeItem" @click="goNewsDetail(n)">
<div class="imgbox">
<img :src="fillImgUrl_webSite(n.picUrl)">
</div>
......@@ -166,7 +178,7 @@
</div>
<h3 class="esp">{{ n.name }}</h3>
<p class="esp_2">
The national standard Latin dance is a sports competitive dance with a strong explosive style and skill as its characteristic. It has a great potential for competitive sports dance and has been included in the official competition of the Asian Games
{{n.subName}}
</p>
<a>DETAIL</a>
</div>
......@@ -185,7 +197,7 @@
<el-card>
<el-row :gutter="20">
<el-col :lg="8">
<div class="liveImgbox">
<div class="liveImgbox" @click="goNewsDetail(livelist[0])">
<i class="ii">Living</i>
<img :src="fillImgUrl_webSite(livelist[0]?.picUrl)">
<h3 class="esp">{{ livelist[0]?.name }}
......@@ -194,14 +206,14 @@
</el-col>
<el-col :lg="16">
<div class="swiperPic">
<div class="swiperPic forPx">
<swiper
class="swiper-wrapper" :modules="modules" :slides-per-view="3" :space-between="20"
:navigation="navigationPic"
:autoplay="true" :loop="true"
>
<swiper-slide v-for="(n,i) in picList" :key="i">
<div class="picbox" @click="goDetail(n)">
<swiper-slide v-for="(n,i) in picList" :key="i" >
<div class="picbox" @click="goNewsDetail(n)">
<img :src="fillImgUrl_webSite(n.picUrl)">
</div>
</swiper-slide>
......@@ -214,12 +226,12 @@
</el-row>
<el-row class="news-l-r">
<el-col v-for="(n,index) in livelist" v-show="index>0" :lg="8">
<div class="item" style="padding: 0;margin: 20px 0 0">
<div class="item" style="padding: 0;margin: 20px 0 0" @click="goNewsDetail(n)">
<div class="imgbox">
<i class="playIcon" />
<img :src="fillImgUrl_webSite(n.picUrl)"></div>
<div class="info">
<div class="text-primary small-size">Standard dancing | {{ n.belongTime }}</div>
<div class="text-primary small-size">Standard | {{ n.belongTime }}</div>
<h2 class="esp_2">{{ n.name }}</h2>
</div>
</div>
......@@ -233,11 +245,11 @@
<div>
<div class="box">
<div class="indexTitle">
<h3 class="leftboderTT">JUDGE</h3>
<h3 class="leftboderTT">JUDGES</h3>
</div>
<el-row :gutter="20">
<el-col
v-for="n in personList" :key="n.name" :sm="12" :xl="12" :xs="12"
v-for="n in personList" :key="n.name" :sm="12" :xl="4" :xs="12"
:lg="4"
>
<div class="teacher">
......@@ -255,7 +267,7 @@
<el-col :lg="12">
<div class="indexTitle">
<h3 class="leftboderTT">About Us </h3>
<a class="more" style="filter: brightness(10)" @click="goMatch">MORE</a>
<a class="more" style="filter: brightness(10)">MORE</a>
</div>
<div class="aboutBox">
<div class="content">
......@@ -264,7 +276,7 @@
<div class="shadowbox" />
</div>
<div class="mt30 text-center">
<a class="btn-lineG" style="display: inline-flex;align-items: center;">Learn more <img style="filter: brightness(2);height: 8px;margin-left: 10px" src="@/assets/v1/more.png"></a>
<a class="btn-lineG" href="#/about/wuDao" style="display: inline-flex;align-items: center;">Learn more <img style="filter: brightness(2);height: 8px;margin-left: 10px" src="@/assets/v1/more.png"></a>
</div>
</div>
......@@ -272,13 +284,13 @@
<el-col :lg="12">
<div class="indexTitle">
<h3 class="leftboderTT">CONTACT</h3>
<a class="more" style="filter: brightness(10)" @click="goMatch">MORE</a>
<a class="more" style="filter: brightness(10)" href="#/about/wuDao">MORE</a>
</div>
<div class="mapBox">
<div class="content">
<div class="phone">
<h4>Phone</h4>
<p>Miss Chang:+86 13921876678</p>
<p>Miss Chang:+86 18888888888</p>
</div>
<div class="address">
<h4>Address</h4>
......@@ -325,7 +337,7 @@
<div v-if="showgg" class="fixed_gg">
<!--天气-->
<el-icon @click="showgg=false"><circle-close /></el-icon>
<img src="@/assets/dance/weather.png">
<img src="@/assets/dance/weather_en.png">
</div>
</div>
</template>
......@@ -340,6 +352,13 @@ import { Swiper, SwiperSlide } from 'swiper/vue'
import { Autoplay, Navigation } from 'swiper'
import 'swiper/css'
import { dayjs } from 'element-plus'
import r01 from '@/assets/dance/r01.png'
import r02 from '@/assets/dance/r02.png'
import r03 from '@/assets/dance/r03.png'
import r04 from '@/assets/dance/r04.png'
import r05 from '@/assets/dance/r05.png'
import r06 from '@/assets/dance/r06.png'
const modules = [Autoplay, Navigation]
const navigationPic = ref({
nextEl: '.picnext',
......@@ -350,27 +369,27 @@ const { proxy } = getCurrentInstance()
const activeRankName = ref(0)
const time = ref(0)
const rankList = ref([
{ index: '1', name: 'wawa', score: '170' },
{ index: '2', name: 'wawa', score: '170' },
{ index: '3', name: 'wawa', score: '170' },
{ index: '4', name: 'wawa', score: '170' },
{ index: '5', name: 'wawa', score: '170' },
{ index: '6', name: 'wawa', score: '170' }
{ index: '1', name: 'Chen Shasha', score: '170',gj:'CHINA' },
{ index: '2', name: 'Chen Shasha', score: '170' ,gj:'CHINA'},
{ index: '3', name: 'Chen Shasha', score: '170',gj:'CHINA' },
{ index: '4', name: 'Chen Shasha', score: '170',gj:'CHINA' },
{ index: '5', name: 'Chen Shasha', score: '170' ,gj:'CHINA'},
{ index: '6', name: 'Chen Shasha', score: '170' ,gj:'CHINA'}
])
const rankTabs = ref([
{ name: 'Latin dance' },
{ name: 'Standard dancing' },
{ name: 'Latin' },
{ name: 'Standard' },
{ name: 'Rock and roll' },
{ name: 'Sharsa' },
{ name: 'Street dance' }
{ name: 'Breaking' }
])
const personList = ref([
{ name: 'Zhang Jin', pp: 'artistic director', src: '@/assets/dance/r01.png' },
{ name: 'Wang min', pp: 'regimental commander', src: '@/assets/dance/r02.png' },
{ name: 'Xuxu', pp: 'artistic director', src: '@/assets/dance/r03.png' },
{ name: 'Wang Li', pp: 'regimental commander ', src: '@/assets/dance/r04.png' },
{ name: 'Yunlan', pp: 'artistic director', src: '@/assets/dance/r05.png' },
{ name: 'Qian Yifan', pp: 'artistic director', src: '@/assets/dance/r06.png' }
{ name: 'Zhang Jin', pp: 'artistic director', src: r01 },
{ name: 'Wang min', pp: 'regimental commander', src: r02 },
{ name: 'Xuxu', pp: 'artistic director', src: r03 },
{ name: 'Wang Li', pp: 'regimental commander ', src: r04 },
{ name: 'Yunlan', pp: 'artistic director', src: r05},
{ name: 'Qian Yifan', pp: 'artistic director', src: r06 }
])
const activeNews = ref(0)
const banners = ref([])
......@@ -397,14 +416,14 @@ const init = () => {
getNewsListById(
{ pageSize: 4,
pageNum: 1,
sortId: '30000000' }
sortId: '10000008' }
).then(res => {
livelist.value = res.rows
})
getNewsListById(
{ pageSize: 5,
pageNum: 1,
sortId: '30000001' }
sortId: '10000009' }
).then(res => {
picList.value = res.rows
})
......@@ -417,19 +436,24 @@ const init = () => {
newest2.value = res.rows
})
getHotActivity({ pageSize: 4, pageNum: 1 })
.then((res) => {
hotActivity.value = res.rows
})
// getHotActivity({ pageSize: 4, pageNum: 1 })
// .then((res) => {
// hotActivity.value = res.rows
// })
}
const goMatch = () => {
const gosaiC = () => {
router.push({
path: `/match/list`
path: `/saiC/index`
})
}
const goDetail = (n) => {
const goNews = () => {
router.push({
path: `/news/index`
})
}
const goNewsDetail = (n) => {
if (n.isOut == '1') {
window.open(n.jumpUrl)
} else {
......@@ -457,18 +481,21 @@ const goList = (query, name) => {
}
.itemBox{
padding: 20px 40px;
p{margin: 0;height: 40px;line-height: 20px;display: flex;align-items: center;}
}
border-radius: 15px;
.zn-btn{background: #FFFFFF;
font-size: 18px;
color: #453DEA;
border-radius: 23px;padding: 10px 20px;display: inline-flex;align-items: center;}
.item{box-shadow: 0px 0px 21px 0px rgba(41,23,101,0.14);margin: 10px 0;
display: flex;align-items: center;
font-size: 22px;
background: #FFFFFF;
.item{box-shadow: 0px 0px 21px 0px rgba(41,23,101,0.14);margin: 20px 0;
display: flex;align-items: center;text-align: center;
font-size: 18px; flex-direction: column;padding: 50px 10px 20px;
background:url("@/assets/dance/znbb.png") no-repeat left #FFFFFF;
background-size: cover;
position: relative;
border-radius: 15px;
img{margin: 0 5%;}
img{position: absolute;top: -30px}
}
}
......@@ -603,11 +630,6 @@ const goList = (query, name) => {
}
}
#part1 {
padding: 0 0 40px;
}
.relativebox {
position: relative;
height: 400px;
......@@ -691,4 +713,36 @@ const goList = (query, name) => {
cursor: pointer;
&:hover{filter:brightness(2)}}
}
@media (max-width: 800px) {
.box{width: 94%}
.calendarList{padding: 0;
ul{
li{margin: 10px}
}
}
.aboutBox{padding: 20px 30px;}
.indexTitle{margin: 30px 0 20px}
.teacher{height: 320px;margin: 0 0 20px;
img{height: 260px}
}
.activeItem{margin: 0 0 20px;}
.mapBox{
div{padding-left: 40px;}
.content{ width: 80%;left: 10%;padding:10px 20px 0 20px;}
.address{margin: 30px 0;}
p{text-align: left;word-break: break-all;}
}
.fixed_gg {
display: none;
}
.bannerItem .banner-count{flex-direction: column;
transform: scale(0.8); left: 0;
right: 0;
.van-count-down{margin: 30px 0 0;}
}
.bgbg{ text-align: center;
h1{text-align: center}
}
}
</style>
......
......@@ -4,10 +4,10 @@
<div class="box mb20 ">
<el-card class="mb20">
<el-row :gutter="20">
<el-col :lg="6">
<img>
<el-col :lg="7" :md="24" :xl="6" >
<img class="mauto" src="@/assets/dance/fm.jpg">
</el-col>
<el-col :lg="10">
<el-col :lg="9" :md="12" :xl="10">
<h3>
2024年WDSF亚洲体育舞蹈节亚洲体育 舞蹈节
</h3>
......@@ -16,7 +16,7 @@
<p class="ppl"><label class="bm3">&ensp;&ensp;&ensp;&ensp;点:</label>江苏省无锡市滨湖区体育中心A区201</p>
<p class="ppl"><label class="bm4">报名截止:</label>2024-06-30 13:00</p>
</el-col>
<el-col :lg="8">
<el-col :lg="8" :md="12" :xl="8">
<p class="countDownTitle"><span>报名截止倒计时</span></p>
<van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒">
<template #default="timeData">
......@@ -50,7 +50,7 @@
</el-card>
<el-row :gutter="20">
<el-col :span="18">
<el-col :lg="18">
<el-card :body-style="{'padding':'0'}">
<div class="lineHead">
......@@ -359,9 +359,10 @@
</div>
</div>
</el-card>
<div style="height: 20px"></div>
</el-col>
<el-col :span="6">
<el-col :lg="6">
<a class="btn-lineG mb20" style="display: block;text-align: center;">我要报名</a>
<el-card :body-style="{padding: 0}">
<el-tabs v-model="activeName2" class="match-tabs" @tab-click="handleClick">
......@@ -394,7 +395,7 @@
</div>
</el-dialog>
<groupDetail ref="dialogEditGroup" @submitForm="getMyGroupList" />
</div>
</template>
......@@ -410,180 +411,8 @@ import * as match from '@/apiPc/match'
import { toRefs } from '@vueuse/shared'
import { ElMessage } from 'element-plus'
import groupDetail from '../center/component/teamInfo_form'
const activeName2 = ref('first')
const data = reactive({
activeName: 'tab1',
matchData: {},
activeName2: 'first',
projectList: [],
groupList: [],
levelList: [],
levelListGirl: [],
levelListBoy: [],
popup: false,
popupGroupList: false,
groupListArr: [],
matchId: 0,
groups: [],
time: 0,
groupId: '',
signDoneGroupList: [],
cptLabelsList: [],
secondTabName: '参赛队',
collapseActive: '0',
activeNames: '1'
})
const {
activeName, activeName2, matchData, projectList, groupList, levelList, popup, popupGroupList, time,
groupListArr, matchId, groups, groupId, signDoneGroupList, levelListGirl, levelListBoy, cptLabelsList, secondTabName,
collapseActive, activeNames
} = toRefs(data)
onMounted(() => {
matchId.value = route.params.id
})
function getMyGroupList() {
match.getMyGroupList().then(res => {
groups.value = res.data
popupGroupList.value = true
})
}
function getMatch(id) {
match.getMatchById({ id: id }).then(res => {
matchData.value = res.data
if (matchData.value.disclaimerUrl && (matchData.value.disclaimerUrl.indexOf('https://') > -1)) {
matchData.value.dUrl = JSON.parse(matchData.value.disclaimerUrl)
}
if (matchData.value.signKnowUrl && (matchData.value.signKnowUrl.indexOf('https://') > -1)) {
matchData.value.sUrl = JSON.parse(matchData.value.signKnowUrl)
}
if (matchData.value.ruleUrl && (matchData.value.ruleUrl.indexOf('https://') > -1)) {
matchData.value.rUrl = JSON.parse(matchData.value.ruleUrl)
}
time.value = res.data.secondRemain * 1000
if (matchData.value.signType == 1 || matchData.value.signType == 2) {
} else {
secondTabName.value = '参赛人员'
}
if (matchData.value.type == 1 && matchData.value.cpts) {
secondTabName.value = '分站赛'
activeName.value = 'third'
}
if (res.data.cptLabels && cptLabelsList.value.length == 0) {
cptLabelsList.value = res.data.cptLabels
for (const c of cptLabelsList.value) {
if (c.fileUrl && c.fileUrl != 'null') {
var arr = JSON.parse(c.fileUrl)
c.fileObj = arr[0]
console.log(c.fileObj)
}
}
}
})
}
function getGroupListByCptId(id) {
match.getGroupListByCptId(id).then(res => {
signDoneGroupList.value = res.data
})
}
function getThisGroupId(item) {
groupId.value = item.id
checkIsSign(matchData.value.signType).then(() => {
goSignType2()
})
}
function handleClick(tab, event) {
// console.log(tab, event)
}
// 获取已报信息
function checkIsSign(signType) {
var obj = {
cptId: matchId.value,
groupId: groupId.value || ''
}
return match.getMySignInfo(obj).then(res => {
if (res.data.type == '1') {
let str = ''
if (signType == '0') {
str = '已报名,不能重复报名'
} else {
str = '该参赛队已报名,请选择其他参赛队'
}
ElMessage.error(str)
return Promise.reject('rejected message')
}
})
}
function choseSignType(item) {
if (item.signType == '0') {
// 个人报名
checkIsSign(item.signType).then((res) => {
router.push({
path: `${route.params.id}/singleSign`
})
})
} else {
// 团队报名 团体-队伍报名
getMyGroupList()
}
}
function goSignType2() {
router.push({
path: `${route.params.id}/teamSign`,
query: {
matchId: matchId.value,
groupId: groupId.value,
signType: matchData.value.signType
}
})
}
function goAddgroup() {
// 新团
proxy.$refs['dialogEditGroup'].open({
title: '新建参赛队'
})
}
function goDetail(id) {
const routeData = router.resolve({
path: `${id}`
})
window.open(routeData.href, '_blank')
}
function getLevelList(val) {
levelList.value = []
levelListGirl.value = []
levelListBoy.value = []
if (val) {
match.getLeveListByGroupId(val).then(res => {
for (const l of res.data) {
if (l.levelType == '1') {
levelListBoy.value.push(l)
} else if (l.levelType == '2') {
levelListGirl.value.push(l)
} else {
levelList.value.push(l)
}
}
})
}
}
// getMatch(route.params.id)
// getGroupListByCptId(router.currentRoute.value.params.id)
</script>
<style scoped lang="scss">
......@@ -1016,4 +845,17 @@ function getLevelList(val) {
h4{margin: 0;font-size: 16px;}
}
}
.table{white-space: nowrap}
@media (max-width: 800px) {
.van-count-down{
.block{margin: 0 10px;}
}
.colon{display: none;}
.funcBtns{
div{padding: 0 0 10px;
margin: 0 5px;
}
}
}
</style>
......
<template>
<div class="app-container">
<div class="mt30" />
<div class="box mb20 ">
<el-card class="mb20">
<el-row :gutter="20">
<el-col :lg="7" :md="24" :xl="6" >
<img class="mauto" src="@/assets/dance/fm.jpg">
</el-col>
<el-col :lg="9" :md="12" :xl="10">
<h3>
WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024
</h3>
<p class="ppl"><label class="bm1">Playing Time:</label>2024.07.21-2024.07.23</p>
<p class="ppl"><label class="bm2">Event Level:</label>league</p>
<p class="ppl"><label class="bm3">Location:</label>201 201, Zone A, Sports Center, Binhu District, Wuxi City, Jiangsu Province </p>
<p class="ppl"><label class="bm4">Registration Deadline:</label>2024-06-30 13:00</p>
</el-col>
<el-col :lg="8" :md="12" :xl="8">
<p class="countDownTitle"><span>Registration deadline countdown</span></p>
<van-count-down :time="time" format="DD 天 HH 时 mm 分 ss 秒">
<template #default="timeData">
<span class="block">{{ timeData.days }}</span>
<span class="colon">Days</span>
<span class="block">{{ timeData.hours }}</span>
<span class="colon">Hrs</span>
<span class="block">{{ timeData.minutes }}</span>
<span class="colon">Min</span>
<span class="block">{{ timeData.seconds }}</span>
<span class="colon">Sec</span>
</template>
</van-count-down>
<div class="funcBtns">
<div>
<img src="@/assets/dance/ds01.png"/>
<h4>TICKET BOOKING</h4>
</div>
<div>
<img src="@/assets/dance/ds02.png"/>
<h4>HOTEL RESERVATIONS</h4>
</div>
<div>
<img src="@/assets/dance/ds03.png"/>
<h4>MAKEUP APPOINTMENTS</h4>
</div>
</div>
</el-col>
</el-row>
</el-card>
<el-row :gutter="20">
<el-col :lg="18">
<el-card :body-style="{'padding':'0'}">
<div class="lineHead">
<ul>
<li class="active">Event Details</li>
<li>Schedule</li>
<li>Participating Teams</li>
<li>Achievement</li>
<li>Notes</li>
</ul>
</div>
<div style="padding: 0 20px 20px">
<!-- 赛事详情-->
<div class="indexTitle"><h3 class="leftboderTT">Organization</h3></div>
<el-row :gutter="20">
<el-col :lg="8">
<div class="dlbox">
<dl>
<dt>Organizer</dt>
<dd>World Sports Dance Federation(WDSF)</dd>
<dd>Asian Sports Dance Federation(DSA)</dd>
<dd>China Sports Federation(CDSF)</dd>
</dl>
</div>
</el-col>
<el-col :lg="8">
<div class="dlbox">
<dl>
<dt>Undertaker</dt>
<dd>Jiangsu Provincial Sports Federation</dd>
<dd>Wuxi Municipal People's Government</dd>
</dl>
</div>
</el-col>
<el-col :lg="8">
<div class="dlbox">
<dl>
<dt>Co-organizer</dt>
<dd>Wuxi Sports Bureau</dd>
<dd>Jiangsu Wuxi Economic Development Zone Management Committee</dd>
<dd>Jiangsu Provincial Sports Dance Association</dd>
</dl>
</div>
</el-col>
<el-col :lg="8">
<div class="dlbox">
<dl>
<dt>Operator</dt>
<dd>Jijin Wuxi Sports and Health Co., Ltd</dd>
</dl>
</div>
</el-col>
</el-row>
<div class="indexTitle"><h3 class="leftboderTT">Notes</h3></div>
<div class="xzbox">
1. Each unit is limited to reporting one team, each team needs to report one leader (athletes can also serve), and athletes are limited to reporting four<br>
2. Participating athletes must be employees of the participating companies (including labor dispatch and foreign employees)<br>
3. Contestants must be between the ages of 18 and 50, and those over 50 are not recommended to participate in this competition
<br>
4.Contestants must be physically healthy
</div>
<div class="indexTitle"><h3 class="leftboderTT">Competition projects</h3></div>
<div class="collapsebox">
<el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item title="Breaking" name="1">
<div class="pd20">
<div class="tablebody">
<table class="table">
<tr>
<td>date</td>
<td>unit</td>
<td>group</td>
<td>time</td>
<td>stage</td>
</tr>
<tr>
<td rowspan="4">2023/10/6(Friday)</td>
<td rowspan="4">BRK01</td>
<td>man</td>
<td>14:30 - 15:30</td>
<td>Qualification Tournament</td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>Qualification Tournament</td>
</tr>
<tr>
<td>man</td>
<td>14:30 - 15:30</td>
<td>round robin </td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>round robin </td>
</tr>
<tr>
<td rowspan="8">2023/10/7(Saturday)</td>
<td rowspan="8">BRK02</td>
<td>man</td>
<td>14:30 - 15:30</td>
<td>quarter final </td>
</tr>
<tr>
<td>man</td>
<td>14:30 - 15:30</td>
<td>quarter final </td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>semifinal</td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>semifinal</td>
</tr>
<tr>
<td>man</td>
<td>14:30 - 15:30</td>
<td>LPL</td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>LPL</td>
</tr>
<tr>
<td>man</td>
<td>14:30 - 15:30</td>
<td>decider</td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>decider</td>
</tr>
<tr>
<td colspan="5" style="text-align: left">
Note: The competition schedule will be adjusted based on the final number of participants and the requirements for television broadcasting
</td>
</tr>
</table>
</div>
</div>
</el-collapse-item>
<el-collapse-item title="Latin " name="2">
<div class="pd20">
<table class="table">
<tr>
<td>date</td>
<td>unit</td>
<td>group</td>
<td>time</td>
<td>stage</td>
</tr>
<tr>
<td rowspan="4">2023/10/6(Friday )</td>
<td rowspan="4">BRK01</td>
<td>man</td>
<td>14:30 - 15:30</td>
<td>Qualification Tournament</td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>Qualification Tournament</td>
</tr>
<tr>
<td>man</td>
<td>14:30 - 15:30</td>
<td>round robin </td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>round robin </td>
</tr>
<tr>
<td rowspan="8">2023/10/7(Saturday )</td>
<td rowspan="8">BRK02</td>
<td>man</td>
<td>14:30 - 15:30</td>
<td>quarter final </td>
</tr>
<tr>
<td>man</td>
<td>14:30 - 15:30</td>
<td>quarter final </td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>semifinal</td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>semifinal</td>
</tr>
<tr>
<td>man</td>
<td>14:30 - 15:30</td>
<td>LPL</td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>LPL</td>
</tr>
<tr>
<td>man</td>
<td>14:30 - 15:30</td>
<td>decider</td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>decider</td>
</tr>
</table>
</div>
</el-collapse-item>
<el-collapse-item title="Standard " name="3">
<div class="pd20">
<table class="table">
<tr>
<td>date</td>
<td>unit</td>
<td>group</td>
<td>time</td>
<td>stage</td>
</tr>
<tr>
<td rowspan="4">2023/10/6(Friday )</td>
<td rowspan="4">BRK01</td>
<td>man</td>
<td>14:30 - 15:30</td>
<td>Qualification Tournament</td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>Qualification Tournament</td>
</tr>
<tr>
<td>man</td>
<td>14:30 - 15:30</td>
<td>round robin </td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>round robin </td>
</tr>
<tr>
<td rowspan="8">2023/10/7(Saturday )</td>
<td rowspan="8">BRK02</td>
<td>man</td>
<td>14:30 - 15:30</td>
<td>quarter final </td>
</tr>
<tr>
<td>man</td>
<td>14:30 - 15:30</td>
<td>quarter final </td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>semifinal</td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>semifinal</td>
</tr>
<tr>
<td>man</td>
<td>14:30 - 15:30</td>
<td>LPL</td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>LPL</td>
</tr>
<tr>
<td>man</td>
<td>14:30 - 15:30</td>
<td>decider</td>
</tr>
<tr>
<td>woman</td>
<td>14:30 - 15:30</td>
<td>decider</td>
</tr>
</table>
</div>
</el-collapse-item>
</el-collapse>
</div>
</div>
</el-card>
<div style="height: 20px"></div>
</el-col>
<el-col :lg="6">
<a class="btn-lineG mb20" style="display: block;text-align: center;">Application</a>
<el-card :body-style="{padding: 0}">
<el-tabs v-model="activeName2" class="match-tabs" @tab-click="handleClick">
<el-tab-pane label="Registration Time" name="first">
<div class="gg">
<p><label>Registration Time:</label>2023-03-23 ~ 2023-05-09</p>
<p><label>Playing Time:</label>2023-05-14 ~ 2023-05-14</p>
<p><label>Contact Information:</label>13915234567</p>
</div>
</el-tab-pane>
</el-tabs>
</el-card>
</el-col>
</el-row>
</div>
<div style="height: 50px"></div>
</div>
</template>
<script setup>
import { getCurrentInstance, ref } from 'vue'
import { reactive, onMounted } from '@vue/runtime-core'
import { useRoute, useRouter } from 'vue-router'
const route = useRoute()
const router = useRouter()
const { proxy } = getCurrentInstance()
import * as match from '@/apiPc/match'
import { toRefs } from '@vueuse/shared'
import { ElMessage } from 'element-plus'
import groupDetail from '../center/component/teamInfo_form'
const data = reactive({
activeName: 'tab1',
matchData: {},
activeName2: 'first',
projectList: [],
groupList: [],
levelList: [],
levelListGirl: [],
levelListBoy: [],
popup: false,
popupGroupList: false,
groupListArr: [],
matchId: 0,
groups: [],
time: 0,
groupId: '',
signDoneGroupList: [],
cptLabelsList: [],
secondTabName: '参赛队',
collapseActive: '0',
activeNames: '1'
})
const {
activeName, activeName2, matchData, projectList, groupList, levelList, popup, popupGroupList, time,
groupListArr, matchId, groups, groupId, signDoneGroupList, levelListGirl, levelListBoy, cptLabelsList, secondTabName,
collapseActive, activeNames
} = toRefs(data)
</script>
<style scoped lang="scss">
.indexTitle{margin: 20px 0 12px;
h3{
font-size: 20px;
color:var(--el-color-primary);
}
}
.xzbox{border: 2px solid #DDECFB;padding: 20px;line-height: 2;
color: #29343C;
font-size: 16px;}
.dlbox{background: url("@/assets/dance/ds_bg.png") no-repeat left;background-size: 100% 100%;
padding: 0 0 20px;margin: 0 0 20px;height: 90%;
dl{min-height: 120px;margin: 0;
dt{
height: 30px;
font-size: 16px;margin: 0 0 18px;
font-weight: 600;line-height: 30px;display: inline-block;padding:0 20px 0 14px;
background: linear-gradient(90deg, #8623FC, #453DEA);
border-radius: 0px 0px 15px 0px;color: #fff;}
}
dd{
font-size: 14px;line-height: 1.6;
color: #29343C;}
}
.ppl{color: #29343C;
label{color: #929AA0;}
}
.bm1{background: url("@/assets/dance/bm1.png") no-repeat left;background-size: contain;padding-left: 24px;}
.bm2{background: url("@/assets/dance/bm2.png") no-repeat left;background-size: contain;padding-left: 24px;}
.bm3{background: url("@/assets/dance/bm3.png") no-repeat left;background-size: contain;padding-left: 24px;}
.bm4{background: url("@/assets/dance/bm4.png") no-repeat left;background-size: contain;padding-left: 24px;}
.app-container {
padding: 0;
background: #F5F7F9;
}
.countDownTitle {
text-align: center;
color: #525F6B;
position: relative;
width: 100%;
left: 0;
font-size: 14px;
}
.countDownTitle span {
background: #fff;
padding: 0 10px;
position: relative;
z-index: 1;
}
.countDownTitle::after {
position: absolute;
background: #ccc;
height: 1px;
content: '';
top: 0;
bottom: 0;
margin: auto;
width: 100%;
left: 0;
}
.typeTag {
border-radius: 10px 10px 10px 0px;
padding: 2px 12px;
background: #FF8124;
font-size: 14px;
color: #fff;
}
.matchItem {
cursor: pointer;
margin-bottom: 40px;
height: 180px;
background: #FFFFFF;
position: relative;
border-radius: 10px;
.el-avatar {
position: absolute;
left: 20px;
top: 30px;
img {
background: #fff;
}
}
.info {
padding: 12px 0 0 140px;
p {
font-size: 14px;
}
}
.typeTag {
position: absolute;
right: 0;
top: 0;
}
h3 {
font-weight: 500;
font-size: 18px;
color: #000000;
text-overflow: ellipsis;
}
&:hover h3 {
font-weight: bold;
}
}
.el-pagination {
justify-content: center;
--el-pagination-bg-color: none;
}
.kind {
background: #fff;
margin: 0 0 30px;
ul {
list-style: none;
padding: 30px 0 10px;
li {
margin: 0 0 20px;
display: flex;
align-items: center;
}
}
}
.listTitle {
display: flex;
justify-content: space-between;
align-items: center;
}
.match-tabs {
background: #fff;
padding: 10px 20px 20px;
}
.teamItem {
height: 80px;
background: #FBFCFD;
border-radius: 10px;
margin: 10px 0;
display: flex;
align-items: center;
padding: 0 20px;
overflow: hidden;
text-overflow: ellipsis;
.el-avatar {
border: 1px solid #EEEEEE;
}
.name {
margin-left: 15px;
flex: 1;
font-size: 14px;
}
}
.grid-top {
background: #fff;
min-height: 300px;
padding: 28px 28px 10px;
border-radius: 10px;
margin: 30px auto;
position: relative;
.cover {
width: 420px;
height: 250px;
position: absolute;
border-radius: 10px;
background: #fff;
object-fit: cover;
}
.info {
padding-left: 440px;
h3 {
font-weight: 500;
color: #000000;
margin: 0 0 10px;
font-size: 24px;
img{margin-right: 10px}
.typeTag {
border-radius: 13px 13px 13px 0;
margin-left: 10px;
}
}
p {
color: #7B7F83;
font-size: 16px;
}
.countDownTitle{font-size: 14px;}
.el-button.el-button--primary {
background: #CA171D;
border: none;
}
}
}
.gg {
margin: 0 0 28px;
h3 {border-left: 2px solid #BA2E29; padding: 0 0 0 12px;
margin: 20px 0 8px;
font-weight: 500;
font-size: 16px;
}
p {
font-size: 16px;
color: #000;
margin: 0 0 8px;
line-height: 24px;
label{color: #7D8790;}
}
.pp {
border: 1px solid rgba(186, 46, 41, 0.3);
padding: 20px;
}
}
.van-count-down {
text-align: center;
margin: 20px 0;
}
.colon {
display: inline-block;
font-size: 16px;
margin: 0 6px;
color: #7B7F83;
}
.block {
display: inline-block;
width: 52px;
color: #fff;
font-size: 26px;
font-weight: bold;
border-radius: 10px;
background: url(@/assets/img/djs_bg.png) left;
background-size: 100% 100%;
line-height: 50px;
text-align: center;
}
.time-address {
font-size: 15px;
margin: 10px 0 0;
color: #999;
}
.popList .teamItem {
cursor: pointer;
}
.popList .teamItem:hover {
background: #e7e7e7;
}
.richContent {
overflow: hidden;
}
.richContent img {
max-width: 100%;
}
.red-center {
font-size: 24px;
text-align: center;
font-family: DIN Alternate;
padding: 30px 0;
font-weight: bold;
color: #E60012;
}
.plist {
dt {
font-size: 14px;
}
dd {
display: inline-block;
margin: 0 15px 0 0;
}
dd.t {
display: block;
margin: 15px 0 6px;
border-left: 3px solid #1ec886;
line-height: 1;
padding: 6px;
background: #f5f5f5;
}
li {
line-height: 40px;
display: flex;
justify-content: space-between;
padding: 0 20px;
align-items: center;
cursor: pointer;
}
li:hover {
background: #eee;
}
}
.pp .el-link {
margin-right: 15px;
font-size: 16px;
}
:deep(.el-collapse-item__header) {
font-weight: 500;
font-size: 16px;
}
.pobtns {
position: absolute;
right: 20px;
bottom: 20px;
}
:deep(.el-tabs__item) {
font-size: 16px;
}
.signButton {
margin: 0 0 20px;
button {
width: 90%;background: var(--el-color-primary);
font-size: 20px;margin: 30px auto 0;display: block;
height: 50px;
}
}
.el-timeline-item__timestamp.is-top {
font-size: 16px;
}
.el-timeline-item__content {
font-size: 16px;
margin: 10px 0 0;
}
.typeTag.blue {
background: #00a0e9;
}
.typeTag.green {
background: #34cf96;
}
:deep(.el-tabs__nav-wrap::after) {
height: 1px;
}
.table{width: 100%;border-left: 1px solid #e1e1e1;border-top:1px solid #e1e1e1;
th{background: #eee;padding: 6px 10px;
border-right: 1px solid #e1e1e1;
border-bottom:1px solid #e1e1e1;
font-size: 15px;
}
td{padding: 6px 10px;border-right: 1px solid #e1e1e1;font-size: 15px;
border-bottom:1px solid #e1e1e1;vertical-align: middle;text-align: center;
span{margin-right: 10px}
span::after{content: ','}
span:last-child::after{content: ''}
}
}
.flexLine{display: flex;
label{font-weight: normal}
}
.nowteamItem{
height: 100px;
background: #FBFCFD;
border-radius: 10px;
margin: 20px 0;
display: flex;
align-items: center;
padding: 0 20px;
overflow: hidden;
text-overflow: ellipsis;
.el-avatar {margin: 0 20px}
.info{
h3{margin: 0 0 15px;}
p{margin: 0;color: #1ab394}
}
.rr{text-align: right; flex: 1;
span{color: #1ab394}
}
}
.collapsebox{
.el-collapse-item{margin-bottom: 15px;--el-collapse-content-bg-color:#F4F9FE;
border: 2px solid #DDECFB;
.table{background: #fff;}
}
.is-active{--el-collapse-header-bg-color:#F4F9FE}
:deep(.el-collapse-item__header){padding: 0 20px;}
}
.funcBtns{display: flex; justify-content: space-around;
div{text-align: center;background: #F7FAFF;box-shadow:0 0 10px #d4cae4;margin: 0 5px;
border-radius: 15px;padding:0 10px 15px;
img{margin: auto}
h4{margin: 0;font-size: 14px;}
}
}
.table{white-space: nowrap}
@media (max-width: 800px) {
.van-count-down{
.block{margin: 0 10px;}
}
.colon{display: none;}
.funcBtns{
div{padding: 0 0 10px;
margin: 0 5px;
}
}
}
</style>
......@@ -8,7 +8,7 @@
<el-row :gutter="20">
<el-col :lg="12" :sm="24" :md="12">
<div class="liveImgbox">
<div class="liveImgbox" @click="goDetail(newsList[0])">
<i class="ii">直播中</i>
<img :src="fillImgUrl_webSite(newsList[0]?.picUrl)">
<h3 class="esp">{{ newsList[0]?.name }}
......@@ -45,25 +45,25 @@
<div class="indexTitle">
<h3 class="leftboderTT">精彩图片</h3>
<a class="more" @click="goList(query2.sortId,'舞蹈动态')">MORE</a>
<a class="more" @click="goList(query2.sortId,'精彩图片')">MORE</a>
</div>
<el-row class="mb20" :gutter="20">
<el-col :lg="9">
<div class="picbox" ><img :src="fillImgUrl_webSite(newsList2[0]?.picUrl)"/></div>
<div class="picbox" @click="goDetail(newsList2[0])"><img :src="fillImgUrl_webSite(newsList2[0]?.picUrl)"/></div>
</el-col>
<el-col :lg="15">
<el-row :gutter="20">
<el-col :lg="16">
<div class="picbox"><img :src="fillImgUrl_webSite(newsList2[1]?.picUrl)"/></div>
<div class="picbox" @click="goDetail(newsList2[1])"><img :src="fillImgUrl_webSite(newsList2[1]?.picUrl)"/></div>
</el-col>
<el-col :lg="8">
<div class="picbox" style="height: calc(50% - 10px)"><img :src="fillImgUrl_webSite(newsList2[2]?.picUrl)"/></div>
<div class="picbox" style="height: calc(50% - 10px);margin-top: 20px"><img :src="fillImgUrl_webSite(newsList2[3]?.picUrl)"/></div>
<div class="picbox" @click="goDetail(newsList2[2])" style="height: calc(50% - 10px)"><img :src="fillImgUrl_webSite(newsList2[2]?.picUrl)"/></div>
<div class="picbox" @click="goDetail(newsList2[3])" style="height: calc(50% - 10px);margin-top: 20px"><img :src="fillImgUrl_webSite(newsList2[3]?.picUrl)"/></div>
</el-col>
</el-row>
<el-row :gutter="20" class="mt20">
<el-col :lg="8" v-for="(n,index) in newsList2" :key="index" v-show="index>3">
<div class="picbox"><img :src="fillImgUrl_webSite(n.picUrl)"/></div>
<div class="picbox" @click="goDetail(n)" ><img :src="fillImgUrl_webSite(n.picUrl)"/></div>
</el-col>
</el-row>
</el-col>
......@@ -88,12 +88,12 @@ const newsList2 = ref([])
const query1 = ref({
pageSize: 5,
pageNum: 1,
sortId: '30000000'
sortId: '10000006'
})
const query2 = ref({
pageSize: 7,
pageNum: 1,
sortId: '30000001'
sortId: '10000007'
})
onMounted(() => {
......@@ -133,5 +133,7 @@ const goDetail = (n) => {
<style lang="scss" scoped>
.leftboderTT{
font-size: 20px;}
@media (max-width: 800px) {
[class*=el-col-]{display: block;margin: 0 0 20px}
}
</style>
......
<template>
<div>
<div class="box">
<div class="indexTitle">
<h3 class="leftboderTT">Event Video</h3>
<a class="more" @click="goList(query1.sortId,'Event Video')">MORE</a>
</div>
<el-row :gutter="20">
<el-col :lg="12" :sm="24" :md="12">
<div class="liveImgbox" @click="goDetail(newsList[0])">
<i class="ii">LIVE</i>
<img :src="fillImgUrl_webSite(newsList[0]?.picUrl)">
<h3 class="esp">{{ newsList[0]?.name }}
</h3>
</div>
</el-col>
<el-col :lg="12" :sm="24">
<el-row :gutter="20">
<el-col :md="12" :lg="12">
<div class="videoImgbox" @click="goDetail(newsList[1])">
<img :src="fillImgUrl_webSite(newsList[1]?.picUrl)">
</div>
</el-col>
<el-col :md="12" :lg="12">
<div class="videoImgbox" @click="goDetail(newsList[2])">
<img :src="fillImgUrl_webSite(newsList[2]?.picUrl)">
</div>
</el-col>
<el-col :md="12" :lg="12" class="mt20">
<div class="videoImgbox" @click="goDetail(newsList[3])">
<img :src="fillImgUrl_webSite(newsList[3]?.picUrl)">
</div>
</el-col>
<el-col :md="12" :lg="12" class="mt20">
<div class="videoImgbox" @click="goDetail(newsList[4])">
<img :src="fillImgUrl_webSite(newsList[4]?.picUrl)">
</div>
</el-col>
</el-row>
</el-col>
</el-row>
<div class="indexTitle">
<h3 class="leftboderTT">Exciting Pictures</h3>
<a class="more" @click="goList(query2.sortId,'Exciting Pictures')">MORE</a>
</div>
<el-row class="mb20" :gutter="20">
<el-col :lg="9">
<div class="picbox" @click="goDetail(newsList2[0])"><img :src="fillImgUrl_webSite(newsList2[0]?.picUrl)"/></div>
</el-col>
<el-col :lg="15">
<el-row :gutter="20" style="height: 100%">
<el-col :lg="16">
<div class="picbox" @click="goDetail(newsList2[1])"><img :src="fillImgUrl_webSite(newsList2[1]?.picUrl)"/></div>
</el-col>
<el-col :lg="8">
<div class="picbox" @click="goDetail(newsList2[2])" style="height: calc(50% - 10px)"><img :src="fillImgUrl_webSite(newsList2[2]?.picUrl)"/></div>
<div class="picbox" @click="goDetail(newsList2[3])" style="height: calc(50% - 10px);margin-top: 20px"><img :src="fillImgUrl_webSite(newsList2[3]?.picUrl)"/></div>
</el-col>
</el-row>
<el-row :gutter="20" class="mt20">
<el-col :lg="8" v-for="(n,index) in newsList2" :key="index" v-show="index>3">
<div class="picbox" @click="goDetail(n)"><img :src="fillImgUrl_webSite(n.picUrl)"/></div>
</el-col>
</el-row>
</el-col>
</el-row>
<div class="mb60" />
</div>
</div>
</template>
<script setup>
import { ArrowRight, Search } from '@element-plus/icons-vue'
import { onMounted, ref } from 'vue'
import { getNewsListById } from '@/apiPc/webSite'
import { useRouter } from 'vue-router'
const router = useRouter()
const activeName = ref(0)
const total = ref(0)
const list = ref([])
const newsList = ref([])
const newsList2 = ref([])
const query1 = ref({
pageSize: 5,
pageNum: 1,
sortId: '10000008'
})
const query2 = ref({
pageSize: 7,
pageNum: 1,
sortId: '10000009'
})
onMounted(() => {
getList(query1.value)
getList2(query2.value)
})
const getList = (obj) => {
getNewsListById(obj).then(res => {
newsList.value = res.rows
})
}
const getList2 = (obj) => {
getNewsListById(obj).then(res => {
newsList2.value = res.rows
})
}
const goList = (sortId, name) => {
router.push({
path: `/news/list/${sortId}`,
query: {
kindName: name
}
})
}
const goDetail = (n) => {
if (n.isOut == '1') {
window.open(n.jumpUrl)
} else {
window.open(router.resolve({
path: `/news/detail/${n.noteId}`
}).href)
}
}
</script>
<style lang="scss" scoped>
.leftboderTT{
font-size: 20px;}
@media (max-width: 800px) {
[class*=el-col-]{display: block;margin: 0 0 20px}
}
</style>
<template>
<div>
<div class="box">
<el-breadcrumb class="mt20 forPc" :separator-icon="ArrowRight">
<el-breadcrumb-item :to="{ path: '/' }">
<el-icon>
<HomeFilled />
</el-icon>
首页
</el-breadcrumb-item>
<el-breadcrumb-item :to="{ name: 'news' }">新闻</el-breadcrumb-item>
<el-breadcrumb-item>详情</el-breadcrumb-item>
</el-breadcrumb>
<el-row :gutter="30" class="forPc">
<el-col :lg="24" :sm="24">
<!-- <el-breadcrumb class="mt20 forPc" :separator-icon="ArrowRight">-->
<!-- <el-breadcrumb-item :to="{ path: '/' }">-->
<!-- <el-icon>-->
<!-- <HomeFilled />-->
<!-- </el-icon>-->
<!-- 首页-->
<!-- </el-breadcrumb-item>-->
<!-- <el-breadcrumb-item :to="{ name: 'news' }">新闻</el-breadcrumb-item>-->
<!-- <el-breadcrumb-item>详情</el-breadcrumb-item>-->
<!-- </el-breadcrumb>-->
<el-card v-if="form.isOld=='1'" class="mt20 mb20">
<iframe
id="newsIframe" :src="`./source${form.jumpUrl}`" width="100%" height="0" frameborder="none"
scrolling="no"
/>
</el-card>
<el-card v-else class="mt20 mb20" :body-style="{padding:'30px 60px'}">
<el-card v-else class="mt20 mb20">
<div class="bpd">
<h3 class="title">
<span v-if="form.publishType">
<span v-for="(t,index) in form.publishType.split(',')" :key="index" class="jstype">{{ t }}</span>
......@@ -47,9 +47,10 @@
</p>
</div>
</div>
</el-card>
</el-col>
</el-row>
</div>
</div>
......@@ -73,7 +74,7 @@ let newsId
onMounted(() => {
newsId = route.params.id
getData(newsId)
getNew()
// getNew()
window.addEventListener('message', onMessage)
})
......@@ -108,6 +109,9 @@ function setIframeHeight(height, iframe, handleTimeout) {
watch(() => route.params.id, (val) => {
if (val) {
if(val==0){
return
}
getData(val)
}
})
......@@ -175,7 +179,7 @@ const goDetail = (n) => {
.content {
text-align: justify;
:deep(video){max-width: 100%;}
p {
img {
max-width: 100%;
......@@ -303,33 +307,12 @@ h2 {
.forWei {
display: none;
}
@media (max-width: 500px) {
.forWei {
height: 100vh;
box-sizing: border-box;
overflow: auto;
display: block;
background: #fff;
padding: 1px 15px;
.title {
text-align: left;
}
.nInfo {
text-align: left;
span {
padding: 0;
margin-right: 10px;
}
}
}
.forPc {
display: none;
font-size: 17px;
}
.bpd{padding:30px 60px;
video{max-width: 100%;}
img{max-width: 100%;}
}
@media (max-width: 800px) {
.bpd{padding:30px 10px}
}
</style>
......
......@@ -10,12 +10,12 @@
<el-col :lg="12" :sm="24" :md="12">
<el-carousel indicator-position="none" height="330">
<el-carousel-item v-for="(n,index) in newsList" :key="index">
<div class="imgbox carouselImg">
<div class="imgbox carouselImg" @click="goDetail(n)">
<div class="date">
<div class="day">{{ n.belongTime?.substring(8, 10) }}</div>
<p>{{ n.belongTime?.substring(0, 7).replace(/-/g, '/') }}</p>
</div>
<img :src="fillImgUrl_webSite(n.bannerUrl)">
<img :src="fillImgUrl_webSite(n.picUrl)">
<h3 class="esp">{{ n.name }}
</h3>
</div>
......@@ -72,13 +72,13 @@
<el-row :gutter="20">
<el-col
v-for="(n,index) in newsList3"
v-show="index<3" :key="n.id" :xs="12" :sm="8"
v-show="index<3" :key="n.id" :xs="24" :sm="8"
:lg="8"
>
<div class="activeItem">
<div class="activeItem" @click="goDetail(n)">
<div class="info">
<div class="date">
2023-12-12
{{n.belongTime}}
</div>
<h3 class="esp_2" style="height: 50px">{{ n.name }}</h3>
<p class="esp_2" />
......@@ -337,25 +337,11 @@ const goDetail = (n) => {
height: 100%;
}
}
.forWei {
display: none;
}
@media (max-width: 500px) {
.box {
width: 100%
}
.forWei {
display: block;
:deep(.el-input__wrapper){
border-radius: 20px;
background: #F4F6FA;
}
}
.forPc {
display: none
}
@media (max-width: 800px) {
.infoPart{padding: 0;}
.activeItem{margin: 0 0 20px;}
.topBannerbox {
background: #fff;
padding: 1px;
......
......@@ -2,20 +2,20 @@
<div>
<div class="box">
<div class="indexTitle">
<h3 class="leftboderTT">要闻</h3>
<a class="more" @click="goList(query1.sortId,'要闻')">MORE</a>
<h3 class="leftboderTT">Asian Games News</h3>
<a class="more" @click="goList(query1.sortId,'Asian Games News')">MORE</a>
</div>
<el-card>
<el-row class="topNews" :gutter="20">
<el-col :lg="12" :sm="24" :md="12">
<el-carousel indicator-position="none" height="330">
<el-carousel-item v-for="(n,index) in newsList" :key="index">
<div class="imgbox carouselImg">
<div class="imgbox carouselImg" @click="goDetail(n)">
<div class="date">
<div class="day">{{ n.belongTime?.substring(8, 10) }}</div>
<p>{{ n.belongTime?.substring(0, 7).replace(/-/g, '/') }}</p>
</div>
<img :src="fillImgUrl_webSite(n.bannerUrl)">
<img :src="fillImgUrl_webSite(n.picUrl)">
<h3 class="esp">{{ n.name }}
</h3>
</div>
......@@ -41,8 +41,8 @@
</el-card>
<div class="indexTitle">
<h3 class="leftboderTT">舞蹈动态</h3>
<a class="more" @click="goList(query2.sortId,'舞蹈动态')">MORE</a>
<h3 class="leftboderTT">Official Release</h3>
<a class="more" @click="goList(query2.sortId,'Official Release')">MORE</a>
</div>
<el-row class="newsflex mb20">
<el-col
......@@ -63,45 +63,46 @@
</div>
</el-col>
</el-row>
<div class="indexTitle">
<h3 class="leftboderTT">官方发布</h3>
<a class="more" @click="goList(query3.sortId,'官方发布')">MORE</a>
</div>
<el-row :gutter="20">
<el-col
v-for="(n,index) in newsList3"
v-show="index<3" :key="n.id" :xs="12" :sm="8"
:lg="8"
>
<div class="activeItem">
<div class="info">
<div class="date">
2023-12-12
</div>
<h3 class="esp_2" style="height: 50px">{{ n.name }}</h3>
<p class="esp_2" />
<a>查看详情</a>
</div>
</div>
</el-col>
</el-row>
<div class="indexTitle">
<h3 class="leftboderTT">专题报道</h3>
<a class="more" @click="goList(query4.sortId,'专题报道')">MORE</a>
</div>
<el-row :gutter="30" class="newsimgcover">
<el-col v-for="(n,index) in newsList4" v-show="index<3" :lg="8" @click="goDetail(n)">
<div class="item shadow">
<div class="imgbox"><img :src="fillImgUrl_webSite(n.picUrl)"></div>
<h3 class="esp">
<span v-if="n.publishType">
<span v-for="(t,index) in n.publishType.split(',')" :key="index" class="jstype">{{ t }}</span>
</span>
{{ n.name }}</h3>
</div>
</el-col>
</el-row>
<!-- <div class="indexTitle">-->
<!-- <h3 class="leftboderTT">官方发布</h3>-->
<!-- <a class="more" @click="goList(query3.sortId,'官方发布')">MORE</a>-->
<!-- </div>-->
<!-- <el-row :gutter="20">-->
<!-- <el-col-->
<!-- v-for="(n,index) in newsList3"-->
<!-- v-show="index<3" :key="n.id" :xs="12" :sm="8"-->
<!-- :lg="8"-->
<!-- >-->
<!-- <div class="activeItem">-->
<!-- <div class="info">-->
<!-- <div class="date">-->
<!-- 2023-12-12-->
<!-- </div>-->
<!-- <h3 class="esp_2" style="height: 50px">{{ n.name }}</h3>-->
<!-- <p class="esp_2" />-->
<!-- <a>查看详情</a>-->
<!-- </div>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- </el-row>-->
<!-- <div class="indexTitle">-->
<!-- <h3 class="leftboderTT">专题报道</h3>-->
<!-- <a class="more" @click="goList(query4.sortId,'专题报道')">MORE</a>-->
<!-- </div>-->
<!-- <el-row :gutter="30" class="newsimgcover">-->
<!-- <el-col v-for="(n,index) in newsList4" v-show="index<3" :lg="8" @click="goDetail(n)">-->
<!-- <div class="item shadow">-->
<!-- <div class="imgbox"><img :src="fillImgUrl_webSite(n.picUrl)"></div>-->
<!-- <h3 class="esp">-->
<!-- <span v-if="n.publishType">-->
<!-- <span v-for="(t,index) in n.publishType.split(',')" :key="index" class="jstype">{{ t }}</span>-->
<!-- </span>-->
<!-- {{ n.name }}</h3>-->
<!-- </div>-->
<!-- </el-col>-->
<!-- </el-row>-->
<div class="mb60" />
</div>
......@@ -124,12 +125,12 @@ const newsList4 = ref([])
const query1 = ref({
pageSize: 5,
pageNum: 1,
sortId:'10000001'
sortId:'10000004'
})
const query2 = ref({
pageSize: 4,
pageNum: 1,
sortId:'10000002'
sortId:'10000005'
})
const query3 = ref({
pageSize: 6,
......@@ -145,8 +146,8 @@ const query4 = ref({
onMounted(() => {
getList(query1.value)
getList2(query2.value)
getList3(query3.value)
getList4(query4.value)
// getList3(query3.value)
// getList4(query4.value)
})
const getList = (obj) => {
......@@ -339,20 +340,7 @@ const goDetail = (n) => {
display: none;
}
@media (max-width: 500px) {
.box {
width: 100%
}
.forWei {
display: block;
:deep(.el-input__wrapper){
border-radius: 20px;
background: #F4F6FA;
}
}
.forPc {
display: none
}
@media (max-width: 800px) {
.infoPart{padding: 0;}
.topBannerbox {
background: #fff;
......
......@@ -5,7 +5,7 @@
<div class="lineHead">
<h3>全部{{ kindName }}</h3>
</div>
<div class="infoPart forPc">
<div class="infoPart">
<div class="newsBlock">
<div v-for="(n,i) in newsList" :key="i" class="item" @click="goDetail(n)">
<div class="date">
......@@ -17,7 +17,7 @@
</div>
<div class="item-body">
<h3 v-html="n.name" />
<p v-html="n.subName" />
<p v-html="n.subName"/>
<a class="go">查看详情
<el-icon class="rotate90_180"><sort-down/></el-icon>
</a>
......@@ -118,25 +118,11 @@ const goDetail = (n) => {
height: 100%;
}
}
.forWei {
display: none;
}
@media (max-width: 500px) {
.box {
width: 100%
}
.forWei {
display: block;
:deep(.el-input__wrapper){
border-radius: 20px;
background: #F4F6FA;
}
}
.forPc {
display: none
}
.infoPart{padding: 0;}
@media (max-width: 800px) {
//.infoPart{padding: 0;}
.topBannerbox {
background: #fff;
padding: 1px;
......@@ -162,5 +148,11 @@ const goDetail = (n) => {
font-size: 14px;
}
}
.newsBlock{
.item{flex-direction: column;margin: 0 0 40px;padding: 0;
.date{position: absolute;top: 20px}
}
.imgbox{width: 100%;height: auto;margin: 0 0 20px}
}
}
</style>
......
<template>
<div>
<div class="box">
<el-card class="mt20 mb20" :body-style="{'padding':'0'}">
<div class="lineHead">
<h3>All {{ kindName }}</h3>
</div>
<div class="infoPart">
<div class="newsBlock">
<div v-for="(n,i) in newsList" :key="i" class="item" @click="goDetail(n)">
<div class="date">
<div class="day">{{ n.belongTime?.substring(8, 10) }}</div>
<p>{{ n.belongTime?.substring(0, 7).replace(/-/g, '/') }}</p>
</div>
<div v-if="n.picUrl" class="imgbox">
<img :src="fillImgUrl_webSite(n.picUrl)">
</div>
<div class="item-body">
<h3 v-html="n.name" />
<p v-html="n.subName" />
<a class="go">Detail
<el-icon class="rotate90_180"><sort-down/></el-icon>
</a>
</div>
</div>
<el-empty v-if="newsList.length == 0" description="no data" />
<div v-if="total>9" class="pc-page-box">
<!-- <el-pagination @current-change="getList" layout="prev, pager, next" :total="total" />-->
<PaginationPc
v-model:page="query.pageNum" v-model:limit="query.pageSize" :total="total"
@pagination="getList"
/>
</div>
</div>
</div>
</el-card>
</div>
</div>
</template>
<script setup>
import { ArrowRight, Search } from '@element-plus/icons-vue'
import { onMounted, ref } from 'vue'
import { getNewsListById } from '@/apiPc/webSite'
import { useRoute, useRouter } from 'vue-router'
// import Pagination from '@/components/Pagination'
const route = useRoute()
const router = useRouter()
const kindName = ref('')
const total = ref(0)
const list = ref([])
const newsList = ref([])
const query = ref({
pageSize: 10,
pageNum: 1
})
onMounted(() => {
console.log(route)
query.value.sortId = route.params.id
kindName.value = route.query.kindName
getList()
})
const getList = () => {
console.log(query.value)
getNewsListById(query.value).then(res => {
newsList.value = res.rows
total.value = res.total
})
}
const goDetail = (n) => {
if (n.isOut == '1') {
window.open(n.jumpUrl)
} else {
window.open(router.resolve({
path: `/news/detail/${n.noteId}`
}).href)
// router.push({
// path: `/news/detail/${n.noteId}`
// })
}
}
</script>
<style lang="scss" scoped>
.flexBody {
display: flex;
align-items: center;
.el-form-item {
margin-bottom: 0
}
}
.infoPart {
padding: 20px;
flex: 1;
& > h3 {
font-size: 24px;
color: var(--el-color-primary);
}
}
.firstItem {
background: #FAFAFA;
}
.searchPark {
background: #F6F6F6;
}
.topBanner {height:500px;
:deep(.el-carousel__container) {
height: 100%;
}
}
.forWei {
display: none;
}
@media (max-width: 800px) {
//.infoPart{padding: 0;}
.topBannerbox {
background: #fff;
padding: 1px;
.el-carousel {
--el-carousel-indicator-height: 4px;
--el-carousel-indicator-width: 4px;
}
}
.topBanner {
height: 160px;
border-radius: 6px;
margin: 10px;
h3{text-align: left;font-size: 15px;padding: 30px 15px 20px;
}
:deep(.el-carousel__indicators--horizontal){left: auto;right: 0;
bottom: 12px;
}
:deep(.el-carousel__button){border-radius: 5px;}
:deep(.el-carousel__indicator.is-active button){width: 12px;}
h3 {
font-size: 14px;
}
}
.newsBlock{
.item{flex-direction: column;margin: 0 0 40px;padding: 0;
.date{position: absolute;top: 20px}
}
.imgbox{width: 100%;height: auto;margin: 0 0 20px}
}
}
</style>
......@@ -93,7 +93,7 @@ const total = ref(0)
const query = ref({
pageSize: 10,
pageNum: 1,
sortId:2000
sortId:20000000
})
onMounted(() => {
getList()
......
<template>
<div>
<div class="box">
<el-card class="mt20 mb20" :body-style="{'padding':'0'}">
<div class="lineHead">
<h3> NOTICE </h3>
</div>
<!-- <el-tabs v-model="activeName" @tab-change="changeTab" @tab-click="clickTab">-->
<!-- <el-tab-pane v-for="(tab,index) in list" :key="index" :label="tab.name" :name="index" />-->
<!-- </el-tabs>-->
<div class="pd20">
<el-row class="mb20">
<el-col :lg="24" :xs="24">
<div v-for="(n,index) in newsList?.slice(0,1)" v-show="index<1" :key="index" class="firstItem" @click="goDetail(n)">
<div class="date">
<p>{{ n.belongTime }}</p>
</div>
<div class="item-body">
<h3 class="esp_2"><span class="istop">TOP</span>{{n.name}}</h3>
</div>
<a class="go">DETAIL ⇀</a>
</div>
</el-col>
<!-- <el-col :lg="8" :xs="24" class="forPc">-->
<!-- <div class="searchPark">-->
<!-- <h3>通知搜索</h3>-->
<!-- <el-form>-->
<!-- <el-form-item>-->
<!-- <div class="flexformItem">-->
<!-- <el-date-picker-->
<!-- v-model="query.year"-->
<!-- class="mr10"-->
<!-- type="year" value-format="YYYY"-->
<!-- placeholder="选择年份" @change="getList"-->
<!-- />-->
<!-- <el-date-picker-->
<!-- v-model="query.month"-->
<!-- format="MM" value-format="MM"-->
<!-- type="month"-->
<!-- placeholder="选择月份" @change="getList"-->
<!-- />-->
<!-- </div>-->
<!-- </el-form-item>-->
<!-- <el-form-item>-->
<!-- <el-input-->
<!-- v-model="query.name"-->
<!-- placeholder="输入关键字"-->
<!-- :suffix-icon="Search" @change="getList"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- </div>-->
<!-- </el-col>-->
</el-row>
<div class="newsLine">
<div v-for="(n,index) in newsList" v-show="index>0" :key="index" class="item" @click=" goDetail(n)">
<div class="date">
<div class="day">{{ n.belongTime?.substring(8, 10) }}</div>
<p>{{ n.belongTime?.substring(0, 7).replace(/-/g, '/') }}</p>
</div>
<div class="item-body">
<h3 v-html="n.name" />
</div>
<a class="go" />
</div>
</div>
<div v-if="total>8" class="pc-page-box">
<PaginationPc v-model:page="query.pageNum" v-model:limit="query.pageSize" :total="total" @pagination="getList" />
</div>
<el-empty v-if="newsList.length == 0" description="暂无数据" />
</div>
</el-card>
</div>
</div>
</template>
<script setup>
import { ArrowRight, Search } from '@element-plus/icons-vue'
import { onMounted, ref } from 'vue'
import { getNewsListById, getNoticeSorts } from '@/apiPc/webSite'
import { useRouter } from 'vue-router'
const router = useRouter()
const activeName = ref(0)
const list = ref([])
const newsList = ref([])
const nowTab = ref({})
const total = ref(0)
const query = ref({
pageSize: 10,
pageNum: 1,
sortId:20000001
})
onMounted(() => {
getList()
})
const getList = () => {
getNewsListById(query.value).then(res => {
newsList.value = res.rows
total.value = res.total
if (query.value.name) {
const pattern = new RegExp(query.value.name, 'gi')
for (var n of newsList.value) {
n.name = n.name.replace(pattern, `<span class="highlight">$&</span>`)
n.subName = n.name.replace(pattern, `<span class="highlight">$&</span>`)
}
}
})
}
const clickTab = (pane, ev) => {
console.log(pane, ev)
}
const goDetail = (n) => {
if (n.isOut == '1') {
window.open(n.jumpUrl)
} else {
router.push({
path: `/news/detail/${n.noteId}`
})
}
}
</script>
<style lang="scss" scoped>
.infoPart{padding: 20px; flex: 1;
&>h3{
font-size: 24px;
color: var(--el-color-primary);}
}
.firstItem{cursor: pointer;
background: #F8F4FF;height: 100%;padding: 10px 20px;
.date{font-weight: bold;transform: scaleX(0.7);transform-origin: left;
font-size: 18px;
color: var(--el-color-primary);}
h3{margin: 10px 0;
font-size: 22px;}
.go{color: var(--el-color-primary);
font-size: 14px;padding: 0 0 5px;}
}
.newsLine{
.item{display: flex;position: relative;width: 100%;height: 90px;
align-items: center;cursor: pointer;border-bottom: 1px dashed #EEEEEE;
.date{width: 60px;height: 60px;text-align: center;background: #FAFAFA;margin: 0 10px;
.day{color: var(--el-color-primary);transform: scaleX(0.7);font-weight: bold;font-size: 24px;}
p{font-size: 14px;margin: 0;transform: scaleX(0.7);font-weight: bold;color: #7B7F83;}
}
.item-body{width: 60%;
h3{padding: 0 10px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;font-size: 18px;color: #000000;}
}
.go{background: url("@/assets/v1/about/go.png") no-repeat center;background-size: contain;
position: absolute;width: 30px;height: 30px;right: 10px;
filter:grayscale(1);
}
}
.item:hover{background: #F8F4FF;
.date{
background: var(--el-color-primary);
.day{color: #fff;}
p{color: #fff;}
}
.item-body{
h3{color: var(--el-color-primary);}
}
}
}
@media (max-width: 500px) {
.box{width: 100%}
.forWei {
display: block;
}
.forPc{display: none}
:deep(.el-tabs__nav-scroll){overflow: auto;}
:deep(.el-card__body){padding: 10px;}
.flexBody{display: block;background: transparent;}
.infoPart{background: #fff;padding: 10px;margin:0 15px}
.firstItem{padding: 10px 20px;
.date{
font-size: 14px;}
h3{margin: 10px 0;
font-size: 14px;}
.go{font-size: 12px;}
}
.newsLine{
.item{height: 50px;
.date{height: 34px;width: 44px;margin: 0;
.day{font-size: 16px;}
p{font-size: 12px;}
}
.item-body{width: 80%;
h3{font-size: 14px;}
}
}
.go{display: none;}
}
}
</style>
......@@ -48,6 +48,7 @@
<el-card class="mt20 mb20">
<div class="leftboderTT">2023.07.22 赛事成绩</div>
<h3 class="text-center">08:00-09:30 拉丁舞第一组比赛结果</h3>
<div class="tablebody">
<table class="table table-striped">
<thead>
<tr class="bg-lineg">
......@@ -111,11 +112,12 @@
</tbody>
</table>
</div>
<br><br>
<div class="leftboderTT">2023.07.22 赛事成绩</div>
<h3 class="text-center">08:00-09:30 拉丁舞第一组比赛结果</h3>
<div class="tablebody">
<table class="table table-striped">
<tr class="bg-lineg">
<td>编号</td>
......@@ -168,6 +170,7 @@
</table>
</div>
</el-card>
</div>
</div>
......@@ -188,18 +191,18 @@ const loading = ref(false)
const calendarValue = ref('2024-07-22')
onMounted(() => {
currYear.value = dayjs().year()
getPlanYears().then(res => {
years.value = res.data
})
})
watch(currYear, (val) => {
if (val) {
getPlanList()
}
})
// onMounted(() => {
// currYear.value = dayjs().year()
// getPlanYears().then(res => {
// years.value = res.data
// })
// })
//
// watch(currYear, (val) => {
// if (val) {
// getPlanList()
// }
// })
function getPlanList() {
loading.value = true
......
<template>
<div>
<div class="box">
<div class="mt20" />
<el-card>
<el-row :gutter="20">
<el-col :sm="24" :lg="12">
<!--赛事日历-->
<el-calendar v-model="calendarValue">
<template #date-cell="data">
<div v-if="data.data.day.slice(8,10)==22" class="primaryDate date">22</div>
<div v-else class="date">
{{ data.data.day.slice(8,10) }}
</div>
</template>
</el-calendar>
</el-col>
<el-col :sm="24" :lg="12">
<div class="calendarList">
<ul>
<li>
<label>08:00~10:30</label> Wuxi Open
</li>
<li>
<label>11:00</label> the WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024 group A
</li>
<li>
<label>12:00</label> the WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024 group B
</li>
<li>
<label>13:00</label> the WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024 group C
</li>
<li>
<label>15:00</label> the WDSF ASIAN DANCESPORT FESTIVAL .WUXI 2024 group D
</li>
</ul>
</div>
</el-col>
</el-row>
</el-card>
<el-card class="mt20 mb20">
<div class="leftboderTT">2023.07.22 Result</div>
<h3 class="text-center">08:00-09:30 The results of the group A of Latin dance competitions</h3>
<div class="tablebody">
<table class="table table-striped">
<thead>
<tr class="bg-lineg">
<td>Number</td>
<td>Name</td>
<td>Country</td>
<td>Score</td>
<td>Ranking</td>
<td>Final result</td>
</tr>
</thead>
<tbody>
<tr>
<td>3456</td>
<td>Wang wenwen</td>
<td>China</td>
<td class="text-primary">198.00</td>
<td>1</td>
<td class="text-primary">advancement</td>
</tr>
<tr>
<td>4567</td>
<td>Zhang</td>
<td>China</td>
<td class="text-primary">191.00</td>
<td>2</td>
<td class="text-primary">advancement</td>
</tr>
<tr>
<td>3456</td>
<td>Sdehj Lijukl</td>
<td>Uzbekistan</td>
<td class="text-primary">190.00</td>
<td>3</td>
<td class="text-primary">advancement</td>
</tr>
<tr>
<td>1255</td>
<td>XuDu</td>
<td>Hong Kong, China</td>
<td class="text-primary">188.00</td>
<td>4</td>
<td class="text-primary">advancement</td>
</tr>
<tr>
<td>1299</td>
<td>Alice Luyr</td>
<td>Thailand</td>
<td class="text-primary">180.00</td>
<td>5</td>
<td class="text-primary">advancement</td>
</tr>
<tr>
<td>1652</td>
<td>Wu Yuan</td>
<td>Hong Kong, China</td>
<td class="text-primary">188.00</td>
<td>6</td>
<td>Out</td>
</tr>
</tbody>
</table>
</div>
<br><br>
<div class="leftboderTT">2023.07.22 Result</div>
<h3 class="text-center">08:00-09:30 The results of the group A of Latin dance competitions</h3>
<div class="tablebody">
<table class="table table-striped">
<tr class="bg-lineg">
<td>Number</td>
<td>Name</td>
<td>Country</td>
<td>Score</td>
<td>Ranking</td>
<td>Final result</td>
</tr>
<tr>
<td>3456</td>
<td>Chen Sha</td>
<td>China</td>
<td class="text-primary">198.00</td>
<td>1</td>
<td class="text-primary">advancement</td>
</tr>
<tr>
<td>3001</td>
<td>ZhaoQian</td>
<td>China</td>
<td class="text-primary">196.00</td>
<td>2</td>
<td class="text-primary">advancement</td>
</tr>
<tr>
<td>1005</td>
<td>ZhangChuChu</td>
<td>China</td>
<td class="text-primary">190.00</td>
<td>3</td>
<td class="text-primary">advancement</td>
</tr>
<tr>
<td>1544</td>
<td>LiuYiwan</td>
<td>China</td>
<td class="text-primary">186.90</td>
<td>4</td>
<td class="text-primary">advancement</td>
</tr>
<tr>
<td>1293</td>
<td>LiHan</td>
<td>China</td>
<td class="text-primary">186.90</td>
<td>5</td>
<td>Out</td>
</tr>
</table>
</div>
</el-card>
</div>
</div>
</template>
<script setup>
import { onMounted, ref, watch } from 'vue'
import { getPlanYears, getYearZtxPlanList } from '@/apiPc/train'
import { ArrowRight } from '@element-plus/icons-vue'
import { dayjs } from 'element-plus'
import { szToHz } from '@/utils/ruoyi'
const years = ref([])
const currYear = ref(null)
const ztxPlanList = ref([])
const planList = ref([])
const loading = ref(false)
const calendarValue = ref('2024-07-22')
// onMounted(() => {
// currYear.value = dayjs().year()
// getPlanYears().then(res => {
// years.value = res.data
// })
// })
//
// watch(currYear, (val) => {
// if (val) {
// getPlanList()
// }
// })
function getPlanList() {
loading.value = true
Promise.all([
getYearZtxPlanList({
year: currYear.value,
type: 1// 中跆协
}),
getYearZtxPlanList({
year: currYear.value,
type: 0 // 省
})
]).then(res => {
loading.value = false
ztxPlanList.value = res[0].rows
planList.value = res[1].rows
})
}
</script>
<style scoped lang="scss">
.leftboderTT{margin: 0 0 20px;color: var(--el-color-primary);
font-size: 20px;}
h3{background: #F5F0FF;margin: 0;padding: 10px 0;
color: var(--el-color-primary);
font-size: 18px;}
.table { border-spacing: 0;
border-collapse: collapse;
width: 100%;
max-width: 100%;
margin-bottom: 20px;
td,th{ padding: 8px; font-size: 14px;}
}
:deep(.table-striped > tbody > tr:nth-of-type(odd)){
background: #F6F9FE;
}
.el-calendar{--el-calendar-border:none;--el-calendar-cell-width:51px;text-align:center;
--el-text-color-regular:#8E8D94;
:deep(.el-calendar__header){justify-content: center;}
:deep(.el-calendar__body){border: 1px solid #F0F0F0;padding: 0}
:deep(.el-calendar-table .el-calendar-day){padding: 1px;}
:deep(.el-calendar-table td.is-selected){background: transparent;}
:deep(.el-calendar__button-group){display: none;}
}
.primaryDate{color: #fff;
background: linear-gradient(90deg, #8623FC, #453DEA);}
.date{ margin:5px auto;border-radius: 50%;width: 30px;height: 30px;line-height: 30px;
font-weight: bold;
}
.calendarList{border: 1px solid #F0F0F0;padding:12px 20px;overflow: hidden;
margin: 46px 0 0;
ul{
li{background: #F6F9FE;margin:7px 0 7px 20px;position: relative;padding: 13px;
border-radius: 10px;
font-weight: 500;
font-size: 15px;
label{color: #453DEA;margin-right: 15px;
&::before{content: '';background:#fff;left: -17px;top: 0px;bottom: 0;margin: auto;
border-radius: 50%;width: 2px;height: 2px;position: absolute;z-index: 1}
}
}
li::before{content: '';background: linear-gradient(0deg, #8623FC, #453DEA);
border-radius: 50%;width: 8px;height: 8px;position: absolute;
left: -20px;top: 0;bottom: 0;margin: auto;z-index: 1;
}
li::after{content: ''; left: -16px;width: 1px;height: 100%;
background: #EBEBEB; position: absolute;top: 20px}
li:hover{color: #fff;
background: linear-gradient(-90deg, #8623FC, #453DEA);
label{color: #fff;}
}
}
}
</style>
<template>
<div>
<div class="box">
<el-breadcrumb class="mt20" :separator-icon="ArrowRight">
<el-breadcrumb-item :to="{ path: '/' }">
<el-icon>
<HomeFilled/>
</el-icon>
首页
</el-breadcrumb-item>
<el-breadcrumb-item>搜索结果</el-breadcrumb-item>
</el-breadcrumb>
<!-- <el-breadcrumb class="mt20" :separator-icon="ArrowRight">-->
<!-- <el-breadcrumb-item :to="{ path: '/' }">-->
<!-- <el-icon>-->
<!-- <HomeFilled/>-->
<!-- </el-icon>-->
<!-- 首页-->
<!-- </el-breadcrumb-item>-->
<!-- <el-breadcrumb-item>搜索结果</el-breadcrumb-item>-->
<!-- </el-breadcrumb>-->
<el-card class="mt20 mb20">
<div class="infoPart">
<div class="infoPart" style="min-height: 65vh">
<div class="newsBlock">
<div v-for="n in newsList" class="item" @click="goDetail(n)">
<div class="date">
......@@ -29,7 +29,7 @@
<a class="go"/>
</div>
</div>
<el-empty v-if="newsList.length == 0" description="暂无数据"/>
<el-empty v-if="newsList.length == 0" />
</div>
......
......@@ -53,18 +53,18 @@
<el-col :lg="12" :xs="24" :sm="12">
<div class="black-pic-bg">
<div class="item" @click="goCoach(1)">
<div><img src="@/assets/v1/hy_btn01.png">
<div>
<h3>教练员</h3></div>
</div>
<div class="item" @click="goCoach(2)">
<div><img src="@/assets/v1/hy_btn02.png">
<div>
<h3>裁判员</h3></div>
</div>
<!-- <div class="item" @click="goNationalTeam('t1')">-->
<!-- <div><img src="@/assets/v1/hy_btn03.png"><h3>运动员</h3></div>-->
<!-- </div>-->
<div class="item" @click="goCoach(3)">
<div><img src="@/assets/v1/hy_btn04.png">
<div>
<h3>考官</h3></div>
</div>
</div>
......
......@@ -111,7 +111,6 @@ export default defineConfig(({ mode, command }) => {
rollupOptions: {
input: {
main: resolve(__dirname, 'index.html')
// pc: resolve(__dirname, 'pc.html')
}
}
}
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!