no message
Showing
39 changed files
with
1071 additions
and
518 deletions
| ... | @@ -10,7 +10,7 @@ export function getMaList(params) { | ... | @@ -10,7 +10,7 @@ export function getMaList(params) { |
| 10 | 10 | ||
| 11 | export function getMatchById(params) { | 11 | export function getMatchById(params) { |
| 12 | return request({ | 12 | return request({ |
| 13 | url: `/league/competition/detail`, | 13 | url: `/league/competition/PCDetail`, |
| 14 | method: 'get', | 14 | method: 'get', |
| 15 | params: params | 15 | params: params |
| 16 | }) | 16 | }) |
| ... | @@ -287,6 +287,14 @@ export function getGroupPersonList(query,groupId) { | ... | @@ -287,6 +287,14 @@ export function getGroupPersonList(query,groupId) { |
| 287 | params: query | 287 | params: query |
| 288 | }) | 288 | }) |
| 289 | } | 289 | } |
| 290 | export function getPerPersonList(query,userId) { | ||
| 291 | return request({ | ||
| 292 | url: `/systemj/personInfo/getPersonInfoListByPersonIdNoLabel/${userId}`, | ||
| 293 | method: 'get', | ||
| 294 | params: query | ||
| 295 | }) | ||
| 296 | } | ||
| 297 | |||
| 290 | 298 | ||
| 291 | // 获取团队报名时已选人员 | 299 | // 获取团队报名时已选人员 |
| 292 | export function getChooseDoneGroupCoachs(cptId, groupId) { | 300 | export function getChooseDoneGroupCoachs(cptId, groupId) { |
| ... | @@ -540,3 +548,26 @@ export function getProjectPageByPerIds(query) { | ... | @@ -540,3 +548,26 @@ export function getProjectPageByPerIds(query) { |
| 540 | }) | 548 | }) |
| 541 | } | 549 | } |
| 542 | 550 | ||
| 551 | export function createWePay(data) { | ||
| 552 | return request({ | ||
| 553 | url: `/league/signOrder/wxPay`, | ||
| 554 | method: 'post', | ||
| 555 | data:data | ||
| 556 | }) | ||
| 557 | } | ||
| 558 | export function createPalPay(data) { | ||
| 559 | return request({ | ||
| 560 | url: `/league/signOrder/palPay`, | ||
| 561 | method: 'post', | ||
| 562 | data:data | ||
| 563 | }) | ||
| 564 | } | ||
| 565 | export function callbackPalPay(tradeNo) { | ||
| 566 | return request({ | ||
| 567 | url: `/league/signOrder/palPay/callback`, | ||
| 568 | method: 'post', | ||
| 569 | data:{ | ||
| 570 | tradeNo:tradeNo | ||
| 571 | } | ||
| 572 | }) | ||
| 573 | } | ... | ... |
src/assets/img/rr.jpg
0 → 100644
125 KB
| ... | @@ -787,7 +787,6 @@ img{display: block;} | ... | @@ -787,7 +787,6 @@ img{display: block;} |
| 787 | .el-menu-item:hover{background-color:#fff; } | 787 | .el-menu-item:hover{background-color:#fff; } |
| 788 | } | 788 | } |
| 789 | .black-pic-bg{ | 789 | .black-pic-bg{ |
| 790 | background: url("@/assets/v1/ss03.png") no-repeat center; | ||
| 791 | background-size: cover;height: 100%;display: flex; | 790 | background-size: cover;height: 100%;display: flex; |
| 792 | justify-content: space-around; | 791 | justify-content: space-around; |
| 793 | .item{background:rgba(255, 255, 255, 0.3); | 792 | .item{background:rgba(255, 255, 255, 0.3); | ... | ... |
| ... | @@ -42,7 +42,7 @@ | ... | @@ -42,7 +42,7 @@ |
| 42 | </el-dialog> | 42 | </el-dialog> |
| 43 | 43 | ||
| 44 | <!-- 上传提示 --> | 44 | <!-- 上传提示 --> |
| 45 | <div v-if="showUpload && fileList.length < limit" class="el-upload__tip"> | 45 | <div v-if="isShowTip" class="el-upload__tip"> |
| 46 | 请上传 | 46 | 请上传 |
| 47 | <template v-if="fileSize"> | 47 | <template v-if="fileSize"> |
| 48 | 大小不超过 | 48 | 大小不超过 |
| ... | @@ -152,8 +152,12 @@ const props = defineProps({ | ... | @@ -152,8 +152,12 @@ const props = defineProps({ |
| 152 | disabled: { | 152 | disabled: { |
| 153 | type: Boolean, | 153 | type: Boolean, |
| 154 | default: false | 154 | default: false |
| 155 | }, | ||
| 156 | isShowTip: { | ||
| 157 | type: Boolean, | ||
| 158 | default: true | ||
| 155 | } | 159 | } |
| 156 | 160 | ||
| 157 | }) | 161 | }) |
| 158 | const accept = computed(() => { | 162 | const accept = computed(() => { |
| 159 | return _.map(props.fileType, (t) => { | 163 | return _.map(props.fileType, (t) => { |
| ... | @@ -220,7 +224,7 @@ watch( | ... | @@ -220,7 +224,7 @@ watch( |
| 220 | (value) => { | 224 | (value) => { |
| 221 | showUpload.value = value !== props.limit | 225 | showUpload.value = value !== props.limit |
| 222 | }, { deep: true, immediate: true } | 226 | }, { deep: true, immediate: true } |
| 223 | 227 | ||
| 224 | ) | 228 | ) |
| 225 | 229 | ||
| 226 | 230 | ... | ... |
| ... | @@ -16,7 +16,7 @@ | ... | @@ -16,7 +16,7 @@ |
| 16 | <script setup> | 16 | <script setup> |
| 17 | import variables from '@/assets/styles/variables.module.scss' | 17 | import variables from '@/assets/styles/variables.module.scss' |
| 18 | import logo from '@/assets/logo/logo@2x.png' | 18 | import logo from '@/assets/logo/logo@2x.png' |
| 19 | import logoIco from '@/assets/logo/ico.png' | 19 | // import logoIco from '@/assets/logo/ico.png' |
| 20 | import useSettingsStore from '@/store/modules/settings' | 20 | import useSettingsStore from '@/store/modules/settings' |
| 21 | 21 | ||
| 22 | defineProps({ | 22 | defineProps({ | ... | ... |
src/layoutPc/components/AppTop.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div class="topNav"> | ||
| 3 | <router-link to="/"> | ||
| 4 | <img class="logo" src="@/assets/v1/nav_logo.png"> | ||
| 5 | </router-link> | ||
| 6 | |||
| 7 | <div class="flex-right" style="display:none;"> | ||
| 8 | <div class="ml20 forPc" > | ||
| 9 | <el-button v-if="!isLogin" style="border-radius: 20px;" class="loginBtn"> | ||
| 10 | <span @click="goLogin">{{ language==0?'登录':'LOGIN' }}</span> | ||
| 11 | <!-- | <span @click="goRegister">注册</span>--> | ||
| 12 | </el-button> | ||
| 13 | |||
| 14 | <el-button v-if="isLogin" style="border-radius: 20px;" class="loginBtn"> | ||
| 15 | <span @click="router.push('/center/myInfo')">{{ language==0?'个人中心':'Personal' }}</span> | ||
| 16 | | <span @click="logout()">{{language==0?'退出':'Exit'}}</span> | ||
| 17 | </el-button> | ||
| 18 | </div> | ||
| 19 | </div> | ||
| 20 | <a class="ropenbtn" @click="showDrawer"> | ||
| 21 | <img src="@/assets/v1/menu.png"> | ||
| 22 | </a> | ||
| 23 | </div> | ||
| 24 | |||
| 25 | <el-drawer | ||
| 26 | v-model="drawer" size="100%" | ||
| 27 | :style="{'--el-drawer-padding-primary':0}" direction="ltr" | ||
| 28 | :with-header="false" title="菜单" | ||
| 29 | > | ||
| 30 | <div class="weiHead"> | ||
| 31 | <div class="languageBtn"> | ||
| 32 | <span v-if="language==0" :class="language==0?'active':''" @click="changeLanguage(0)">中文</span> | ||
| 33 | <span v-else :class="language==0?'active':''" @click="changeLanguage(0)">CN</span> | ||
| 34 | | | ||
| 35 | <span :class="language==1?'active':''" @click="changeLanguage(1)">EN</span> | ||
| 36 | </div> | ||
| 37 | |||
| 38 | <el-icon color="#453DEA" size="30" @click="closeDrawer"><close/></el-icon> | ||
| 39 | </div> | ||
| 40 | |||
| 41 | <el-menu class="weiMenu" | ||
| 42 | v-if="language==0" | ||
| 43 | router :default-active="activeIndex" mode="vertical" :ellipsis="false" | ||
| 44 | popper-effect="dark" @select="handleSelect" | ||
| 45 | > | ||
| 46 | <el-menu-item index="/">首页</el-menu-item> | ||
| 47 | <el-menu-item index="/news">新闻资讯</el-menu-item> | ||
| 48 | <el-menu-item index="/notice">通知公告</el-menu-item> | ||
| 49 | <el-menu-item index="/match/list/0">大赛报名</el-menu-item> | ||
| 50 | <el-menu-item index="/saiC">赛程安排</el-menu-item> | ||
| 51 | <el-menu-item index="/meta">媒体中心</el-menu-item> | ||
| 52 | <el-menu-item index="/guide">参赛指南</el-menu-item> | ||
| 53 | <el-sub-menu index="/about"> | ||
| 54 | <template #title>关于我们</template> | ||
| 55 | <el-menu-item index="/about/wuDao">舞蹈节</el-menu-item> | ||
| 56 | <el-menu-item index="/about/culture">地方文化</el-menu-item> | ||
| 57 | </el-sub-menu> | ||
| 58 | </el-menu> | ||
| 59 | <el-menu class="weiMenu" | ||
| 60 | v-if="language==1" | ||
| 61 | router :default-active="activeIndex" mode="vertical" :ellipsis="false" | ||
| 62 | popper-effect="dark" @select="handleSelect" | ||
| 63 | > | ||
| 64 | <el-menu-item index="/">HOME</el-menu-item> | ||
| 65 | <el-menu-item index="/news">NEWS</el-menu-item> | ||
| 66 | <el-menu-item index="/notice">NOTICEBOARD</el-menu-item> | ||
| 67 | <el-menu-item index="/match/list/0">SIGN UP</el-menu-item> | ||
| 68 | <el-menu-item index="/saiC">COMPETITIONS</el-menu-item> | ||
| 69 | <el-menu-item index="/meta">MEDIA</el-menu-item> | ||
| 70 | <el-menu-item index="/guide">GUIDELINE</el-menu-item> | ||
| 71 | <el-sub-menu index="/about"> | ||
| 72 | <template #title>CONTACT & MORE</template> | ||
| 73 | <el-menu-item index="/about/wuDao">About Us</el-menu-item> | ||
| 74 | <el-menu-item index="/about/regulations">Rules & Regulations</el-menu-item> | ||
| 75 | <el-menu-item index="/about/culture">Culture</el-menu-item> | ||
| 76 | </el-sub-menu> | ||
| 77 | </el-menu> | ||
| 78 | </el-drawer> | ||
| 79 | <LoginDialog ref="pcloginDialog" @submitForm="reFlash" /> | ||
| 80 | <SearchPop v-if="language==0" ref="searchDialog" /> | ||
| 81 | <SearchPop_en v-if="language==1" ref="searchDialog" /> | ||
| 82 | </template> | ||
| 83 | |||
| 84 | <script setup> | ||
| 85 | import { computed, ref, watch } from 'vue' | ||
| 86 | import { useRoute, useRouter } from 'vue-router' | ||
| 87 | import useUserStore from '@/store/modules/user' | ||
| 88 | import { Search } from '@element-plus/icons-vue' | ||
| 89 | import { getCurrentInstance, onMounted } from '@vue/runtime-core' | ||
| 90 | import _ from 'lodash' | ||
| 91 | import LoginDialog from '@/viewsPc/login' | ||
| 92 | import SearchPop from './indexSearch' | ||
| 93 | import SearchPop_en from './indexSearch_en' | ||
| 94 | import Captcha from './captcha' | ||
| 95 | import CaptchaSms from './captchaSms' | ||
| 96 | import cache from '@/plugins/cache' | ||
| 97 | import locale from 'element-plus/lib/locale/lang/zh-cn' | ||
| 98 | const router = useRouter() | ||
| 99 | const route = useRoute() | ||
| 100 | const { proxy } = getCurrentInstance() | ||
| 101 | const isLogin = ref(false) | ||
| 102 | const activeIndex = ref('/') | ||
| 103 | const registerVisible = ref(false) | ||
| 104 | const loginForm = ref({}) | ||
| 105 | const drawer = ref(false) | ||
| 106 | const mode = ref('horizontal') | ||
| 107 | const language = ref(cache.local.get('language') || 0) | ||
| 108 | onMounted(() => { | ||
| 109 | console.log(window.location.href) | ||
| 110 | if (useUserStore().user) { | ||
| 111 | isLogin.value = true | ||
| 112 | } | ||
| 113 | // if (window.location.href.indexOf('en') > -1) { | ||
| 114 | // cache.local.set('language', 1) | ||
| 115 | // // location.reload() | ||
| 116 | // } | ||
| 117 | if (route.fullPath.indexOf('news') > -1) { | ||
| 118 | activeIndex.value = '/news' | ||
| 119 | } else if (route.fullPath.indexOf('notice') > -1) { | ||
| 120 | activeIndex.value = '/notice' | ||
| 121 | } else if (route.fullPath.indexOf('about') > -1) { | ||
| 122 | activeIndex.value = '/about' | ||
| 123 | } else if (route.fullPath.indexOf('mate') > -1) { | ||
| 124 | activeIndex.value = '/mate' | ||
| 125 | } else if (route.fullPath.indexOf('guide') > -1) { | ||
| 126 | activeIndex.value = '/guide' | ||
| 127 | } else if (route.fullPath.indexOf('saiC') > -1) { | ||
| 128 | activeIndex.value = '/saiC' | ||
| 129 | } | ||
| 130 | // console.log(activeIndex.value) | ||
| 131 | }) | ||
| 132 | function changeLanguage(n) { | ||
| 133 | // language.value = n | ||
| 134 | cache.local.set('language', n) | ||
| 135 | location.reload() | ||
| 136 | } | ||
| 137 | function showDrawer() { | ||
| 138 | drawer.value = true | ||
| 139 | } | ||
| 140 | function closeDrawer() { | ||
| 141 | drawer.value = false | ||
| 142 | } | ||
| 143 | function handleSelect(key, keyPath) { | ||
| 144 | // console.log(key) | ||
| 145 | activeIndex.value = key | ||
| 146 | drawer.value = false | ||
| 147 | } | ||
| 148 | |||
| 149 | const logout = () => { | ||
| 150 | proxy.$modal.confirm('确定退出?').then(function() { | ||
| 151 | return useUserStore().logOut() | ||
| 152 | }).then(() => { | ||
| 153 | isLogin.value = true | ||
| 154 | location.reload() | ||
| 155 | }) | ||
| 156 | } | ||
| 157 | |||
| 158 | const goLogin = (flag) => { | ||
| 159 | let param = null | ||
| 160 | if (_.isBoolean(flag)) { | ||
| 161 | param = { | ||
| 162 | notShowClose: flag | ||
| 163 | } | ||
| 164 | } | ||
| 165 | proxy.$refs['pcloginDialog'].open(param) | ||
| 166 | } | ||
| 167 | |||
| 168 | const reFlash = () => { | ||
| 169 | // 刷新 | ||
| 170 | location.reload() | ||
| 171 | } | ||
| 172 | watch(() => useUserStore().reLogin, (val) => { | ||
| 173 | if (val) { | ||
| 174 | goLogin() | ||
| 175 | } | ||
| 176 | }) | ||
| 177 | |||
| 178 | function searchNews() { | ||
| 179 | proxy.$refs['searchDialog'].open() | ||
| 180 | } | ||
| 181 | function getCode() { | ||
| 182 | proxy.$refs['codeRef'].getCode() | ||
| 183 | } | ||
| 184 | </script> | ||
| 185 | |||
| 186 | <style scoped lang="scss"> | ||
| 187 | .loginBtn {color: #fff;margin-right: 15px;border: none; | ||
| 188 | background: linear-gradient(-90deg, #8623FC, #453DEA);box-shadow:0 0 10px #fff; | ||
| 189 | &:active { | ||
| 190 | color: #fff; | ||
| 191 | background:linear-gradient(0deg, #8623FC, #453DEA); | ||
| 192 | border:none; | ||
| 193 | } | ||
| 194 | |||
| 195 | &:hover { | ||
| 196 | box-shadow:0 0 10px var(--el-color-primary);border: none; | ||
| 197 | color:#fff; | ||
| 198 | } | ||
| 199 | |||
| 200 | |||
| 201 | } | ||
| 202 | |||
| 203 | |||
| 204 | |||
| 205 | .topNav { | ||
| 206 | box-shadow: 0px 0px 13px rgba(113,113,113); | ||
| 207 | display: flex; | ||
| 208 | justify-content: space-between; | ||
| 209 | height: 80px; | ||
| 210 | align-items: center; | ||
| 211 | |||
| 212 | .logo { | ||
| 213 | height: 60px; | ||
| 214 | margin-left: 40px; | ||
| 215 | } | ||
| 216 | |||
| 217 | .flex-right { | ||
| 218 | display: flex; | ||
| 219 | align-items: center; | ||
| 220 | } | ||
| 221 | |||
| 222 | .search { | ||
| 223 | position: relative; | ||
| 224 | |||
| 225 | .el-button.is-circle:hover { | ||
| 226 | color:var(--el-color-primary); | ||
| 227 | border-color: var(--el-color-primary); | ||
| 228 | } | ||
| 229 | .el-button.is-circle:active { | ||
| 230 | background: var(--el-color-primary); | ||
| 231 | color: #fff; | ||
| 232 | border-color: var(--el-color-primary); | ||
| 233 | } | ||
| 234 | .el-button.is-circle:focus { | ||
| 235 | border-color: var(--el-color-primary) | ||
| 236 | } | ||
| 237 | :deep(.el-input .el-input__wrapper) { | ||
| 238 | box-shadow: none; | ||
| 239 | border-radius: 18px; | ||
| 240 | background: #F4F4F4; | ||
| 241 | } | ||
| 242 | |||
| 243 | .el-icon { | ||
| 244 | position: absolute; | ||
| 245 | right: 5px; | ||
| 246 | } | ||
| 247 | } | ||
| 248 | } | ||
| 249 | |||
| 250 | .menuBox { | ||
| 251 | height: 60px; | ||
| 252 | background: var(--el-color-primary); | ||
| 253 | } | ||
| 254 | |||
| 255 | |||
| 256 | .ropenbtn{padding: 10px;display: none; | ||
| 257 | img{ width: 50px;} | ||
| 258 | } | ||
| 259 | |||
| 260 | :deep(.el-input){height: 100%} | ||
| 261 | :deep(.el-form-item){height: 40px;} | ||
| 262 | .home-menu .el-menu--horizontal > .el-menu-item{margin: 0 5px; font-size: 18px;} | ||
| 263 | .home-menu .el-sub-menu .el-sub-menu__title{font-size: 18px;} | ||
| 264 | .weiMenu.el-menu{ | ||
| 265 | border: none; | ||
| 266 | :deep(.el-menu-item.is-active){color: var(--el-color-primary);} | ||
| 267 | } | ||
| 268 | .weiHead{display: flex;justify-content: end;padding: 15px;align-items: center; | ||
| 269 | .languageBtn{font-size: 20px;margin-right: 20px;line-height: 30px;white-space: nowrap;} | ||
| 270 | } | ||
| 271 | .weiMenu{ | ||
| 272 | .el-menu-item{font-size: 20px} | ||
| 273 | :deep(.el-sub-menu__title){font-size: 20px} | ||
| 274 | :deep(.el-sub-menu .el-sub-menu__icon-arrow){font-size: 20px} | ||
| 275 | } | ||
| 276 | |||
| 277 | @media (max-width: 1400px) { | ||
| 278 | .search { | ||
| 279 | display: none; | ||
| 280 | } | ||
| 281 | } | ||
| 282 | @media (max-width: 1340px) { | ||
| 283 | .loginBtn { | ||
| 284 | display: none; | ||
| 285 | } | ||
| 286 | .home-menu .el-menu--horizontal > .el-menu-item{margin: 0; } | ||
| 287 | } | ||
| 288 | @media (max-width: 1000px) { | ||
| 289 | .box { | ||
| 290 | width: 100% | ||
| 291 | } | ||
| 292 | } | ||
| 293 | |||
| 294 | @media (max-width: 800px) { | ||
| 295 | |||
| 296 | .ropenbtn{display: block} | ||
| 297 | |||
| 298 | .forPc { | ||
| 299 | display: none; | ||
| 300 | } | ||
| 301 | } | ||
| 302 | |||
| 303 | </style> | ||
| 304 |
| 1 | export { default as AppMain } from './AppMain' | 1 | export { default as AppMain } from './AppMain' |
| 2 | export { default as AppHeader } from './AppHeader' | 2 | export { default as AppHeader } from './AppHeader' |
| 3 | export { default as AppBottom } from './AppBottom' | 3 | export { default as AppBottom } from './AppBottom' |
| 4 | export { default as AppTop } from './AppTop' | ||
| 4 | 5 | ... | ... |
src/layoutPc/index2.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <app-top /> | ||
| 4 | <app-main /> | ||
| 5 | <app-bottom /> | ||
| 6 | </div> | ||
| 7 | </template> | ||
| 8 | |||
| 9 | <script setup> | ||
| 10 | import { AppMain, AppTop, AppBottom } from './components' | ||
| 11 | </script> | ||
| 12 | |||
| 13 | <style lang="scss"> | ||
| 14 | // match | ||
| 15 | .kind{ | ||
| 16 | .el-radio-button{ margin: 0 14px 0 0;} | ||
| 17 | .el-radio-button__inner{border: none!important;} | ||
| 18 | .el-radio-button__original-radio:checked+.el-radio-button__inner{ | ||
| 19 | background: #CA171D;border-radius: 0;} | ||
| 20 | } | ||
| 21 | </style> |
| ... | @@ -5,6 +5,7 @@ import { | ... | @@ -5,6 +5,7 @@ import { |
| 5 | } from 'vue-router' | 5 | } from 'vue-router' |
| 6 | /* Layout */ | 6 | /* Layout */ |
| 7 | import Layout from '@/layoutPc' | 7 | import Layout from '@/layoutPc' |
| 8 | import Layout2 from '@/layoutPc/index2' | ||
| 8 | import Empty from '@/layoutPc/empty' | 9 | import Empty from '@/layoutPc/empty' |
| 9 | import NProgress from "nprogress"; | 10 | import NProgress from "nprogress"; |
| 10 | import {getToken} from "@/utils/auth"; | 11 | import {getToken} from "@/utils/auth"; |
| ... | @@ -401,18 +402,6 @@ export const constantRoutes = [ | ... | @@ -401,18 +402,6 @@ export const constantRoutes = [ |
| 401 | redirect: '/match/list', | 402 | redirect: '/match/list', |
| 402 | children: [ | 403 | children: [ |
| 403 | { | 404 | { |
| 404 | path: 'commitDone/:orderId', | ||
| 405 | component: () => import('@/viewsPc/match/commitDone'), | ||
| 406 | name: 'commitDone', | ||
| 407 | meta: { title: '提交审核'} | ||
| 408 | }, | ||
| 409 | { | ||
| 410 | path: 'pay', | ||
| 411 | component: () => import('@/viewsPc/match/pay'), | ||
| 412 | name: 'signPay', | ||
| 413 | meta: { title: '缴费清单' } | ||
| 414 | }, | ||
| 415 | { | ||
| 416 | path: 'list', | 405 | path: 'list', |
| 417 | component: () => import('@/viewsPc/match/index'), | 406 | component: () => import('@/viewsPc/match/index'), |
| 418 | name: 'matchList', | 407 | name: 'matchList', |
| ... | @@ -423,48 +412,6 @@ export const constantRoutes = [ | ... | @@ -423,48 +412,6 @@ export const constantRoutes = [ |
| 423 | component: () => import('@/viewsPc/match/detail'), | 412 | component: () => import('@/viewsPc/match/detail'), |
| 424 | name: 'matchDetail', | 413 | name: 'matchDetail', |
| 425 | meta: { title: '赛事详情' } | 414 | meta: { title: '赛事详情' } |
| 426 | }, | ||
| 427 | { | ||
| 428 | path: 'list/:id/singleSign', | ||
| 429 | component: () => import('@/viewsPc/match/singleSign'), | ||
| 430 | name: 'singleSign', | ||
| 431 | meta: { title: '个人报名' } | ||
| 432 | }, | ||
| 433 | { | ||
| 434 | path: 'list/:id/teamSign', | ||
| 435 | component: () => import('@/viewsPc/match/teamSign'), | ||
| 436 | name: 'teamSign', | ||
| 437 | meta: { title: '团队报名' } | ||
| 438 | }, | ||
| 439 | { | ||
| 440 | path: 'list/:id/chooseCoach', | ||
| 441 | component: () => import('@/viewsPc/match/chooseCoach'), | ||
| 442 | name: 'chooseCoach', | ||
| 443 | meta: { title: '选择教练/领队/其他' } | ||
| 444 | }, | ||
| 445 | { | ||
| 446 | path: 'list/:id/chooseSportsman', | ||
| 447 | component: () => import('@/viewsPc/match/chooseSportsman'), | ||
| 448 | name: 'chooseSportsman', | ||
| 449 | meta: { title: '选择运动员' } | ||
| 450 | }, | ||
| 451 | { | ||
| 452 | path: 'list/:id/chooseProject', | ||
| 453 | component: () => import('@/viewsPc/match/chooseProject'), | ||
| 454 | name: 'chooseProject', | ||
| 455 | meta: { title: '选择参赛项目' } | ||
| 456 | }, | ||
| 457 | { | ||
| 458 | path: 'list/:id/expenseDetails', | ||
| 459 | component: () => import('@/viewsPc/match/expenseDetails'), | ||
| 460 | name: 'expenseDetails', | ||
| 461 | meta: { title: '费用明细' } | ||
| 462 | }, | ||
| 463 | { | ||
| 464 | path: 'list/:id/signPreview', | ||
| 465 | component: () => import('@/viewsPc/match/signPreview'), | ||
| 466 | name: 'signPreview', | ||
| 467 | meta: { title: '提交审核' } | ||
| 468 | } | 415 | } |
| 469 | ] | 416 | ] |
| 470 | }, | 417 | }, |
| ... | @@ -542,6 +489,79 @@ export const constantRoutes = [ | ... | @@ -542,6 +489,79 @@ export const constantRoutes = [ |
| 542 | ] | 489 | ] |
| 543 | } | 490 | } |
| 544 | ] | 491 | ] |
| 492 | }, | ||
| 493 | { | ||
| 494 | path:'/', | ||
| 495 | component: Layout2, | ||
| 496 | children: [ | ||
| 497 | { | ||
| 498 | path: 'match', | ||
| 499 | component: Empty, | ||
| 500 | redirect: '/match/list', | ||
| 501 | children: [ | ||
| 502 | { | ||
| 503 | path: 'commitDone/:orderId', | ||
| 504 | component: () => import('@/viewsPc/match/commitDone'), | ||
| 505 | name: 'commitDone', | ||
| 506 | meta: { title: '提交审核'} | ||
| 507 | }, | ||
| 508 | { | ||
| 509 | path: 'payOk', | ||
| 510 | component: () => import('@/viewsPc/match/payOk'), | ||
| 511 | name: 'payOk', | ||
| 512 | meta: { title: '支付成功'} | ||
| 513 | }, | ||
| 514 | { | ||
| 515 | path: 'pay', | ||
| 516 | component: () => import('@/viewsPc/match/pay'), | ||
| 517 | name: 'signPay', | ||
| 518 | meta: { title: '缴费清单' } | ||
| 519 | }, | ||
| 520 | { | ||
| 521 | path: 'list/:id/singleSign', | ||
| 522 | component: () => import('@/viewsPc/match/singleSign'), | ||
| 523 | name: 'singleSign', | ||
| 524 | meta: { title: '个人报名' } | ||
| 525 | }, | ||
| 526 | { | ||
| 527 | path: 'list/:id/teamSign', | ||
| 528 | component: () => import('@/viewsPc/match/teamSign'), | ||
| 529 | name: 'teamSign', | ||
| 530 | meta: { title: '团队报名' } | ||
| 531 | }, | ||
| 532 | { | ||
| 533 | path: 'list/:id/chooseCoach', | ||
| 534 | component: () => import('@/viewsPc/match/chooseCoach'), | ||
| 535 | name: 'chooseCoach', | ||
| 536 | meta: { title: '选择教练/领队/其他' } | ||
| 537 | }, | ||
| 538 | { | ||
| 539 | path: 'list/:id/chooseSportsman', | ||
| 540 | component: () => import('@/viewsPc/match/chooseSportsman'), | ||
| 541 | name: 'chooseSportsman', | ||
| 542 | meta: { title: '选择运动员' } | ||
| 543 | }, | ||
| 544 | { | ||
| 545 | path: 'list/:id/chooseProject', | ||
| 546 | component: () => import('@/viewsPc/match/chooseProject'), | ||
| 547 | name: 'chooseProject', | ||
| 548 | meta: { title: '选择参赛项目' } | ||
| 549 | }, | ||
| 550 | { | ||
| 551 | path: 'list/:id/expenseDetails', | ||
| 552 | component: () => import('@/viewsPc/match/expenseDetails'), | ||
| 553 | name: 'expenseDetails', | ||
| 554 | meta: { title: '费用明细' } | ||
| 555 | }, | ||
| 556 | { | ||
| 557 | path: 'list/:id/signPreview', | ||
| 558 | component: () => import('@/viewsPc/match/signPreview'), | ||
| 559 | name: 'signPreview', | ||
| 560 | meta: { title: '提交审核' } | ||
| 561 | } | ||
| 562 | ] | ||
| 563 | }, | ||
| 564 | ] | ||
| 545 | } | 565 | } |
| 546 | ] | 566 | ] |
| 547 | 567 | ... | ... |
| ... | @@ -11,6 +11,7 @@ import {getToken} from "@/utils/auth"; | ... | @@ -11,6 +11,7 @@ import {getToken} from "@/utils/auth"; |
| 11 | import useUserStore from "@/store/modules/user"; | 11 | import useUserStore from "@/store/modules/user"; |
| 12 | import {isRelogin} from "@/utils/request"; | 12 | import {isRelogin} from "@/utils/request"; |
| 13 | import {ElMessage} from "element-plus"; | 13 | import {ElMessage} from "element-plus"; |
| 14 | import Layout2 from "@/layoutPc/index2"; | ||
| 14 | // import useUserStore from '@/store/modules/user' | 15 | // import useUserStore from '@/store/modules/user' |
| 15 | 16 | ||
| 16 | /** | 17 | /** |
| ... | @@ -278,18 +279,6 @@ export const constantRoutes = [ | ... | @@ -278,18 +279,6 @@ export const constantRoutes = [ |
| 278 | redirect: '/match/list', | 279 | redirect: '/match/list', |
| 279 | children: [ | 280 | children: [ |
| 280 | { | 281 | { |
| 281 | path: 'commitDone/:orderId', | ||
| 282 | component: () => import('@/viewsPc/match/commitDone'), | ||
| 283 | name: 'commitDone', | ||
| 284 | meta: { title: '提交审核'} | ||
| 285 | }, | ||
| 286 | { | ||
| 287 | path: 'pay', | ||
| 288 | component: () => import('@/viewsPc/match/pay'), | ||
| 289 | name: 'signPay', | ||
| 290 | meta: { title: '缴费清单' } | ||
| 291 | }, | ||
| 292 | { | ||
| 293 | path: 'list', | 282 | path: 'list', |
| 294 | component: () => import('@/viewsPc/match/index'), | 283 | component: () => import('@/viewsPc/match/index'), |
| 295 | name: 'matchList', | 284 | name: 'matchList', |
| ... | @@ -300,48 +289,6 @@ export const constantRoutes = [ | ... | @@ -300,48 +289,6 @@ export const constantRoutes = [ |
| 300 | component: () => import('@/viewsPc/match/detail_en'), | 289 | component: () => import('@/viewsPc/match/detail_en'), |
| 301 | name: 'matchDetail', | 290 | name: 'matchDetail', |
| 302 | meta: { title: '赛事详情' } | 291 | meta: { title: '赛事详情' } |
| 303 | }, | ||
| 304 | { | ||
| 305 | path: 'list/:id/singleSign', | ||
| 306 | component: () => import('@/viewsPc/match/singleSign'), | ||
| 307 | name: 'singleSign', | ||
| 308 | meta: { title: '个人报名' } | ||
| 309 | }, | ||
| 310 | { | ||
| 311 | path: 'list/:id/teamSign', | ||
| 312 | component: () => import('@/viewsPc/match/teamSign'), | ||
| 313 | name: 'teamSign', | ||
| 314 | meta: { title: '团队报名' } | ||
| 315 | }, | ||
| 316 | { | ||
| 317 | path: 'list/:id/chooseCoach', | ||
| 318 | component: () => import('@/viewsPc/match/chooseCoach'), | ||
| 319 | name: 'chooseCoach', | ||
| 320 | meta: { title: '选择教练/领队/其他' } | ||
| 321 | }, | ||
| 322 | { | ||
| 323 | path: 'list/:id/chooseSportsman', | ||
| 324 | component: () => import('@/viewsPc/match/chooseSportsman'), | ||
| 325 | name: 'chooseSportsman', | ||
| 326 | meta: { title: '选择运动员' } | ||
| 327 | }, | ||
| 328 | { | ||
| 329 | path: 'list/:id/chooseProject', | ||
| 330 | component: () => import('@/viewsPc/match/chooseProject'), | ||
| 331 | name: 'chooseProject', | ||
| 332 | meta: { title: '选择参赛项目' } | ||
| 333 | }, | ||
| 334 | { | ||
| 335 | path: 'list/:id/expenseDetails', | ||
| 336 | component: () => import('@/viewsPc/match/expenseDetails'), | ||
| 337 | name: 'expenseDetails', | ||
| 338 | meta: { title: '费用明细' } | ||
| 339 | }, | ||
| 340 | { | ||
| 341 | path: 'list/:id/signPreview', | ||
| 342 | component: () => import('@/viewsPc/match/signPreview'), | ||
| 343 | name: 'signPreview', | ||
| 344 | meta: { title: '提交审核' } | ||
| 345 | } | 292 | } |
| 346 | ] | 293 | ] |
| 347 | }, | 294 | }, |
| ... | @@ -445,7 +392,81 @@ export const constantRoutes = [ | ... | @@ -445,7 +392,81 @@ export const constantRoutes = [ |
| 445 | meta: { title: 'System messages' } | 392 | meta: { title: 'System messages' } |
| 446 | } | 393 | } |
| 447 | ] | 394 | ] |
| 448 | }] | 395 | } |
| 396 | ] | ||
| 397 | }, | ||
| 398 | { | ||
| 399 | path:'/', | ||
| 400 | component: Layout2, | ||
| 401 | children: [ | ||
| 402 | { | ||
| 403 | path: 'match', | ||
| 404 | component: Empty, | ||
| 405 | redirect: '/match/list', | ||
| 406 | children: [ | ||
| 407 | { | ||
| 408 | path: 'payOk', | ||
| 409 | component: () => import('@/viewsPc/match/payOk'), | ||
| 410 | name: 'payOk', | ||
| 411 | meta: { title: '支付成功'} | ||
| 412 | }, | ||
| 413 | { | ||
| 414 | path: 'commitDone/:orderId', | ||
| 415 | component: () => import('@/viewsPc/match/commitDone'), | ||
| 416 | name: 'commitDone', | ||
| 417 | meta: { title: '提交审核'} | ||
| 418 | }, | ||
| 419 | { | ||
| 420 | path: 'pay', | ||
| 421 | component: () => import('@/viewsPc/match/pay'), | ||
| 422 | name: 'signPay', | ||
| 423 | meta: { title: '缴费清单' } | ||
| 424 | }, | ||
| 425 | { | ||
| 426 | path: 'list/:id/singleSign', | ||
| 427 | component: () => import('@/viewsPc/match/singleSign'), | ||
| 428 | name: 'singleSign', | ||
| 429 | meta: { title: '个人报名' } | ||
| 430 | }, | ||
| 431 | { | ||
| 432 | path: 'list/:id/teamSign', | ||
| 433 | component: () => import('@/viewsPc/match/teamSign'), | ||
| 434 | name: 'teamSign', | ||
| 435 | meta: { title: '团队报名' } | ||
| 436 | }, | ||
| 437 | { | ||
| 438 | path: 'list/:id/chooseCoach', | ||
| 439 | component: () => import('@/viewsPc/match/chooseCoach'), | ||
| 440 | name: 'chooseCoach', | ||
| 441 | meta: { title: '选择教练/领队/其他' } | ||
| 442 | }, | ||
| 443 | { | ||
| 444 | path: 'list/:id/chooseSportsman', | ||
| 445 | component: () => import('@/viewsPc/match/chooseSportsman'), | ||
| 446 | name: 'chooseSportsman', | ||
| 447 | meta: { title: '选择运动员' } | ||
| 448 | }, | ||
| 449 | { | ||
| 450 | path: 'list/:id/chooseProject', | ||
| 451 | component: () => import('@/viewsPc/match/chooseProject'), | ||
| 452 | name: 'chooseProject', | ||
| 453 | meta: { title: '选择参赛项目' } | ||
| 454 | }, | ||
| 455 | { | ||
| 456 | path: 'list/:id/expenseDetails', | ||
| 457 | component: () => import('@/viewsPc/match/expenseDetails'), | ||
| 458 | name: 'expenseDetails', | ||
| 459 | meta: { title: '费用明细' } | ||
| 460 | }, | ||
| 461 | { | ||
| 462 | path: 'list/:id/signPreview', | ||
| 463 | component: () => import('@/viewsPc/match/signPreview'), | ||
| 464 | name: 'signPreview', | ||
| 465 | meta: { title: '提交审核' } | ||
| 466 | } | ||
| 467 | ] | ||
| 468 | }, | ||
| 469 | ] | ||
| 449 | } | 470 | } |
| 450 | ] | 471 | ] |
| 451 | 472 | ... | ... |
| ... | @@ -6,14 +6,13 @@ | ... | @@ -6,14 +6,13 @@ |
| 6 | <el-card class="mb20"> | 6 | <el-card class="mb20"> |
| 7 | <div :class="language==0?'center-menu':'center-menu en-menu'"> | 7 | <div :class="language==0?'center-menu':'center-menu en-menu'"> |
| 8 | <ul v-if="user.utype=='2'"> | 8 | <ul v-if="user.utype=='2'"> |
| 9 | <li | 9 | <li v-for="(m, i) in menus" |
| 10 | v-for="(m, i) in menus" | ||
| 11 | :key="i" | 10 | :key="i" |
| 12 | :class="{ active: m.isActive }" | 11 | :class="{ active: m.isActive }" |
| 13 | > | 12 | > |
| 14 | <a href="javascript:void(0)" @click="toInfo(m)"> | 13 | <a href="javascript:void(0)" @click="toInfo(m,menus)"> |
| 15 | <img :src="m.isActive ? m.picUrl2 : m.picUrl1"> | 14 | <img :src="m.isActive ? m.picUrl2 : m.picUrl1"> |
| 16 | {{m.name}} | 15 | {{m.name }} |
| 17 | </a> | 16 | </a> |
| 18 | </li> | 17 | </li> |
| 19 | </ul> | 18 | </ul> |
| ... | @@ -23,7 +22,7 @@ | ... | @@ -23,7 +22,7 @@ |
| 23 | :key="i" | 22 | :key="i" |
| 24 | :class="{ active: m.isActive }" | 23 | :class="{ active: m.isActive }" |
| 25 | > | 24 | > |
| 26 | <a href="javascript:void(0)" @click="toInfo(m)"> | 25 | <a href="javascript:void(0)" @click="toInfo(m,menusPersonal)"> |
| 27 | <img :src="m.isActive ? m.picUrl2 : m.picUrl1"> | 26 | <img :src="m.isActive ? m.picUrl2 : m.picUrl1"> |
| 28 | {{ m.name }} | 27 | {{ m.name }} |
| 29 | </a> | 28 | </a> |
| ... | @@ -119,6 +118,13 @@ const menusPersonal = ref([ | ... | @@ -119,6 +118,13 @@ const menusPersonal = ref([ |
| 119 | picUrl2: '/img/nav_27_dwn.png', | 118 | picUrl2: '/img/nav_27_dwn.png', |
| 120 | isActive: false | 119 | isActive: false |
| 121 | }, | 120 | }, |
| 121 | { | ||
| 122 | name: language.value==0?'选手管理':'Player Management', | ||
| 123 | routeName: 'myMember', | ||
| 124 | picUrl1: '/img/nav_31.png', | ||
| 125 | picUrl2: '/img/nav_31_dwn.png', | ||
| 126 | isActive: false | ||
| 127 | }, | ||
| 122 | { | 128 | { |
| 123 | name: language.value==0?'我的报名':'My Eegistration', | 129 | name: language.value==0?'我的报名':'My Eegistration', |
| 124 | routeName: 'myMatch', | 130 | routeName: 'myMatch', |
| ... | @@ -141,20 +147,26 @@ const menusPersonal = ref([ | ... | @@ -141,20 +147,26 @@ const menusPersonal = ref([ |
| 141 | isActive: false | 147 | isActive: false |
| 142 | } | 148 | } |
| 143 | ]) | 149 | ]) |
| 144 | 150 | let currMenu | |
| 145 | onMounted(() => { | 151 | onMounted(() => { |
| 146 | user.value = useUserStore().user || {} | 152 | user.value = useUserStore().user || {} |
| 153 | if(user.utype=='1'){ | ||
| 154 | currMenu = _.find(menus.value, (m) => { | ||
| 155 | return m.routeName === route.name | ||
| 156 | }) | ||
| 157 | }else { | ||
| 158 | currMenu = _.find(menusPersonal.value, (m) => { | ||
| 159 | return m.routeName === route.name | ||
| 160 | }) | ||
| 161 | } | ||
| 147 | 162 | ||
| 148 | const currMenu = _.find(menus.value, (m) => { | ||
| 149 | return m.routeName === route.name | ||
| 150 | }) | ||
| 151 | if (currMenu) { | 163 | if (currMenu) { |
| 152 | currMenu.isActive = true | 164 | currMenu.isActive = true |
| 153 | } | 165 | } |
| 154 | }) | 166 | }) |
| 155 | 167 | ||
| 156 | const toInfo = (item) => { | 168 | const toInfo = (item,list) => { |
| 157 | _.each(menus.value, (m) => { | 169 | _.each(list, (m) => { |
| 158 | m.isActive = false | 170 | m.isActive = false |
| 159 | }) | 171 | }) |
| 160 | item.isActive = true | 172 | item.isActive = true | ... | ... |
| ... | @@ -2,54 +2,59 @@ | ... | @@ -2,54 +2,59 @@ |
| 2 | <div class="mb20"> | 2 | <div class="mb20"> |
| 3 | <el-card :body-style="{'padding':'0'}"> | 3 | <el-card :body-style="{'padding':'0'}"> |
| 4 | <div class="indexTitle"> | 4 | <div class="indexTitle"> |
| 5 | <h3 class="leftboderTT" v-if="user.utype=='2'">{{ language==0?'机构基础信息':'Institutional Basic Information' }}</h3> | 5 | <h3 class="leftboderTT" v-if="user.utype=='2'"> |
| 6 | <h3 class="leftboderTT" v-if="user.utype=='1'">{{ language==0?'个人基础信息':'Personal Basic Information' }}</h3> | 6 | {{ language == 0 ? '机构基础信息' : 'Institutional Basic Information' }}</h3> |
| 7 | <h3 class="leftboderTT" v-if="user.utype=='1'">{{ | ||
| 8 | language == 0 ? '个人基础信息' : 'Personal Basic Information' | ||
| 9 | }}</h3> | ||
| 7 | </div> | 10 | </div> |
| 8 | <!-- uType字段 1 是个人 2是团体--> | 11 | <!-- uType字段 1 是个人 2是团体--> |
| 9 | <!-- {{user}}--> | 12 | <!-- {{user}}--> |
| 10 | <team-info :form="myform" :language="language" v-if="user.utype=='2'"/> | 13 | <team-info :form="myform" :language="language" v-if="user.utype=='2'"/> |
| 11 | <div class="pd20"> | 14 | <div class="pd20" v-else> |
| 12 | <div class="d-form-border" style="margin-top: 0"> | 15 | <div class="d-form-border" style="margin-top: 0"> |
| 13 | <el-form class="d-form" label-width="120"> | 16 | <el-form class="d-form" label-width="120" :rules="rules" ref="formref"> |
| 14 | <el-form-item :label="language==0?'用户名':'Account'"> | 17 | <el-form-item :label="language==0?'用户名':'Account'"> |
| 15 | {{user.userName}} | 18 | {{ user.userName }} |
| 16 | </el-form-item> | 19 | </el-form-item> |
| 17 | <el-form-item label="姓名" required> | 20 | <el-form-item :label="language==0?'姓名':'Real Name'" required prop="realName"> |
| 18 | <el-input v-model="myform.realName" /> | 21 | <el-input v-model="myform.realName"/> |
| 19 | </el-form-item> | 22 | </el-form-item> |
| 20 | <el-form-item label="性别" prop="sex" required> | 23 | <el-form-item :label="language==0?'性别':'Sex'" required prop="sex"> |
| 21 | <el-radio-group v-model="myform.sex"> | 24 | <el-radio-group v-model="myform.sex"> |
| 22 | <el-radio label="0" size="large">男</el-radio> | 25 | <el-radio label="0">{{ language == 0 ? '女' : 'female' }}</el-radio> |
| 23 | <el-radio label="1" size="large">女</el-radio> | 26 | <el-radio label="1">{{ language == 0 ? '男' : 'male' }}</el-radio> |
| 24 | </el-radio-group> | 27 | </el-radio-group> |
| 25 | </el-form-item> | 28 | </el-form-item> |
| 26 | <el-form-item label="证件类型"> | 29 | <el-form-item :label="language==0?'证件类型':'ID type'" required prop="idcType"> |
| 27 | <el-select v-model="myform.idcType" placeholder="请选择证件类型" style="width: 100%"> | 30 | <el-select v-model="myform.idcType" style="width: 100%"> |
| 28 | <el-option | 31 | <el-option |
| 29 | v-for="item in certificates" | 32 | v-for="item in certificates" |
| 30 | :key="item.value" | 33 | :key="item.value" |
| 31 | :label="item.label" | 34 | :label="item.label" |
| 32 | :value="item.value" | 35 | :value="item.value" |
| 33 | /> | 36 | /> |
| 34 | </el-select> | 37 | </el-select> |
| 35 | </el-form-item> | 38 | </el-form-item> |
| 36 | <el-form-item label="证件号码"> | 39 | <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode"> |
| 37 | <el-input v-model="myform.idcCode" @blur="checkCode"/> | 40 | <el-input v-model="myform.idcCode" @blur="checkCode"/> |
| 38 | </el-form-item> | 41 | </el-form-item> |
| 39 | <el-form-item label="类型" prop="type"> | 42 | <el-form-item :label="language==0?'类型':'Type'" prop="type"> |
| 40 | <el-select v-model="myform.type" placeholder="请选择" style="width: 100%;"> | 43 | <el-select v-model="myform.type" style="width: 100%;"> |
| 41 | <el-option label="业余" value="0" /> | 44 | <el-option :label="language==0?'业余':'amateur'" value="0"/> |
| 42 | <el-option label="专业" value="1" /> | 45 | <el-option :label="language==0?'专业':'Professional'" value="1"/> |
| 43 | <el-option label="大专院校" value="2" /> | 46 | <el-option :label="language==0?'大专院校':'Colleges and universities'" value="2"/> |
| 44 | <el-option label="其他" value="3" /> | 47 | <el-option :label="language==0?'其他':'Other'" value="3"/> |
| 45 | </el-select> | 48 | </el-select> |
| 46 | </el-form-item> | 49 | </el-form-item> |
| 47 | <el-form-item :label="language==0?'联系人邮箱':'Contact Email'" required prop="email"> | 50 | <el-form-item :label="language==0?'邮箱':'Email'" required prop="email"> |
| 48 | <el-input v-model="myform.email" type="email" :placeholder="language==0?'请输入内容':''"/> | 51 | <el-input v-model="myform.email" type="email" :placeholder="language==0?'请输入内容':''"/> |
| 49 | </el-form-item> | 52 | </el-form-item> |
| 50 | </el-form> | 53 | </el-form> |
| 51 | <div class="text-center"> | 54 | <div class="text-center"> |
| 52 | <el-button type="primary" class="btn-lineG" round @click="save">{{ language==0?'确定修改':'Save' }}</el-button> | 55 | <el-button type="primary" class="btn-lineG" round @click="save"> |
| 56 | {{language == 0 ? '确定修改' : 'Save'}} | ||
| 57 | </el-button> | ||
| 53 | </div> | 58 | </div> |
| 54 | 59 | ||
| 55 | </div> | 60 | </div> |
| ... | @@ -60,71 +65,85 @@ | ... | @@ -60,71 +65,85 @@ |
| 60 | </template> | 65 | </template> |
| 61 | 66 | ||
| 62 | <script setup> | 67 | <script setup> |
| 63 | import { ref } from 'vue' | 68 | import {ref} from 'vue' |
| 64 | import { useRouter } from 'vue-router' | 69 | import {useRouter} from 'vue-router' |
| 65 | import { getCurrentInstance, onMounted } from '@vue/runtime-core' | 70 | import {getCurrentInstance, onMounted} from '@vue/runtime-core' |
| 66 | import * as match from '@/apiPc/match' | 71 | import * as match from '@/apiPc/match' |
| 67 | import { ElMessage, ElMessageBox } from 'element-plus' | 72 | import {ElMessage, ElMessageBox} from 'element-plus' |
| 68 | import { nationList } from '@/assets/js/data' | 73 | import {nationList} from '@/assets/js/data' |
| 69 | import {getGroupInfo} from "@/apiPc/match"; | 74 | import {getGroupInfo} from "@/apiPc/match"; |
| 70 | import TeamInfo from "@/viewsPc/center/teamInfo"; | 75 | import TeamInfo from "@/viewsPc/center/teamInfo"; |
| 71 | import cache from "@/plugins/cache"; | 76 | import cache from "@/plugins/cache"; |
| 77 | import useUserStore from "@/store/modules/user"; | ||
| 78 | |||
| 72 | const language = ref(cache.local.get('language') || 0) | 79 | const language = ref(cache.local.get('language') || 0) |
| 73 | const router = useRouter() | 80 | const router = useRouter() |
| 74 | const { proxy } = getCurrentInstance() | 81 | const {proxy} = getCurrentInstance() |
| 75 | const props = defineProps({ | 82 | const props = defineProps({ |
| 76 | user:{ | 83 | user: { |
| 77 | type:Object, | 84 | type: Object, |
| 78 | required:true | 85 | required: true |
| 79 | } | 86 | } |
| 80 | }) | 87 | }) |
| 88 | const rules = ref({ | ||
| 89 | realName: [{required: true, message: '必填', trigger: 'blur'}], | ||
| 90 | sex: [{required: true, message: '必填', trigger: 'change'}], | ||
| 91 | idcType: [{required: true, message: '必填', trigger: 'change'}], | ||
| 92 | type: [{required: true, message: '必填', trigger: 'change'}], | ||
| 93 | idcCode: [{required: true, message: '必填', trigger: 'blur'}], | ||
| 94 | email: [{required: true, message: '必填', trigger: 'blur'}], | ||
| 81 | 95 | ||
| 96 | }) | ||
| 82 | const activeName = ref('first') | 97 | const activeName = ref('first') |
| 83 | const myform = ref({ | 98 | const myform = ref({ |
| 84 | idcType: 0, | 99 | idcType: 0, |
| 85 | countryId: 240, | 100 | countryId: 240, |
| 86 | nation: '汉族', | 101 | realName: '' |
| 87 | realName:'' | ||
| 88 | }) | 102 | }) |
| 89 | const labelArr = ref([]) | 103 | const labelArr = ref([]) |
| 90 | 104 | ||
| 91 | const certificates = ref([ | 105 | const certificates = ref([ |
| 92 | { | 106 | { |
| 93 | value: '0', | 107 | value: '0', |
| 94 | label: '居民身份证' | 108 | label: language.value == 0 ? '居民身份证' : 'Resident ID card' |
| 95 | }, | 109 | }, |
| 96 | { | 110 | { |
| 97 | value: '1', | 111 | value: '1', |
| 98 | label: '护照' | 112 | label: language.value == 0 ? '护照' : 'Passport' |
| 99 | }, | 113 | }, |
| 100 | { | 114 | { |
| 101 | value: '2', | 115 | value: '2', |
| 102 | label: '其他' | 116 | label: language.value == 0 ? '其他' : 'Other' |
| 103 | } | 117 | } |
| 104 | ]) | 118 | ]) |
| 105 | 119 | const user = useUserStore().user || {} | |
| 106 | onMounted(() => { | 120 | getData() |
| 107 | getData() | ||
| 108 | }) | ||
| 109 | 121 | ||
| 110 | function getData() { | 122 | function getData() { |
| 111 | if(props.user.utype=='2'){ | 123 | if (user.utype == '2') { |
| 112 | match.getGroupInfo().then(res => { | 124 | match.getGroupInfo().then(res => { |
| 113 | myform.value = res.data | 125 | myform.value = res.data |
| 114 | }) | 126 | }) |
| 115 | } | 127 | } |
| 116 | if(props.user.utype=='1'){ | 128 | if (user.utype == '1') { |
| 117 | match.getMyPersonInfo().then(res => { | 129 | match.getMyPersonInfo().then(res => { |
| 118 | myform.value = res.data | 130 | myform.value = res.data |
| 119 | }) | 131 | }) |
| 120 | } | 132 | } |
| 121 | 133 | ||
| 122 | } | 134 | } |
| 123 | function save(){ | ||
| 124 | match.saveMyBaseInfo().then(res=>{ | ||
| 125 | 135 | ||
| 136 | function save() { | ||
| 137 | proxy.$refs['dialogRef'].validate((valid) => { | ||
| 138 | if(valid){ | ||
| 139 | match.saveMyBaseInfo().then(res => { | ||
| 140 | |||
| 141 | }) | ||
| 142 | } | ||
| 126 | }) | 143 | }) |
| 144 | |||
| 127 | } | 145 | } |
| 146 | |||
| 128 | function checkCode() { | 147 | function checkCode() { |
| 129 | if (myform.value.idcType == 0 && myform.value.idcCode) { | 148 | if (myform.value.idcType == 0 && myform.value.idcCode) { |
| 130 | if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(myform.value.idcCode))) { | 149 | if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(myform.value.idcCode))) { |
| ... | @@ -155,14 +174,17 @@ function checkCode() { | ... | @@ -155,14 +174,17 @@ function checkCode() { |
| 155 | } | 174 | } |
| 156 | 175 | ||
| 157 | 176 | ||
| 158 | |||
| 159 | </script> | 177 | </script> |
| 160 | 178 | ||
| 161 | <style scoped lang="scss"> | 179 | <style scoped lang="scss"> |
| 162 | .indexTitle{margin: 20px 0 12px;padding: 0 20px 15px;border-bottom: 1px solid #e5e5e5; | 180 | .indexTitle { |
| 163 | h3{ | 181 | margin: 20px 0 12px; |
| 182 | padding: 0 20px 15px; | ||
| 183 | border-bottom: 1px solid #e5e5e5; | ||
| 184 | |||
| 185 | h3 { | ||
| 164 | font-size: 16px; | 186 | font-size: 16px; |
| 165 | color:var(--el-color-primary); | 187 | color: var(--el-color-primary); |
| 166 | } | 188 | } |
| 167 | } | 189 | } |
| 168 | 190 | ... | ... |
| ... | @@ -3,10 +3,10 @@ | ... | @@ -3,10 +3,10 @@ |
| 3 | <div class="pd20"> | 3 | <div class="pd20"> |
| 4 | <div class="matchItem" v-for="n in billList" :key="n.id"> | 4 | <div class="matchItem" v-for="n in billList" :key="n.id"> |
| 5 | <div class="status-po"> | 5 | <div class="status-po"> |
| 6 | <span class="bg-pink" v-if="n.auditStatus=='0'">未提交</span> | 6 | <span class="bg-pink" v-if="n.auditStatus=='0'">{{ language==0?'未提交':'Uncommitted' }}</span> |
| 7 | <span class="bg-primary" v-if="n.auditStatus=='1'">待审核</span> | 7 | <span class="bg-primary" v-if="n.auditStatus=='1'">{{ language==0?'待审核':'Audit' }}</span> |
| 8 | <span class="bg-blue" v-if="n.auditStatus=='2'">审核通过</span> | 8 | <span class="bg-blue" v-if="n.auditStatus=='2'">{{ language==0?'审核通过':'Approved' }}</span> |
| 9 | <span class="bg-danger" v-if="n.auditStatus=='3'">审核驳回</span> | 9 | <span class="bg-danger" v-if="n.auditStatus=='3'">{{ language==0?'审核驳回':'Reject' }}</span> |
| 10 | </div> | 10 | </div> |
| 11 | <el-row :gutter="15"> | 11 | <el-row :gutter="15"> |
| 12 | <el-col :lg="6" :md="8" :xl="10"> | 12 | <el-col :lg="6" :md="8" :xl="10"> |
| ... | @@ -18,22 +18,27 @@ | ... | @@ -18,22 +18,27 @@ |
| 18 | <h3>{{ n.name }}</h3> | 18 | <h3>{{ n.name }}</h3> |
| 19 | </el-col> | 19 | </el-col> |
| 20 | <el-col :lg="8"> | 20 | <el-col :lg="8"> |
| 21 | <p class="ppl"><label>赛事类型:</label>{{ n.level }}</p> | 21 | <p class="ppl"><label>{{ language==0?'赛事类型':'Event Type' }}:</label>{{ n.level }}</p> |
| 22 | <p class="ppl"><label v-if="n.groupName">参赛队:</label>{{n.groupName}}</p> | 22 | <p class="ppl"><label v-if="n.groupName">{{ language==0?'参赛队':'Name of participating team' }}:</label>{{n.groupName}}</p> |
| 23 | </el-col> | 23 | </el-col> |
| 24 | <el-col :lg="8"> | 24 | <el-col :lg="8"> |
| 25 | <p class="ppl"><label>比赛时间:</label>{{ n.signBeginTime }}~{{n.signEndTime}} | 25 | <p class="ppl"><label>{{ language==0?'比赛时间':'Event Date' }}:</label>{{ n.signBeginTime }}~{{n.signEndTime}} |
| 26 | </p> | 26 | </p> |
| 27 | <p class="ppl"><label>参赛运动员:</label>{{ n.signSize }} 人</p> | 27 | <p class="ppl"><label>{{ language==0?'参赛运动员':'Participating athletes' }}:</label>{{ n.signSize }} 人</p> |
| 28 | </el-col> | 28 | </el-col> |
| 29 | <el-col :lg="8"> | 29 | <el-col :lg="8"> |
| 30 | <p class="ppl"><label>报名时间:</label>{{ n.signBeginTime }}~{{n.signEndTime}}</p> | 30 | <p class="ppl"><label>{{ language==0?'报名时间':'Registration Period' }}:</label>{{ n.signBeginTime }}~{{n.signEndTime}}</p> |
| 31 | <div class="btnbox"> | 31 | <div class="btnbox"> |
| 32 | <el-button plain round type="primary" @click="goDetail(n)" v-if="n.auditStatus!='0'">详情</el-button> | 32 | <el-button plain round type="primary" @click="goDetail(n)" v-if="n.auditStatus!='0'"> |
| 33 | <el-button plain round type="primary" @click="continueSign(n)" v-if="n.auditStatus=='0'">继续报名</el-button> | 33 | {{ language==0?'详情':'Detail' }}</el-button> |
| 34 | <el-button plain round type="primary" @click="withDraw(n)" v-if="n.auditStatus=='1'">取消报名</el-button> | 34 | <el-button plain round type="primary" @click="continueSign(n)" v-if="n.auditStatus=='0'"> |
| 35 | <el-button plain round type="primary" @click="continueSign(n)" v-if="n.auditStatus=='3'">重新报名</el-button> | 35 | {{ language==0?'继续报名':'Continue to register' }}</el-button> |
| 36 | <el-button plain round type="primary" @click="goDetail(n)" v-if="n.auditStatus=='2'&&n.payStatus=='0'">缴费</el-button> | 36 | <el-button plain round type="primary" @click="withDraw(n)" v-if="n.auditStatus=='1'"> |
| 37 | {{ language==0?'取消报名':'Cancel registration' }}</el-button> | ||
| 38 | <el-button plain round type="primary" @click="continueSign(n)" v-if="n.auditStatus=='3'"> | ||
| 39 | {{ language==0?'重新报名':'Re register' }}</el-button> | ||
| 40 | <el-button plain round type="primary" @click="goDetail(n)" v-if="n.auditStatus=='2'&&n.payStatus=='0'"> | ||
| 41 | {{ language==0?'缴费':'pay' }}</el-button> | ||
| 37 | </div> | 42 | </div> |
| 38 | </el-col> | 43 | </el-col> |
| 39 | </el-row> | 44 | </el-row> |
| ... | @@ -41,7 +46,7 @@ | ... | @@ -41,7 +46,7 @@ |
| 41 | </el-row> | 46 | </el-row> |
| 42 | </div> | 47 | </div> |
| 43 | 48 | ||
| 44 | <el-empty image="@/assets/img/order_no.png" :image-size="228" v-if="billList?.length == 0"/> | 49 | <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="billList?.length == 0"/> |
| 45 | 50 | ||
| 46 | </div> | 51 | </div> |
| 47 | <paginationPc | 52 | <paginationPc |
| ... | @@ -71,7 +76,8 @@ import * as match from '@/apiPc/match' | ... | @@ -71,7 +76,8 @@ import * as match from '@/apiPc/match' |
| 71 | import {ElMessage, ElMessageBox} from 'element-plus' | 76 | import {ElMessage, ElMessageBox} from 'element-plus' |
| 72 | import _ from 'lodash' | 77 | import _ from 'lodash' |
| 73 | import useUserStore from "@/store/modules/user"; | 78 | import useUserStore from "@/store/modules/user"; |
| 74 | 79 | import cache from "@/plugins/cache"; | |
| 80 | const language = ref(cache.local.get('language') || 0) | ||
| 75 | const router = useRouter() | 81 | const router = useRouter() |
| 76 | const {proxy} = getCurrentInstance() | 82 | const {proxy} = getCurrentInstance() |
| 77 | const total = ref(0) | 83 | const total = ref(0) | ... | ... |
| ... | @@ -62,7 +62,7 @@ | ... | @@ -62,7 +62,7 @@ |
| 62 | </el-row> | 62 | </el-row> |
| 63 | </div> | 63 | </div> |
| 64 | 64 | ||
| 65 | <el-empty image="@/assets/img/order_no.png" :image-size="228" v-if="billList?.length == 0"/> | 65 | <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="billList?.length == 0"/> |
| 66 | 66 | ||
| 67 | </div> | 67 | </div> |
| 68 | <paginationPc | 68 | <paginationPc | ... | ... |
| ... | @@ -9,7 +9,7 @@ | ... | @@ -9,7 +9,7 @@ |
| 9 | <el-form-item :label="language==0?'姓名':'Name'"> | 9 | <el-form-item :label="language==0?'姓名':'Name'"> |
| 10 | <el-input v-model="query.realName" style="width: 120px;" clearable/> | 10 | <el-input v-model="query.realName" style="width: 120px;" clearable/> |
| 11 | </el-form-item> | 11 | </el-form-item> |
| 12 | <el-form-item :label="language==0?'短名':'Short Name'"> | 12 | <el-form-item :label="language==0?'短名':'Nick Name'"> |
| 13 | <el-input v-model="query.shortName" style="width: 120px;" clearable/> | 13 | <el-input v-model="query.shortName" style="width: 120px;" clearable/> |
| 14 | </el-form-item> | 14 | </el-form-item> |
| 15 | <el-form-item :label="language==0?'手机号码':'Phone Number'"> | 15 | <el-form-item :label="language==0?'手机号码':'Phone Number'"> |
| ... | @@ -63,7 +63,7 @@ const router = useRouter() | ... | @@ -63,7 +63,7 @@ const router = useRouter() |
| 63 | const {proxy} = getCurrentInstance() | 63 | const {proxy} = getCurrentInstance() |
| 64 | import * as match from '@/apiPc/match' | 64 | import * as match from '@/apiPc/match' |
| 65 | import {ElMessage, ElMessageBox} from 'element-plus' | 65 | import {ElMessage, ElMessageBox} from 'element-plus' |
| 66 | import {getGroupPersonList} from "@/apiPc/match"; | 66 | import {getGroupPersonList, getPerPersonList} from "@/apiPc/match"; |
| 67 | import PersonTable from "@/viewsPc/match/components/personTable"; | 67 | import PersonTable from "@/viewsPc/match/components/personTable"; |
| 68 | import cache from "@/plugins/cache"; | 68 | import cache from "@/plugins/cache"; |
| 69 | import useUserStore from "@/store/modules/user"; | 69 | import useUserStore from "@/store/modules/user"; |
| ... | @@ -74,17 +74,18 @@ const labels = ref([ | ... | @@ -74,17 +74,18 @@ const labels = ref([ |
| 74 | {value: '0', label: '运动员', enlabel: 'Sportsman'}, | 74 | {value: '0', label: '运动员', enlabel: 'Sportsman'}, |
| 75 | {value: '1', label: '教练', enlabel: 'Coach'}, | 75 | {value: '1', label: '教练', enlabel: 'Coach'}, |
| 76 | {value: '2', label: '领队', enlabel: 'Leader'}, | 76 | {value: '2', label: '领队', enlabel: 'Leader'}, |
| 77 | {value: '3', label: '队医', enlabel: 'Nurse'}, | 77 | {value: '4', label: '队医', enlabel: 'Nurse'}, |
| 78 | {value: '4', label: '翻译', enlabel: 'Translator'}, | 78 | {value: '5', label: '翻译', enlabel: 'Translator'}, |
| 79 | {value: '5', label: '官员', enlabel: 'Official'}, | 79 | {value: '6', label: '官员', enlabel: 'Official'}, |
| 80 | {value: '6', label: '其他', enlabel: 'Other'} | 80 | {value: '3', label: '其他', enlabel: 'Other'} |
| 81 | ]) | 81 | ]) |
| 82 | const query = ref({ | 82 | const query = ref({ |
| 83 | pageNum: 1, pageSize: 10 | 83 | pageNum: 1, pageSize: 10 |
| 84 | }) | 84 | }) |
| 85 | const total = ref(0) | 85 | const total = ref(0) |
| 86 | const group = useUserStore().group | 86 | const group = useUserStore().group || {} |
| 87 | const groupId = ref(group.id) | 87 | const user = useUserStore().user || {} |
| 88 | const groupId = ref(group.id|| 0) | ||
| 88 | onMounted(() => { | 89 | onMounted(() => { |
| 89 | getList(groupId.value) | 90 | getList(groupId.value) |
| 90 | }) | 91 | }) |
| ... | @@ -108,10 +109,19 @@ function importSportman() { | ... | @@ -108,10 +109,19 @@ function importSportman() { |
| 108 | 109 | ||
| 109 | function getList() { | 110 | function getList() { |
| 110 | query.value.label =labelArr.value.toString() | 111 | query.value.label =labelArr.value.toString() |
| 111 | getGroupPersonList(query.value, groupId.value).then(res => { | 112 | if(user.utype=='2'){ |
| 112 | tableData.value = res.rows | 113 | getGroupPersonList(query.value, groupId.value).then(res => { |
| 113 | total.value = res.total | 114 | tableData.value = res.rows |
| 114 | }) | 115 | total.value = res.total |
| 116 | }) | ||
| 117 | } | ||
| 118 | if(user.utype=='1'){ | ||
| 119 | getPerPersonList(query.value,user.userId).then(res => { | ||
| 120 | tableData.value = res.rows | ||
| 121 | total.value = res.total | ||
| 122 | }) | ||
| 123 | } | ||
| 124 | |||
| 115 | } | 125 | } |
| 116 | 126 | ||
| 117 | function editCoach(row,title) { | 127 | function editCoach(row,title) { | ... | ... |
| ... | @@ -2,7 +2,7 @@ | ... | @@ -2,7 +2,7 @@ |
| 2 | <div> | 2 | <div> |
| 3 | <el-card :body-style="{'padding':'0'}"> | 3 | <el-card :body-style="{'padding':'0'}"> |
| 4 | <div class="indexTitle"><h3 class="leftboderTT">{{ language==0?'我的预订':'My reservation' }}</h3></div> | 4 | <div class="indexTitle"><h3 class="leftboderTT">{{ language==0?'我的预订':'My reservation' }}</h3></div> |
| 5 | <el-empty image="@/assets/img/order_no.png" :image-size="228" v-if="list?.length == 0"/> | 5 | <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="list?.length == 0"/> |
| 6 | 6 | ||
| 7 | <div class="pd20"></div> | 7 | <div class="pd20"></div> |
| 8 | </el-card> | 8 | </el-card> | ... | ... |
| ... | @@ -10,7 +10,7 @@ | ... | @@ -10,7 +10,7 @@ |
| 10 | <span>{{ n.time }}</span> | 10 | <span>{{ n.time }}</span> |
| 11 | </li> | 11 | </li> |
| 12 | </ul> | 12 | </ul> |
| 13 | <el-empty image="@/assets/img/order_no.png" :image-size="228" v-if="list?.length == 0"/> | 13 | <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="list?.length == 0"/> |
| 14 | 14 | ||
| 15 | </el-card> | 15 | </el-card> |
| 16 | </div> | 16 | </div> | ... | ... |
| ... | @@ -359,7 +359,7 @@ function editPerson(id) { | ... | @@ -359,7 +359,7 @@ function editPerson(id) { |
| 359 | proxy.$refs['dialogAddCoachRef'].open({ | 359 | proxy.$refs['dialogAddCoachRef'].open({ |
| 360 | title: language.value==0?'编辑人员':'Edit', | 360 | title: language.value==0?'编辑人员':'Edit', |
| 361 | id: id, | 361 | id: id, |
| 362 | groupId: groupId.value | 362 | groupId: groupId.value || 0 |
| 363 | }) | 363 | }) |
| 364 | } | 364 | } |
| 365 | 365 | ... | ... |
| ... | @@ -57,7 +57,7 @@ | ... | @@ -57,7 +57,7 @@ |
| 57 | </div> | 57 | </div> |
| 58 | </el-checkbox> | 58 | </el-checkbox> |
| 59 | </el-checkbox-group> | 59 | </el-checkbox-group> |
| 60 | <el-empty v-if="projectList.length==0" image="@/assets/img/order_no.png" :image-size="228" | 60 | <el-empty v-if="projectList.length==0" :image="`/img/order_no.png`" :image-size="228" |
| 61 | :description="language==0?'无可选项目':''"/> | 61 | :description="language==0?'无可选项目':''"/> |
| 62 | </div> | 62 | </div> |
| 63 | </div> | 63 | </div> |
| ... | @@ -97,7 +97,7 @@ | ... | @@ -97,7 +97,7 @@ |
| 97 | </el-card> | 97 | </el-card> |
| 98 | </div> | 98 | </div> |
| 99 | 99 | ||
| 100 | <dialogAddCoach ref="dialogAddCoachRef" @submitForm="getProjectList"/> | 100 | <dialogAddCoach ref="dialogAddCoachRef" @submitForm="changeMeDone"/> |
| 101 | 101 | ||
| 102 | 102 | ||
| 103 | <!-- <dialogChangeCoach ref="popChangeCoach" @submitForm="getMySignInfo"/>--> | 103 | <!-- <dialogChangeCoach ref="popChangeCoach" @submitForm="getMySignInfo"/>--> |
| ... | @@ -165,6 +165,7 @@ const { | ... | @@ -165,6 +165,7 @@ const { |
| 165 | const matchId = ref(route.query.matchId) | 165 | const matchId = ref(route.query.matchId) |
| 166 | let signInfoType = null | 166 | let signInfoType = null |
| 167 | const form = ref({}) | 167 | const form = ref({}) |
| 168 | const signEndTime = ref('') | ||
| 168 | const userId = ref('') | 169 | const userId = ref('') |
| 169 | const myId = ref('') | 170 | const myId = ref('') |
| 170 | onMounted(() => { | 171 | onMounted(() => { |
| ... | @@ -185,12 +186,17 @@ function getMyInfo(){ | ... | @@ -185,12 +186,17 @@ function getMyInfo(){ |
| 185 | getProjectList() | 186 | getProjectList() |
| 186 | }) | 187 | }) |
| 187 | } | 188 | } |
| 189 | function changeMeDone(){ | ||
| 190 | getMyInfo() | ||
| 191 | getProjectList() | ||
| 192 | } | ||
| 188 | let chargeFlag | 193 | let chargeFlag |
| 189 | 194 | ||
| 190 | function getMatch(id) { | 195 | function getMatch(id) { |
| 191 | match.getMatchById({ | 196 | match.getMatchById({ |
| 192 | id: id | 197 | id: id |
| 193 | }).then(res => { | 198 | }).then(res => { |
| 199 | signEndTime.value = res.data.signEndTime | ||
| 194 | chargeFlag = res.data.chargeFlag | 200 | chargeFlag = res.data.chargeFlag |
| 195 | noPhotoCanSign.value = res.data.noPhotoCanSign | 201 | noPhotoCanSign.value = res.data.noPhotoCanSign |
| 196 | coachOrLeaderFlag.value = res.data.coachOrLeaderFlag | 202 | coachOrLeaderFlag.value = res.data.coachOrLeaderFlag |
| ... | @@ -233,11 +239,12 @@ function submitForm(n) { | ... | @@ -233,11 +239,12 @@ function submitForm(n) { |
| 233 | return | 239 | return |
| 234 | } | 240 | } |
| 235 | if(n==0){ | 241 | if(n==0){ |
| 236 | ElMessageBox.confirm(`您当前的操作为暂存,并不是提交审核,必须在报名截止时间XXXX-XX-XX之前完成提交。\n` + | 242 | ElMessageBox.confirm(`您当前的操作为暂存,并不是提交审核, |
| 237 | '\n' + | 243 | 必须在报名截止时间${signEndTime.value}之前完成提交。 |
| 238 | '您也可以在个人中心-我的报名中,找到这条报名,点击提交审核。','提示',{ | 244 | 您也可以在个人中心-我的报名中,找到这条报名,点击提交审核。`, |
| 239 | confirmButtonText: '去个人中心', | 245 | language.value==0?'提示':'Tip',{ |
| 240 | cancelButtonText: '知道了', | 246 | confirmButtonText: language.value==0?'去个人中心':'Go My Eegistration ', |
| 247 | cancelButtonText: language.value==0?'知道了':'OK', | ||
| 241 | type: 'warning' | 248 | type: 'warning' |
| 242 | }).then((res)=>{ | 249 | }).then((res)=>{ |
| 243 | console.log(res) | 250 | console.log(res) |
| ... | @@ -253,7 +260,7 @@ function submitForm(n) { | ... | @@ -253,7 +260,7 @@ function submitForm(n) { |
| 253 | } | 260 | } |
| 254 | for (const s of signInfoList.value) { | 261 | for (const s of signInfoList.value) { |
| 255 | if (s.extraPersonInfo == null && needBuchong) { | 262 | if (s.extraPersonInfo == null && needBuchong) { |
| 256 | ElMessage.error('请完善运动员补充信息') | 263 | ElMessage.error(language.value==0?'请完善运动员补充信息':'Complete Supplementary Information') |
| 257 | tableType.value = 0 | 264 | tableType.value = 0 |
| 258 | return | 265 | return |
| 259 | } | 266 | } |
| ... | @@ -284,7 +291,8 @@ function getProjectList() { | ... | @@ -284,7 +291,8 @@ function getProjectList() { |
| 284 | //根据已选人员id 获取项目列表 | 291 | //根据已选人员id 获取项目列表 |
| 285 | var obj = { | 292 | var obj = { |
| 286 | cptId: matchId.value, | 293 | cptId: matchId.value, |
| 287 | perIds: myId.value | 294 | perIds: myId.value, |
| 295 | name:projectQuery.value.name | ||
| 288 | } | 296 | } |
| 289 | match.getProjectPageByPerIds(obj).then(res => { | 297 | match.getProjectPageByPerIds(obj).then(res => { |
| 290 | projectList.value = res.rows | 298 | projectList.value = res.rows |
| ... | @@ -340,15 +348,17 @@ function signUp() { | ... | @@ -340,15 +348,17 @@ function signUp() { |
| 340 | } | 348 | } |
| 341 | 349 | ||
| 342 | function removeThis(id) { | 350 | function removeThis(id) { |
| 343 | ElMessageBox.confirm('确定移除这条报项吗?', '提示', { | 351 | ElMessageBox.confirm(language.value==0?'确定移除这条报项吗?':'Are you sure to remove this report item', |
| 344 | confirmButtonText: '确定', | 352 | language.value==0?'提示':'Tips', { |
| 345 | cancelButtonText: '取消', | 353 | confirmButtonText: language.value==0?'确定':'Confirm', |
| 354 | cancelButtonText: language.value==0?'取消':'Cancel', | ||
| 346 | type: 'warning' | 355 | type: 'warning' |
| 347 | }).then(() => { | 356 | }).then(() => { |
| 348 | match.deleteSign(id).then(res => { | 357 | match.deleteSign(id).then(res => { |
| 349 | // 重新获取已报名信息 | 358 | // 重新获取已报名信息 |
| 350 | ElMessage.success('已移除该报项') | 359 | ElMessage.success(language.value==0?'已移除该报项':'success') |
| 351 | getSignInfoList() | 360 | getSignInfoList() |
| 361 | getProjectList() | ||
| 352 | }) | 362 | }) |
| 353 | }) | 363 | }) |
| 354 | } | 364 | } |
| ... | @@ -401,8 +411,8 @@ function downloadVoucher() { | ... | @@ -401,8 +411,8 @@ function downloadVoucher() { |
| 401 | 411 | ||
| 402 | function editPerson() { | 412 | function editPerson() { |
| 403 | proxy.$refs['dialogAddCoachRef'].open({ | 413 | proxy.$refs['dialogAddCoachRef'].open({ |
| 404 | title: '编辑人员', | 414 | title: language.value==0?'编辑个人信息':'Edit My Information', |
| 405 | uType: '1' | 415 | isMe: true |
| 406 | }) | 416 | }) |
| 407 | } | 417 | } |
| 408 | 418 | ... | ... |
| ... | @@ -84,7 +84,7 @@ | ... | @@ -84,7 +84,7 @@ |
| 84 | </div> | 84 | </div> |
| 85 | </el-checkbox> | 85 | </el-checkbox> |
| 86 | </el-checkbox-group> | 86 | </el-checkbox-group> |
| 87 | <el-empty v-if="projectList.length==0" image="@/assets/img/order_no.png" :image-size="228" | 87 | <el-empty v-if="projectList.length==0" :image="`/img/order_no.png`" :image-size="228" |
| 88 | :description="language==0?'无可选项目':''"/> | 88 | :description="language==0?'无可选项目':''"/> |
| 89 | </div> | 89 | </div> |
| 90 | </div> | 90 | </div> | ... | ... |
| ... | @@ -9,12 +9,12 @@ | ... | @@ -9,12 +9,12 @@ |
| 9 | <div class="flexCenter pd20"> | 9 | <div class="flexCenter pd20"> |
| 10 | <img src="@/assets/img/e.png"/> | 10 | <img src="@/assets/img/e.png"/> |
| 11 | <div> | 11 | <div> |
| 12 | <div>账号:{{ user.userName }}</div> | 12 | <div>{{ language==0? '账号':'Account' }}:{{ user.userName }}</div> |
| 13 | <h3>报名信息提交成功</h3> | 13 | <h3>{{ language==0?'报名信息提交成功':'Registration information submitted successfully' }}</h3> |
| 14 | </div> | 14 | </div> |
| 15 | </div> | 15 | </div> |
| 16 | <div class="text-center flexCenter"> | 16 | <div class="text-center flexCenter"> |
| 17 | <div class="border-info mt20"> | 17 | <div class="border-info mt20" v-if="language==0"> |
| 18 | 审核结果,后续将以邮件形式正式通知您。 | 18 | 审核结果,后续将以邮件形式正式通知您。 |
| 19 | <br/> | 19 | <br/> |
| 20 | 邮件发送账号:<span class="text-primary">{{ user.email }}</span> | 20 | 邮件发送账号:<span class="text-primary">{{ user.email }}</span> |
| ... | @@ -22,11 +22,20 @@ | ... | @@ -22,11 +22,20 @@ |
| 22 | <br/> | 22 | <br/> |
| 23 | 如果您的报名信息审核通过,邮件正文会附上相关费用的支付链接,请通过链接完成支付,完成报名。 | 23 | 如果您的报名信息审核通过,邮件正文会附上相关费用的支付链接,请通过链接完成支付,完成报名。 |
| 24 | </div> | 24 | </div> |
| 25 | <div class="border-info mt20" v-else> | ||
| 26 | The audit results will be formally notified to you via email in the future. | ||
| 27 | <br/> | ||
| 28 | Email sender: <span class="text-primary">{{ user.email }}</span> | ||
| 29 | Please follow the relevant email notifications. | ||
| 30 | <br/> | ||
| 31 | If your registration information is approved, the payment link for the relevant fees will be attached to the email body. Please complete the payment and registration through the link. | ||
| 32 | </div> | ||
| 25 | </div> | 33 | </div> |
| 26 | 34 | ||
| 27 | <div class="text-center mt30 mb20"> | 35 | <div class="text-center mt30 mb20"> |
| 28 | <el-button class="primary-kx w200px" round @click="goHome">{{ language == 0 ? '返回首页' : 'Homepage' }}</el-button> | 36 | <el-button class="primary-kx w200px" round @click="goHome">{{ language == 0 ? '返回首页' : 'Homepage' }}</el-button> |
| 29 | <el-button type="primary" class="btn-lineG w200px" round @click="goSign">{{ language == 0 ? '返回赛事报名模块' : 'Sign Up' }}</el-button> | 37 | <el-button type="primary" class="btn-lineG w200px" round @click="goSign"> |
| 38 | {{ language == 0 ? '返回赛事报名模块' : 'Return to Event Registration Module' }}</el-button> | ||
| 30 | </div> | 39 | </div> |
| 31 | </el-card> | 40 | </el-card> |
| 32 | </div> | 41 | </div> | ... | ... |
| ... | @@ -4,7 +4,7 @@ | ... | @@ -4,7 +4,7 @@ |
| 4 | :close-on-click-modal="false" class="pcloginpop" | 4 | :close-on-click-modal="false" class="pcloginpop" |
| 5 | destroy-on-close | 5 | destroy-on-close |
| 6 | > | 6 | > |
| 7 | <el-form ref="dialogRef" :model="form" :rules="rules" label-width="120px" inline> | 7 | <el-form ref="dialogRef" :model="form" :rules="language==0?rules:rules_cn" label-width="120px" inline> |
| 8 | <el-row :gutter="30"> | 8 | <el-row :gutter="30"> |
| 9 | <el-col :lg="12" class="touxiang"> | 9 | <el-col :lg="12" class="touxiang"> |
| 10 | <el-form-item prop="picUrl" :label="language==0?'个人照片':'photo'" required> | 10 | <el-form-item prop="picUrl" :label="language==0?'个人照片':'photo'" required> |
| ... | @@ -16,8 +16,8 @@ | ... | @@ -16,8 +16,8 @@ |
| 16 | <el-form-item :label="language==0?'姓氏':'surname'" prop="xing" required> | 16 | <el-form-item :label="language==0?'姓氏':'surname'" prop="xing" required> |
| 17 | <el-input v-model="form.xing"/> | 17 | <el-input v-model="form.xing"/> |
| 18 | </el-form-item> | 18 | </el-form-item> |
| 19 | <el-form-item :label="language==0?'短名':'short name'" prop="shortName" required> | 19 | <el-form-item :label="language==0?'短名':'nike name'" prop="shortName" required> |
| 20 | <el-input v-model="form.shortName" placeholder="赛事用名"/> | 20 | <el-input v-model="form.shortName" :placeholder="language==0?'赛事用名':''"/> |
| 21 | </el-form-item> | 21 | </el-form-item> |
| 22 | <el-form-item :label="language==0?'出生日期':'birth'" prop="birth" required> | 22 | <el-form-item :label="language==0?'出生日期':'birth'" prop="birth" required> |
| 23 | <el-date-picker | 23 | <el-date-picker |
| ... | @@ -88,16 +88,28 @@ | ... | @@ -88,16 +88,28 @@ |
| 88 | </template> | 88 | </template> |
| 89 | 89 | ||
| 90 | <script setup> | 90 | <script setup> |
| 91 | import {reactive, toRefs, watch} from 'vue' | 91 | import {reactive, ref, toRefs, watch} from 'vue' |
| 92 | import {getCurrentInstance, nextTick, onMounted} from '@vue/runtime-core' | 92 | import {getCurrentInstance, nextTick, onMounted} from '@vue/runtime-core' |
| 93 | import * as match from '@/apiPc/match' | 93 | import * as match from '@/apiPc/match' |
| 94 | import {certificates} from '@/assets/lib/nation' | ||
| 95 | import {ElMessage} from 'element-plus' | 94 | import {ElMessage} from 'element-plus' |
| 96 | import {nationList} from '@/assets/js/data' | 95 | import {nationList} from '@/assets/js/data' |
| 97 | import _ from 'lodash' | 96 | import _ from 'lodash' |
| 98 | import cache from "@/plugins/cache"; | 97 | import cache from "@/plugins/cache"; |
| 99 | const language = ref(cache.local.get('language') || 0) | 98 | const language = ref(cache.local.get('language') || 0) |
| 100 | 99 | const certificates = ref([ | |
| 100 | { | ||
| 101 | value: '0', | ||
| 102 | label: language.value == 0 ? '居民身份证' : 'Resident ID card' | ||
| 103 | }, | ||
| 104 | { | ||
| 105 | value: '1', | ||
| 106 | label: language.value == 0 ? '护照' : 'Passport' | ||
| 107 | }, | ||
| 108 | { | ||
| 109 | value: '2', | ||
| 110 | label: language.value == 0 ? '其他' : 'Other' | ||
| 111 | } | ||
| 112 | ]) | ||
| 101 | const {proxy} = getCurrentInstance() | 113 | const {proxy} = getCurrentInstance() |
| 102 | const emit = defineEmits(['submitForm']) | 114 | const emit = defineEmits(['submitForm']) |
| 103 | const data = reactive({ | 115 | const data = reactive({ |
| ... | @@ -120,6 +132,22 @@ const data = reactive({ | ... | @@ -120,6 +132,22 @@ const data = reactive({ |
| 120 | sex: [{required: true, message: '必填', trigger: 'change'}], | 132 | sex: [{required: true, message: '必填', trigger: 'change'}], |
| 121 | labelArr: [{required: true, message: '必填', trigger: 'change'}] | 133 | labelArr: [{required: true, message: '必填', trigger: 'change'}] |
| 122 | }, | 134 | }, |
| 135 | rules_cn:{ | ||
| 136 | xing: [{required: true, message: 'required', trigger: 'blur'}], | ||
| 137 | ming: [{required: true, message: 'required', trigger: 'blur'}], | ||
| 138 | shortName: [{required: true, message: 'required', trigger: 'blur'}], | ||
| 139 | email: [{required: true, message: 'required', trigger: 'blur'}], | ||
| 140 | countryId: [{required: true, message: 'required', trigger: 'change'}], | ||
| 141 | idcType: [{required: true, message: 'required', trigger: 'change'}], | ||
| 142 | idcCode: [{required: true, message: 'required', trigger: 'blur'}], | ||
| 143 | phone: [{required: true, message: 'required', trigger: 'blur'}], | ||
| 144 | // regionId: [{ required: true, message: 'required', trigger: 'change' }], | ||
| 145 | birth: [{required: true, message: 'required', trigger: 'change'}], | ||
| 146 | address: [{ required: true, message: 'required', trigger: 'blur' }], | ||
| 147 | picUrl: [{required: true, message: 'required', trigger: 'blur'}], | ||
| 148 | sex: [{required: true, message: 'required', trigger: 'change'}], | ||
| 149 | labelArr: [{required: true, message: 'required', trigger: 'change'}] | ||
| 150 | }, | ||
| 123 | show: false, | 151 | show: false, |
| 124 | countryList: [], | 152 | countryList: [], |
| 125 | regionsList: [], | 153 | regionsList: [], |
| ... | @@ -127,17 +155,17 @@ const data = reactive({ | ... | @@ -127,17 +155,17 @@ const data = reactive({ |
| 127 | {value: '0', label: '运动员', enlabel: 'Sportsman'}, | 155 | {value: '0', label: '运动员', enlabel: 'Sportsman'}, |
| 128 | {value: '1', label: '教练', enlabel: 'Coach'}, | 156 | {value: '1', label: '教练', enlabel: 'Coach'}, |
| 129 | {value: '2', label: '领队', enlabel: 'Leader'}, | 157 | {value: '2', label: '领队', enlabel: 'Leader'}, |
| 130 | {value: '3', label: '队医', enlabel: 'Nurse'}, | 158 | {value: '4', label: '队医', enlabel: 'Nurse'}, |
| 131 | {value: '4', label: '翻译', enlabel: 'Translator'}, | 159 | {value: '5', label: '翻译', enlabel: 'Translator'}, |
| 132 | {value: '5', label: '官员', enlabel: 'Official'}, | 160 | {value: '6', label: '官员', enlabel: 'Official'}, |
| 133 | {value: '6', label: '其他', enlabel: 'Other'} | 161 | {value: '3', label: '其他', enlabel: 'Other'} |
| 134 | ], | 162 | ], |
| 135 | title: '添加选手信息', | 163 | title: '添加选手信息', |
| 136 | groupId: '0', | 164 | groupId: '0', |
| 137 | showRequire: false, | 165 | showRequire: false, |
| 138 | uType:'' | 166 | isMe:false |
| 139 | }) | 167 | }) |
| 140 | const {showRequire, form, rules, show, countryList, regionsList, title, groupId, labels,uType} = toRefs(data) | 168 | const {showRequire, form, rules,rules_cn, show, countryList, regionsList, title, groupId, labels,uType,isMe} = toRefs(data) |
| 141 | onMounted(() => { | 169 | onMounted(() => { |
| 142 | getCountryList() | 170 | getCountryList() |
| 143 | getRegionsList() | 171 | getRegionsList() |
| ... | @@ -148,8 +176,8 @@ const open = (params) => { | ... | @@ -148,8 +176,8 @@ const open = (params) => { |
| 148 | show.value = true | 176 | show.value = true |
| 149 | title.value = params.title | 177 | title.value = params.title |
| 150 | groupId.value = params.groupId || '0' | 178 | groupId.value = params.groupId || '0' |
| 151 | uType.value = params.uType | 179 | isMe.value = params.isMe |
| 152 | if(uType.value == '1'){ | 180 | if(isMe.value){ |
| 153 | //个人 | 181 | //个人 |
| 154 | match.getMyPersonInfo().then(res => { | 182 | match.getMyPersonInfo().then(res => { |
| 155 | form.value = res.data | 183 | form.value = res.data |
| ... | @@ -295,26 +323,26 @@ function submitForm() { | ... | @@ -295,26 +323,26 @@ function submitForm() { |
| 295 | }) | 323 | }) |
| 296 | } else { | 324 | } else { |
| 297 | if (editgay) { | 325 | if (editgay) { |
| 326 | // id不是0 | ||
| 298 | match.editPersonInfo(form.value).then(res => { | 327 | match.editPersonInfo(form.value).then(res => { |
| 299 | ElMessage.success('保存成功') | 328 | ElMessage.success('保存成功') |
| 300 | show.value = false | 329 | show.value = false |
| 301 | emit('submitForm') | 330 | emit('submitForm') |
| 302 | }) | 331 | }) |
| 303 | } else { | 332 | } else { |
| 304 | // if(uType.value == '1'){ | 333 | if(isMe.value){ |
| 305 | // match.saveMyBaseInfo(form.value).then(res => { | 334 | match.saveMyBaseInfo(form.value).then(res => { |
| 306 | // ElMessage.success('保存成功') | 335 | ElMessage.success('保存成功') |
| 307 | // show.value = false | 336 | show.value = false |
| 308 | // emit('submitForm') | 337 | emit('submitForm') |
| 309 | // }) | 338 | }) |
| 310 | // } else { | 339 | } else { |
| 311 | match.savePersonForMyPerson(form.value).then(res => { | 340 | match.savePersonForMyPerson(form.value).then(res => { |
| 312 | ElMessage.success('保存成功') | 341 | ElMessage.success('保存成功') |
| 313 | show.value = false | 342 | show.value = false |
| 314 | emit('submitForm') | 343 | emit('submitForm') |
| 315 | }) | 344 | }) |
| 316 | // } | 345 | } |
| 317 | |||
| 318 | } | 346 | } |
| 319 | } | 347 | } |
| 320 | } | 348 | } | ... | ... |
| ... | @@ -13,7 +13,7 @@ | ... | @@ -13,7 +13,7 @@ |
| 13 | <el-form-item :label="language==0?'姓名':'Name'"> | 13 | <el-form-item :label="language==0?'姓名':'Name'"> |
| 14 | <el-input v-model="query.realName" style="width: 120px;" clearable/> | 14 | <el-input v-model="query.realName" style="width: 120px;" clearable/> |
| 15 | </el-form-item> | 15 | </el-form-item> |
| 16 | <el-form-item :label="language==0?'短名':'Short Name'"> | 16 | <el-form-item :label="language==0?'短名':'Nick Name'"> |
| 17 | <el-input v-model="query.shortName" style="width: 120px;" clearable/> | 17 | <el-input v-model="query.shortName" style="width: 120px;" clearable/> |
| 18 | </el-form-item> | 18 | </el-form-item> |
| 19 | <el-form-item :label="language==0?'手机号码':'Phone Number'"> | 19 | <el-form-item :label="language==0?'手机号码':'Phone Number'"> |
| ... | @@ -43,7 +43,7 @@ | ... | @@ -43,7 +43,7 @@ |
| 43 | <el-table-column :label="language==0?'所属国家':'Nationality'" prop="countryName" min-width="100"/> | 43 | <el-table-column :label="language==0?'所属国家':'Nationality'" prop="countryName" min-width="100"/> |
| 44 | <el-table-column :label="language==0?'姓氏':'Last Name'" prop="xing" min-width="100"/> | 44 | <el-table-column :label="language==0?'姓氏':'Last Name'" prop="xing" min-width="100"/> |
| 45 | <el-table-column :label="language==0?'名':'First Name'" prop="ming" min-width="100"/> | 45 | <el-table-column :label="language==0?'名':'First Name'" prop="ming" min-width="100"/> |
| 46 | <el-table-column :label="language==0?'短名':'Short Name'" prop="shortName" min-width="110"/> | 46 | <el-table-column :label="language==0?'短名':'Nick Name'" prop="shortName" min-width="110"/> |
| 47 | <el-table-column :label="language==0?'性别':'Gender'" prop="sexStr"/> | 47 | <el-table-column :label="language==0?'性别':'Gender'" prop="sexStr"/> |
| 48 | <el-table-column :label="language==0?'年龄':'Age'" prop="age"/> | 48 | <el-table-column :label="language==0?'年龄':'Age'" prop="age"/> |
| 49 | <el-table-column :label="language==0?'出生日期':'Birth'" prop="birth" width="110"/> | 49 | <el-table-column :label="language==0?'出生日期':'Birth'" prop="birth" width="110"/> |
| ... | @@ -86,7 +86,7 @@ | ... | @@ -86,7 +86,7 @@ |
| 86 | </el-dialog> | 86 | </el-dialog> |
| 87 | 87 | ||
| 88 | <addCoach ref="dialogAddCoach" @submitForm="getList"/> | 88 | <addCoach ref="dialogAddCoach" @submitForm="getList"/> |
| 89 | <Import ref="dialogImportProps"/> | 89 | <Import ref="dialogImportProps" @uploadSuccess='getList'/> |
| 90 | </template> | 90 | </template> |
| 91 | 91 | ||
| 92 | <script setup> | 92 | <script setup> | ... | ... |
| ... | @@ -41,11 +41,29 @@ function uploadSuccess(res) { | ... | @@ -41,11 +41,29 @@ function uploadSuccess(res) { |
| 41 | console.log(res) | 41 | console.log(res) |
| 42 | cancel() | 42 | cancel() |
| 43 | if (res.code == 500) { | 43 | if (res.code == 500) { |
| 44 | ElMessageBox.alert(res.data, '提示', { | 44 | ElMessageBox.alert(res.msg, '提示', { |
| 45 | confirmButtonText: '好的' | 45 | confirmButtonText: '好的' |
| 46 | }) | 46 | }) |
| 47 | } else { | 47 | } else { |
| 48 | proxy.$modal.msgSuccess(`${res.msg}`) | 48 | if(res.data.repeatInSystemColumn){ |
| 49 | proxy.$modal.msgError(`${res.data.repeatInSystemColumn}系统中已存在`) | ||
| 50 | } | ||
| 51 | if(res.data.errCountryColumn){ | ||
| 52 | proxy.$modal.msgError(`${res.data.errCountryColumn}所属国家有误`) | ||
| 53 | } | ||
| 54 | if(res.data.errIdcTypeColumn){ | ||
| 55 | proxy.$modal.msgError(`${res.data.errIdcTypeColumn}证件号错误`) | ||
| 56 | } | ||
| 57 | if(res.data.errSexColumn){ | ||
| 58 | proxy.$modal.msgError(`${res.data.errSexColumn}性别错误`) | ||
| 59 | } | ||
| 60 | if(res.data.incompleteColumn){ | ||
| 61 | proxy.$modal.msgError(`${res.data.incompleteColumn}必填项未完成`) | ||
| 62 | } | ||
| 63 | if(res.data.repeatInFileColumn){ | ||
| 64 | proxy.$modal.msgError(`${res.data.repeatInFileColumn}文件内重复`) | ||
| 65 | } | ||
| 66 | |||
| 49 | } | 67 | } |
| 50 | 68 | ||
| 51 | emit('uploadSuccess') | 69 | emit('uploadSuccess') | ... | ... |
| ... | @@ -2,14 +2,14 @@ | ... | @@ -2,14 +2,14 @@ |
| 2 | <div class="border-info" style="margin: 20px" v-loading="loading"> | 2 | <div class="border-info" style="margin: 20px" v-loading="loading"> |
| 3 | <el-row v-if="language==0"> | 3 | <el-row v-if="language==0"> |
| 4 | <el-col :lg="8"><div class="item"><label>赛事名称</label>{{matchInfo.name}}</div></el-col> | 4 | <el-col :lg="8"><div class="item"><label>赛事名称</label>{{matchInfo.name}}</div></el-col> |
| 5 | <el-col :lg="8"><div class="item"><label>赛事类型</label>{{matchInfo.name}}</div></el-col> | 5 | <el-col :lg="8"><div class="item"><label>赛事类型</label>{{matchInfo.level}}</div></el-col> |
| 6 | <el-col :lg="8"><div class="item"><label>赛事时间</label>{{matchInfo.beginTime?.slice(0,10)}} 至 {{ matchInfo.endTime?.slice(0,10) }}</div></el-col> | 6 | <el-col :lg="8"><div class="item"><label>赛事时间</label>{{matchInfo.beginTime?.slice(0,10)}} 至 {{ matchInfo.endTime?.slice(0,10) }}</div></el-col> |
| 7 | <el-col :lg="8"><div class="item"><label>报名时间</label>{{ matchInfo.signBeginTime?.slice(0,10) }} 至{{ matchInfo.signEndTime?.slice(0,10) }}</div></el-col> | 7 | <el-col :lg="8"><div class="item"><label>报名时间</label>{{ matchInfo.signBeginTime?.slice(0,10) }} 至{{ matchInfo.signEndTime?.slice(0,10) }}</div></el-col> |
| 8 | <el-col :lg="16"><div class="item"><label>比赛地址</label>{{matchInfo.address}}</div></el-col> | 8 | <el-col :lg="16"><div class="item"><label>比赛地址</label>{{matchInfo.address}}</div></el-col> |
| 9 | </el-row> | 9 | </el-row> |
| 10 | <el-row v-else> | 10 | <el-row v-else> |
| 11 | <el-col :lg="8"><div class="item"><label>Event Name</label>{{matchInfo.name}}</div></el-col> | 11 | <el-col :lg="8"><div class="item"><label>Event Name</label>{{matchInfo.name}}</div></el-col> |
| 12 | <el-col :lg="8"><div class="item"><label>Event Type</label>{{matchInfo.name}}</div></el-col> | 12 | <el-col :lg="8"><div class="item"><label>Event Type</label>{{matchInfo.level}}</div></el-col> |
| 13 | <el-col :lg="8"><div class="item"><label>Event Date</label>{{matchInfo.beginTime?.slice(0,10)}} ~ {{ matchInfo.endTime?.slice(0,10) }}</div></el-col> | 13 | <el-col :lg="8"><div class="item"><label>Event Date</label>{{matchInfo.beginTime?.slice(0,10)}} ~ {{ matchInfo.endTime?.slice(0,10) }}</div></el-col> |
| 14 | <el-col :lg="8"><div class="item"><label>Registration Period</label>{{ matchInfo.signBeginTime?.slice(0,10) }} ~{{ matchInfo.signEndTime?.slice(0,10) }}</div></el-col> | 14 | <el-col :lg="8"><div class="item"><label>Registration Period</label>{{ matchInfo.signBeginTime?.slice(0,10) }} ~{{ matchInfo.signEndTime?.slice(0,10) }}</div></el-col> |
| 15 | <el-col :lg="16"><div class="item"><label>Event Address</label>{{matchInfo.address}}</div></el-col> | 15 | <el-col :lg="16"><div class="item"><label>Event Address</label>{{matchInfo.address}}</div></el-col> | ... | ... |
| ... | @@ -11,94 +11,40 @@ | ... | @@ -11,94 +11,40 @@ |
| 11 | 11 | ||
| 12 | </div> | 12 | </div> |
| 13 | <div class="indexTitle" v-if="form.type==0"><h3 class="leftboderTT">赛事规程</h3></div> | 13 | <div class="indexTitle" v-if="form.type==0"><h3 class="leftboderTT">赛事规程</h3></div> |
| 14 | <div class="xzbox" v-if="form.type==0" v-html="form.ruleUrl"></div> | 14 | <div class="xzbox" v-if="form.type==0"> |
| 15 | |||
| 16 | <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank"> | ||
| 17 | <el-icon :size="20"> | ||
| 18 | <Download /> | ||
| 19 | </el-icon> | ||
| 20 | {{ JSON.parse(form.ruleUrl)[0]?.name }} | ||
| 21 | </el-link> | ||
| 22 | </div> | ||
| 15 | <div class="indexTitle" v-if="form.type==1"><h3 class="leftboderTT">竞赛项目</h3></div> | 23 | <div class="indexTitle" v-if="form.type==1"><h3 class="leftboderTT">竞赛项目</h3></div> |
| 16 | <div class="collapsebox" v-if="form.type==1"> | 24 | <div class="collapsebox" v-if="form.type==1"> |
| 17 | <el-collapse v-if="form.cptProjectList?.length > 0"> | 25 | <div class="pd20"> |
| 18 | <el-collapse-item :title="p.name" :name="index" :key="index" v-for="(p,index) in form.cptProjectList"> | 26 | <table class="table" cellspacing="0" cellpadding="0" v-if="form.cptProjectList?.length > 0"> |
| 19 | <div class="pd20"> | 27 | <tr> |
| 20 | <table class="table"> | 28 | <th>组别编号</th> |
| 21 | <tr> | 29 | <th>组别名称</th> |
| 22 | <td>日期</td> | 30 | <th>舞种</th> |
| 23 | <td>单元</td> | 31 | <th>舞种明细</th> |
| 24 | <td>组别</td> | 32 | <th>参赛性别</th> |
| 25 | <td>时间</td> | 33 | <th>参赛年龄</th> |
| 26 | <td>阶段</td> | 34 | <th>服务费(元)</th> |
| 27 | </tr> | 35 | </tr> |
| 28 | <tr> | 36 | <tr v-for="(p,index) in matchData.cptProjectList" :key="index"> |
| 29 | <td rowspan="4">2023/10/6(星期五)</td> | 37 | <td>{{ p.code }}</td> |
| 30 | <td rowspan="4">BRK01</td> | 38 | <td>{{ p.name }}</td> |
| 31 | <td>男子</td> | 39 | <td>{{ p.danceType }}</td> |
| 32 | <td>14:30 - 15:30</td> | 40 | <td>{{ p.danceTypeDetailStr }}</td> |
| 33 | <td>资格赛</td> | 41 | <td>{{ p.playTypeStr }}</td> |
| 34 | </tr> | 42 | <td>{{ p.birthPeriod }}</td> |
| 35 | <tr> | 43 | <td>¥{{ p.serviceFee }}</td> |
| 36 | <td>女子</td> | 44 | </tr> |
| 37 | <td>14:30 - 15:30</td> | 45 | </table> |
| 38 | <td>资格赛</td> | 46 | </div> |
| 39 | </tr> | 47 | <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="form.cptProjectList?.length == 0" description=""/> |
| 40 | <tr> | ||
| 41 | <td>男子</td> | ||
| 42 | <td>14:30 - 15:30</td> | ||
| 43 | <td>循环赛</td> | ||
| 44 | </tr> | ||
| 45 | <tr> | ||
| 46 | <td>女子</td> | ||
| 47 | <td>14:30 - 15:30</td> | ||
| 48 | <td>循环赛</td> | ||
| 49 | </tr> | ||
| 50 | <tr> | ||
| 51 | <td rowspan="8">2023/10/7(星期六)</td> | ||
| 52 | <td rowspan="8">BRK02</td> | ||
| 53 | <td>男子</td> | ||
| 54 | <td>14:30 - 15:30</td> | ||
| 55 | <td>四分之一决赛</td> | ||
| 56 | </tr> | ||
| 57 | <tr> | ||
| 58 | <td>男子</td> | ||
| 59 | <td>14:30 - 15:30</td> | ||
| 60 | <td>四分之一决赛</td> | ||
| 61 | </tr> | ||
| 62 | <tr> | ||
| 63 | <td>女子</td> | ||
| 64 | <td>14:30 - 15:30</td> | ||
| 65 | <td>半决赛</td> | ||
| 66 | </tr> | ||
| 67 | <tr> | ||
| 68 | <td>女子</td> | ||
| 69 | <td>14:30 - 15:30</td> | ||
| 70 | <td>半决赛</td> | ||
| 71 | </tr> | ||
| 72 | <tr> | ||
| 73 | <td>男子</td> | ||
| 74 | <td>14:30 - 15:30</td> | ||
| 75 | <td>季军赛</td> | ||
| 76 | </tr> | ||
| 77 | <tr> | ||
| 78 | <td>女子</td> | ||
| 79 | <td>14:30 - 15:30</td> | ||
| 80 | <td>季军赛</td> | ||
| 81 | </tr> | ||
| 82 | <tr> | ||
| 83 | <td>男子</td> | ||
| 84 | <td>14:30 - 15:30</td> | ||
| 85 | <td>决赛</td> | ||
| 86 | </tr> | ||
| 87 | <tr> | ||
| 88 | <td>女子</td> | ||
| 89 | <td>14:30 - 15:30</td> | ||
| 90 | <td>决赛</td> | ||
| 91 | </tr> | ||
| 92 | <tr> | ||
| 93 | <td colspan="5" style="text-align: left"> | ||
| 94 | 注:竞赛日程将根据最终参赛人数和电视转播的要求进行调整 | ||
| 95 | </td> | ||
| 96 | </tr> | ||
| 97 | </table> | ||
| 98 | </div> | ||
| 99 | </el-collapse-item> | ||
| 100 | </el-collapse> | ||
| 101 | <el-empty image="@/assets/img/order_no.png" :image-size="228" v-if="form.cptProjectList?.length == 0" description=" "/> | ||
| 102 | </div> | 48 | </div> |
| 103 | </div> | 49 | </div> |
| 104 | <div style="padding: 0 20px 20px" v-else> | 50 | <div style="padding: 0 20px 20px" v-else> |
| ... | @@ -113,94 +59,43 @@ | ... | @@ -113,94 +59,43 @@ |
| 113 | 59 | ||
| 114 | </div> | 60 | </div> |
| 115 | <div class="indexTitle" v-if="form.type==0"><h3 class="leftboderTT">Competition Regulations</h3></div> | 61 | <div class="indexTitle" v-if="form.type==0"><h3 class="leftboderTT">Competition Regulations</h3></div> |
| 116 | <div class="xzbox" v-if="form.type==0" v-html="form.ruleUrl"></div> | 62 | <div class="xzbox" v-if="form.type==0"> |
| 63 | <div v-html="form.ruleContent"> | ||
| 64 | |||
| 65 | </div> | ||
| 66 | <el-link v-if="form.ruleUrl" type="primary" :href="fillImgUrl(JSON.parse(form.ruleUrl)[0]?.url)" target="_blank"> | ||
| 67 | <el-icon :size="20"> | ||
| 68 | <Download /> | ||
| 69 | </el-icon> | ||
| 70 | {{ JSON.parse(form.ruleUrl)[0]?.name }} | ||
| 71 | </el-link> | ||
| 72 | </div> | ||
| 117 | <div class="indexTitle" v-if="form.type==1"><h3 class="leftboderTT">Event settings</h3></div> | 73 | <div class="indexTitle" v-if="form.type==1"><h3 class="leftboderTT">Event settings</h3></div> |
| 118 | <div class="collapsebox" v-if="form.type==1"> | 74 | <div class="collapsebox" v-if="form.type==1"> |
| 119 | <el-collapse v-if="form.cptProjectList?.length > 0"> | 75 | |
| 120 | <el-collapse-item :title="p.name" :name="index" :key="index" v-for="(p,index) in form.cptProjectList"> | 76 | <div class="pd20"> |
| 121 | <div class="pd20"> | 77 | <table class="table" cellspacing="0" cellpadding="0" v-if="form.cptProjectList?.length > 0"> |
| 122 | <table class="table"> | 78 | <tr> |
| 123 | <tr> | 79 | <th>Group code</th> |
| 124 | <td>日期</td> | 80 | <th>Group</th> |
| 125 | <td>单元</td> | 81 | <th>Dance Style</th> |
| 126 | <td>组别</td> | 82 | <th>Dance Detail</th> |
| 127 | <td>时间</td> | 83 | <th>Sex</th> |
| 128 | <td>阶段</td> | 84 | <th>Age</th> |
| 129 | </tr> | 85 | <th>Registration Fee</th> |
| 130 | <tr> | 86 | </tr> |
| 131 | <td rowspan="4">2023/10/6(星期五)</td> | 87 | <tr v-for="(p,index) in matchData.cptProjectList" :key="index"> |
| 132 | <td rowspan="4">BRK01</td> | 88 | <td>{{ p.code }}</td> |
| 133 | <td>男子</td> | 89 | <td>{{ p.name }}</td> |
| 134 | <td>14:30 - 15:30</td> | 90 | <td>{{ p.danceType }}</td> |
| 135 | <td>资格赛</td> | 91 | <td>{{ p.danceTypeDetailStr }}</td> |
| 136 | </tr> | 92 | <td>{{ p.playTypeStr }}</td> |
| 137 | <tr> | 93 | <td>{{ p.birthPeriod }}</td> |
| 138 | <td>女子</td> | 94 | <td>¥{{ p.serviceFee }}</td> |
| 139 | <td>14:30 - 15:30</td> | 95 | </tr> |
| 140 | <td>资格赛</td> | 96 | </table> |
| 141 | </tr> | 97 | </div> |
| 142 | <tr> | 98 | <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="form.cptProjectList?.length == 0" description=" "/> |
| 143 | <td>男子</td> | ||
| 144 | <td>14:30 - 15:30</td> | ||
| 145 | <td>循环赛</td> | ||
| 146 | </tr> | ||
| 147 | <tr> | ||
| 148 | <td>女子</td> | ||
| 149 | <td>14:30 - 15:30</td> | ||
| 150 | <td>循环赛</td> | ||
| 151 | </tr> | ||
| 152 | <tr> | ||
| 153 | <td rowspan="8">2023/10/7(星期六)</td> | ||
| 154 | <td rowspan="8">BRK02</td> | ||
| 155 | <td>男子</td> | ||
| 156 | <td>14:30 - 15:30</td> | ||
| 157 | <td>四分之一决赛</td> | ||
| 158 | </tr> | ||
| 159 | <tr> | ||
| 160 | <td>男子</td> | ||
| 161 | <td>14:30 - 15:30</td> | ||
| 162 | <td>四分之一决赛</td> | ||
| 163 | </tr> | ||
| 164 | <tr> | ||
| 165 | <td>女子</td> | ||
| 166 | <td>14:30 - 15:30</td> | ||
| 167 | <td>半决赛</td> | ||
| 168 | </tr> | ||
| 169 | <tr> | ||
| 170 | <td>女子</td> | ||
| 171 | <td>14:30 - 15:30</td> | ||
| 172 | <td>半决赛</td> | ||
| 173 | </tr> | ||
| 174 | <tr> | ||
| 175 | <td>男子</td> | ||
| 176 | <td>14:30 - 15:30</td> | ||
| 177 | <td>季军赛</td> | ||
| 178 | </tr> | ||
| 179 | <tr> | ||
| 180 | <td>女子</td> | ||
| 181 | <td>14:30 - 15:30</td> | ||
| 182 | <td>季军赛</td> | ||
| 183 | </tr> | ||
| 184 | <tr> | ||
| 185 | <td>男子</td> | ||
| 186 | <td>14:30 - 15:30</td> | ||
| 187 | <td>决赛</td> | ||
| 188 | </tr> | ||
| 189 | <tr> | ||
| 190 | <td>女子</td> | ||
| 191 | <td>14:30 - 15:30</td> | ||
| 192 | <td>决赛</td> | ||
| 193 | </tr> | ||
| 194 | <tr> | ||
| 195 | <td colspan="5" style="text-align: left"> | ||
| 196 | 注:竞赛日程将根据最终参赛人数和电视转播的要求进行调整 | ||
| 197 | </td> | ||
| 198 | </tr> | ||
| 199 | </table> | ||
| 200 | </div> | ||
| 201 | </el-collapse-item> | ||
| 202 | </el-collapse> | ||
| 203 | <el-empty image="@/assets/img/order_no.png" :image-size="228" v-if="form.cptProjectList?.length == 0" description=" "/> | ||
| 204 | </div> | 99 | </div> |
| 205 | </div> | 100 | </div> |
| 206 | </template> | 101 | </template> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <el-card :body-style="{padding: '10px'}" class="mb20"> | 2 | <el-card :body-style="{padding: '10px'}" class="mb20"> |
| 3 | <div> | 3 | <!-- <div>--> |
| 4 | <div class="liveImgbox" @click="goDetail(newsList[0])"> | 4 | <!-- <div class="liveImgbox" @click="goDetail(newsList[0])">--> |
| 5 | <i class="ii">{{ language==0?'直播中':'Live' }}</i> | 5 | <!-- <i class="ii">{{ language==0?'直播中':'Live' }}</i>--> |
| 6 | <img :src="fillImgUrl_webSite(newsList[0]?.picUrl)"> | 6 | <!-- <img :src="fillImgUrl_webSite(newsList[0]?.picUrl)">--> |
| 7 | </div> | 7 | <!-- </div>--> |
| 8 | </div> | 8 | <!-- </div>--> |
| 9 | 9 | ||
| 10 | <div class="indexTitle"> | 10 | <div class="indexTitle"> |
| 11 | <h3 class="leftboderTT">{{ language==0?'赛事报道':'Special reports' }}</h3> | 11 | <h3 class="leftboderTT">{{ language==0?'赛事报道':'Special reports' }}</h3> |
| 12 | <a class="more" @click="goList(query2.sortId,'专题报道')">MORE</a> | 12 | <!-- <a class="more" @click="goList(query2.sortId,'专题报道')">MORE</a>--> |
| 13 | </div> | 13 | </div> |
| 14 | <div> | 14 | <div> |
| 15 | <div class="item" v-for="n in newsList2" :key="n.id"> | 15 | <div class="item" v-for="n in newsList" :key="n.id"> |
| 16 | <p class="esp">{{ n.name }}</p> | 16 | <p class="esp">{{ n.name }}</p> |
| 17 | </div> | 17 | </div> |
| 18 | </div> | 18 | </div> |
| 19 | 19 | ||
| 20 | <div class="indexTitle"><h3 class="leftboderTT">{{ language==0?'赛事视频':'Event Videos' }}</h3> | 20 | <div class="indexTitle"><h3 class="leftboderTT">{{ language==0?'赛事视频':'Event Videos' }}</h3> |
| 21 | <a class="more" @click="goList(10000006,'赛事视频')">MORE</a> | 21 | <!-- <a class="more" @click="goList(10000006,'赛事视频')">MORE</a>--> |
| 22 | </div> | 22 | </div> |
| 23 | <div> | 23 | <div class="item" v-for="n in newsList2" :key="n.id"> |
| 24 | <div class="videoImgbox" @click="goDetail(newsList[1])"> | 24 | <div class="videoImgbox" @click="goDetail(n)"> |
| 25 | <img :src="fillImgUrl_webSite(newsList[1]?.picUrl)"> | 25 | <img :src="fillImgUrl_webSite(n.picUrl)"> |
| 26 | </div> | 26 | </div> |
| 27 | </div> | 27 | </div> |
| 28 | <div class="indexTitle"><h3 class="leftboderTT">{{ language==0?'赛事图片':'Event Photos' }}</h3> | 28 | <div class="indexTitle"><h3 class="leftboderTT">{{ language==0?'赛事图片':'Event Photos' }}</h3> |
| 29 | <a class="more" @click="goList(10000007,'赛事图片')">MORE</a> | 29 | <!-- <a class="more" @click="goList(10000007,'赛事图片')">MORE</a>--> |
| 30 | </div> | 30 | </div> |
| 31 | <div> | 31 | <div v-for="n in newsList3" :key="n.id"> |
| 32 | <div class="picbox" @click="goDetail(newsList[0])"><img :src="fillImgUrl_webSite(newsList[0]?.picUrl)"/></div> | 32 | <div class="picbox" @click="goDetail(n)"><img :src="fillImgUrl_webSite(n.picUrl)"/></div> |
| 33 | </div> | 33 | </div> |
| 34 | </el-card> | 34 | </el-card> |
| 35 | </template> | 35 | </template> |
| ... | @@ -39,22 +39,34 @@ import {getNewsListById} from "@/apiPc/webSite"; | ... | @@ -39,22 +39,34 @@ import {getNewsListById} from "@/apiPc/webSite"; |
| 39 | import {onMounted, ref} from "vue"; | 39 | import {onMounted, ref} from "vue"; |
| 40 | import cache from '@/plugins/cache' | 40 | import cache from '@/plugins/cache' |
| 41 | const language = ref(cache.local.get('language') || 0) | 41 | const language = ref(cache.local.get('language') || 0) |
| 42 | 42 | const props = defineProps({ | |
| 43 | matchId: { | ||
| 44 | type: String, | ||
| 45 | required: true | ||
| 46 | } | ||
| 47 | }) | ||
| 43 | const newsList = ref([]) | 48 | const newsList = ref([]) |
| 44 | const newsList2 = ref([]) | 49 | const newsList2 = ref([]) |
| 50 | const newsList3 = ref([]) | ||
| 45 | const query1 = ref({ | 51 | const query1 = ref({ |
| 46 | pageSize: 5, | 52 | pageSize: 1, |
| 47 | pageNum: 1, | 53 | pageNum: 1, |
| 48 | sortId: '10000006' | 54 | code: `${props.matchId}${language.value == 0 ?'100':'101'}2` |
| 49 | }) | 55 | }) |
| 50 | const query2 = ref({ | 56 | const query2 = ref({ |
| 51 | pageSize: 3, | 57 | pageSize: 3, |
| 52 | pageNum: 1, | 58 | pageNum: 1, |
| 53 | sortId: '10000003' | 59 | code: `${props.matchId}${language.value == 0 ?'100':'101'}1` |
| 60 | }) | ||
| 61 | const query3 = ref({ | ||
| 62 | pageSize: 1, | ||
| 63 | pageNum: 1, | ||
| 64 | code: `${props.matchId}${language.value == 0 ?'100':'101'}3` | ||
| 54 | }) | 65 | }) |
| 55 | onMounted(() => { | 66 | onMounted(() => { |
| 56 | getList(query1.value) | 67 | getList(query1.value) |
| 57 | getList2(query2.value) | 68 | getList2(query2.value) |
| 69 | getList3(query3.value) | ||
| 58 | }) | 70 | }) |
| 59 | const getList = (obj) => { | 71 | const getList = (obj) => { |
| 60 | getNewsListById(obj).then(res => { | 72 | getNewsListById(obj).then(res => { |
| ... | @@ -66,6 +78,11 @@ const getList2 = (obj) => { | ... | @@ -66,6 +78,11 @@ const getList2 = (obj) => { |
| 66 | newsList2.value = res.rows | 78 | newsList2.value = res.rows |
| 67 | }) | 79 | }) |
| 68 | } | 80 | } |
| 81 | const getList3 = (obj) => { | ||
| 82 | getNewsListById(obj).then(res => { | ||
| 83 | newsList3.value = res.rows | ||
| 84 | }) | ||
| 85 | } | ||
| 69 | const goList = (sortId,name) => { | 86 | const goList = (sortId,name) => { |
| 70 | router.push({ | 87 | router.push({ |
| 71 | path: `/news/list/${sortId}`, | 88 | path: `/news/list/${sortId}`, | ... | ... |
| ... | @@ -24,7 +24,7 @@ | ... | @@ -24,7 +24,7 @@ |
| 24 | </el-timeline-item> | 24 | </el-timeline-item> |
| 25 | </el-timeline> | 25 | </el-timeline> |
| 26 | 26 | ||
| 27 | <el-empty image="@/assets/img/order_no.png" :image-size="228" v-if="matchData.cptScheduleList?.length==0" description="" /> | 27 | <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="matchData.cptScheduleList?.length==0" description="" /> |
| 28 | 28 | ||
| 29 | </div> | 29 | </div> |
| 30 | </template> | 30 | </template> | ... | ... |
| ... | @@ -5,7 +5,7 @@ | ... | @@ -5,7 +5,7 @@ |
| 5 | <el-table-column :label="language==0?'所属国家':'Nationality'" prop="countryName" min-width="100"/> | 5 | <el-table-column :label="language==0?'所属国家':'Nationality'" prop="countryName" min-width="100"/> |
| 6 | <el-table-column :label="language==0?'姓氏':'Last Name'" prop="xing" min-width="100"/> | 6 | <el-table-column :label="language==0?'姓氏':'Last Name'" prop="xing" min-width="100"/> |
| 7 | <el-table-column :label="language==0?'名':'First Name'" prop="ming" min-width="100"/> | 7 | <el-table-column :label="language==0?'名':'First Name'" prop="ming" min-width="100"/> |
| 8 | <el-table-column :label="language==0?'短名':'Short Name'" prop="shortName" min-width="110"/> | 8 | <el-table-column :label="language==0?'短名':'Nick Name'" prop="shortName" min-width="110"/> |
| 9 | <el-table-column :label="language==0?'性别':'Gender'" prop="sexStr"/> | 9 | <el-table-column :label="language==0?'性别':'Gender'" prop="sexStr"/> |
| 10 | <el-table-column :label="language==0?'年龄':'Age'" prop="age"/> | 10 | <el-table-column :label="language==0?'年龄':'Age'" prop="age"/> |
| 11 | <el-table-column :label="language==0?'出生日期':'Birth'" prop="birth" width="110"/> | 11 | <el-table-column :label="language==0?'出生日期':'Birth'" prop="birth" width="110"/> | ... | ... |
| ... | @@ -16,8 +16,7 @@ | ... | @@ -16,8 +16,7 @@ |
| 16 | </el-radio> | 16 | </el-radio> |
| 17 | </div> | 17 | </div> |
| 18 | </el-radio-group> | 18 | </el-radio-group> |
| 19 | <el-empty v-if="projectList.length==0" image="@/assets/img/order_no.png" :image-size="228" description="无可选项目" /> | 19 | <el-empty v-if="projectList.length==0" :image="`/img/order_no.png`" :image-size="228" description="无可选项目" /> |
| 20 | |||
| 21 | </el-form-item> | 20 | </el-form-item> |
| 22 | </el-col> | 21 | </el-col> |
| 23 | <el-col :span="8"> | 22 | <el-col :span="8"> | ... | ... |
| ... | @@ -3,11 +3,11 @@ | ... | @@ -3,11 +3,11 @@ |
| 3 | <el-table-column :label="language==0?'所属国家':'Nationality'" prop="personInfo.countryName" min-width="100"/> | 3 | <el-table-column :label="language==0?'所属国家':'Nationality'" prop="personInfo.countryName" min-width="100"/> |
| 4 | <el-table-column :label="language==0?'姓氏':'Last Name'" prop="personInfo.xing" min-width="100"/> | 4 | <el-table-column :label="language==0?'姓氏':'Last Name'" prop="personInfo.xing" min-width="100"/> |
| 5 | <el-table-column :label="language==0?'名':'First Name'" prop="personInfo.ming" min-width="100"/> | 5 | <el-table-column :label="language==0?'名':'First Name'" prop="personInfo.ming" min-width="100"/> |
| 6 | <el-table-column :label="language==0?'短名':'Short Name'" prop="personInfo.shortName" min-width="110"/> | 6 | <el-table-column :label="language==0?'短名':'Nick Name'" prop="personInfo.shortName" min-width="110"/> |
| 7 | <el-table-column :label="language==0?'性别':'Gender'" prop="personInfo.sexStr"/> | 7 | <el-table-column :label="language==0?'性别':'Gender'" prop="personInfo.sexStr"/> |
| 8 | <el-table-column :label="language==0?'年龄':'Age'" prop="personInfo.age"/> | 8 | <el-table-column :label="language==0?'年龄':'Age'" prop="personInfo.age"/> |
| 9 | <el-table-column :label="language==0?'出生日期':'Birth'" prop="personInfo.birth" width="110"/> | 9 | <el-table-column :label="language==0?'出生日期':'Birth'" prop="personInfo.birth" width="110"/> |
| 10 | <el-table-column :label="language==0?'手机号码':'Phone Number'" prop="personInfo.phone" width="120"/> | 10 | <el-table-column :label="language==0?'手机号码':'Phone Number'" prop="personInfo.phone" min-width="130"/> |
| 11 | <el-table-column :label="language==0?'邮箱':'E-mail'" prop="personInfo.email" width="150"/> | 11 | <el-table-column :label="language==0?'邮箱':'E-mail'" prop="personInfo.email" width="150"/> |
| 12 | <el-table-column :label="language==0?'证件类型':'ID Type'" prop="personInfo.idcTypeStr"/> | 12 | <el-table-column :label="language==0?'证件类型':'ID Type'" prop="personInfo.idcTypeStr"/> |
| 13 | <el-table-column :label="language==0?'证件号码':'ID NO.'" prop="personInfo.idcCode" width="200"/> | 13 | <el-table-column :label="language==0?'证件号码':'ID NO.'" prop="personInfo.idcCode" width="200"/> |
| ... | @@ -43,7 +43,7 @@ | ... | @@ -43,7 +43,7 @@ |
| 43 | </ol> | 43 | </ol> |
| 44 | </template> | 44 | </template> |
| 45 | </el-table-column> | 45 | </el-table-column> |
| 46 | <el-table-column :fixed="hasAction?false:'right'" :label="language==0?'保险费':'Premium'" prop="insuranceFee"> | 46 | <el-table-column :fixed="hasAction?false:'right'" min-width="100" :label="language==0?'保险费':'Premium'" prop="insuranceFee"> |
| 47 | <template #default="scope"> | 47 | <template #default="scope"> |
| 48 | <span class="text-primary">¥{{ scope.row.insuranceFee }}</span> | 48 | <span class="text-primary">¥{{ scope.row.insuranceFee }}</span> |
| 49 | </template> | 49 | </template> | ... | ... |
| ... | @@ -8,7 +8,7 @@ | ... | @@ -8,7 +8,7 @@ |
| 8 | <el-col :lg="10" :md="12" :xl="12"> | 8 | <el-col :lg="10" :md="12" :xl="12"> |
| 9 | <div class="info"> | 9 | <div class="info"> |
| 10 | <h3>{{ n.name }}</h3> | 10 | <h3>{{ n.name }}</h3> |
| 11 | <p class="ppl"><label>{{ language==0?'比赛时间':'Playing Time' }}:</label>{{n.beginTime?.slice(0,10)}} 至 {{ n.endTime?.slice(0,10) }}</p> | 11 | <p class="ppl"><label>{{ language==0?'比赛时间':'Playing Time' }}:</label>{{n.beginTime?.slice(0,10)}} ~ {{ n.endTime?.slice(0,10) }}</p> |
| 12 | <p class="ppl"><label>{{ language==0?'地    点':'Location' }}:</label>{{ n.address }}</p> | 12 | <p class="ppl"><label>{{ language==0?'地    点':'Location' }}:</label>{{ n.address }}</p> |
| 13 | <p class="ppl"><label>{{ language==0?'报名截止':'Registration Deadline' }}:</label>{{ n.signEndTime?.slice(0,10) }}</p> | 13 | <p class="ppl"><label>{{ language==0?'报名截止':'Registration Deadline' }}:</label>{{ n.signEndTime?.slice(0,10) }}</p> |
| 14 | 14 | ||
| ... | @@ -45,7 +45,7 @@ | ... | @@ -45,7 +45,7 @@ |
| 45 | </div> | 45 | </div> |
| 46 | </div> | 46 | </div> |
| 47 | 47 | ||
| 48 | <el-empty image="@/assets/img/order_no.png" :image-size="228" v-if="list?.length == 0" description=" "/> | 48 | <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="list?.length == 0" description=" "/> |
| 49 | </template> | 49 | </template> |
| 50 | 50 | ||
| 51 | <script setup> | 51 | <script setup> | ... | ... |
| ... | @@ -111,7 +111,7 @@ | ... | @@ -111,7 +111,7 @@ |
| 111 | </table> | 111 | </table> |
| 112 | </div> | 112 | </div> |
| 113 | 113 | ||
| 114 | <el-empty image="@/assets/img/order_no.png" :image-size="228" v-if="matchData.cptProjectList?.length == 0" description=" "/> | 114 | <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="matchData.cptProjectList?.length == 0" description=" "/> |
| 115 | </div> | 115 | </div> |
| 116 | </div> | 116 | </div> |
| 117 | <match-schedule-list :match-data="matchData" v-if="menu[2].active==1"/> | 117 | <match-schedule-list :match-data="matchData" v-if="menu[2].active==1"/> |
| ... | @@ -141,15 +141,21 @@ | ... | @@ -141,15 +141,21 @@ |
| 141 | </div> | 141 | </div> |
| 142 | </el-col> | 142 | </el-col> |
| 143 | </el-row> | 143 | </el-row> |
| 144 | <el-empty image="@/assets/img/order_no.png" :image-size="228" v-if="(signDoneGroupList==null)||(signDoneGroupList.length==0)" description="" /> | 144 | <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="(signDoneGroupList==null)||(signDoneGroupList.length==0)" description="" /> |
| 145 | </div> | 145 | </div> |
| 146 | <div v-if="menu[4].active==1"> | 146 | <div v-if="menu[4].active==1"> |
| 147 | <!-- 成绩--> | 147 | <!-- 成绩--> |
| 148 | <el-empty image="@/assets/img/order_no.png" :image-size="228" description="暂无成绩" /> | 148 | <el-empty :image="`/img/order_no.png`" :image-size="228"/> |
| 149 | </div> | 149 | </div> |
| 150 | <div v-if="menu[5].active==1" class="pd20"> | 150 | <div v-if="menu[5].active==1" class="pd20"> |
| 151 | <div class="xzbox" v-html="matchData.signKnow"> | 151 | <div class="xzbox"> |
| 152 | 152 | <div v-html="matchData.signKnow"></div> | |
| 153 | <el-link v-if="matchData.signKnowUrl" type="primary" :href="fillImgUrl(JSON.parse(matchData.signKnowUrl)[0]?.url)" target="_blank"> | ||
| 154 | <el-icon :size="20"> | ||
| 155 | <Download /> | ||
| 156 | </el-icon> | ||
| 157 | {{ JSON.parse(matchData.signKnowUrl)[0]?.name }} | ||
| 158 | </el-link> | ||
| 153 | </div> | 159 | </div> |
| 154 | </div> | 160 | </div> |
| 155 | </el-card> | 161 | </el-card> |
| ... | @@ -157,7 +163,7 @@ | ... | @@ -157,7 +163,7 @@ |
| 157 | 163 | ||
| 158 | </el-col> | 164 | </el-col> |
| 159 | <el-col :lg="6"> | 165 | <el-col :lg="6"> |
| 160 | <match-news/> | 166 | <match-news :match-id="matchId"/> |
| 161 | </el-col> | 167 | </el-col> |
| 162 | </el-row> | 168 | </el-row> |
| 163 | 169 | ||
| ... | @@ -259,22 +265,24 @@ function choseSignType() { | ... | @@ -259,22 +265,24 @@ function choseSignType() { |
| 259 | return | 265 | return |
| 260 | } | 266 | } |
| 261 | console.log(matchData.value.signType) | 267 | console.log(matchData.value.signType) |
| 262 | // checkIsSign().then(() => { | 268 | checkIsSign().then(() => { |
| 263 | if (matchData.value.signType == '0'||(matchData.value.signType == '2' && user.utype == '1')) { | 269 | if (matchData.value.signType == '0'||(matchData.value.signType == '2' && user.utype == '1')) { |
| 264 | // 个人报名 | 270 | // 个人报名 |
| 265 | // router.push({ | 271 | // router.push({ |
| 266 | // path: `${matchId.value}/singleSign` | 272 | // path: `${matchId.value}/singleSign` |
| 267 | // }) | 273 | // }) |
| 268 | router.push({ | 274 | |
| 275 | const routeData = router.resolve({ | ||
| 269 | name: `chooseCoach`, | 276 | name: `chooseCoach`, |
| 270 | query: { | 277 | query: { |
| 271 | matchId: matchId.value, | 278 | matchId: matchId.value, |
| 272 | signType: matchData.value.signType | 279 | signType: matchData.value.signType |
| 273 | } | 280 | } |
| 274 | }) | 281 | }) |
| 282 | window.open(routeData.href, '_blank') | ||
| 275 | } | 283 | } |
| 276 | if(matchData.value.signType == '1'||(matchData.value.signType == '2' && user.utype == '2')){ | 284 | if(matchData.value.signType == '1'||(matchData.value.signType == '2' && user.utype == '2')){ |
| 277 | router.push({ | 285 | const routeData = router.resolve({ |
| 278 | path: `${matchId.value}/teamSign`, | 286 | path: `${matchId.value}/teamSign`, |
| 279 | query: { | 287 | query: { |
| 280 | matchId: matchId.value, | 288 | matchId: matchId.value, |
| ... | @@ -282,15 +290,16 @@ function choseSignType() { | ... | @@ -282,15 +290,16 @@ function choseSignType() { |
| 282 | signType: matchData.value.signType | 290 | signType: matchData.value.signType |
| 283 | } | 291 | } |
| 284 | }) | 292 | }) |
| 293 | window.open(routeData.href, '_blank') | ||
| 285 | } | 294 | } |
| 286 | // }) | 295 | }) |
| 287 | } | 296 | } |
| 288 | 297 | ||
| 289 | // 获取已报信息 | 298 | // 获取已报信息 |
| 290 | function checkIsSign() { | 299 | function checkIsSign() { |
| 291 | var obj = { | 300 | var obj = { |
| 292 | cptId: matchId.value, | 301 | cptId: matchId.value, |
| 293 | groupId: groupId.value | 302 | groupId: groupId.value || 0 |
| 294 | } | 303 | } |
| 295 | return match.getMySignInfo(obj).then(res => { | 304 | return match.getMySignInfo(obj).then(res => { |
| 296 | if (res.data.type == '1') { | 305 | if (res.data.type == '1') { | ... | ... |
| ... | @@ -32,7 +32,7 @@ | ... | @@ -32,7 +32,7 @@ |
| 32 | </van-count-down> | 32 | </van-count-down> |
| 33 | 33 | ||
| 34 | <div> | 34 | <div> |
| 35 | <a class="btn-lineG mb20" @click="choseSignType" style="display: block;text-align: center;">Application</a> | 35 | <a class="btn-lineG mb20" @click="choseSignType" style="display: block;text-align: center;">Register</a> |
| 36 | </div> | 36 | </div> |
| 37 | </el-col> | 37 | </el-col> |
| 38 | </el-row> | 38 | </el-row> |
| ... | @@ -42,25 +42,25 @@ | ... | @@ -42,25 +42,25 @@ |
| 42 | <el-col :lg="4"> | 42 | <el-col :lg="4"> |
| 43 | <div class="funcBtn" @click="building"> | 43 | <div class="funcBtn" @click="building"> |
| 44 | <img src="@/assets/dance/btn04.png"/> | 44 | <img src="@/assets/dance/btn04.png"/> |
| 45 | <h4>Booking</h4> | 45 | <h4>Ticket Booking</h4> |
| 46 | </div> | 46 | </div> |
| 47 | </el-col> | 47 | </el-col> |
| 48 | <el-col :lg="4"> | 48 | <el-col :lg="4"> |
| 49 | <div class="funcBtn" @click="building"> | 49 | <div class="funcBtn" @click="building"> |
| 50 | <img src="@/assets/dance/btn01.png"/> | 50 | <img src="@/assets/dance/btn01.png"/> |
| 51 | <h4>Hotel</h4> | 51 | <h4>Hotel Reservation</h4> |
| 52 | </div> | 52 | </div> |
| 53 | </el-col> | 53 | </el-col> |
| 54 | <el-col :lg="4"> | 54 | <el-col :lg="4"> |
| 55 | <div class="funcBtn" @click="building"> | 55 | <div class="funcBtn" @click="building"> |
| 56 | <img src="@/assets/dance/btn02.png"/> | 56 | <img src="@/assets/dance/btn02.png"/> |
| 57 | <h4>Taxi</h4> | 57 | <h4>Vehicle Reservation</h4> |
| 58 | </div> | 58 | </div> |
| 59 | </el-col> | 59 | </el-col> |
| 60 | <el-col :lg="4"> | 60 | <el-col :lg="4"> |
| 61 | <div class="funcBtn" @click="building"> | 61 | <div class="funcBtn" @click="building"> |
| 62 | <img src="@/assets/dance/btn03.png"/> | 62 | <img src="@/assets/dance/btn03.png"/> |
| 63 | <h4>Order food</h4> | 63 | <h4>Dining Reservation</h4> |
| 64 | </div> | 64 | </div> |
| 65 | </el-col> | 65 | </el-col> |
| 66 | <el-col :lg="4"> | 66 | <el-col :lg="4"> |
| ... | @@ -72,7 +72,7 @@ | ... | @@ -72,7 +72,7 @@ |
| 72 | <el-col :lg="4"> | 72 | <el-col :lg="4"> |
| 73 | <div class="funcBtn" @click="building"> | 73 | <div class="funcBtn" @click="building"> |
| 74 | <img src="@/assets/dance/btn06.png"/> | 74 | <img src="@/assets/dance/btn06.png"/> |
| 75 | <h4>Photo appointment</h4> | 75 | <h4>Photography Appointment</h4> |
| 76 | </div> | 76 | </div> |
| 77 | </el-col> | 77 | </el-col> |
| 78 | </el-row> | 78 | </el-row> |
| ... | @@ -111,7 +111,7 @@ | ... | @@ -111,7 +111,7 @@ |
| 111 | </table> | 111 | </table> |
| 112 | </div> | 112 | </div> |
| 113 | 113 | ||
| 114 | <el-empty image="@/assets/img/order_no.png" :image-size="228" v-if="matchData.cptProjectList?.length == 0" description=" "/> | 114 | <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="matchData.cptProjectList?.length == 0" description=" "/> |
| 115 | </div> | 115 | </div> |
| 116 | </div> | 116 | </div> |
| 117 | <match-schedule-list :match-data="matchData" v-if="menu[2].active==1"/> | 117 | <match-schedule-list :match-data="matchData" v-if="menu[2].active==1"/> |
| ... | @@ -141,15 +141,21 @@ | ... | @@ -141,15 +141,21 @@ |
| 141 | </div> | 141 | </div> |
| 142 | </el-col> | 142 | </el-col> |
| 143 | </el-row> | 143 | </el-row> |
| 144 | <el-empty image="@/assets/img/order_no.png" :image-size="228" v-if="(signDoneGroupList==null)||(signDoneGroupList.length==0)" description="" /> | 144 | <el-empty :image="`/img/order_no.png`" :image-size="228" v-if="(signDoneGroupList==null)||(signDoneGroupList.length==0)" description="" /> |
| 145 | </div> | 145 | </div> |
| 146 | <div v-if="menu[4].active==1"> | 146 | <div v-if="menu[4].active==1"> |
| 147 | <!-- 成绩--> | 147 | <!-- 成绩--> |
| 148 | <el-empty image="@/assets/img/order_no.png" :image-size="228" description="" /> | 148 | <el-empty :image="`/img/order_no.png`" :image-size="228" description="" /> |
| 149 | </div> | 149 | </div> |
| 150 | <div v-if="menu[5].active==1" class="pd20"> | 150 | <div v-if="menu[5].active==1" class="pd20"> |
| 151 | <div class="xzbox" v-html="matchData.signKnow"> | 151 | <div class="xzbox"> |
| 152 | 152 | <div v-html="matchData.signKnow"></div> | |
| 153 | <el-link v-if="matchData.signKnowUrl" type="primary" :href="fillImgUrl(JSON.parse(matchData.signKnowUrl)[0]?.url)" target="_blank"> | ||
| 154 | <el-icon :size="20"> | ||
| 155 | <Download /> | ||
| 156 | </el-icon> | ||
| 157 | {{ JSON.parse(matchData.signKnowUrl)[0]?.name }} | ||
| 158 | </el-link> | ||
| 153 | </div> | 159 | </div> |
| 154 | </div> | 160 | </div> |
| 155 | </el-card> | 161 | </el-card> |
| ... | @@ -157,7 +163,7 @@ | ... | @@ -157,7 +163,7 @@ |
| 157 | 163 | ||
| 158 | </el-col> | 164 | </el-col> |
| 159 | <el-col :lg="6"> | 165 | <el-col :lg="6"> |
| 160 | <match-news/> | 166 | <match-news :match-id="matchId"/> |
| 161 | </el-col> | 167 | </el-col> |
| 162 | </el-row> | 168 | </el-row> |
| 163 | 169 | ||
| ... | @@ -261,7 +267,7 @@ function choseSignType() { | ... | @@ -261,7 +267,7 @@ function choseSignType() { |
| 261 | return | 267 | return |
| 262 | } | 268 | } |
| 263 | //判断signType,如果是2且utype是2,则跳转到团体报名 | 269 | //判断signType,如果是2且utype是2,则跳转到团体报名 |
| 264 | // checkIsSign().then(() => { | 270 | checkIsSign().then(() => { |
| 265 | if (matchData.value.signType == '0'||(matchData.value.signType == '2' && user.utype == '1')) { | 271 | if (matchData.value.signType == '0'||(matchData.value.signType == '2' && user.utype == '1')) { |
| 266 | // 个人报名 | 272 | // 个人报名 |
| 267 | router.push({ | 273 | router.push({ |
| ... | @@ -282,17 +288,17 @@ function choseSignType() { | ... | @@ -282,17 +288,17 @@ function choseSignType() { |
| 282 | } | 288 | } |
| 283 | }) | 289 | }) |
| 284 | } | 290 | } |
| 285 | // }) | 291 | }) |
| 286 | } | 292 | } |
| 287 | // 获取已报信息 | 293 | // 获取已报信息 |
| 288 | function checkIsSign() { | 294 | function checkIsSign() { |
| 289 | var obj = { | 295 | var obj = { |
| 290 | cptId: matchId.value, | 296 | cptId: matchId.value, |
| 291 | groupId: groupId.value | 297 | groupId: groupId.value || 0 |
| 292 | } | 298 | } |
| 293 | return match.getMySignInfo(obj).then(res => { | 299 | return match.getMySignInfo(obj).then(res => { |
| 294 | if (res.data.type == '1') { | 300 | if (res.data.type == '1') { |
| 295 | ElMessage.error('已报名,不能重复报名') | 301 | ElMessage.error('Registered, cannot be duplicated') |
| 296 | return Promise.reject('rejected message') | 302 | return Promise.reject('rejected message') |
| 297 | } | 303 | } |
| 298 | }) | 304 | }) | ... | ... |
| ... | @@ -21,7 +21,7 @@ | ... | @@ -21,7 +21,7 @@ |
| 21 | </div> | 21 | </div> |
| 22 | <div v-else class="pd20 skeletonBox"> | 22 | <div v-else class="pd20 skeletonBox"> |
| 23 | <el-skeleton :rows="8"/> | 23 | <el-skeleton :rows="8"/> |
| 24 | <el-button type="primary" class="w200px btn-lineG" round>登录后查看详细报项信息</el-button> | 24 | <el-button type="primary" class="w200px btn-lineG" round @click="showLogin">登录后查看详细报项信息</el-button> |
| 25 | </div> | 25 | </div> |
| 26 | </el-card> | 26 | </el-card> |
| 27 | 27 | ||
| ... | @@ -30,26 +30,27 @@ | ... | @@ -30,26 +30,27 @@ |
| 30 | <el-col :lg="12"> | 30 | <el-col :lg="12"> |
| 31 | <div class="text-warning flex" v-if="form.auditStatus=='1'"> | 31 | <div class="text-warning flex" v-if="form.auditStatus=='1'"> |
| 32 | <img src="@/assets/img/ing.png"> | 32 | <img src="@/assets/img/ing.png"> |
| 33 | 报名信息审核中 | 33 | {{ language==0?'报名信息审核中':'Registration Information under review' }} |
| 34 | </div> | 34 | </div> |
| 35 | <div class="text-success flex" v-if="form.auditStatus=='2'"> | 35 | <div class="text-success flex" v-if="form.auditStatus=='2'"> |
| 36 | <img src="@/assets/img/r.png"> | 36 | <img src="@/assets/img/r.png"> |
| 37 | 报名信息审核通过 | 37 | {{ language==0?'报名信息审核通过':'Registration Information Approved' }} |
| 38 | </div> | 38 | </div> |
| 39 | <div class="text-danger flex" v-if="form.auditStatus=='3'"> | 39 | <div class="text-danger flex" v-if="form.auditStatus=='3'"> |
| 40 | <img src="@/assets/img/w.png">报名信息审核拒绝 | 40 | <img src="@/assets/img/w.png"> |
| 41 | {{ language==0?'报名信息审核拒绝':'Registration Information rejected' }} | ||
| 41 | </div> | 42 | </div> |
| 42 | </el-col> | 43 | </el-col> |
| 43 | <el-col :lg="12"> | 44 | <el-col :lg="12"> |
| 44 | <div class="priceb" v-if="form.payStatus=='0'">待支付金额:<span class="price">¥{{ Number(totalFee).toFixed(2) }}</span></div> | 45 | <div class="priceb" v-if="form.payStatus=='0'">{{ language==0?'待支付金额':'Amount Due' }}:<span class="price">¥{{ Number(totalFee).toFixed(2) }}</span></div> |
| 45 | <div class="priceb" v-if="form.payStatus=='1'">已支付金额:<span class="price">¥{{ Number(totalFee).toFixed(2) }}</span></div> | 46 | <div class="priceb" v-if="form.payStatus=='1'">{{ language==0?'已支付金额':'Amount Due' }}:<span class="price">¥{{ Number(totalFee).toFixed(2) }}</span></div> |
| 46 | </el-col> | 47 | </el-col> |
| 47 | </el-row> | 48 | </el-row> |
| 48 | </el-card> | 49 | </el-card> |
| 49 | <el-card class="mb60" v-if="form.auditStatus=='2'&&form.payStatus=='0'"> | 50 | <el-card class="mb60" v-if="form.auditStatus=='2'&&form.payStatus=='0'"> |
| 50 | <div class="leftboderTT">{{ language==0?'选择支付方式':'Choose payment method' }}</div> | 51 | <div class="leftboderTT">{{ language==0?'选择支付方式':'Choose payment method' }}</div> |
| 51 | <div class="mt20"> | 52 | <div class="mt20"> |
| 52 | <el-radio-group v-model="payType"> | 53 | <el-radio-group v-model="payType" @change="changePaytype"> |
| 53 | <!-- <el-radio label="1" border>--> | 54 | <!-- <el-radio label="1" border>--> |
| 54 | <!-- <svg t="1709003181386" class="icon" viewBox="0 0 3283 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="31015" width="100" height="40"><path d="M1163.122759 94.631724H593.92A133.826207 133.826207 0 0 0 459.034483 228.457931v567.084138a133.473103 133.473103 0 0 0 133.826207 133.826207h570.262069a133.826207 133.826207 0 0 0 134.17931-133.826207v-5.296552s-217.864828-90.394483-328.033103-143.36c-73.445517 90.747586-168.783448 145.478621-267.652414 145.478621-167.017931 0-223.514483-145.831724-144.419311-241.875862a169.136552 169.136552 0 0 1 92.16-51.906207c70.62069-17.302069 184.32 10.946207 290.604138 45.903448A587.211034 587.211034 0 0 0 988.689655 429.373793h-328.73931v-32.838621h168.783448V337.213793h-204.446896v-33.191724h204.446896V219.630345a14.124138 14.124138 0 0 1 14.477241-14.477242h82.273104v98.868966h202.328276v33.191724h-202.328276v59.321379h165.252414a677.605517 677.605517 0 0 1-70.62069 176.551725c50.14069 18.008276 94.984828 35.310345 128.529655 46.256551a930.427586 930.427586 0 0 0 147.950345 42.725518V228.457931a133.826207 133.826207 0 0 0-133.473103-133.826207z" fill="#089fe8" p-id="31016"></path><path d="M663.481379 548.016552a162.78069 162.78069 0 0 0-81.566896 30.366896c-64.617931 55.790345-26.129655 158.190345 104.165517 158.190345 75.917241 0 151.481379-48.375172 211.862069-125.704827-85.804138-40.96-156.424828-70.267586-234.46069-62.852414zM2488.673103 225.28h239.757242v47.668966h85.804138V216.805517a22.951724 22.951724 0 0 0-21.892414-23.304827h-139.122759V149.009655h-89.335172v44.137931h-160.662069v79.80138h85.451034zM1882.394483 360.518621h67.442758v247.172413h73.798621V280.011034h-26.835862l55.437241-126.764137H1970.317241l-87.922758 207.271724zM2824.827586 596.391724l-26.835862-90.747586a13.771034 13.771034 0 0 0-13.064827-10.24h-70.62069l20.48 70.62069H2648.275862v-135.944828h164.546207v-32.132414H2648.275862v-63.55862h164.546207v-32.132414h-409.6v32.132414h164.546207v63.55862h-164.546207v32.132414h164.546207V564.965517h-164.546207v32.132414H2824.827586zM2158.521379 323.442759a16.595862 16.595862 0 0 0-15.183448-9.886897h-63.558621l49.434483 156.424828h75.564138z" fill="#089fe8" p-id="31017"></path><path d="M2319.889655 156.777931h-76.623448v80.154483h-188.557241v32.132414h188.557241v287.426206a13.064828 13.064828 0 0 1-12.358621 12.005518h-38.841379v31.77931h99.222069a30.013793 30.013793 0 0 0 28.601379-29.66069V269.064828h31.073104v-32.132414h-31.073104zM1871.448276 577.677241a913.831724 913.831724 0 0 1-168.783448-80.507586 357.34069 357.34069 0 0 0 141.241379-194.56H1694.896552V249.997241h170.195862v-32.83862H1694.896552V150.422069h-75.211035a15.536552 15.536552 0 0 0-15.183448 15.536552v51.2h-169.136552v32.83862h169.136552v52.612414h-141.241379v32.838621h284.248276a278.951724 278.951724 0 0 1-93.572414 127.470345 360.871724 360.871724 0 0 1-93.572414-94.984828H1483.034483a423.724138 423.724138 0 0 0 122.173793 130.295173 662.775172 662.775172 0 0 1-172.667586 77.329655v39.194482A773.296552 773.296552 0 0 0 1653.230345 529.655172 781.771034 781.771034 0 0 0 1871.448276 614.753103zM1553.655172 674.78069l-70.620689 190.675862h35.310345l13.417931-38.488276h70.620689l12.711724 38.488276h35.310345l-70.620689-190.675862z m-12.711724 128.176551l27.188966-79.095172 26.482758 79.095172zM1796.237241 674.78069h-34.251034v190.675862h115.464827v-26.129655h-81.213793v-164.546207zM2003.155862 674.78069h34.251035v190.322758h-34.251035zM2250.328276 674.78069h-74.151724v190.675862h35.310345v-73.445518h39.900689a58.615172 58.615172 0 1 0 0-117.230344z m-2.118621 91.100689H2210.427586v-64.971034h37.782069a31.073103 31.073103 0 0 1 30.366897 32.485517 30.72 30.72 0 0 1-30.366897 32.485517zM2465.015172 674.78069l-70.620689 190.675862h35.310345l13.417931-38.488276h70.620689l12.711724 38.488276h35.310345l-70.620689-190.675862z m-12.711724 128.176551l27.542069-79.095172 27.188966 79.095172zM2716.071724 755.994483l-38.135172-81.213793H2641.213793l57.555862 112.286896v78.388966h33.897931v-78.388966l0.353104-0.353103 57.555862-111.933793h-37.075862l-37.428966 81.213793z" fill="#089fe8" p-id="31018"></path></svg>--> | 55 | <!-- <svg t="1709003181386" class="icon" viewBox="0 0 3283 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="31015" width="100" height="40"><path d="M1163.122759 94.631724H593.92A133.826207 133.826207 0 0 0 459.034483 228.457931v567.084138a133.473103 133.473103 0 0 0 133.826207 133.826207h570.262069a133.826207 133.826207 0 0 0 134.17931-133.826207v-5.296552s-217.864828-90.394483-328.033103-143.36c-73.445517 90.747586-168.783448 145.478621-267.652414 145.478621-167.017931 0-223.514483-145.831724-144.419311-241.875862a169.136552 169.136552 0 0 1 92.16-51.906207c70.62069-17.302069 184.32 10.946207 290.604138 45.903448A587.211034 587.211034 0 0 0 988.689655 429.373793h-328.73931v-32.838621h168.783448V337.213793h-204.446896v-33.191724h204.446896V219.630345a14.124138 14.124138 0 0 1 14.477241-14.477242h82.273104v98.868966h202.328276v33.191724h-202.328276v59.321379h165.252414a677.605517 677.605517 0 0 1-70.62069 176.551725c50.14069 18.008276 94.984828 35.310345 128.529655 46.256551a930.427586 930.427586 0 0 0 147.950345 42.725518V228.457931a133.826207 133.826207 0 0 0-133.473103-133.826207z" fill="#089fe8" p-id="31016"></path><path d="M663.481379 548.016552a162.78069 162.78069 0 0 0-81.566896 30.366896c-64.617931 55.790345-26.129655 158.190345 104.165517 158.190345 75.917241 0 151.481379-48.375172 211.862069-125.704827-85.804138-40.96-156.424828-70.267586-234.46069-62.852414zM2488.673103 225.28h239.757242v47.668966h85.804138V216.805517a22.951724 22.951724 0 0 0-21.892414-23.304827h-139.122759V149.009655h-89.335172v44.137931h-160.662069v79.80138h85.451034zM1882.394483 360.518621h67.442758v247.172413h73.798621V280.011034h-26.835862l55.437241-126.764137H1970.317241l-87.922758 207.271724zM2824.827586 596.391724l-26.835862-90.747586a13.771034 13.771034 0 0 0-13.064827-10.24h-70.62069l20.48 70.62069H2648.275862v-135.944828h164.546207v-32.132414H2648.275862v-63.55862h164.546207v-32.132414h-409.6v32.132414h164.546207v63.55862h-164.546207v32.132414h164.546207V564.965517h-164.546207v32.132414H2824.827586zM2158.521379 323.442759a16.595862 16.595862 0 0 0-15.183448-9.886897h-63.558621l49.434483 156.424828h75.564138z" fill="#089fe8" p-id="31017"></path><path d="M2319.889655 156.777931h-76.623448v80.154483h-188.557241v32.132414h188.557241v287.426206a13.064828 13.064828 0 0 1-12.358621 12.005518h-38.841379v31.77931h99.222069a30.013793 30.013793 0 0 0 28.601379-29.66069V269.064828h31.073104v-32.132414h-31.073104zM1871.448276 577.677241a913.831724 913.831724 0 0 1-168.783448-80.507586 357.34069 357.34069 0 0 0 141.241379-194.56H1694.896552V249.997241h170.195862v-32.83862H1694.896552V150.422069h-75.211035a15.536552 15.536552 0 0 0-15.183448 15.536552v51.2h-169.136552v32.83862h169.136552v52.612414h-141.241379v32.838621h284.248276a278.951724 278.951724 0 0 1-93.572414 127.470345 360.871724 360.871724 0 0 1-93.572414-94.984828H1483.034483a423.724138 423.724138 0 0 0 122.173793 130.295173 662.775172 662.775172 0 0 1-172.667586 77.329655v39.194482A773.296552 773.296552 0 0 0 1653.230345 529.655172 781.771034 781.771034 0 0 0 1871.448276 614.753103zM1553.655172 674.78069l-70.620689 190.675862h35.310345l13.417931-38.488276h70.620689l12.711724 38.488276h35.310345l-70.620689-190.675862z m-12.711724 128.176551l27.188966-79.095172 26.482758 79.095172zM1796.237241 674.78069h-34.251034v190.675862h115.464827v-26.129655h-81.213793v-164.546207zM2003.155862 674.78069h34.251035v190.322758h-34.251035zM2250.328276 674.78069h-74.151724v190.675862h35.310345v-73.445518h39.900689a58.615172 58.615172 0 1 0 0-117.230344z m-2.118621 91.100689H2210.427586v-64.971034h37.782069a31.073103 31.073103 0 0 1 30.366897 32.485517 30.72 30.72 0 0 1-30.366897 32.485517zM2465.015172 674.78069l-70.620689 190.675862h35.310345l13.417931-38.488276h70.620689l12.711724 38.488276h35.310345l-70.620689-190.675862z m-12.711724 128.176551l27.542069-79.095172 27.188966 79.095172zM2716.071724 755.994483l-38.135172-81.213793H2641.213793l57.555862 112.286896v78.388966h33.897931v-78.388966l0.353104-0.353103 57.555862-111.933793h-37.075862l-37.428966 81.213793z" fill="#089fe8" p-id="31018"></path></svg>--> |
| 55 | <!-- </el-radio>--> | 56 | <!-- </el-radio>--> |
| ... | @@ -124,6 +125,18 @@ | ... | @@ -124,6 +125,18 @@ |
| 124 | </el-radio> | 125 | </el-radio> |
| 125 | </el-radio-group> | 126 | </el-radio-group> |
| 126 | 127 | ||
| 128 | <div v-if="payType == '2'&&wePayCodeUrl"> | ||
| 129 | <div class="payImgbox flexCenter"> | ||
| 130 | <div> | ||
| 131 | <img width="260" class="border" :src="wePayCodeUrl"/> | ||
| 132 | <img class="mt20" src="@/assets/img/sm.png"/> | ||
| 133 | </div> | ||
| 134 | <div class="ml20"> | ||
| 135 | <img height="360" src="@/assets/img/rr.jpg"/> | ||
| 136 | </div> | ||
| 137 | </div> | ||
| 138 | </div> | ||
| 139 | |||
| 127 | <div v-if="payType == '3'"> | 140 | <div v-if="payType == '3'"> |
| 128 | <table class="table-border table" cellpadding="0" cellspacing="0"> | 141 | <table class="table-border table" cellpadding="0" cellspacing="0"> |
| 129 | <tr> | 142 | <tr> |
| ... | @@ -190,13 +203,23 @@ | ... | @@ -190,13 +203,23 @@ |
| 190 | </div> | 203 | </div> |
| 191 | </div> | 204 | </div> |
| 192 | <div class="text-center mt20" v-else> | 205 | <div class="text-center mt20" v-else> |
| 193 | <el-button type="primary" round class="btn-lineG w200px">确定</el-button> | 206 | <el-button v-if="!hideconfirmbtn" type="primary" @click="goPay" round class="btn-lineG w200px"> |
| 207 | {{ language==0?'确定':'Submit' }}</el-button> | ||
| 194 | </div> | 208 | </div> |
| 209 | |||
| 195 | </div> | 210 | </div> |
| 196 | 211 | ||
| 197 | </el-card> | 212 | </el-card> |
| 213 | <el-card class="mb60" v-if="form.payStatus == '3'"> | ||
| 214 | <div class="text-center"> | ||
| 215 | <el-icon color="#32B16C" size="80"><SuccessFilled /></el-icon> | ||
| 216 | <p class="text-success">{{ language==0?'支付成功':'successful!' }}</p> | ||
| 217 | <h3 class="wePrice">¥{{form.totalFee}}</h3> | ||
| 218 | </div> | ||
| 219 | </el-card> | ||
| 198 | </div> | 220 | </div> |
| 199 | 221 | ||
| 222 | |||
| 200 | <div class="box" v-if="errorBox"> | 223 | <div class="box" v-if="errorBox"> |
| 201 | <el-result | 224 | <el-result |
| 202 | icon="error" | 225 | icon="error" |
| ... | @@ -238,8 +261,10 @@ const language = ref(cache.local.get('language') || 0) | ... | @@ -238,8 +261,10 @@ const language = ref(cache.local.get('language') || 0) |
| 238 | const signInfoList = ref([]) | 261 | const signInfoList = ref([]) |
| 239 | const zuTableList = ref([]) | 262 | const zuTableList = ref([]) |
| 240 | const totalFee = ref('') | 263 | const totalFee = ref('') |
| 264 | const wePayCodeUrl = ref('') | ||
| 241 | const form = ref({}) | 265 | const form = ref({}) |
| 242 | const errorBox = ref(false) | 266 | const errorBox = ref(false) |
| 267 | const hideconfirmbtn = ref(false) | ||
| 243 | console.log(route.query.orderId) | 268 | console.log(route.query.orderId) |
| 244 | // 1763462073870237698 | 269 | // 1763462073870237698 |
| 245 | getData() | 270 | getData() |
| ... | @@ -247,7 +272,7 @@ if (useUserStore().user) { | ... | @@ -247,7 +272,7 @@ if (useUserStore().user) { |
| 247 | isLogin.value = true | 272 | isLogin.value = true |
| 248 | } | 273 | } |
| 249 | function getData() { | 274 | function getData() { |
| 250 | match.getMyOrderDetail({orderId:orderId.value}).then(res => { | 275 | return match.getMyOrderDetail({orderId:orderId.value}).then(res => { |
| 251 | totalFee.value = res.data.totalFee | 276 | totalFee.value = res.data.totalFee |
| 252 | form.value = res.data | 277 | form.value = res.data |
| 253 | matchId.value = form.value.cptId | 278 | matchId.value = form.value.cptId |
| ... | @@ -273,13 +298,57 @@ function getSignList() { | ... | @@ -273,13 +298,57 @@ function getSignList() { |
| 273 | function goHome() { | 298 | function goHome() { |
| 274 | router.push('/') | 299 | router.push('/') |
| 275 | } | 300 | } |
| 301 | function changePaytype() { | ||
| 302 | hideconfirmbtn.value = false | ||
| 303 | if(handle) { | ||
| 304 | clearTimeout(handle) | ||
| 305 | handle=null | ||
| 306 | } | ||
| 307 | } | ||
| 308 | function goPay(){ | ||
| 309 | if(payType.value=='2'){ | ||
| 310 | match.createWePay({orderId:orderId.value}).then(res=>{ | ||
| 311 | wePayCodeUrl.value = res.data | ||
| 312 | hideconfirmbtn.value = true | ||
| 313 | startforGetData() | ||
| 314 | }) | ||
| 315 | } | ||
| 316 | if(payType.value=='4'){ | ||
| 317 | match.createPalPay({orderId:orderId.value}).then(res=>{ | ||
| 318 | if(res.data){ | ||
| 319 | location.href=res.data | ||
| 320 | } | ||
| 321 | }) | ||
| 322 | } | ||
| 323 | } | ||
| 324 | let handle; | ||
| 325 | function startforGetData() { | ||
| 326 | handle= setTimeout(()=>{ | ||
| 327 | getData().then(()=>{ | ||
| 328 | if( form.value.payTime){ | ||
| 329 | if(handle) { | ||
| 330 | clearTimeout(handle) | ||
| 331 | handle=null | ||
| 332 | } | ||
| 333 | }else{ | ||
| 334 | startforGetData() | ||
| 335 | } | ||
| 336 | }) | ||
| 337 | },2000) | ||
| 338 | } | ||
| 339 | |||
| 340 | function showLogin(){ | ||
| 341 | useUserStore().setReLogin() | ||
| 342 | } | ||
| 343 | |||
| 276 | </script> | 344 | </script> |
| 277 | 345 | ||
| 278 | <style scoped lang="scss"> | 346 | <style scoped lang="scss"> |
| 347 | .wePrice{font-size: 24px;font-weight: 400;} | ||
| 279 | .el-radio.is-bordered { | 348 | .el-radio.is-bordered { |
| 280 | height: 40px; | 349 | height: 40px; |
| 281 | } | 350 | } |
| 282 | 351 | .border{border: 1px solid #e1e1e1;} | |
| 283 | .leftboderTT { | 352 | .leftboderTT { |
| 284 | font-weight: 600; | 353 | font-weight: 600; |
| 285 | font-size: 16px; | 354 | font-size: 16px; |
| ... | @@ -366,4 +435,5 @@ function goHome() { | ... | @@ -366,4 +435,5 @@ function goHome() { |
| 366 | width: 200px;box-shadow: 0 0 1000px 500px rgba(255,255,255,0.5); | 435 | width: 200px;box-shadow: 0 0 1000px 500px rgba(255,255,255,0.5); |
| 367 | } | 436 | } |
| 368 | } | 437 | } |
| 438 | .payImgbox{text-align: center;border: 1px solid #fff;padding: 20px;} | ||
| 369 | </style> | 439 | </style> | ... | ... |
src/viewsPc/match/payOk.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <div class="box"> | ||
| 4 | <el-card class="mb60 mt30"> | ||
| 5 | <div class="text-center mt30"> | ||
| 6 | <el-icon color="#32B16C" size="80"><SuccessFilled /></el-icon> | ||
| 7 | <p class="text-success mb20">{{ language==0?'支付成功':'successful!' }}</p> | ||
| 8 | |||
| 9 | <el-button type="primary" class="btn-lineG mb60" @click="goBillDetail" round>{{ language==0?'返回订单详情':'Return order details' }}</el-button> | ||
| 10 | </div> | ||
| 11 | </el-card> | ||
| 12 | </div> | ||
| 13 | </div> | ||
| 14 | </template> | ||
| 15 | |||
| 16 | <script setup> | ||
| 17 | import {ref} from "vue"; | ||
| 18 | import cache from "@/plugins/cache"; | ||
| 19 | import {useRoute,useRouter} from "vue-router"; | ||
| 20 | import {onMounted} from "@vue/runtime-core"; | ||
| 21 | import {callbackPalPay} from "@/apiPc/match"; | ||
| 22 | const route = useRoute() | ||
| 23 | const router = useRouter() | ||
| 24 | const language = ref(cache.local.get('language') || 0) | ||
| 25 | const orderId = ref(route.query.orderId) | ||
| 26 | |||
| 27 | onMounted(()=>{ | ||
| 28 | callbackPalPay(route.query.orderId).then(res=>{ | ||
| 29 | |||
| 30 | }) | ||
| 31 | }) | ||
| 32 | function goBillDetail() { | ||
| 33 | router.push({ | ||
| 34 | name:`signPay`, | ||
| 35 | query: { | ||
| 36 | orderId: route.query.orderId | ||
| 37 | } | ||
| 38 | }) | ||
| 39 | } | ||
| 40 | </script> | ||
| 41 | |||
| 42 | <style scoped lang="scss"> | ||
| 43 | |||
| 44 | </style> |
| ... | @@ -489,7 +489,6 @@ const goPersonDetail = (m) => { | ... | @@ -489,7 +489,6 @@ const goPersonDetail = (m) => { |
| 489 | } | 489 | } |
| 490 | 490 | ||
| 491 | .bm-btm { | 491 | .bm-btm { |
| 492 | background: url("@/assets/v1/wt@2x.png") no-repeat center; | ||
| 493 | background-size: cover; | 492 | background-size: cover; |
| 494 | 493 | ||
| 495 | a { | 494 | a { | ... | ... |
| ... | @@ -280,7 +280,6 @@ function goTrain() { | ... | @@ -280,7 +280,6 @@ function goTrain() { |
| 280 | } | 280 | } |
| 281 | 281 | ||
| 282 | .pxPanel { | 282 | .pxPanel { |
| 283 | background: url("@/assets/v1/ss01.png") no-repeat center; | ||
| 284 | background-size: cover;margin-right: 10px; | 283 | background-size: cover;margin-right: 10px; |
| 285 | a { | 284 | a { |
| 286 | color: var(--el-color-golden); | 285 | color: var(--el-color-golden); |
| ... | @@ -293,7 +292,6 @@ function goTrain() { | ... | @@ -293,7 +292,6 @@ function goTrain() { |
| 293 | } | 292 | } |
| 294 | 293 | ||
| 295 | .jsPanel {margin-left: 10px; | 294 | .jsPanel {margin-left: 10px; |
| 296 | background: url("@/assets/v1/ss02.png") no-repeat center; | ||
| 297 | background-size: cover; | 295 | background-size: cover; |
| 298 | 296 | ||
| 299 | a { | 297 | a { | ... | ... |
-
Please register or sign in to post a comment