815a2ac2 by 杨炀

no message

1 parent 05ebb5dc
Showing 48 changed files with 2110 additions and 939 deletions
No preview for this file type
No preview for this file type
...@@ -91,6 +91,20 @@ export function getMyGroupList() { ...@@ -91,6 +91,20 @@ export function getMyGroupList() {
91 method: 'get' 91 method: 'get'
92 }) 92 })
93 } 93 }
94 export function checkWdsf(query) {
95 return request({
96 url: `/league/wdsf/check`,
97 method: 'get',
98 params:query
99 })
100 }
101 export function registerSingle(data) {
102 return request({
103 url: `/pcRegisterSingleAboard`,
104 method: 'post',
105 data:data
106 })
107 }
94 108
95 // 根据Id获取我的团队 109 // 根据Id获取我的团队
96 export function getGroupInfo() { 110 export function getGroupInfo() {
...@@ -192,6 +206,12 @@ export function saveMyTeam(data) { ...@@ -192,6 +206,12 @@ export function saveMyTeam(data) {
192 data: data 206 data: data
193 }) 207 })
194 } 208 }
209 export function withDrawByOrderId(orderId) {
210 return request({
211 url: `/league/signOrder/withDraw/${orderId}`,
212 method: 'post'
213 })
214 }
195 215
196 export function getMyOrderList(params) { 216 export function getMyOrderList(params) {
197 return request({ 217 return request({
...@@ -208,10 +228,17 @@ export function getMySignListFromOrderList(orderId) { ...@@ -208,10 +228,17 @@ export function getMySignListFromOrderList(orderId) {
208 }) 228 })
209 } 229 }
210 230
211 export function getMyOrderDetail(orderId) { 231 // export function getMyOrderDetail(orderId) {
232 // return request({
233 // url: `/league/signOrder/getMyOrderDetail/${orderId}`,
234 // method: 'get'
235 // })
236 // }
237 export function getMyOrderDetail(query) {
212 return request({ 238 return request({
213 url: `/league/signOrder/getMyOrderDetail/${orderId}`, 239 url: `/league/signOrder/getOrderPayInfo`,
214 method: 'get' 240 method: 'get',
241 params: query
215 }) 242 })
216 } 243 }
217 244
...@@ -460,6 +487,13 @@ export function getMySignInfoList(data) { ...@@ -460,6 +487,13 @@ export function getMySignInfoList(data) {
460 params: data 487 params: data
461 }) 488 })
462 } 489 }
490 export function exportCn(data) {
491 return request({
492 url: `/league/sign/exportCn`,
493 method: 'get',
494 params: data
495 })
496 }
463 export function saveMyGroupExtraInfo(data) { 497 export function saveMyGroupExtraInfo(data) {
464 return request({ 498 return request({
465 url: `/league/competitionGroupInfo/saveMyGroupExtraInfo`, 499 url: `/league/competitionGroupInfo/saveMyGroupExtraInfo`,
......
...@@ -288,6 +288,8 @@ function getCode() { ...@@ -288,6 +288,8 @@ function getCode() {
288 288
289 :deep(.el-input){height: 100%} 289 :deep(.el-input){height: 100%}
290 :deep(.el-form-item){height: 40px;} 290 :deep(.el-form-item){height: 40px;}
291 .home-menu .el-menu--horizontal > .el-menu-item{margin: 0 5px; font-size: 18px;}
292 .home-menu .el-sub-menu .el-sub-menu__title{font-size: 18px;}
291 .weiMenu.el-menu{ 293 .weiMenu.el-menu{
292 border: none; 294 border: none;
293 :deep(.el-menu-item.is-active){color: var(--el-color-primary);} 295 :deep(.el-menu-item.is-active){color: var(--el-color-primary);}
......
...@@ -401,6 +401,12 @@ export const constantRoutes = [ ...@@ -401,6 +401,12 @@ export const constantRoutes = [
401 redirect: '/match/list', 401 redirect: '/match/list',
402 children: [ 402 children: [
403 { 403 {
404 path: 'commitDone/:orderId',
405 component: () => import('@/viewsPc/match/commitDone'),
406 name: 'commitDone',
407 meta: { title: '提交审核'}
408 },
409 {
404 path: 'pay', 410 path: 'pay',
405 component: () => import('@/viewsPc/match/pay'), 411 component: () => import('@/viewsPc/match/pay'),
406 name: 'signPay', 412 name: 'signPay',
......
...@@ -278,6 +278,12 @@ export const constantRoutes = [ ...@@ -278,6 +278,12 @@ export const constantRoutes = [
278 redirect: '/match/list', 278 redirect: '/match/list',
279 children: [ 279 children: [
280 { 280 {
281 path: 'commitDone/:orderId',
282 component: () => import('@/viewsPc/match/commitDone'),
283 name: 'commitDone',
284 meta: { title: '提交审核'}
285 },
286 {
281 path: 'pay', 287 path: 'pay',
282 component: () => import('@/viewsPc/match/pay'), 288 component: () => import('@/viewsPc/match/pay'),
283 name: 'signPay', 289 name: 'signPay',
......
...@@ -141,26 +141,27 @@ service.interceptors.response.use( ...@@ -141,26 +141,27 @@ service.interceptors.response.use(
141 if (code === 401) { 141 if (code === 401) {
142 if (!isRelogin.show) { 142 if (!isRelogin.show) {
143 isRelogin.show = true 143 isRelogin.show = true
144 ElMessageBox.confirm( 144 ElMessage({ message: '登录状态已过期', type: 'error' })
145 '登录状态已过期,您可以继续留在该页面,或者重新登录', 145 // ElMessageBox.confirm(
146 '系统提示', 146 // '登录状态已过期,您可以继续留在该页面,或者重新登录',
147 { 147 // '系统提示',
148 confirmButtonText: '好的', 148 // {
149 cancelButtonText: '取消', 149 // confirmButtonText: '好的',
150 type: 'warning' 150 // cancelButtonText: '取消',
151 } 151 // type: 'warning'
152 ) 152 // }
153 .then(() => { 153 // )
154 isRelogin.show = false 154 // .then(() => {
155 useUserStore() 155 // isRelogin.show = false
156 .logOut() 156 // useUserStore()
157 .then(() => { 157 // .logOut()
158 location.reload() 158 // .then(() => {
159 }) 159 // location.reload()
160 }) 160 // })
161 .catch(() => { 161 // })
162 isRelogin.show = false 162 // .catch(() => {
163 }) 163 // isRelogin.show = false
164 // })
164 } 165 }
165 return Promise.reject('无效的会话,或者会话已过期,请重新登录。') 166 return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
166 } else if (code === 500) { 167 } else if (code === 500) {
......
1 <template> 1 <template>
2 <div> 2 <div class="mb20">
3 <el-card :body-style="{'padding':'0'}"> 3 <el-card :body-style="{'padding':'0'}">
4 <div class="indexTitle"><h3 class="leftboderTT">{{ language==0?'机构基础信息':'Institutional Basic Information' }}</h3></div> 4 <div class="indexTitle">
5 <h3 class="leftboderTT" v-if="user.utype=='2'">{{ language==0?'机构基础信息':'Institutional Basic Information' }}</h3>
6 <h3 class="leftboderTT" v-if="user.utype=='1'">{{ language==0?'个人基础信息':'Personal Basic Information' }}</h3>
7 </div>
5 <!-- uType字段 1 是个人 2是团体--> 8 <!-- uType字段 1 是个人 2是团体-->
6 <!-- {{user}}--> 9 <!-- {{user}}-->
7 <team-info :form="myform" :language="language" v-if="user.utype=='2'"/> 10 <team-info :form="myform" :language="language" v-if="user.utype=='2'"/>
11 <div class="pd20">
12 <div class="d-form-border" style="margin-top: 0">
13 <el-form class="d-form" label-width="120">
14 <el-form-item :label="language==0?'用户名':'Account'">
15 {{user.userName}}
16 </el-form-item>
17 <el-form-item label="姓名" required>
18 <el-input v-model="myform.realName" />
19 </el-form-item>
20 <el-form-item label="性别" prop="sex" required>
21 <el-radio-group v-model="myform.sex">
22 <el-radio label="0" size="large"></el-radio>
23 <el-radio label="1" size="large"></el-radio>
24 </el-radio-group>
25 </el-form-item>
26 <el-form-item label="证件类型">
27 <el-select v-model="myform.idcType" placeholder="请选择证件类型" style="width: 100%">
28 <el-option
29 v-for="item in certificates"
30 :key="item.value"
31 :label="item.label"
32 :value="item.value"
33 />
34 </el-select>
35 </el-form-item>
36 <el-form-item label="证件号码">
37 <el-input v-model="myform.idcCode" @blur="checkCode"/>
38 </el-form-item>
39 <el-form-item label="类型" prop="type">
40 <el-select v-model="myform.type" placeholder="请选择" style="width: 100%;">
41 <el-option label="业余" value="0" />
42 <el-option label="专业" value="1" />
43 <el-option label="大专院校" value="2" />
44 <el-option label="其他" value="3" />
45 </el-select>
46 </el-form-item>
47 <el-form-item :label="language==0?'联系人邮箱':'Contact Email'" required prop="email">
48 <el-input v-model="myform.email" type="email" :placeholder="language==0?'请输入内容':''"/>
49 </el-form-item>
50 </el-form>
51 <div class="text-center">
52 <el-button type="primary" class="btn-lineG" round @click="save">{{ language==0?'确定修改':'Save' }}</el-button>
53 </div>
8 54
55 </div>
56 </div>
9 </el-card> 57 </el-card>
10 58
11 </div> 59 </div>
...@@ -35,10 +83,10 @@ const activeName = ref('first') ...@@ -35,10 +83,10 @@ const activeName = ref('first')
35 const myform = ref({ 83 const myform = ref({
36 idcType: 0, 84 idcType: 0,
37 countryId: 240, 85 countryId: 240,
38 nation: '汉族' 86 nation: '汉族',
87 realName:''
39 }) 88 })
40 const labelArr = ref([]) 89 const labelArr = ref([])
41 const groupList = ref([])
42 90
43 const certificates = ref([ 91 const certificates = ref([
44 { 92 {
...@@ -60,8 +108,21 @@ onMounted(() => { ...@@ -60,8 +108,21 @@ onMounted(() => {
60 }) 108 })
61 109
62 function getData() { 110 function getData() {
63 match.getGroupInfo().then(res => { 111 if(props.user.utype=='2'){
64 myform.value = res.data 112 match.getGroupInfo().then(res => {
113 myform.value = res.data
114 })
115 }
116 if(props.user.utype=='1'){
117 match.getMyPersonInfo().then(res => {
118 myform.value = res.data
119 })
120 }
121
122 }
123 function save(){
124 match.saveMyBaseInfo().then(res=>{
125
65 }) 126 })
66 } 127 }
67 function checkCode() { 128 function checkCode() {
......
1 <template> 1 <template>
2 <el-card class="mb20"> 2 <el-card class="mb20">
3 <div class="pad20">
4 <el-form :model="query" :inline="true">
5 <el-form-item label="赛事名称">
6 <el-input v-model="query.name" style="width: 214px;" @change="getList"/>
7 </el-form-item>
8 <el-form-item label="赛事时间">
9 <el-date-picker
10 v-model="cptPeriodArr"
11 format="YYYY-MM-DD" type="daterange"
12 value-format="YYYY-MM-DD" range-separator="至"
13 start-placeholder="开始时间"
14 end-placeholder="结束时间"
15 @change="getList"
16 />
17 </el-form-item>
18 <el-form-item>
19 <el-button type="primary" @click="getList">查询</el-button>
20 <el-button type="info" @click="reset(query)">重置</el-button>
21 </el-form-item>
22 </el-form>
23
24 <div class="pd20"> 3 <div class="pd20">
25 <div class="matchItem" v-for="n in tableData" :key="n.id" @click="goDetail(n.id)"> 4 <div class="matchItem" v-for="n in billList" :key="n.id">
5 <div class="status-po">
6 <span class="bg-pink" v-if="n.auditStatus=='0'">未提交</span>
7 <span class="bg-primary" v-if="n.auditStatus=='1'">待审核</span>
8 <span class="bg-blue" v-if="n.auditStatus=='2'">审核通过</span>
9 <span class="bg-danger" v-if="n.auditStatus=='3'">审核驳回</span>
10 </div>
26 <el-row :gutter="15"> 11 <el-row :gutter="15">
27 <el-col :lg="6" :md="8" :xl="10"> 12 <el-col :lg="6" :md="8" :xl="10">
28 <img class="mauto" :src="fillImgUrl(n.coverUrl)"> 13 <img class="mauto w100" :src="fillImgUrl(n.coverUrl)">
29 </el-col> 14 </el-col>
30 <el-col :lg="18" :md="16" :xl="14"> 15 <el-col :lg="18" :md="16" :xl="14">
31 <div class="info"> 16 <el-row>
32 <h3>{{ n.name }}</h3> 17 <el-col :span="24">
33 <p class="ppl"><label>比赛时间:</label>{{ n.beginTime?.slice(0, 10) }}{{ n.endTime?.slice(0, 10) }} 18 <h3>{{ n.name }}</h3>
34 </p> 19 </el-col>
35 <p class="ppl"><label>&ensp;&ensp;&ensp;&ensp;点:</label>{{ n.address }}</p> 20 <el-col :lg="8">
36 <p class="ppl"><label>报名截止:</label>{{ n.signEndTime?.slice(0, 10) }}</p> 21 <p class="ppl"><label>赛事类型:</label>{{ n.level }}</p>
37 22 <p class="ppl"><label v-if="n.groupName">参赛队:</label>{{n.groupName}}</p>
38 <p class="ppl"><label>联系人员:</label>{{ n.contactPerson }}</p> 23 </el-col>
39 <p class="ppl"><label>联系电话:</label>{{ n.contactTelno }}</p> 24 <el-col :lg="8">
40 <p class="ppl"><label>&ensp;&ensp;&ensp;&ensp;箱:</label>{{ n.contactEmail }}</p> 25 <p class="ppl"><label>比赛时间:</label>{{ n.signBeginTime }}~{{n.signEndTime}}
41 26 </p>
42 </div> 27 <p class="ppl"><label>参赛运动员:</label>{{ n.signSize }}</p>
28 </el-col>
29 <el-col :lg="8">
30 <p class="ppl"><label>报名时间:</label>{{ n.signBeginTime }}~{{n.signEndTime}}</p>
31 <div class="btnbox">
32 <el-button plain round type="primary" @click="goDetail(n)" v-if="n.auditStatus!='0'">详情</el-button>
33 <el-button plain round type="primary" @click="continueSign(n)" v-if="n.auditStatus=='0'">继续报名</el-button>
34 <el-button plain round type="primary" @click="withDraw(n)" v-if="n.auditStatus=='1'">取消报名</el-button>
35 <el-button plain round type="primary" @click="continueSign(n)" v-if="n.auditStatus=='3'">重新报名</el-button>
36 <el-button plain round type="primary" @click="goDetail(n)" v-if="n.auditStatus=='2'&&n.payStatus=='0'">缴费</el-button>
37 </div>
38 </el-col>
39 </el-row>
43 </el-col> 40 </el-col>
44 </el-row> 41 </el-row>
45 </div> 42 </div>
46 </div>
47 43
48 <el-table :data="tableData" style="width: 100%"> 44 <el-empty image="@/assets/img/order_no.png" :image-size="228" v-if="billList?.length == 0"/>
49 <el-table-column type="index" label="序号" width="80" align="center"/> 45
50 <el-table-column label="赛事名称" min-width="260"> 46 </div>
51 <template #default="scope"> 47 <paginationPc
52 {{ scope.row.name }}
53 </template>
54 </el-table-column>
55 <el-table-column label="参赛队" min-width="260">
56 <template #default="scope">
57 <span v-if="scope.row.groupName">{{ scope.row.groupName }}</span>
58 <span v-else>-</span>
59 </template>
60 </el-table-column>
61 <el-table-column label="赛事开始时间" min-width="120">
62 <template #default="scope">{{ scope.row.beginTime.substring(0, 10) }}</template>
63 </el-table-column>
64 <el-table-column label="赛事结束时间" min-width="120">
65 <template #default="scope">{{ scope.row.endTime.substring(0, 10) }}</template>
66 </el-table-column>
67 <el-table-column label="审批状态" min-width="100" align="center">
68 <template #default="scope">
69 <el-tag v-if="scope.row.auditStatus=='1'" type="info">已提交</el-tag>
70 <el-tag v-if="scope.row.auditStatus=='2'" type="success">审核通过</el-tag>
71 <el-tag v-if="scope.row.auditStatus=='3'" type="danger">未通过</el-tag>
72 <el-tag v-if="scope.row.auditStatus=='4'" type="warning">已取消</el-tag>
73 </template>
74 </el-table-column>
75 <el-table-column label="操作" align="center" fixed="right" class-name="small-padding" width="180">
76 <template #default="scope">
77 <el-button v-if="scope.row.auditStatus!='0'" type="text" @click="downloadVoucher(scope.row)">
78 下载报名凭证
79 </el-button>
80 <el-button type="text" @click="signRow(scope.row)">详情</el-button>
81 </template>
82 </el-table-column>
83 </el-table>
84
85 <pagination
86 v-show="total > 0" 48 v-show="total > 0"
87 v-model:page="query.pageNum" 49 v-model:page="query.pageNum"
88 v-model:limit="query.pageSize" 50 v-model:limit="query.pageSize"
89 :total="total" 51 :total="total"
90 @pagination="getList" 52 @pagination="getList"
91 /> 53 />
92 </div>
93 54
94 <!-- 报项详情--> 55 <!-- 报项详情-->
95 <dialogModifySign :props="dialogModifySignProps"/> 56 <dialogModifySign :props="dialogModifySignProps"/>
...@@ -109,15 +70,12 @@ import dialogModifyBill from './component/modifyBill' ...@@ -109,15 +70,12 @@ import dialogModifyBill from './component/modifyBill'
109 import * as match from '@/apiPc/match' 70 import * as match from '@/apiPc/match'
110 import {ElMessage, ElMessageBox} from 'element-plus' 71 import {ElMessage, ElMessageBox} from 'element-plus'
111 import _ from 'lodash' 72 import _ from 'lodash'
73 import useUserStore from "@/store/modules/user";
112 74
113 const router = useRouter() 75 const router = useRouter()
114 const {proxy} = getCurrentInstance() 76 const {proxy} = getCurrentInstance()
115 const total = ref(0) 77 const total = ref(0)
116 const total2 = ref(0) 78 const total2 = ref(0)
117 const payMationDone = () => {
118 showOrganizerInfo.value = false
119 payPop.value = false
120 }
121 const dialogPropsBase = { 79 const dialogPropsBase = {
122 open: false, 80 open: false,
123 isView: false, 81 isView: false,
...@@ -155,10 +113,10 @@ const showResult = ref(false) ...@@ -155,10 +113,10 @@ const showResult = ref(false)
155 const myBalance = ref('') 113 const myBalance = ref('')
156 const nowBill = ref({}) 114 const nowBill = ref({})
157 const org = ref({}) 115 const org = ref({})
158 116 const user = useUserStore().user
117 const group = useUserStore().group
159 onMounted(() => { 118 onMounted(() => {
160 getList() 119 getList()
161 getBillList()
162 }) 120 })
163 const reset = (form) => { 121 const reset = (form) => {
164 query.value = { 122 query.value = {
...@@ -172,32 +130,53 @@ const reset = (form) => { ...@@ -172,32 +130,53 @@ const reset = (form) => {
172 cptPeriodArr.value = [] 130 cptPeriodArr.value = []
173 payTimeArr.value = [] 131 payTimeArr.value = []
174 commitTimeArr.value = [] 132 commitTimeArr.value = []
175 getBillList()
176 getList() 133 getList()
177 } 134 }
178 135 function withDraw(n){
179 136 match.withDrawByOrderId(n.orderId).then(res=>{
180 function wePayDone() { 137 getList()
181 payPop.value = false 138 })
182 getBillList()
183 getList()
184 } 139 }
185 140 function continueSign(n){
186 function getList() { 141 if (user.utype == '1') {
187 if (cptPeriodArr.value) { 142 // 个人报名
188 query.value.cptPeriod = cptPeriodArr.value.toString() 143 router.push({
144 name: 'chooseProject',
145 params:{
146 id: n.id
147 },
148 query: {
149 matchId: n.id
150 }
151 })
152 }
153 if (user.utype == '2'){
154 // 团队报名
155 router.push({
156 name: 'chooseSportsman',
157 params:{
158 id: n.id
159 },
160 query: {
161 matchId: n.id,
162 groupId: group.id
163 }
164 })
189 } 165 }
190 // match.getMySignCptList(query.value).then(res => {
191 // tableData.value = res.rows
192 // total.value = res.total
193 // })
194 }
195 166
196 function getBillList() { 167 }
197 query2.value.payTimeRange = payTimeArr.value.toString() 168 function goDetail(n){
198 query2.value.createTimeRange = commitTimeArr.value.toString() 169 // 查看详情
170 router.push({
171 name:`signPay`,
172 query: {
173 orderId: n.encodeOrderId
174 }
175 })
176 }
177 function getList() {
199 console.log(query2.value) 178 console.log(query2.value)
200 match.getMyOrderList(query2.value).then(res => { 179 match.getMySignCptList(query2.value).then(res => {
201 billList.value = res.rows 180 billList.value = res.rows
202 total2.value = res.total 181 total2.value = res.total
203 }) 182 })
...@@ -261,7 +240,6 @@ function cancelBill(bill) { ...@@ -261,7 +240,6 @@ function cancelBill(bill) {
261 match.cancelMyUnPayedOrder(bill.id).then(Response => { 240 match.cancelMyUnPayedOrder(bill.id).then(Response => {
262 console.log(Response.data) 241 console.log(Response.data)
263 // 刷新数据 242 // 刷新数据
264 getBillList()
265 getList() 243 getList()
266 }) 244 })
267 }) 245 })
...@@ -278,11 +256,16 @@ function downloadVoucher(row) { ...@@ -278,11 +256,16 @@ function downloadVoucher(row) {
278 .matchItem { 256 .matchItem {
279 cursor: pointer; 257 cursor: pointer;
280 margin: 0 0 20px; 258 margin: 0 0 20px;
281 padding: 0 0 20px; 259 padding: 0 0 20px;background: #FBFCFD;
282 background: #FFFFFF; 260 border-radius: 2px;
283 border-bottom: 1px solid #e5e5e5;
284 position: relative; 261 position: relative;
285 262 .status-po{position: absolute;right: 0;top: 0;font-size: 12px;
263 color: #FFFFFF;
264 span{border-radius: 0px 10px 0px 10px;padding: 4px 10px;}
265 .bg-danger{background: #E60012;}
266 .bg-pink{background: #F740A6;}
267 .bg-primary{background: var(--el-color-primary)}
268 }
286 &:last-child { 269 &:last-child {
287 border-bottom: none; 270 border-bottom: none;
288 } 271 }
...@@ -368,4 +351,8 @@ function downloadVoucher(row) { ...@@ -368,4 +351,8 @@ function downloadVoucher(row) {
368 .el-form--inline .el-form-item { 351 .el-form--inline .el-form-item {
369 width: auto; 352 width: auto;
370 } 353 }
354 .ppl{font-size: 14px;
355 label{color: #929AA0;}
356 }
357 .btnbox{text-align: right;}
371 </style> 358 </style>
......
1 <template>
2 <el-card class="mb20">
3 <div class="pad20">
4 <!-- <el-form :model="query" :inline="true">-->
5 <!-- <el-form-item label="赛事名称">-->
6 <!-- <el-input v-model="query.name" style="width: 214px;" @change="getBillList"/>-->
7 <!-- </el-form-item>-->
8 <!-- <el-form-item label="赛事时间">-->
9 <!-- <el-date-picker-->
10 <!-- v-model="cptPeriodArr"-->
11 <!-- format="YYYY-MM-DD" type="daterange"-->
12 <!-- value-format="YYYY-MM-DD" range-separator="至"-->
13 <!-- start-placeholder="开始时间"-->
14 <!-- end-placeholder="结束时间"-->
15 <!-- @change="getBillList"-->
16 <!-- />-->
17 <!-- </el-form-item>-->
18 <!-- <el-form-item>-->
19 <!-- <el-button type="primary" @click="getBillList">查询</el-button>-->
20 <!-- <el-button type="info" @click="reset(query)">重置</el-button>-->
21 <!-- </el-form-item>-->
22 <!-- </el-form>-->
23
24 <div class="pd20">
25 <div class="matchItem" v-for="n in billList" :key="n.id" @click="goDetail(n.id)">
26 <div class="status-po">
27 <span class="bg-pink" v-if="n.auditStatus=='0'">未提交</span>
28 <span class="bg-primary" v-if="n.auditStatus=='1'">待审核</span>
29 <span class="bg-blue" v-if="n.auditStatus=='2'">审核通过</span>
30 <span class="bg-danger" v-if="n.auditStatus=='3'">审核驳回</span>
31 </div>
32 <el-row :gutter="15">
33 <el-col :lg="6" :md="8" :xl="10">
34 <img class="mauto w100" :src="fillImgUrl(n.cptCoverPic)">
35 </el-col>
36 <el-col :lg="18" :md="16" :xl="14">
37 <el-row>
38 <el-col :span="24">
39 <h3>{{ n.cptName }}</h3>
40 </el-col>
41 <el-col :lg="8">
42 <p class="ppl"><label>赛事类型:</label>{{ n.cptLevel }}</p>
43 <p class="ppl"><label v-if="n.groupName">参赛队:</label>{{n.groupName}}</p>
44 </el-col>
45 <el-col :lg="8">
46 <p class="ppl"><label>比赛时间:</label>{{ n.cptTimeRange }}
47 </p>
48 <p class="ppl"><label>参赛运动员:</label>{{ n.cptAthletesSize }}</p>
49 </el-col>
50 <el-col :lg="8">
51 <p class="ppl"><label>报名时间:</label>{{ n.cptSignTimeRange}}</p>
52 <div class="btnbox">
53 <el-button plain round type="primary" @click="goDetail(n)" v-if="n.auditStatus!='0'">详情</el-button>
54 <el-button plain round type="primary" @click="continueSign(n)" v-if="n.auditStatus=='0'">继续报名</el-button>
55 <el-button plain round type="primary" @click="withDraw(n)" v-if="n.auditStatus=='1'">取消报名</el-button>
56 <el-button plain round type="primary" v-if="n.auditStatus=='3'">重新报名</el-button>
57 <el-button plain round type="primary" v-if="n.auditStatus=='2'&&n.payStatus=='0'">缴费</el-button>
58 </div>
59 </el-col>
60 </el-row>
61 </el-col>
62 </el-row>
63 </div>
64
65 <el-empty image="@/assets/img/order_no.png" :image-size="228" v-if="billList?.length == 0"/>
66
67 </div>
68 <paginationPc
69 v-show="total > 0"
70 v-model:page="query.pageNum"
71 v-model:limit="query.pageSize"
72 :total="total"
73 @pagination="getBillList"
74 />
75 </div>
76
77 <!-- 报项详情-->
78 <dialogModifySign :props="dialogModifySignProps"/>
79 <!-- 订单详情-->
80 <dialogModifyBill :props="dialogModifyBillProps"/>
81
82 </el-card>
83
84 </template>
85
86 <script setup>
87 import {ref} from 'vue'
88 import {useRouter} from 'vue-router'
89 import {getCurrentInstance, onMounted} from '@vue/runtime-core'
90 import dialogModifySign from './component/modifySign'
91 import dialogModifyBill from './component/modifyBill'
92 import * as match from '@/apiPc/match'
93 import {ElMessage, ElMessageBox} from 'element-plus'
94 import _ from 'lodash'
95 import useUserStore from "@/store/modules/user";
96
97 const router = useRouter()
98 const {proxy} = getCurrentInstance()
99 const total = ref(0)
100 const total2 = ref(0)
101 const dialogPropsBase = {
102 open: false,
103 isView: false,
104 title: '',
105 data: null
106 }
107 const dialogModifySignProps = ref({
108 ...dialogPropsBase
109 })
110 const dialogModifyBillProps = ref({
111 ...dialogPropsBase
112 })
113 const activeName = ref('first')
114 const myform = ref({})
115
116 const groupList = ref([])
117 const cptPeriodArr = ref([])
118 const payTimeArr = ref([])
119 const commitTimeArr = ref([])
120 const countryList = ref([])
121 const tableData = ref([{name: '111'}])
122 const billList = ref([])
123 const query = ref({
124 pageNum: 1,
125 pageSize: 10
126 })
127 const query2 = ref({
128 pageNum: 1,
129 pageSize: 10
130 })
131 const payType = ref('')
132 const payPop = ref(false)
133 const showOrganizerInfo = ref(false)
134 const showResult = ref(false)
135 const myBalance = ref('')
136 const nowBill = ref({})
137 const org = ref({})
138 const user = useUserStore().user
139 const group = useUserStore().group
140 onMounted(() => {
141 getBillList()
142 })
143 const reset = (form) => {
144 query.value = {
145 pageNum: 1,
146 pageSize: 10
147 }
148 query2.value = {
149 pageNum: 1,
150 pageSize: 10
151 }
152 cptPeriodArr.value = []
153 payTimeArr.value = []
154 commitTimeArr.value = []
155 getBillList()
156 }
157 function withDraw(n){
158 match.withDrawByOrderId(n.id).then(res=>{
159 getBillList()
160 })
161 }
162 function continueSign(n){
163 if (user.uType == '1') {
164 // 个人报名
165 router.push({
166 name: 'chooseProject',
167 query: {
168 matchId: n.cptId
169 }
170 })
171 }
172 if (user.uType == '2'){
173 // 团队报名
174 router.push({
175 name: 'chooseSportsman',
176 query: {
177 matchId: n.cptId,
178 groupId: group.id
179 }
180 })
181 }
182
183 }
184 function goDetail(n){
185
186 }
187 function getBillList() {
188 query2.value.payTimeRange = payTimeArr.value.toString()
189 query2.value.createTimeRange = commitTimeArr.value.toString()
190 console.log(query2.value)
191 match.getMyOrderList(query2.value).then(res => {
192 billList.value = res.rows
193 total2.value = res.total
194 })
195 }
196
197 function signRow(row) {
198 _.assign(dialogModifySignProps.value, dialogPropsBase, {
199 open: true,
200 isView: true,
201 title: '报项详情',
202 data: {...row}
203 })
204 }
205
206 // function getMemberInfoByCptId(cptId) {
207 // match.getMemberInfoByCptId(cptId).then((res) => {
208 // myBalance.value = res.data.balance
209 // })
210 // }
211
212 function goPay(bill) {
213 console.log(bill)
214 payPop.value = true
215 nowBill.value = bill
216 // getMemberInfoByCptId(bill.cptId)
217 }
218
219 function payBill() {
220 if (!payType.value) {
221 ElMessage.error('请选择支付方式')
222 return
223 }
224 match.payMatch({orderId: nowBill.value.id, payType: payType.value}).then(res => {
225 if (payType.value == 2) {
226 org.value = res.data.org
227 showOrganizerInfo.value = true
228 } else if (payType.value == 1) {
229 // 微信
230 proxy.$refs['wePayRef'].open(res.data)
231 } else {
232 showResult.value = true
233 }
234 })
235 }
236
237 function billDetail(bill) {
238 _.assign(dialogModifyBillProps.value, dialogPropsBase, {
239 open: true,
240 isView: true,
241 title: '订单详情',
242 data: {...bill}
243 })
244 }
245
246 function cancelBill(bill) {
247 ElMessageBox.confirm('确定取消订单吗?', '提示', {
248 confirmButtonText: '确定',
249 cancelButtonText: '取消',
250 type: 'warning'
251 }).then(() => {
252 match.cancelMyUnPayedOrder(bill.id).then(Response => {
253 console.log(Response.data)
254 // 刷新数据
255 getBillList()
256 })
257 })
258 }
259
260 function downloadVoucher(row) {
261 proxy.download(
262 `/ztx-match/pdf/getPayedOrderPdf/${row.id}/${row.groupId || 0}`, {}, '报项凭证.pdf'
263 )
264 }
265 </script>
266
267 <style scoped lang="scss">
268 .matchItem {
269 cursor: pointer;
270 margin: 0 0 20px;
271 padding: 0 0 20px;background: #FBFCFD;
272 border-radius: 2px;
273 position: relative;
274 .status-po{position: absolute;right: 0;top: 0;font-size: 12px;
275 color: #FFFFFF;
276 span{border-radius: 0px 10px 0px 10px;padding: 4px 10px;}
277 .bg-danger{background: #E60012;}
278 .bg-pink{background: #F740A6;}
279 .bg-primary{background: var(--el-color-primary)}
280 }
281 &:last-child {
282 border-bottom: none;
283 }
284
285 .el-avatar {
286 position: absolute;
287 left: 20px;
288 top: 30px;
289
290 img {
291 background: #fff;
292 }
293 }
294
295 .info {
296 p {
297 font-size: 14px;
298 }
299 }
300
301 .typeTag {
302 position: absolute;
303 right: 0;
304 top: 0;
305 }
306
307 h3 {
308 font-weight: 500;
309 margin: 0 0 10px;
310 font-size: 18px;
311 color: #000000;
312 text-overflow: ellipsis;
313 }
314
315 &:hover h3 {
316 color: var(--el-color-primary);
317 }
318 }
319
320 .centerPrice {
321 text-align: center;
322 font-size: 26px;
323 margin: 20px;
324
325 span {
326 font-size: 40px;
327 font-weight: bold;
328 }
329 }
330
331
332 :deep(.el-tabs__nav-wrap) {
333 padding: 0 15px;
334 }
335
336 :deep(.el-radio.el-radio--large .el-radio__label) {
337 display: flex;
338 align-items: center;
339
340 img {
341 margin-right: 6px;
342 }
343 }
344
345 .panel-footer .el-button--success {
346 background: #254385;
347 border: none;
348 padding: 0 40px;
349 font-size: 16px;
350 }
351
352 .orange {
353 font-size: 16px;
354 font-style: normal;
355 font-weight: bold
356 }
357
358 .orgbox {
359 font-size: 16px;
360 line-height: 30px;
361 }
362
363 .el-form--inline .el-form-item {
364 width: auto;
365 }
366 .ppl{font-size: 14px;
367 label{color: #929AA0;}
368 }
369 .btnbox{text-align: right;}
370 </style>
...@@ -3,9 +3,6 @@ ...@@ -3,9 +3,6 @@
3 <div class="funcBtns"> 3 <div class="funcBtns">
4 <el-button type="primary" @click="addMember">{{ language==0?'添加选手':'Add Player'}}</el-button> 4 <el-button type="primary" @click="addMember">{{ language==0?'添加选手':'Add Player'}}</el-button>
5 <el-button type="primary" plain @click="importSportman">{{ language==0?'导入选手':'Import Player' }}</el-button> 5 <el-button type="primary" plain @click="importSportman">{{ language==0?'导入选手':'Import Player' }}</el-button>
6 <el-button type="primary" plain>
7 <a href="/file/sportsmanTemplate.xlsx" target="_blank">Download template</a>
8 </el-button>
9 </div> 6 </div>
10 <div class="from-Card"> 7 <div class="from-Card">
11 <el-form :inline="true" :model="query" class="mt20" label-width="60" size="small"> 8 <el-form :inline="true" :model="query" class="mt20" label-width="60" size="small">
...@@ -28,7 +25,7 @@ ...@@ -28,7 +25,7 @@
28 <el-input v-model="query.idcode" style="width: 120px;" clearable/> 25 <el-input v-model="query.idcode" style="width: 120px;" clearable/>
29 </el-form-item> 26 </el-form-item>
30 <el-form-item :label="language==0?'会员角色':'Role'"> 27 <el-form-item :label="language==0?'会员角色':'Role'">
31 <el-select v-model="query.label" multiple> 28 <el-select v-model="labelArr" multiple>
32 <el-option v-for="l in labels" :key="l.value" :value="l.value" :label="language==0?(l.label):(l.enlabel)"/> 29 <el-option v-for="l in labels" :key="l.value" :value="l.value" :label="language==0?(l.label):(l.enlabel)"/>
33 </el-select> 30 </el-select>
34 </el-form-item> 31 </el-form-item>
...@@ -51,7 +48,7 @@ ...@@ -51,7 +48,7 @@
51 48
52 <!-- 添加人员--> 49 <!-- 添加人员-->
53 <addCoach ref="dialogAddCoach" @submitForm="getList"/> 50 <addCoach ref="dialogAddCoach" @submitForm="getList"/>
54 <Import ref="dialogImportProps"/> 51 <Import ref="dialogImportProps" @uploadSuccess="getList"/>
55 </template> 52 </template>
56 53
57 <script setup> 54 <script setup>
...@@ -72,6 +69,7 @@ import cache from "@/plugins/cache"; ...@@ -72,6 +69,7 @@ import cache from "@/plugins/cache";
72 import useUserStore from "@/store/modules/user"; 69 import useUserStore from "@/store/modules/user";
73 const language = ref(cache.local.get('language') || 0) 70 const language = ref(cache.local.get('language') || 0)
74 const tableData = ref([]) 71 const tableData = ref([])
72 const labelArr = ref([])
75 const labels = ref([ 73 const labels = ref([
76 {value: '0', label: '运动员', enlabel: 'Sportsman'}, 74 {value: '0', label: '运动员', enlabel: 'Sportsman'},
77 {value: '1', label: '教练', enlabel: 'Coach'}, 75 {value: '1', label: '教练', enlabel: 'Coach'},
...@@ -109,6 +107,7 @@ function importSportman() { ...@@ -109,6 +107,7 @@ function importSportman() {
109 } 107 }
110 108
111 function getList() { 109 function getList() {
110 query.value.label =labelArr.value.toString()
112 getGroupPersonList(query.value, groupId.value).then(res => { 111 getGroupPersonList(query.value, groupId.value).then(res => {
113 tableData.value = res.rows 112 tableData.value = res.rows
114 total.value = res.total 113 total.value = res.total
......
...@@ -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="@/assets/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="@/assets/img/order_no.png" :image-size="228" v-if="list?.length == 0"/>
14 14
15 </el-card> 15 </el-card>
16 </div> 16 </div>
......
...@@ -80,7 +80,6 @@ ...@@ -80,7 +80,6 @@
80 <!--赛事日历--> 80 <!--赛事日历-->
81 <el-card :body-style="{'padding':'20px 20px'}"> 81 <el-card :body-style="{'padding':'20px 20px'}">
82 <el-calendar v-model="calendarValue" :range="calendarRange"> 82 <el-calendar v-model="calendarValue" :range="calendarRange">
83 <!-- <el-calendar>-->
84 <template #date-cell="data"> 83 <template #date-cell="data">
85 <div v-if="data.data.day.slice(8,10)==22" class="primaryDate date">22</div> 84 <div v-if="data.data.day.slice(8,10)==22" class="primaryDate date">22</div>
86 <div v-else class="date"> 85 <div v-else class="date">
...@@ -417,8 +416,8 @@ const scores = ref([]) ...@@ -417,8 +416,8 @@ const scores = ref([])
417 const nowscores = ref([]) 416 const nowscores = ref([])
418 const livelist = ref([]) 417 const livelist = ref([])
419 const picList = ref([]) 418 const picList = ref([])
420 const calendarValue = ref('2024-07-22') 419 const calendarValue = ref(dayjs('2024-07-22').toDate())
421 const calendarRange = ref(['2024-07-21','2024-07-27']) 420 const calendarRange = ref([dayjs('2024-07-21').toDate(),dayjs('2024-07-27').toDate()])
422 const showgg = ref(true) 421 const showgg = ref(true)
423 onMounted(() => { 422 onMounted(() => {
424 init() 423 init()
......
...@@ -82,7 +82,7 @@ ...@@ -82,7 +82,7 @@
82 <div class="rItem r1" @click="goRegister(1)"> 82 <div class="rItem r1" @click="goRegister(1)">
83 <h3>{{language==0?'机构用户':'Organization'}}</h3> 83 <h3>{{language==0?'机构用户':'Organization'}}</h3>
84 </div> 84 </div>
85 <div class="rItem r2" @click="goRegister(0)"> 85 <div class="rItem r2" @click="goRegister(0)" :style="language==0?'filter:grayscale(1)':''">
86 <h3>{{language==0?'个人用户':'Individual'}}</h3> 86 <h3>{{language==0?'个人用户':'Individual'}}</h3>
87 </div> 87 </div>
88 </div> 88 </div>
...@@ -293,6 +293,10 @@ function showRegister() { ...@@ -293,6 +293,10 @@ function showRegister() {
293 } 293 }
294 function goRegister(n) { 294 function goRegister(n) {
295 if(n==0){ 295 if(n==0){
296 if(language.value==0){
297 // ElMessage.warning('暂不开放国内注册!')
298 return
299 }
296 show.value = false 300 show.value = false
297 router.push({ 301 router.push({
298 path: `/register/0` 302 path: `/register/0`
......
...@@ -3,7 +3,8 @@ ...@@ -3,7 +3,8 @@
3 3
4 <div class="box ph-30"> 4 <div class="box ph-30">
5 <el-card> 5 <el-card>
6 <team-sign-step :activeStep="activeStep" :language="language"/> 6 <single-sign-step v-if="user.utype=='1'" activeStep="1" :language="language"/>
7 <team-sign-step v-if="user.utype=='2'" activeStep="2" :language="language"/>
7 </el-card> 8 </el-card>
8 9
9 <el-row class="mt20" :gutter="20"> 10 <el-row class="mt20" :gutter="20">
...@@ -166,17 +167,19 @@ ...@@ -166,17 +167,19 @@
166 </template> 167 </template>
167 168
168 <script setup> 169 <script setup>
169 import {ref, reactive} from 'vue' 170 import TeamSignStep from './components/teamSignStep'
171 import SingleSignStep from './components/singleSignStep'
172 import {ref, reactive,toRefs} from 'vue'
170 import {getCurrentInstance, onMounted} from '@vue/runtime-core' 173 import {getCurrentInstance, onMounted} from '@vue/runtime-core'
171 import * as match from '@/apiPc/match' 174 import * as match from '@/apiPc/match'
172 import dialogAddCoach from './components/addCoach' 175 import dialogAddCoach from './components/addCoach'
173 import TeamSignStep from './components/teamSignStep' 176 import cache from "@/plugins/cache"
174 import cache from "@/plugins/cache"
175 const {proxy} = getCurrentInstance() 177 const {proxy} = getCurrentInstance()
176 const router = useRouter() 178 const router = useRouter()
177 const route = useRoute() 179 const route = useRoute()
178 import {ElMessage} from 'element-plus' 180 import {ElMessage} from 'element-plus'
179 import {useRoute, useRouter} from 'vue-router' 181 import {useRoute, useRouter} from 'vue-router'
182 import useUserStore from "@/store/modules/user";
180 const language = ref(cache.local.get('language') || 0) 183 const language = ref(cache.local.get('language') || 0)
181 184
182 const data = reactive({ 185 const data = reactive({
...@@ -209,17 +212,21 @@ const { ...@@ -209,17 +212,21 @@ const {
209 hasChooseObj,activeStep 212 hasChooseObj,activeStep
210 } = toRefs(data) 213 } = toRefs(data)
211 let matchId = '' 214 let matchId = ''
215 const user = useUserStore().user
216 const uType = ref('')
212 onMounted(() => { 217 onMounted(() => {
213 matchId = route.query.matchId 218 matchId = route.query.matchId
214 groupId.value = route.query.groupId 219 groupId.value = route.query.groupId || 0
215 signType.value = route.query.signType || '' 220 signType.value = route.query.signType || ''
221
216 getList() 222 getList()
217 }) 223 })
218 224
219 function getList() { 225 function getList() {
220 if (signType.value == '0') { 226 if (user.utype == '1') {
221 geren() 227 geren()
222 } else { 228 }
229 if (user.utype == '2'){
223 tuandui() 230 tuandui()
224 } 231 }
225 } 232 }
...@@ -297,7 +304,7 @@ function chooseDone() { ...@@ -297,7 +304,7 @@ function chooseDone() {
297 function goNext() { 304 function goNext() {
298 console.log(form.value) 305 console.log(form.value)
299 if ((form.value.coachs.length < 1) && (form.value.leader.length < 1)) { 306 if ((form.value.coachs.length < 1) && (form.value.leader.length < 1)) {
300 ElMessage.error('至少选一个教练或领队') 307 ElMessage.error(language.value==0?'至少选一个教练或领队':'Coach/Team Leader, select at least one')
301 return 308 return
302 } 309 }
303 var obj = { 310 var obj = {
...@@ -315,7 +322,7 @@ function goNext() { ...@@ -315,7 +322,7 @@ function goNext() {
315 if (groupId.value && groupId.value != 0) { 322 if (groupId.value && groupId.value != 0) {
316 obj.unitId = groupId.value 323 obj.unitId = groupId.value
317 } 324 }
318 if (signType.value == '0') { 325 if (user.utype == '1') {
319 // 个人报名 326 // 个人报名
320 match.singleSignSavePerson(obj).then(res => { 327 match.singleSignSavePerson(obj).then(res => {
321 console.log(res) 328 console.log(res)
...@@ -326,7 +333,8 @@ function goNext() { ...@@ -326,7 +333,8 @@ function goNext() {
326 } 333 }
327 }) 334 })
328 }) 335 })
329 } else { 336 }
337 if (user.utype == '2'){
330 // 团队报名 338 // 团队报名
331 match.groupSignSavePerson(obj).then(res => { 339 match.groupSignSavePerson(obj).then(res => {
332 router.push({ 340 router.push({
...@@ -349,7 +357,7 @@ function goPrev() { ...@@ -349,7 +357,7 @@ function goPrev() {
349 357
350 function editPerson(id) { 358 function editPerson(id) {
351 proxy.$refs['dialogAddCoachRef'].open({ 359 proxy.$refs['dialogAddCoachRef'].open({
352 title: '编辑人员', 360 title: language.value==0?'编辑人员':'Edit',
353 id: id, 361 id: id,
354 groupId: groupId.value 362 groupId: groupId.value
355 }) 363 })
...@@ -357,7 +365,7 @@ function editPerson(id) { ...@@ -357,7 +365,7 @@ function editPerson(id) {
357 365
358 function addCoach() { 366 function addCoach() {
359 proxy.$refs['dialogAddCoachRef'].open({ 367 proxy.$refs['dialogAddCoachRef'].open({
360 title: '新建人员', 368 title: language.value==0?'新建人员':'Add',
361 id: 0, 369 id: 0,
362 groupId: groupId.value 370 groupId: groupId.value
363 }) 371 })
......
1 <template> 1 <template>
2 <div class="app-container"> 2 <div>
3
4 <div class="box ph-30"> 3 <div class="box ph-30">
5 <div class="panel"> 4 <el-card class="mb20">
6 <div class="panel-header"> 5 <single-sign-step :activeStep="2" :language="language"/>
7 <h3 class="panel-title">选择参赛项目</h3> 6 </el-card>
8 </div> 7
9 <div class="panel-body"> 8 <el-card :body-style="{'padding': '0'}">
10 9 <match-info-row :match-id="matchId"/>
11 <div class="text-right mb20"> 10 <div class="pd20">
12 <el-button type="success" @click="chooseProject">选择项目</el-button> 11 <el-row :gutter="20">
13 </div> 12 <el-col :lg="4">
14 <el-table border :data="tableData" style="width: 100%"> 13 <div class="panel border">
15 <el-table-column type="index" label="序号" width="50" /> 14 <div class="panel-header ">
16 <el-table-column label="运动员" min-width="120"> 15 <h3 class="panel-title" v-if="language==0">完善我的信息</h3>
17 <template #default="scope"> 16 <h3 class="panel-title" v-else>My Information</h3>
18 <div class="td-flex">
19 <img width="50" :src="scope.row.cptPersonInfo.picUrl">
20 <div class="info">
21 {{ scope.row.cptPersonInfo.realName }}({{ scope.row.cptPersonInfo.sexStr }})
22 </div>
23 </div> 17 </div>
24 </template> 18 <div class="panel-body">
25 </el-table-column> 19 <div class="chooseForm">
26 <el-table-column label="证件号" min-width="150"> 20 <div @click="editPerson" style="width: 60px">
27 <template #default="scope"> 21 <el-avatar fit="cover" v-if="form.picUrl" :size="60" :src="fillImgUrl(form.picUrl)"/>
28 {{ scope.row.cptPersonInfo.idcTypeStr }} 22 <div class="addBttn" v-else>+</div>
29 <p class="m0">{{ scope.row.cptPersonInfo.idcCode }}</p>
30 </template>
31 </el-table-column>
32 <el-table-column label="项目/组别/级别" min-width="150">
33 <template #default="scope">
34
35 {{ scope.row.cptProjectName }}&ensp;{{ scope.row.cptGroupName }}{{ scope.row.cptLevelName }}
36 </template>
37 </el-table-column>
38 <el-table-column v-for="(p,index) in extraPersonInfoMapList" :key="index" :label="p.key">
39 <template #default="scope">
40 <el-link v-if="p.type=='2'" type="success" :herf="scope.row.extraPersonInfoMapList[index].value">
41 文件
42 </el-link>
43 <img v-else-if="p.type=='3'" style="width: 50px;" :src="scope.row.extraPersonInfoMapList[index].value">
44 <span v-else>{{ scope.row.extraPersonInfoMapList[index].value }}</span>
45 </template>
46 </el-table-column>
47 <el-table-column label="国籍" prop="cptPersonInfo.countryName" />
48 <el-table-column label="民族" prop="cptPersonInfo.nation" />
49 <el-table-column label="联系电话" min-width="110" prop="cptPersonInfo.phone" />
50 <el-table-column label="出生日期" min-width="100" prop="cptPersonInfo.birth" />
51
52 <el-table-column v-if="coachOrLeaderFlag==1" label="教练">
53 <template #default="scope">
54 <div class="hand" @click="chooseCoach">{{ scope.row.coachNames }}</div>
55 </template>
56 </el-table-column>
57 <el-table-column v-if="coachOrLeaderFlag==1" label="领队">
58 <template #default="scope">
59 <div class="hand" @click="chooseCoach">{{ scope.row.leaderNames }}</div>
60 </template>
61 </el-table-column>
62
63 <el-table-column label="操作" align="center" fixed="right" width="100">
64 <template #default="scope">
65 <!-- <el-button type="text">编辑</el-button>-->
66 <el-button type="text" @click="removeThis(scope.row)">删除</el-button>
67 </template>
68 </el-table-column>
69 </el-table>
70 23
24 <div class="text-center mt10">
25 <span v-if="form.shortName">{{form.shortName}}</span>
26 <el-icon>
27 <Edit/>
28 </el-icon>
29 </div>
71 30
31 </div>
32
33 </div>
34 </div>
35 </div>
36 </el-col>
37
38 <el-col :lg="20">
39 <div class="panel border">
40 <div class="panel-header ">
41 <h3 class="panel-title" v-if="language==0">可参与报名的项目</h3>
42 <h3 class="panel-title" v-else>Eligible Events for Registration</h3>
43 <div class="fr">
44 <el-input size="small" v-model="projectQuery.name" :prefix-icon="Search" @change="getProjectList"
45 clearable/>
46 </div>
47 </div>
48 <div v-loading="loadingProject" style="min-height: 200px;max-height: 60vh">
49 <el-checkbox-group v-model="projectIds">
50 <el-checkbox class="flexBetweenBox" v-for="c in projectList" :label="c.id" :key="c.id">
51 <div class="flexBetween w100">
52 <div class="l">
53 {{ c.code }}:{{ c.name }}
54 <div>{{ c.danceTypeDetailStr }}</div>
55 </div>
56 <div class="text-primary">¥{{ c.serviceFee }}</div>
57 </div>
58 </el-checkbox>
59 </el-checkbox-group>
60 <el-empty v-if="projectList.length==0" image="@/assets/img/order_no.png" :image-size="228"
61 :description="language==0?'无可选项目':''"/>
62 </div>
63 </div>
64 </el-col>
65 </el-row>
72 </div> 66 </div>
73 <div class="panel-footer text-center"> 67 <el-row class="mt20">
74 <el-button type="success" plain round @click="goPrev()">上一步</el-button> 68 <el-col :span="24">
75 <el-button type="success" round @click="submitForm()">下一步</el-button> 69 <div class="text-center">
70 <el-button type="primary" class="btn-lineG w200px" round @click="signUp">
71 {{ language == 0 ? '确定' : 'Confirm' }}
72 </el-button>
73 </div>
74 </el-col>
75 </el-row>
76
77 <div class="m20">
78 <!-- <el-button type="success" @click="importSportman">批量导入人员</el-button>-->
79 <!-- <el-button type="success" @click="addCoach">新增运动员</el-button>-->
80 <div class="ttbb">
81 <div :class="tableType==1 ? 'active' : ''" @click="switchTabletype">
82 {{ language == 0 ? '按组别查看报项' : 'View Entries by Group' }}
83 </div>
84 <div :class="tableType==0 ? 'active' : ''" @click="switchTabletype">
85 {{ language == 0 ? '按人员查看报项' : 'View Entries by Participant' }}
86 </div>
87 </div>
88 <sign-info-table v-if="tableType==0" :match-id="matchId"
89 :extraform="extraform" :language="language" :list="signInfoList"
90 @editExtra="goPersonInfo"/>
91 <zu-table v-else :list="zuTableList" :language="language" @delete="removeThis"/>
92 <div class="text-center mt20">
93 <el-button type="primary" class="" plain round @click="submitForm(0)">{{ language==0?'保存暂不提交审核':'Save, Do Not Submit for Review Yet' }}</el-button>
94 <el-button type="primary" class="btn-lineG w200px" round @click="submitForm(1)">{{ language==0?'提交审核':'Submit for review' }}</el-button>
95 </div>
76 </div> 96 </div>
77 </div> 97 </el-card>
78 </div> 98 </div>
79 99
80 <dialogProjectList ref="dialogProjectListRef" @submitForm="getMySignInfo" /> 100 <dialogAddCoach ref="dialogAddCoachRef" @submitForm="getProjectList"/>
101
81 102
82 <el-dialog v-model="showResult" :close-on-click-modal="false" :show-close="false"> 103 <!-- <dialogChangeCoach ref="popChangeCoach" @submitForm="getMySignInfo"/>-->
83 <el-result
84 icon="success"
85 title="报名成功"
86 >
87 <template #extra>
88 <el-button type="primary" @click="downloadVoucher">下载凭证</el-button>
89 <el-button type="primary" @click="goMySign">查看报项</el-button>
90 </template>
91 </el-result>
92 104
93 </el-dialog> 105 <dialogExtraForm ref="popExtraForm" @submitForm="getSignInfoList"/>
94 </div> 106 </div>
95 </template> 107 </template>
96 108
97 <script setup> 109 <script setup>
98 import { ref, reactive } from 'vue' 110 import {ref, reactive, toRefs} from 'vue'
99 import { getCurrentInstance, onMounted } from '@vue/runtime-core'
100 import * as match from '@/apiPc/match' 111 import * as match from '@/apiPc/match'
101 import dialogProjectList from './components/sportsmanList' 112 import {getCurrentInstance, onMounted} from '@vue/runtime-core'
102 import { useRoute, useRouter } from 'vue-router' 113 import dialogAddCoach from './components/addCoach'
103 114 import dialogSportsmanList from './components/sportsmanList'
104 const { proxy } = getCurrentInstance() 115 import dialogAllSportsmanList from './components/allSportsmanList'
116 import dialogChangeCoach from './components/changeCoach'
117 import dialogExtraForm from './components/extraForm'
118 import dialogMates from './components/dialogMates'
119 import {Search, Switch} from "@element-plus/icons-vue";
120
121 const {proxy} = getCurrentInstance()
105 const router = useRouter() 122 const router = useRouter()
106 const route = useRoute() 123 const route = useRoute()
107 import { ElMessage, ElMessageBox } from 'element-plus' 124 import _ from 'lodash'
125 import {ElMessage, ElMessageBox} from 'element-plus'
126 import cache from "@/plugins/cache"
127 import TeamSignStep from "@/viewsPc/match/components/teamSignStep"
128 import CoachInfoRow from "@/viewsPc/match/components/coachInfo-row"
129 import SignInfoTable from "@/viewsPc/match/components/signInfo-table"
130 import ZuTable from '@/viewsPc/match/components/zu-table'
131 import SingleSignStep from "@/viewsPc/match/components/singleSignStep";
132 import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row";
133 import useUserStore from "@/store/modules/user";
134 const language = ref(cache.local.get('language') || 0)
108 135
109 let signInfoType
110 const data = reactive({ 136 const data = reactive({
137 coachForm: {}, activeStep: 2,
111 tableData: [], 138 tableData: [],
139 signInfoList: [],
140 zuTableList: [],
141 choosedList: [],
112 extraPersonInfoMapList: [], 142 extraPersonInfoMapList: [],
113 matchId: '', 143 teamList: [],
114 showResult: false 144 extraform: [],
145 groupId: 0,
146 signType: '',
147 coachOrLeaderFlag: null,
148 noPhotoCanSign: null,
149 showResult: false,
150 showExtraForm: false,
151 loadingProject: false,
152 extraTableHead: [],
153 activeTeam: '',
154 names: {},
155 choosedchoosed: [],
156 projectIds: [],
157 projectList: [],
158 choosed2List: [], projectQuery: {}, tableType: 1,
115 }) 159 })
116 const { tableData, extraPersonInfoMapList, matchId, showResult } = toRefs(data) 160 const {
117 161 activeTeam, names, tableData, signInfoList, zuTableList, choosedList, showExtraForm, extraPersonInfoMapList, teamList,
118 let chargeFlag 162 extraform, groupId, signType, coachOrLeaderFlag, showResult, noPhotoCanSign, extraTableHead,
119 const coachOrLeaderFlag = ref('') 163 coachForm, projectIds, choosedchoosed, activeStep, projectList, choosed2List, loadingProject, projectQuery, tableType
120 let noPhotoCanSign 164 } = toRefs(data)
165 const matchId = ref(route.query.matchId)
166 let signInfoType = null
167 const form = ref({})
168 const userId = ref('')
169 const myId = ref('')
121 onMounted(() => { 170 onMounted(() => {
122 matchId.value = route.query.matchId 171 if(useUserStore().user){
172 userId.value = useUserStore().user.userId
173 }
174 signType.value = route.query.signType
175 getSignInfoList()
176 getMatch(matchId.value)
177 getMyInfo()
178
123 getMySignInfo() 179 getMySignInfo()
124 getMatch()
125 getMyself()
126 }) 180 })
181 function getMyInfo(){
182 match.getMyPersonInfo().then(res => {
183 form.value = res.data
184 myId.value = res.data.id
185 getProjectList()
186 })
187 }
188 let chargeFlag
127 189
128 function getMatch() { 190 function getMatch(id) {
129 match.getMatchById({ 191 match.getMatchById({
130 id: matchId.value 192 id: id
131 }).then(res => { 193 }).then(res => {
132 chargeFlag = res.data.chargeFlag 194 chargeFlag = res.data.chargeFlag
195 noPhotoCanSign.value = res.data.noPhotoCanSign
133 coachOrLeaderFlag.value = res.data.coachOrLeaderFlag 196 coachOrLeaderFlag.value = res.data.coachOrLeaderFlag
134 noPhotoCanSign = res.data.noPhotoCanSign 197 extraform.value = JSON.parse(res.data.participantsInfo)
135 }) 198 })
136 } 199 }
137 200
138 function getMySignInfo() { 201 function getMySignInfo() {
139 match.getMySignInfo({ cptId: matchId.value, groupId: '' }).then(res => { 202 // 获取已报
140 console.log(res.data) 203 match.getMySignInfo({
141 signInfoType = res.data.type 204 cptId: matchId.value,
142 if (!res.data.signInfo) { 205 groupId: 0
143 tableData.value = [] 206 }).then(res => {
144 return
145 }
146 tableData.value = res.data.signInfo 207 tableData.value = res.data.signInfo
147 extraPersonInfoMapList.value = res.data.signInfo[0]?.extraPersonInfoMapList 208 signInfoType = res.data.type
148 }) 209 })
149 } 210 }
150 211
151 let personId 212 function getSignInfoList() {
152 const getMyself = () => { 213 match.getMySignInfoList({
153 match.getMyPersonInfo().then(res => { 214 cptId: matchId.value,
154 personId = res.data.id 215 groupId: 0
216 }).then(res => {
217 signInfoList.value = res.data.singleData || []
218 zuTableList.value = res.data.zuData || []
155 }) 219 })
156 } 220 }
157 221
158 function submitForm() { 222
223
224 function submitForm(n) {
159 if (signInfoType == '1') { 225 if (signInfoType == '1') {
160 ElMessageBox.confirm('已报项,前往我的报项', '提示', { 226 ElMessageBox.confirm('已报项,前往我的报项', '提示', {
161 confirmButtonText: '确定', 227 confirmButtonText: '确定',
162 cancelButtonText: '取消', 228 cancelButtonText: '取消',
163 type: 'warning' 229 type: 'warning'
164 }).then(() => { 230 }).then(() => {
165 router.push({ name: 'myMatch' }) 231 router.push({name: 'myMatch'})
166 }) 232 })
167 return 233 return
168 } 234 }
169 if (signInfoType == '2') { 235 if(n==0){
170 match.recoverMySign({ cptId: matchId.value }).then(res => { 236 ElMessageBox.confirm(`您当前的操作为暂存,并不是提交审核,必须在报名截止时间XXXX-XX-XX之前完成提交。\n` +
171 if (res.msg.indexOf('Exception:') > -1) { 237 '\n' +
172 const msg = res.msg.slice(10) 238 '您也可以在个人中心-我的报名中,找到这条报名,点击提交审核。','提示',{
173 ElMessageBox.confirm(msg, '提示', { 239 confirmButtonText: '去个人中心',
174 confirmButtonText: '确定', 240 cancelButtonText: '知道了',
175 cancelButtonText: '取消', 241 type: 'warning'
176 type: 'warning' 242 }).then((res)=>{
177 }).then(() => { 243 console.log(res)
178 console.log('用户点击确定') 244 router.push({name: 'myMatch'})
179 })
180 return
181 } else {
182 afterRecover()
183 }
184 }) 245 })
185 } else { 246 } else {
186 afterRecover() 247 if (extraform.value && extraform.value.length > 0) {
187 } 248 let needBuchong = false
188 } 249 for (const e of extraform.value) {
250 if (e.status == '0') {
251 needBuchong = true
252 }
253 }
254 for (const s of signInfoList.value) {
255 if (s.extraPersonInfo == null && needBuchong) {
256 ElMessage.error('请完善运动员补充信息')
257 tableType.value = 0
258 return
259 }
260 }
189 261
190 function afterRecover() { 262 commit()
191 if (tableData.value.length == 0) {
192 ElMessage.error('请至少选择一个项目')
193 return
194 }
195 // 判断是否收费
196 if (chargeFlag == '0') {
197 var obj = {
198 cptId: matchId.value,
199 groupId: ''
200 } 263 }
201 match.commitSign(obj).then(res => { 264
202 console.log(res.data) 265 }
203 showResult.value = true 266 }
204 }) 267 function commit() {
205 } else { 268 match.commitSign({
206 // 生成账单 269 groupId: 0,
270 cptId: matchId.value
271 }).then(res=>{
207 router.push({ 272 router.push({
208 name: 'expenseDetails', 273 name:`commitDone`,
209 query: { 274 params: {
210 personId: personId 275 orderId: res.data
211 } 276 }
212 }) 277 })
213 }
214 }
215
216 function goMySign() {
217 router.push({
218 name: 'myMatch'
219 }) 278 })
220 } 279 }
221 280
222 function goPrev() { 281 function getProjectList() {
223 router.go(-1) 282 projectIds.value = []
283 loadingProject.value = true
284 //根据已选人员id 获取项目列表
285 var obj = {
286 cptId: matchId.value,
287 perIds: myId.value
288 }
289 match.getProjectPageByPerIds(obj).then(res => {
290 projectList.value = res.rows
291 loadingProject.value = false
292 }).catch(err => {
293 loadingProject.value = false
294 ElMessage.error(err.msg)
295 })
224 } 296 }
225 297
226 function chooseProject() { 298 function addCoach() {
227 if (signInfoType == '2') { 299 if (signInfoType == '2') {
228 match.recoverMySign({ cptId: matchId.value }).then(res => { 300 match.recoverMySign({
301 cptId: matchId.value,
302 groupId: groupId.value
303 }).then(res => {
229 if (res.msg.indexOf('Exception:') > -1) { 304 if (res.msg.indexOf('Exception:') > -1) {
230 const msg = res.msg.slice(10) 305 const msg = res.msg.slice(10)
231 ElMessageBox.confirm(msg).then(() => { 306 ElMessageBox.confirm(msg, '提示', {
307 confirmButtonText: '确定',
308 cancelButtonText: '取消',
309 type: 'warning'
310 }).then(() => {
232 console.log('用户点击确定') 311 console.log('用户点击确定')
233 }) 312 })
234 return 313 return
...@@ -236,47 +315,134 @@ function chooseProject() { ...@@ -236,47 +315,134 @@ function chooseProject() {
236 getMySignInfo() 315 getMySignInfo()
237 }) 316 })
238 } 317 }
239 match.getMyPersonInfo().then(res => { 318 const params = {
240 console.log(res.data) 319 title: '新增运动员',
241 const params = { 320 id: 0,
242 title: '选择项目', 321 groupId: groupId.value
243 matchId: matchId.value, 322 }
244 groupId: 0, 323 proxy.$refs['dialogAddCoachRef'].open(params)
245 personal: res.data, 324 }
246 signType: 0, 325
247 noPhotoCanSign: noPhotoCanSign, 326
248 coachOrLeaderFlag: coachOrLeaderFlag.value 327 function signUp() {
249 } 328 if (projectIds.value.length == 0) {
250 proxy.$refs['dialogProjectListRef'].open(params) 329 return
330 }
331 const obj = {
332 athleteIds:myId.value,
333 projectIds: projectIds.value.toString(),
334 groupId: groupId.value
335 }
336 match.sportsmanDone(obj).then(res => {
337 getSignInfoList()
338 getProjectList()
251 }) 339 })
252 } 340 }
253 341
254 function removeThis(p) { 342 function removeThis(id) {
255 ElMessageBox.confirm('确定移除这条报项吗?', '提示', { 343 ElMessageBox.confirm('确定移除这条报项吗?', '提示', {
256 confirmButtonText: '确定', 344 confirmButtonText: '确定',
257 cancelButtonText: '取消', 345 cancelButtonText: '取消',
258 type: 'warning' 346 type: 'warning'
259 }).then(() => { 347 }).then(() => {
260 match.deleteSign(p.id).then(res => { 348 match.deleteSign(id).then(res => {
261 // 重新获取已报名信息 349 // 重新获取已报名信息
262 ElMessage.success('已移除该报项') 350 ElMessage.success('已移除该报项')
263 getMySignInfo() 351 getSignInfoList()
264 }) 352 })
265 }) 353 })
266 } 354 }
267 355
268 function chooseCoach() { 356 function changeCoach(cptId, groupId) {
269 // goPrev() 357 // 更换教练
358 const params = {
359 title: '修改教练',
360 groupId: groupId,
361 cptId: cptId
362 }
363 proxy.$refs['popChangeCoach'].open(params)
364 }
365
366
367 function goMySign() {
368 router.push({
369 name: 'myMatch'
370 })
371 }
372
373 const goPersonInfo = (row) => {
374 if (signInfoType == '1') {
375 ElMessageBox.alert('已报项,前往我的报项', '提示', {
376 confirmButtonText: 'OK',
377 callback: (Action) => {
378 router.push({name: 'myMatch'})
379 }
380 })
381 return
382 }
383 // 完善补充信息
384 console.log(row)
385 // debugger
386 const params = {
387 title: '完善补充信息',
388 participantsInfoArr: extraform.value,
389 personId: row.personInfo.id,
390 extraId: row.extraPersonInfo?.id || 0
391 }
392 proxy.$refs['popExtraForm'].open(_.cloneDeep(params))
270 } 393 }
271 394
272 function downloadVoucher() { 395 function downloadVoucher() {
396 // 下载凭证
273 proxy.download( 397 proxy.download(
274 `/pdf/getPayedOrderPdf/${matchId.value}/0`, {}, '报项凭证.pdf' 398 `/pdf/getPayedOrderPdf/${matchId.value}/${groupId.value || 0}`, {}, '报项凭证.pdf'
275 ) 399 )
276 } 400 }
401
402 function editPerson() {
403 proxy.$refs['dialogAddCoachRef'].open({
404 title: '编辑人员',
405 uType: '1'
406 })
407 }
408
409 function switchTabletype() {
410 if (tableType.value == 0) {
411 tableType.value = 1
412 } else {
413 tableType.value = 0
414 }
415 }
277 </script> 416 </script>
278 417
279 <style scoped lang="scss"> 418 <style scoped lang="scss">
419 :deep(.el-checkbox__label) {
420 flex: 1 1 auto;
421 }
422
423 .flexBetweenBox {
424 width: 100%;
425 height: auto;
426 border-bottom: 1px solid #eee;
427 padding: 0 10px;
428 }
429
430 .flexBetweenBox:nth-child(odd) {
431 background: #FAFBFD;
432 }
433
434 .flexBetween {
435 padding: 10px;
436 border-left: 1px solid #eee;
437
438 .l {
439 div {
440 margin: 4px 0 0;
441 color: #999;
442 }
443 }
444 }
445
280 .app-container { 446 .app-container {
281 padding: 0; 447 padding: 0;
282 background: #F5F7F9; 448 background: #F5F7F9;
...@@ -295,6 +461,29 @@ function downloadVoucher() { ...@@ -295,6 +461,29 @@ function downloadVoucher() {
295 color: #2ED981; 461 color: #2ED981;
296 } 462 }
297 463
464 .hasChoose {
465 margin: 0 0 20px;
466 display: flex;
467 justify-content: space-between;
468
469 button {
470 position: relative;
471 margin: 10px;
472 }
473
474 .choseItem {
475 margin: 10px;
476 position: relative;
477
478 .poClose {
479 position: absolute;
480 right: -6px;
481 top: -12px;
482 z-index: 1;
483 }
484 }
485 }
486
298 .chooseForm { 487 .chooseForm {
299 :deep(.el-form-item__content) { 488 :deep(.el-form-item__content) {
300 background: rgba(245, 247, 249, 0.38); 489 background: rgba(245, 247, 249, 0.38);
...@@ -303,6 +492,7 @@ function downloadVoucher() { ...@@ -303,6 +492,7 @@ function downloadVoucher() {
303 492
304 .el-checkbox { 493 .el-checkbox {
305 height: auto; 494 height: auto;
495 margin-right: 20px;
306 } 496 }
307 497
308 :deep(.el-checkbox__input) { 498 :deep(.el-checkbox__input) {
...@@ -316,14 +506,66 @@ function downloadVoucher() { ...@@ -316,14 +506,66 @@ function downloadVoucher() {
316 } 506 }
317 } 507 }
318 508
319 .td-flex { 509 :deep(.el-avatar) > img {
320 display: flex; 510 width: 100%;
321 align-items: center; 511 }
512
513 .panel {
514 height: 100%;
515 }
322 516
323 .info { 517 .border-info {
324 padding-left: 10px; 518 .item {
519 margin: 5px 0;
520 color: #4C5359;
325 font-size: 14px; 521 font-size: 14px;
522
523 label {
524 font-size: 14px;
525 margin-right: 14px
526 }
326 } 527 }
327 } 528 }
328 529
530 .ttbb {
531 font-size: 14px;
532 color: #4C5359;
533 display: flex;
534 justify-content: center;
535
536 div {
537 padding: 20px;
538 position: relative;
539 cursor: pointer;
540 }
541
542 div:first-child::after {
543 content: '';
544 position: absolute;
545 right: 0;
546 background: #ccc;
547 width: 1px;
548 height: 14px;
549 top: 0;
550 bottom: 0;
551 margin: auto;
552 }
553
554 .active {
555 color: var(--el-color-primary);
556
557 &::before {
558 width: 33px;
559 content: '';
560 position: absolute;
561 height: 2px;
562 bottom: 14px;
563 left: 0;
564 right: 0;
565 margin: auto;
566 background: #453DEA;
567 border-radius: 1px;
568 }
569 }
570 }
329 </style> 571 </style>
......
...@@ -72,9 +72,9 @@ ...@@ -72,9 +72,9 @@
72 clearable/> 72 clearable/>
73 </div> 73 </div>
74 </div> 74 </div>
75 <div class="panel-body" v-loading="loadingProject"> 75 <div v-loading="loadingProject">
76 <el-checkbox-group v-model="projectIds"> 76 <el-checkbox-group v-model="projectIds">
77 <el-checkbox class="w100" v-for="c in projectList" :label="c.id" :key="c.id"> 77 <el-checkbox class="flexBetweenBox" v-for="c in projectList" :label="c.id" :key="c.id">
78 <div class="flexBetween w100"> 78 <div class="flexBetween w100">
79 <div class="l"> 79 <div class="l">
80 {{ c.code }}:{{ c.name }} 80 {{ c.code }}:{{ c.name }}
...@@ -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="@/assets/img/order_no.png" :image-size="228"
88 :description="language==0?'无可选项目':''"/> 88 :description="language==0?'无可选项目':''"/>
89 </div> 89 </div>
90 </div> 90 </div>
...@@ -102,119 +102,30 @@ ...@@ -102,119 +102,30 @@
102 </el-card> 102 </el-card>
103 103
104 <el-card class="mt20" :body-style="{'padding': '0'}"> 104 <el-card class="mt20" :body-style="{'padding': '0'}">
105 <coach-info-row :names="names" :language="language"/> 105 <coach-info-row :match-id="matchId" :group-id="groupId" :language="language"/>
106 <div class="m20"> 106 <div class="m20">
107
108 <!-- <el-button type="success" @click="importSportman">批量导入人员</el-button>--> 107 <!-- <el-button type="success" @click="importSportman">批量导入人员</el-button>-->
109 <!-- <el-button type="success" @click="addCoach">新增运动员</el-button>--> 108 <!-- <el-button type="success" @click="addCoach">新增运动员</el-button>-->
110 <div class="ttbb"> 109 <div class="ttbb">
111 <div :class="tableType==1 ? 'active' : ''" @click="switchTabletype">{{ language == 0 ? '按组别查看报项' : 'View Entries by Group' }}</div> 110 <div :class="tableType==1 ? 'active' : ''" @click="switchTabletype">
112 <div :class="tableType==0 ? 'active' : ''" @click="switchTabletype">{{ language == 0 ? '按人员查看报项' : 'View Entries by Participant' }}</div> 111 {{ language == 0 ? '按组别查看报项' : 'View Entries by Group' }}
112 </div>
113 <div :class="tableType==0 ? 'active' : ''" @click="switchTabletype">
114 {{ language == 0 ? '按人员查看报项' : 'View Entries by Participant' }}
115 </div>
113 </div> 116 </div>
114 <!-- <div class="fr mb20" @click="switchTabletype">--> 117 <!-- <div class="fr mb20" @click="switchTabletype">-->
115 <!-- <el-button plain type="primary" :icon="Switch" v-if="tableType==1">--> 118 <!-- <el-button plain type="primary" :icon="Switch" v-if="tableType==1">-->
116 <!-- {{ language == 0 ? '按人员查看报项' : 'View Entries by Participant' }}--> 119 <!-- {{ language == 0 ? '按人员查看报项' : 'View Entries by Participant' }}-->
117 <!-- </el-button>--> 120 <!-- </el-button>-->
118 <!-- <el-button plain type="primary" :icon="Switch" v-else>--> 121 <!-- <el-button plain type="primary" :icon="Switch" v-else>-->
119 <!-- {{ language == 0 ? '按组别查看报项' : 'View Entries by Group' }}--> 122 <!-- {{ language == 0 ? '按组别查看报项' : 'View Entries by Group' }}-->
120 <!-- </el-button>--> 123 <!-- </el-button>-->
121 <!-- </div>--> 124 <!-- </div>-->
122 <el-table :data="signInfoTable" border style="width: 100%" v-if="tableType==0"> 125 <sign-info-table v-if="tableType==0" :match-id="matchId"
123 <el-table-column :label="language==0?'所属国家':'Nationality'" prop="personInfo.countryName" min-width="100"/> 126 :extraform="extraform" :language="language" :list="signInfoList"
124 <el-table-column :label="language==0?'姓氏':'Last Name'" prop="personInfo.xing" min-width="100"/> 127 @editExtra="goPersonInfo"/>
125 <el-table-column :label="language==0?'名':'First Name'" prop="personInfo.ming" min-width="100"/> 128 <zu-table v-else :list="zuTableList" :language="language" @delete="removeThis"/>
126 <el-table-column :label="language==0?'短名':'Short Name'" prop="personInfo.shortName" min-width="110"/>
127 <el-table-column :label="language==0?'性别':'Gender'" prop="personInfo.sexStr"/>
128 <el-table-column :label="language==0?'年龄':'Age'" prop="personInfo.age"/>
129 <el-table-column :label="language==0?'出生日期':'Birth'" prop="personInfo.birth" width="110"/>
130 <el-table-column :label="language==0?'手机号码':'Phone Number'" prop="personInfo.phone" width="120"/>
131 <el-table-column :label="language==0?'邮箱':'E-mail'" prop="personInfo.email" width="150"/>
132 <el-table-column :label="language==0?'证件类型':'ID Type'" prop="personInfo.idcTypeStr"/>
133 <el-table-column :label="language==0?'证件号码':'ID NO.'" prop="personInfo.idcCode" width="200"/>
134 <el-table-column :label="language==0?'会员角色':'Role'" width="150">
135 <template #default="scope">
136 <div class="esp">
137 <span v-for="item in scope.row.personInfo.label?.split(',')" :key="item.id" class="text-primary">
138 <span v-if="item==='0'" class="ml5">{{ language==0?'运动员':'athletes' }}</span>
139 <span v-if="item==='1'" class="ml5">{{ language==0?'教练':'coach' }}</span>
140 <span v-if="item==='2'" class="ml5">{{ language==0?'领队':'team leader' }}</span>
141 <span v-if="item==='3'" class="ml5">{{ language==0?'队医':'team doctor' }}</span>
142 <span v-if="item==='4'" class="ml5">{{ language==0?'翻译':'translator' }}</span>
143 <span v-if="item==='5'" class="ml5">{{ language==0?'官员':'official' }}</span>
144 <span v-if="item==='6'" class="ml5">{{ language==0?'其他':'other' }}</span>
145 </span>
146 </div>
147 </template>
148 </el-table-column>
149 <el-table-column :label="language==0?'详细地址':'Detailed Address'" prop="personInfo.address" min-width="140"/>
150
151 <el-table-column :label="language==0?'报项':'Entries'" width="300">
152 <template #default="props">
153 <ol>
154 <li v-for="s in props.row.signInfo">
155 {{ s.cptProjectName }}
156 {{ s.cptGroupName }}{{ s.cptLevelName }}
157 <span v-show="s.cptSonLevelName">[{{ s.cptSonLevelName }}]</span>
158 <span v-show="s.zu">-{{ s.zu }}</span>
159 <!-- <el-button type="text" @click="editThis(s)">{{ language == 0 ? '修改' : 'Edit' }}</el-button>-->
160 <!-- <el-button type="text" @click="editMates(s)">更换队友</el-button>-->
161 <!-- <el-button type="text" @click="removeThis(s.id)">{{ language == 0 ? '删除' : 'Delete' }}</el-button>-->
162 </li>
163 </ol>
164 </template>
165 </el-table-column>
166 <el-table-column :label="language==0?'保险费':'Premium'" prop="insuranceFee"/>
167 <!-- 补充信息-->
168 <!-- <el-table-column v-for="(e,index) in extraTableHead" :key="index" :label="e">-->
169 <!-- <template #default="scope">-->
170 <!-- <el-link v-if="scope.row.signInfo[0].extraPersonInfoMapList[index]?.type=='2'" :herf="scope.row.signInfo[0].extraPersonInfoMapList[index].value.url">-->
171 <!-- {{ scope.row.signInfo[0].extraPersonInfoMapList[index].value.name }}-->
172 <!-- </el-link>-->
173 <!-- <img v-else-if="scope.row.signInfo[0].extraPersonInfoMapList[index]?.type=='3'" style="width: 50px;" :src="scope.row.signInfo[0].extraPersonInfoMapList[index].value.url||scope.row.signInfo[0].extraPersonInfoMapList[index].value">-->
174 <!-- <span v-else>{{ scope.row.signInfo[0].extraPersonInfoMapList[index]?.value }}</span>-->
175 <!-- </template>-->
176 <!-- </el-table-column>-->
177 <el-table-column :label="language==0?'操作':'Actions'" fixed="right" width="150" align="center">
178 <template #default="scope">
179 <el-button v-if="extraform&&extraform.length>0" type="text" @click="goPersonInfo(scope.row)">
180 <span v-if="scope.row.extraPersonInfo">{{ language == 0 ? '修改' : 'Edit' }}</span>
181 <span v-else class="red">完善补充信息</span>
182 </el-button>
183 </template>
184 </el-table-column>
185 </el-table>
186
187 <el-table v-if="tableType==1" :data="zuTable" border style="width: 100%">
188 <el-table-column :label="language==0?'组别代码':'Group code'" width="120px" prop="zuName"/>
189 <el-table-column :label="language==0?'组别':'Group'" prop="project.name"/>
190 <el-table-column :label="language==0?'舞种':'Dance Style'" width="120px" prop="project.danceType"/>
191 <el-table-column :label="language==0?'参赛说明':'Participation Instructions'" prop="project.remarks"/>
192 <el-table-column :label="language==0?'参赛运动员':'Participating athletes'" width="120px">
193 <template #default="scope">
194 <div>
195 <span v-for="s in scope.row.athletes">{{ s.name }},</span>
196 </div>
197 </template>
198 </el-table-column>
199 <el-table-column :label="language==0?'报名费':'Registration Fee'" width="120px" prop="">
200 <template #default="scope">
201 <div class="text-primary">
202 ¥{{scope.row.project.serviceFee}}
203 </div>
204 </template>
205 </el-table-column>
206 <el-table-column :label="language==0?'操作':'Actions'" fixed="right" width="150" align="center">
207 <template #default="scope">
208 <!-- <el-button v-if="extraform&&extraform.length>0" type="text" @click="goPersonInfo(scope.row)">-->
209 <!-- <span v-if="scope.row.extraPersonInfo">{{ language == 0 ? '修改' : 'Edit' }}</span>-->
210 <!-- <span v-else class="red">-->
211 <!-- {{language == 0 ? '完善补充信息' : 'Complete Supplementary Information'}}</span>-->
212 <!-- </el-button>-->
213 <el-button type="text" @click="removeThis(scope.row.id)">{{ language == 0 ? '删除' : 'Delete' }}</el-button>
214
215 </template>
216 </el-table-column>
217 </el-table>
218 <div class="text-center mt20"> 129 <div class="text-center mt20">
219 <el-button type="primary" class="w200px" plain round @click="goPrev()"> 130 <el-button type="primary" class="w200px" plain round @click="goPrev()">
220 {{ language == 0 ? "上一步" : 'Go back' }} 131 {{ language == 0 ? "上一步" : 'Go back' }}
...@@ -270,22 +181,22 @@ const route = useRoute() ...@@ -270,22 +181,22 @@ const route = useRoute()
270 import _ from 'lodash' 181 import _ from 'lodash'
271 import {ElMessage, ElMessageBox} from 'element-plus' 182 import {ElMessage, ElMessageBox} from 'element-plus'
272 import cache from "@/plugins/cache" 183 import cache from "@/plugins/cache"
273 import TeamSignStep from "@/viewsPc/match/components/teamSignStep"; 184 import TeamSignStep from "@/viewsPc/match/components/teamSignStep"
274 import {getProjectPageByPerIds} from "@/apiPc/match"; 185 import CoachInfoRow from "@/viewsPc/match/components/coachInfo-row"
275 import CoachInfoRow from "@/viewsPc/match/components/coachInfo-row"; 186 import SignInfoTable from "@/viewsPc/match/components/signInfo-table"
276 187 import ZuTable from '@/viewsPc/match/components/zu-table'
277 const language = ref(cache.local.get('language') || 0) 188 const language = ref(cache.local.get('language') || 0)
278 189
279 const data = reactive({ 190 const data = reactive({
280 coachForm: {}, activeStep: 2, 191 coachForm: {}, activeStep: 2,
281 tableData: [], 192 tableData: [],
282 signInfoTable: [], 193 signInfoList: [],
283 zuTable: [], 194 zuTableList: [],
284 choosedList: [], 195 choosedList: [],
285 extraPersonInfoMapList: [], 196 extraPersonInfoMapList: [],
286 teamList: [], 197 teamList: [],
287 extraform: [], 198 extraform: [],
288 groupId: '0', 199 groupId: route.query.groupId || 0,
289 signType: '', 200 signType: '',
290 coachOrLeaderFlag: null, 201 coachOrLeaderFlag: null,
291 noPhotoCanSign: null, 202 noPhotoCanSign: null,
...@@ -301,40 +212,19 @@ const data = reactive({ ...@@ -301,40 +212,19 @@ const data = reactive({
301 choosed2List: [], projectQuery: {}, tableType: 1 212 choosed2List: [], projectQuery: {}, tableType: 1
302 }) 213 })
303 const { 214 const {
304 activeTeam, names, tableData, signInfoTable, zuTable, choosedList, showExtraForm, extraPersonInfoMapList, teamList, 215 activeTeam, names, tableData, signInfoList, zuTableList, choosedList, showExtraForm, extraPersonInfoMapList, teamList,
305 extraform, groupId, signType, coachOrLeaderFlag, showResult, noPhotoCanSign, extraTableHead, 216 extraform, groupId, signType, coachOrLeaderFlag, showResult, noPhotoCanSign, extraTableHead,
306 coachForm, projectIds, choosedchoosed, activeStep, projectList, choosed2List, loadingProject, projectQuery, tableType 217 coachForm, projectIds, choosedchoosed, activeStep, projectList, choosed2List, loadingProject, projectQuery, tableType
307 } = toRefs(data) 218 } = toRefs(data)
308 let matchId = '' 219 const matchId = ref(route.query.matchId)
309 let signInfoType = null 220 let signInfoType = null
310 onMounted(() => { 221 onMounted(() => {
311 groupId.value = route.query.groupId 222 signType.value = route.query.signType || 1
312 signType.value = route.query.signType
313 matchId = route.query.matchId
314 getSignInfoList() 223 getSignInfoList()
315 224 getMatch(matchId.value)
316 if (signType.value == '0') {
317 geren()
318 } else {
319 tuandui()
320 }
321 getMatch(matchId)
322 getTableHead()
323 getMySignInfo() 225 getMySignInfo()
324 }) 226 })
325 227
326 function geren() {
327 match.getChooseDoneSingleCoachs(matchId).then(res => {
328 names.value = res.data
329 })
330 }
331
332 function tuandui() {
333 match.getChooseDoneGroupCoachs(matchId, groupId.value).then(res => {
334 names.value = res.data
335 })
336 }
337
338 let chargeFlag 228 let chargeFlag
339 229
340 function getMatch(id) { 230 function getMatch(id) {
...@@ -351,7 +241,7 @@ function getMatch(id) { ...@@ -351,7 +241,7 @@ function getMatch(id) {
351 function getMySignInfo() { 241 function getMySignInfo() {
352 // 获取已报 242 // 获取已报
353 match.getMySignInfo({ 243 match.getMySignInfo({
354 cptId: matchId, 244 cptId: matchId.value,
355 groupId: groupId.value 245 groupId: groupId.value
356 }).then(res => { 246 }).then(res => {
357 tableData.value = res.data.signInfo 247 tableData.value = res.data.signInfo
...@@ -361,12 +251,11 @@ function getMySignInfo() { ...@@ -361,12 +251,11 @@ function getMySignInfo() {
361 251
362 function getSignInfoList() { 252 function getSignInfoList() {
363 match.getMySignInfoList({ 253 match.getMySignInfoList({
364 cptId: matchId, 254 cptId: matchId.value,
365 groupId: groupId.value, 255 groupId: groupId.value
366 teamId: activeTeam.value || ''
367 }).then(res => { 256 }).then(res => {
368 signInfoTable.value = res.data.singleData 257 signInfoList.value = res.data.singleData || []
369 zuTable.value = res.data.zuData 258 zuTableList.value = res.data.zuData || []
370 // if(signInfoTable.value.length>0){ 259 // if(signInfoTable.value.length>0){
371 // let choosedIds = [] 260 // let choosedIds = []
372 // for(let p of choosedList.value){ 261 // for(let p of choosedList.value){
...@@ -382,12 +271,7 @@ function getSignInfoList() { ...@@ -382,12 +271,7 @@ function getSignInfoList() {
382 }) 271 })
383 } 272 }
384 273
385 function getTableHead() { 274
386 match.getCptExtraInfo(matchId).then(res => {
387 // console.log(res.data)
388 extraTableHead.value = res.data
389 })
390 }
391 275
392 function submitForm() { 276 function submitForm() {
393 if (signInfoType == '1') { 277 if (signInfoType == '1') {
...@@ -407,7 +291,7 @@ function submitForm() { ...@@ -407,7 +291,7 @@ function submitForm() {
407 needBuchong = true 291 needBuchong = true
408 } 292 }
409 } 293 }
410 for (const s of signInfoTable.value) { 294 for (const s of signInfoList.value) {
411 if (s.extraPersonInfo == null && needBuchong) { 295 if (s.extraPersonInfo == null && needBuchong) {
412 ElMessage.error('请完善运动员补充信息') 296 ElMessage.error('请完善运动员补充信息')
413 tableType.value = 0 297 tableType.value = 0
...@@ -416,7 +300,7 @@ function submitForm() { ...@@ -416,7 +300,7 @@ function submitForm() {
416 } 300 }
417 } 301 }
418 if (signInfoType == '2') { 302 if (signInfoType == '2') {
419 match.recoverMySign({cptId: matchId, groupId: groupId.value}).then(res => { 303 match.recoverMySign({cptId: matchId.value, groupId: groupId.value}).then(res => {
420 if (res.msg.indexOf('Exception:') > -1) { 304 if (res.msg.indexOf('Exception:') > -1) {
421 const msg = res.msg.slice(10) 305 const msg = res.msg.slice(10)
422 ElMessageBox.confirm(msg, '提示', { 306 ElMessageBox.confirm(msg, '提示', {
...@@ -437,14 +321,14 @@ function submitForm() { ...@@ -437,14 +321,14 @@ function submitForm() {
437 router.push({ 321 router.push({
438 name: 'signPreview', 322 name: 'signPreview',
439 query: { 323 query: {
440 matchId: matchId, 324 matchId: matchId.value,
441 groupId: groupId.value 325 groupId: groupId.value
442 } 326 }
443 }) 327 })
444 } 328 }
445 329
446 function afterRecover() { 330 function afterRecover() {
447 if (signInfoTable.value.length == 0) { 331 if (signInfoList.value.length == 0) {
448 if (language.value == 0) { 332 if (language.value == 0) {
449 ElMessage.error('请至少选择一个项目') 333 ElMessage.error('请至少选择一个项目')
450 } else { 334 } else {
...@@ -455,7 +339,7 @@ function afterRecover() { ...@@ -455,7 +339,7 @@ function afterRecover() {
455 // 判断是否收费 339 // 判断是否收费
456 if (chargeFlag == '0') { 340 if (chargeFlag == '0') {
457 var obj = { 341 var obj = {
458 cptId: matchId, 342 cptId: matchId.value,
459 groupId: groupId.value 343 groupId: groupId.value
460 } 344 }
461 match.commitSign(obj).then(res => { 345 match.commitSign(obj).then(res => {
...@@ -467,7 +351,7 @@ function afterRecover() { ...@@ -467,7 +351,7 @@ function afterRecover() {
467 router.push({ 351 router.push({
468 name: 'expenseDetails', 352 name: 'expenseDetails',
469 query: { 353 query: {
470 matchId: matchId, 354 matchId: matchId.value,
471 groupId: groupId.value 355 groupId: groupId.value
472 } 356 }
473 }) 357 })
...@@ -481,7 +365,7 @@ function goPrev() { ...@@ -481,7 +365,7 @@ function goPrev() {
481 function chooseSportman() { 365 function chooseSportman() {
482 if (signInfoType == '2') { 366 if (signInfoType == '2') {
483 match.recoverMySign({ 367 match.recoverMySign({
484 cptId: matchId, 368 cptId: matchId.value,
485 groupId: groupId.value 369 groupId: groupId.value
486 }).then(res => { 370 }).then(res => {
487 if (res.msg.indexOf('Exception:') > -1) { 371 if (res.msg.indexOf('Exception:') > -1) {
...@@ -501,7 +385,7 @@ function chooseSportman() { ...@@ -501,7 +385,7 @@ function chooseSportman() {
501 385
502 const params = { 386 const params = {
503 title: language.value == 0 ? '选择运动员' : 'Participating athletes', 387 title: language.value == 0 ? '选择运动员' : 'Participating athletes',
504 matchId: matchId, 388 matchId: matchId.value,
505 groupId: groupId.value, 389 groupId: groupId.value,
506 rankId: activeTeam.value, 390 rankId: activeTeam.value,
507 signType: signType.value, 391 signType: signType.value,
...@@ -534,7 +418,7 @@ function getProjectList() { ...@@ -534,7 +418,7 @@ function getProjectList() {
534 loadingProject.value = true 418 loadingProject.value = true
535 //根据已选人员id 获取项目列表 419 //根据已选人员id 获取项目列表
536 var obj = { 420 var obj = {
537 cptId: matchId, 421 cptId: matchId.value,
538 perIds: choosedchoosed.value.toString() 422 perIds: choosedchoosed.value.toString()
539 } 423 }
540 match.getProjectPageByPerIds(obj).then(res => { 424 match.getProjectPageByPerIds(obj).then(res => {
...@@ -555,7 +439,7 @@ function getChoosed(list) { ...@@ -555,7 +439,7 @@ function getChoosed(list) {
555 function addCoach() { 439 function addCoach() {
556 if (signInfoType == '2') { 440 if (signInfoType == '2') {
557 match.recoverMySign({ 441 match.recoverMySign({
558 cptId: matchId, 442 cptId: matchId.value,
559 groupId: groupId.value 443 groupId: groupId.value
560 }).then(res => { 444 }).then(res => {
561 if (res.msg.indexOf('Exception:') > -1) { 445 if (res.msg.indexOf('Exception:') > -1) {
...@@ -580,20 +464,6 @@ function addCoach() { ...@@ -580,20 +464,6 @@ function addCoach() {
580 proxy.$refs['dialogAddCoachRef'].open(params) 464 proxy.$refs['dialogAddCoachRef'].open(params)
581 } 465 }
582 466
583 function signForThisMan(p) {
584 const params = {
585 title: '选择报项',
586 matchId: matchId,
587 groupId: groupId.value,
588 rankId: activeTeam.value,
589 signType: signType.value,
590 noPhotoCanSign: noPhotoCanSign.value,
591 coachOrLeaderFlag: coachOrLeaderFlag.value,
592 personal: p,
593 choosedList: choosedList.value
594 }
595 proxy.$refs['dialogSportsmanListRef'].open(params)
596 }
597 467
598 function delthischoosed(p) { 468 function delthischoosed(p) {
599 choosedList.value = _.without(choosedList.value, p) 469 choosedList.value = _.without(choosedList.value, p)
...@@ -617,7 +487,7 @@ function editThis(row) { ...@@ -617,7 +487,7 @@ function editThis(row) {
617 const params = { 487 const params = {
618 title: '修改报项', 488 title: '修改报项',
619 personal: row.cptPersonInfo, 489 personal: row.cptPersonInfo,
620 matchId: matchId, 490 matchId: matchId.value,
621 groupId: groupId.value, 491 groupId: groupId.value,
622 rankId: activeTeam.value, 492 rankId: activeTeam.value,
623 signType: signType.value, 493 signType: signType.value,
...@@ -644,8 +514,8 @@ function signUp() { ...@@ -644,8 +514,8 @@ function signUp() {
644 groupId: groupId.value 514 groupId: groupId.value
645 } 515 }
646 match.sportsmanDone(obj).then(res => { 516 match.sportsmanDone(obj).then(res => {
647
648 getSignInfoList() 517 getSignInfoList()
518 getProjectList()
649 }) 519 })
650 } 520 }
651 521
...@@ -712,7 +582,7 @@ const goPersonInfo = (row) => { ...@@ -712,7 +582,7 @@ const goPersonInfo = (row) => {
712 function downloadVoucher() { 582 function downloadVoucher() {
713 // 下载凭证 583 // 下载凭证
714 proxy.download( 584 proxy.download(
715 `/pdf/getPayedOrderPdf/${matchId}/${groupId.value || 0}`, {}, '报项凭证.pdf' 585 `/pdf/getPayedOrderPdf/${matchId.value}/${groupId.value || 0}`, {}, '报项凭证.pdf'
716 ) 586 )
717 } 587 }
718 588
...@@ -738,7 +608,21 @@ function switchTabletype() { ...@@ -738,7 +608,21 @@ function switchTabletype() {
738 flex: 1 1 auto; 608 flex: 1 1 auto;
739 } 609 }
740 610
611 .flexBetweenBox {
612 width: 100%;
613 height: auto;
614 border-bottom: 1px solid #eee;
615 padding: 0 10px;
616 }
617
618 .flexBetweenBox:nth-child(odd) {
619 background: #FAFBFD;
620 }
621
741 .flexBetween { 622 .flexBetween {
623 padding: 10px;
624 border-left: 1px solid #eee;
625
742 .l { 626 .l {
743 div { 627 div {
744 margin: 4px 0 0; 628 margin: 4px 0 0;
...@@ -795,7 +679,8 @@ function switchTabletype() { ...@@ -795,7 +679,8 @@ function switchTabletype() {
795 } 679 }
796 680
797 .el-checkbox { 681 .el-checkbox {
798 height: auto;margin-right: 20px; 682 height: auto;
683 margin-right: 20px;
799 } 684 }
800 685
801 :deep(.el-checkbox__input) { 686 :deep(.el-checkbox__input) {
...@@ -829,18 +714,46 @@ function switchTabletype() { ...@@ -829,18 +714,46 @@ function switchTabletype() {
829 } 714 }
830 } 715 }
831 } 716 }
832 .ttbb{font-size: 14px; 717
718 .ttbb {
719 font-size: 14px;
833 color: #4C5359; 720 color: #4C5359;
834 display: flex;justify-content: center; 721 display: flex;
835 div{padding: 20px;position: relative;cursor: pointer;} 722 justify-content: center;
836 div:first-child::after {content: '';position: absolute;right: 0; 723
837 background: #ccc;width: 1px;height: 14px;top:0;bottom: 0;margin: auto;} 724 div {
838 725 padding: 20px;
839 .active{color: var(--el-color-primary); 726 position: relative;
840 &::before{width: 33px;content: '';position: absolute; 727 cursor: pointer;
841 height: 2px;bottom: 14px;left: 0;right: 0;margin: auto; 728 }
729
730 div:first-child::after {
731 content: '';
732 position: absolute;
733 right: 0;
734 background: #ccc;
735 width: 1px;
736 height: 14px;
737 top: 0;
738 bottom: 0;
739 margin: auto;
740 }
741
742 .active {
743 color: var(--el-color-primary);
744
745 &::before {
746 width: 33px;
747 content: '';
748 position: absolute;
749 height: 2px;
750 bottom: 14px;
751 left: 0;
752 right: 0;
753 margin: auto;
842 background: #453DEA; 754 background: #453DEA;
843 border-radius: 1px;} 755 border-radius: 1px;
756 }
844 } 757 }
845 } 758 }
846 </style> 759 </style>
......
...@@ -46,8 +46,8 @@ ...@@ -46,8 +46,8 @@
46 <el-table-column v-if="coachOrLeaderFlag=='1'" label="领队" prop="leaderNames" /> 46 <el-table-column v-if="coachOrLeaderFlag=='1'" label="领队" prop="leaderNames" />
47 <el-table-column label="操作" fixed="right" width="100" align="center"> 47 <el-table-column label="操作" fixed="right" width="100" align="center">
48 <template #default="scope"> 48 <template #default="scope">
49 <el-button type="text" @click="editThis(scope.row)">编辑</el-button> 49 <el-button type="primary" link @click="editThis(scope.row)">编辑</el-button>
50 <el-button type="text" @click="removeThis(scope.row.id)">删除</el-button> 50 <el-button type="primary" link @click="removeThis(scope.row.id)">删除</el-button>
51 </template> 51 </template>
52 </el-table-column> 52 </el-table-column>
53 </el-table> 53 </el-table>
......
1 <template>
2 <div>
3 <div class="box ph-30">
4 <el-card>
5 <single-sign-step v-if="user.utype=='1'" activeStep="3" :language="language"/>
6 <team-sign-step v-if="user.utype=='2'" activeStep="4" :language="language"/>
7 </el-card>
8 <el-card class="mt20">
9 <div class="flexCenter pd20">
10 <img src="@/assets/img/e.png"/>
11 <div>
12 <div>账号:{{ user.userName }}</div>
13 <h3>报名信息提交成功</h3>
14 </div>
15 </div>
16 <div class="text-center flexCenter">
17 <div class="border-info mt20">
18 审核结果,后续将以邮件形式正式通知您。
19 <br/>
20 邮件发送账号:<span class="text-primary">{{ user.email }}</span>
21 ,请关注相关邮件通知。
22 <br/>
23 如果您的报名信息审核通过,邮件正文会附上相关费用的支付链接,请通过链接完成支付,完成报名。
24 </div>
25 </div>
26
27 <div class="text-center mt30 mb20">
28 <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>
30 </div>
31 </el-card>
32 </div>
33 </div>
34 </template>
35
36 <script setup>
37 import TeamSignStep from './components/teamSignStep'
38 import SingleSignStep from './components/singleSignStep'
39 const router = useRouter()
40 import useUserStore from "@/store/modules/user"
41 import {ref} from "vue"
42 import cache from "@/plugins/cache"
43 import {useRouter} from "vue-router";
44
45 const language = ref(cache.local.get('language') || 0)
46 const user = useUserStore().user
47
48 const goHome = () => {
49 router.push({
50 name: `home`
51 })
52 }
53 const goSign = () => {
54 router.push({
55 name: `matchDetail`,
56 params:{id:0}
57 })
58 }
59 </script>
60
61 <style scoped lang="scss">
62 .border-info{padding: 30px;line-height: 2;}
63 </style>
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
7 <el-form ref="dialogRef" :model="form" :rules="rules" label-width="120px" inline> 7 <el-form ref="dialogRef" :model="form" :rules="rules" 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="个人照片" required> 10 <el-form-item prop="picUrl" :label="language==0?'个人照片':'photo'" required>
11 <ImageUpload2 11 <ImageUpload2
12 v-model="form.picUrl" :crop-height="280" :crop-width="200" class="threeFour" :limit="1" 12 v-model="form.picUrl" :crop-height="280" :crop-width="200" class="threeFour" :limit="1"
13 :is-show-tip="false" 13 :is-show-tip="false"
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
65 <el-radio label="1">{{ language==0?'男':'male' }}</el-radio> 65 <el-radio label="1">{{ language==0?'男':'male' }}</el-radio>
66 </el-radio-group> 66 </el-radio-group>
67 </el-form-item> 67 </el-form-item>
68 <el-form-item :label="language==0?'邮箱':'Email'" prop="idcCode" required> 68 <el-form-item :label="language==0?'邮箱':'Email'" prop="email" required>
69 <el-input v-model="form.email"/> 69 <el-input v-model="form.email"/>
70 </el-form-item> 70 </el-form-item>
71 <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode" required> 71 <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode" required>
...@@ -134,9 +134,10 @@ const data = reactive({ ...@@ -134,9 +134,10 @@ const data = reactive({
134 ], 134 ],
135 title: '添加选手信息', 135 title: '添加选手信息',
136 groupId: '0', 136 groupId: '0',
137 showRequire: false 137 showRequire: false,
138 uType:''
138 }) 139 })
139 const {showRequire, form, rules, show, countryList, regionsList, title, groupId, labels} = toRefs(data) 140 const {showRequire, form, rules, show, countryList, regionsList, title, groupId, labels,uType} = toRefs(data)
140 onMounted(() => { 141 onMounted(() => {
141 getCountryList() 142 getCountryList()
142 getRegionsList() 143 getRegionsList()
...@@ -147,17 +148,31 @@ const open = (params) => { ...@@ -147,17 +148,31 @@ const open = (params) => {
147 show.value = true 148 show.value = true
148 title.value = params.title 149 title.value = params.title
149 groupId.value = params.groupId || '0' 150 groupId.value = params.groupId || '0'
150 if (params.id != 0) { // 编辑 151 uType.value = params.uType
151 editgay = true 152 if(uType.value == '1'){
152 match.getPersonInfoById(params.id).then(res => { 153 //个人
154 match.getMyPersonInfo().then(res => {
153 form.value = res.data 155 form.value = res.data
154 form.value.id = params.id 156 form.value.id = res.data.id
155 if (form.value.label) { 157 if (form.value.label) {
156 // {0:0,1:1,2:3} 158 // {0:0,1:1,2:3}
157 form.value.labelArr = form.value.label.split(',') 159 form.value.labelArr = form.value.label.split(',')
158 labelvalue(form.value.labelArr) 160 labelvalue(form.value.labelArr)
159 } 161 }
160 }) 162 })
163 } else {
164 if (params.id != 0) { // 编辑
165 editgay = true
166 match.getPersonInfoById(params.id).then(res => {
167 form.value = res.data
168 form.value.id = params.id
169 if (form.value.label) {
170 // {0:0,1:1,2:3}
171 form.value.labelArr = form.value.label.split(',')
172 labelvalue(form.value.labelArr)
173 }
174 })
175 }
161 } 176 }
162 } 177 }
163 defineExpose({open}) 178 defineExpose({open})
...@@ -286,11 +301,20 @@ function submitForm() { ...@@ -286,11 +301,20 @@ function submitForm() {
286 emit('submitForm') 301 emit('submitForm')
287 }) 302 })
288 } else { 303 } else {
289 match.savePersonForMyPerson(form.value).then(res => { 304 // if(uType.value == '1'){
290 ElMessage.success('保存成功') 305 // match.saveMyBaseInfo(form.value).then(res => {
291 show.value = false 306 // ElMessage.success('保存成功')
292 emit('submitForm') 307 // show.value = false
293 }) 308 // emit('submitForm')
309 // })
310 // } else {
311 match.savePersonForMyPerson(form.value).then(res => {
312 ElMessage.success('保存成功')
313 show.value = false
314 emit('submitForm')
315 })
316 // }
317
294 } 318 }
295 } 319 }
296 } 320 }
......
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
71 <el-table-column :label="language==0?'详细地址':'Detailed Address'" prop="address" min-width="140"/> 71 <el-table-column :label="language==0?'详细地址':'Detailed Address'" prop="address" min-width="140"/>
72 <el-table-column :label="language==0?'操作':'Actions'" width="120" fixed="right" align="center"> 72 <el-table-column :label="language==0?'操作':'Actions'" width="120" fixed="right" align="center">
73 <template #default="scope"> 73 <template #default="scope">
74 <el-button type="text" @click="editPerson(scope.row)"> 74 <el-button link type="primary" @click="editPerson(scope.row)">
75 {{language==0?'编辑':'Edit'}} 75 {{language==0?'编辑':'Edit'}}
76 </el-button> 76 </el-button>
77 </template> 77 </template>
...@@ -103,7 +103,9 @@ const language = ref(cache.local.get('language') || 0) ...@@ -103,7 +103,9 @@ const language = ref(cache.local.get('language') || 0)
103 const {proxy} = getCurrentInstance() 103 const {proxy} = getCurrentInstance()
104 const emit = defineEmits(['submitForm', 'transfer']) 104 const emit = defineEmits(['submitForm', 'transfer'])
105 const data = reactive({ 105 const data = reactive({
106 query: {}, 106 query: {
107 label:'0'
108 },
107 tableData: [], 109 tableData: [],
108 birthArr: [], 110 birthArr: [],
109 show: false, 111 show: false,
...@@ -184,7 +186,7 @@ function addMember() { ...@@ -184,7 +186,7 @@ function addMember() {
184 const params = { 186 const params = {
185 title: '添加人员', 187 title: '添加人员',
186 id: 0, 188 id: 0,
187 groupId: groupId.value 189 groupId: groupId
188 } 190 }
189 proxy.$refs['dialogAddCoach'].open(params) 191 proxy.$refs['dialogAddCoach'].open(params)
190 } 192 }
...@@ -192,7 +194,7 @@ function addMember() { ...@@ -192,7 +194,7 @@ function addMember() {
192 function importSportman() { 194 function importSportman() {
193 const params = { 195 const params = {
194 title: '批量导入选手', 196 title: '批量导入选手',
195 groupId: groupId.value 197 groupId: groupId
196 } 198 }
197 proxy.$refs['dialogImportProps'].open(params) 199 proxy.$refs['dialogImportProps'].open(params)
198 } 200 }
......
1 <template> 1 <template>
2 <div class="border-info" style="margin: 20px"> 2 <div class="border-info" style="margin: 20px" v-loading="loading">
3 <el-row> 3 <el-row>
4 <el-col :lg="8"> 4 <el-col :lg="8">
5 <div class="item"><label>{{ language == 0 ? '教练' : 'Coach' }}</label> 5 <div class="item"><label>{{ language == 0 ? '教练' : 'Coach' }}</label>
6 <span v-for="c in names.coachList">{{ c.shortName }}</span> 6 <span v-for="c in names.coachList">{{ c.shortName }}</span>
7 <span v-if="!names.coachList">--</span>
7 </div> 8 </div>
8 <div class="item"><label>{{ language == 0 ? '翻译' : 'Translator' }}</label> 9 <div class="item"><label>{{ language == 0 ? '翻译' : 'Translator' }}</label>
9 <span v-for="c in names.translatorList">{{ c.shortName }}</span> 10 <span v-for="c in names.translatorList">{{ c.shortName }}</span>
11 <span v-if="!names.translatorList">--</span>
10 </div> 12 </div>
11 </el-col> 13 </el-col>
12 <el-col :lg="8"> 14 <el-col :lg="8">
13 <div class="item"> 15 <div class="item">
14 <label>{{ language == 0 ? '领队' : 'Team leader' }}</label> 16 <label>{{ language == 0 ? '领队' : 'Team leader' }}</label>
15 <span v-for="c in names.leaderList">{{ c.shortName }}</span> 17 <span v-for="c in names.leaderList">{{ c.shortName }}</span>
18 <span v-if="!names.leaderList">--</span>
16 </div> 19 </div>
17 <div class="item"> 20 <div class="item">
18 <label>{{ language == 0 ? '官员' : 'Official' }}</label> 21 <label>{{ language == 0 ? '官员' : 'Official' }}</label>
...@@ -26,12 +29,14 @@ ...@@ -26,12 +29,14 @@
26 <span class="mr5" v-for="c in names.teamDoctorList"> 29 <span class="mr5" v-for="c in names.teamDoctorList">
27 {{ c.shortName }} 30 {{ c.shortName }}
28 </span> 31 </span>
32 <span v-if="!names.teamDoctorList">--</span>
29 </div> 33 </div>
30 <div class="item"> 34 <div class="item">
31 <label>{{ language == 0 ? '其他' : 'Other' }}</label> 35 <label>{{ language == 0 ? '其他' : 'Other' }}</label>
32 <span class="mr5" v-for="c in names.otherList"> 36 <span class="mr5" v-for="c in names.otherList">
33 {{ c.shortName }} 37 {{ c.shortName }}
34 </span> 38 </span>
39 <span v-if="!names.otherList">--</span>
35 </div> 40 </div>
36 </el-col> 41 </el-col>
37 </el-row> 42 </el-row>
...@@ -39,17 +44,44 @@ ...@@ -39,17 +44,44 @@
39 </template> 44 </template>
40 45
41 <script setup> 46 <script setup>
47 import * as match from "@/apiPc/match";
48 import {onMounted} from "@vue/runtime-core";
49 import useUserStore from "@/store/modules/user";
50
42 const props = defineProps({ 51 const props = defineProps({
43 names: { 52 matchId: {
44 type: Object, 53 type: String,
45 required: true 54 required: true
46 },
47 language: {
48 type: Number,
49 required: true,
50 default: 0
51 } 55 }
52 }) 56 })
57 const names = ref({})
58 const loading = ref(true)
59 import cache from "@/plugins/cache"
60 const user = useUserStore().user
61 const group = useUserStore().group || {}
62 const language = ref(cache.local.get('language') || 0)
63 onMounted(() => {
64 if (user.utype == '2') {
65 tuandui()
66 }
67 if(user.utype == '1'){
68 geren()
69 }
70 })
71
72 function geren() {
73 match.getChooseDoneSingleCoachs(props.matchId).then(res => {
74 names.value = res.data
75 loading.value = false
76 })
77 }
78
79 function tuandui() {
80 match.getChooseDoneGroupCoachs(props.matchId, group.id).then(res => {
81 names.value = res.data
82 loading.value = false
83 })
84 }
53 </script> 85 </script>
54 86
55 <style scoped lang="scss"> 87 <style scoped lang="scss">
......
...@@ -4,17 +4,20 @@ ...@@ -4,17 +4,20 @@
4 destroy-on-close 4 destroy-on-close
5 > 5 >
6 <el-descriptions border> 6 <el-descriptions border>
7 <el-descriptions-item v-if="form.picUrl" label="照片"> 7 <el-descriptions-item v-if="form.picUrl" :label="language==0?'个人照片':'photo'">
8 <img style="width: 100px" :src="form.picUrl"> 8 <img style="width: 60px" :src="fillImgUrl(form.picUrl)">
9 </el-descriptions-item> 9 </el-descriptions-item>
10 <el-descriptions-item label="姓名">{{ form.realName }}</el-descriptions-item> 10 <el-descriptions-item :label="language==0?'姓氏':'surname'">{{ form.xing }}</el-descriptions-item>
11 <el-descriptions-item label="性别">{{ form.sexStr }}</el-descriptions-item> 11 <el-descriptions-item :label="language==0?'名':'name'">{{ form.ming }}</el-descriptions-item>
12 <el-descriptions-item label="证件类型">{{ form.idcTypeStr }}</el-descriptions-item> 12 <el-descriptions-item :label="language==0?'短名':'short name'">{{ form.shortName }}</el-descriptions-item>
13 <el-descriptions-item label="证件号码">{{ form.idcCode }}</el-descriptions-item> 13 <el-descriptions-item :label="language==0?'性别':'sex'">{{ form.sexStr }}</el-descriptions-item>
14 <el-descriptions-item label="出生日期">{{ form.birth }}</el-descriptions-item> 14 <el-descriptions-item :label="language==0?'所属国家':'Nationality'">{{ form.countryName }}</el-descriptions-item>
15 <el-descriptions-item label="联系方式">{{ form.phone }}</el-descriptions-item> 15 <el-descriptions-item :label="language==0?'证件类型':'ID type'">{{ form.idcTypeStr }}</el-descriptions-item>
16 <el-descriptions-item label="国籍">{{ form.countryName }}</el-descriptions-item> 16 <el-descriptions-item :label="language==0?'证件号码':'ID NO'">{{ form.idcCode }}</el-descriptions-item>
17 <el-descriptions-item label="民族">{{ form.nation }}</el-descriptions-item> 17 <el-descriptions-item :label="language==0?'出生日期':'birth'">{{ form.birth }}</el-descriptions-item>
18 <el-descriptions-item :label="language==0?'手机号码':'Phone'">{{ form.phone }}</el-descriptions-item>
19 <el-descriptions-item :label="language==0?'邮箱':'Email'">{{ form.email }}</el-descriptions-item>
20 <el-descriptions-item :label="language==0?'详细地址':'Address'">{{ form.address }}</el-descriptions-item>
18 </el-descriptions> 21 </el-descriptions>
19 22
20 <el-row v-if="participantsInfoArr&&participantsInfoArr.length>0" class="mt20"> 23 <el-row v-if="participantsInfoArr&&participantsInfoArr.length>0" class="mt20">
...@@ -62,6 +65,9 @@ const { proxy } = getCurrentInstance() ...@@ -62,6 +65,9 @@ const { proxy } = getCurrentInstance()
62 const emit = defineEmits(['submitForm']) 65 const emit = defineEmits(['submitForm'])
63 const uploadUrl = ref('/upload/upLoadToFileServer') 66 const uploadUrl = ref('/upload/upLoadToFileServer')
64 const route = useRoute() 67 const route = useRoute()
68 import cache from "@/plugins/cache"
69 const language = ref(cache.local.get('language') || 0)
70
65 const data = reactive({ 71 const data = reactive({
66 form: {}, 72 form: {},
67 show: false, 73 show: false,
......
...@@ -26,17 +26,28 @@ ...@@ -26,17 +26,28 @@
26 </template> 26 </template>
27 27
28 <script setup> 28 <script setup>
29 import useUserStore from "@/store/modules/user";
30 import cache from "@/plugins/cache";
31 import {getGroup} from "@/api/match/CompetitionProject";
32 import * as match from "@/apiPc/match";
33
34 const language = ref(cache.local.get('language') || 0)
29 const props = defineProps({ 35 const props = defineProps({
30 groupInfo: { 36 groupId: {
31 type: Object, 37 type: Object,
32 required: true 38 required: true
33 },
34 language: {
35 type: Number,
36 required: true,
37 default: 0
38 } 39 }
39 }) 40 })
41 const user = useUserStore().user
42 const groupInfo = useUserStore().group
43 if(props.groupId!=0){
44 getGroupInfo()
45 }
46 function getGroupInfo() {
47 match.getGroupInfo().then(res => {
48 groupInfo.value = res.data
49 })
50 }
40 </script> 51 </script>
41 52
42 <style scoped lang="scss"> 53 <style scoped lang="scss">
......
...@@ -2,11 +2,12 @@ ...@@ -2,11 +2,12 @@
2 <el-dialog v-model="show" :title="title" width="500px" close-icon="CircleClose" 2 <el-dialog v-model="show" :title="title" width="500px" close-icon="CircleClose"
3 append-to-body :close-on-click-modal="false" class="pcloginpop" center> 3 append-to-body :close-on-click-modal="false" class="pcloginpop" center>
4 <el-form ref="dialogRef" label-width="100px"> 4 <el-form ref="dialogRef" label-width="100px">
5 <el-form-item label="下载模板"> 5 <el-form-item :label="language==0?'下载模板':'Download template'">
6 <el-link href="/file/sportsmanTemplate.xlsx" type="primary" target="_blank">人员模板</el-link> 6 <el-link href="/file/UserImport-ch.xlsx" v-if="language==0" type="primary" target="_blank">人员模板</el-link>
7 <el-link href="/file/UserImport-en.xlsx" v-else type="primary" target="_blank">Personnel template</el-link>
7 </el-form-item> 8 </el-form-item>
8 9
9 <el-form-item label="上传模板" prop="discount"> 10 <el-form-item :label="language==0?'上传模板':'Upload template'" prop="discount">
10 <fileImport ref="upload" name="excel" :action="action" @uploadSuccess="uploadSuccess" /> 11 <fileImport ref="upload" name="excel" :action="action" @uploadSuccess="uploadSuccess" />
11 </el-form-item> 12 </el-form-item>
12 </el-form> 13 </el-form>
...@@ -25,13 +26,17 @@ import { ElMessage, ElMessageBox } from 'element-plus' ...@@ -25,13 +26,17 @@ import { ElMessage, ElMessageBox } from 'element-plus'
25 const { proxy } = getCurrentInstance() 26 const { proxy } = getCurrentInstance()
26 import useUserStore from '@/store/modules/user' 27 import useUserStore from '@/store/modules/user'
27 const emit = defineEmits(['submitForm']) 28 const emit = defineEmits(['submitForm'])
28 29 import cache from "@/plugins/cache"
30 const language = ref(cache.local.get('language') || 0)
29 const action = ref('') 31 const action = ref('')
30 const accept = ref('.xlsx') 32 const accept = ref('.xlsx')
31 const title = ref('') 33 const title = ref('')
32 const show = ref(false) 34 const show = ref(false)
33 const userStore = useUserStore() 35 const userStore = useUserStore()
34 const groupId = useUserStore().group.id || 0 36 let groupId = 0
37 if(useUserStore().group){
38 groupId = useUserStore().group.id
39 }
35 function uploadSuccess(res) { 40 function uploadSuccess(res) {
36 console.log(res) 41 console.log(res)
37 cancel() 42 cancel()
......
...@@ -78,7 +78,7 @@ ...@@ -78,7 +78,7 @@
78 </el-row> 78 </el-row>
79 <el-row> 79 <el-row>
80 <el-col :span="2" :offset="22"> 80 <el-col :span="2" :offset="22">
81 <el-button type="text" class="fr" @click="editRank(r)">编辑</el-button> 81 <el-button type="primary" link class="fr" @click="editRank(r)">编辑</el-button>
82 </el-col> 82 </el-col>
83 </el-row> 83 </el-row>
84 </div> 84 </div>
......
1 <template> 1 <template>
2 <div class="border-info" style="margin: 20px"> 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.name}}</div></el-col>
...@@ -18,17 +18,30 @@ ...@@ -18,17 +18,30 @@
18 </template> 18 </template>
19 19
20 <script setup> 20 <script setup>
21 import {onMounted} from "@vue/runtime-core";
22 import * as match from "@/apiPc/match";
23 import cache from "@/plugins/cache";
24
25 const language = ref(cache.local.get('language') || 0)
21 const props = defineProps({ 26 const props = defineProps({
22 matchInfo: { 27 matchId: {
23 type: Object, 28 type: String,
24 required: true 29 required: true
25 },
26 language: {
27 type: Number,
28 required: true,
29 default: 0
30 } 30 }
31 }) 31 })
32 const matchInfo = ref({})
33 const loading = ref(false)
34 onMounted(()=>{
35 loading.value = true
36 if(props.matchId)
37 getMatch()
38 })
39 const getMatch = () => {
40 match.getMatchById({ id: props.matchId }).then(res => {
41 matchInfo.value = res.data
42 loading.value = false
43 })
44 }
32 </script> 45 </script>
33 46
34 <style scoped lang="scss"> 47 <style scoped lang="scss">
......
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
98 </div> 98 </div>
99 </el-collapse-item> 99 </el-collapse-item>
100 </el-collapse> 100 </el-collapse>
101 <el-empty image="@/assets/img/order_no.png" image-size="228" v-if="form.cptProjectList?.length == 0" description=" "/> 101 <el-empty image="@/assets/img/order_no.png" :image-size="228" v-if="form.cptProjectList?.length == 0" description=" "/>
102 </div> 102 </div>
103 </div> 103 </div>
104 <div style="padding: 0 20px 20px" v-else> 104 <div style="padding: 0 20px 20px" v-else>
...@@ -200,7 +200,7 @@ ...@@ -200,7 +200,7 @@
200 </div> 200 </div>
201 </el-collapse-item> 201 </el-collapse-item>
202 </el-collapse> 202 </el-collapse>
203 <el-empty image="@/assets/img/order_no.png" image-size="228" v-if="form.cptProjectList?.length == 0" description=" "/> 203 <el-empty image="@/assets/img/order_no.png" :image-size="228" v-if="form.cptProjectList?.length == 0" description=" "/>
204 </div> 204 </div>
205 </div> 205 </div>
206 </template> 206 </template>
......
...@@ -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="@/assets/img/order_no.png" :image-size="228" v-if="matchData.cptScheduleList?.length==0" description="" />
28 28
29 </div> 29 </div>
30 </template> 30 </template>
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +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="@/assets/img/order_no.png" :image-size="228" description="无可选项目" />
20 20
21 </el-form-item> 21 </el-form-item>
22 </el-col> 22 </el-col>
......
1 <template>
2 <el-table :data="list" border style="width: 100%" v-loading="loading">
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"/>
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"/>
7 <el-table-column :label="language==0?'性别':'Gender'" prop="personInfo.sexStr"/>
8 <el-table-column :label="language==0?'年龄':'Age'" prop="personInfo.age"/>
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"/>
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"/>
13 <el-table-column :label="language==0?'证件号码':'ID NO.'" prop="personInfo.idcCode" width="200"/>
14 <el-table-column :label="language==0?'会员角色':'Role'" width="150">
15 <template #default="scope">
16 <div class="esp">
17 <span v-for="item in scope.row.personInfo.label?.split(',')" :key="item.id" class="text-primary">
18 <span v-if="item==='0'" class="ml5">{{ language == 0 ? '运动员' : 'athletes' }}</span>
19 <span v-if="item==='1'" class="ml5">{{ language == 0 ? '教练' : 'coach' }}</span>
20 <span v-if="item==='2'" class="ml5">{{ language == 0 ? '领队' : 'team leader' }}</span>
21 <span v-if="item==='3'" class="ml5">{{ language == 0 ? '队医' : 'team doctor' }}</span>
22 <span v-if="item==='4'" class="ml5">{{ language == 0 ? '翻译' : 'translator' }}</span>
23 <span v-if="item==='5'" class="ml5">{{ language == 0 ? '官员' : 'official' }}</span>
24 <span v-if="item==='6'" class="ml5">{{ language == 0 ? '其他' : 'other' }}</span>
25 </span>
26 </div>
27 </template>
28 </el-table-column>
29 <el-table-column :label="language==0?'详细地址':'Detailed Address'" prop="personInfo.address" min-width="140"/>
30
31 <el-table-column :label="language==0?'报项':'Entries'" min-width="300" :fixed="hasAction?false:'right'">
32 <template #default="props">
33 <ol>
34 <li v-for="s in props.row.signInfo">
35 {{ s.cptProjectName }}
36 {{ s.cptGroupName }}{{ s.cptLevelName }}
37 <span v-show="s.cptSonLevelName">[{{ s.cptSonLevelName }}]</span>
38 <span v-show="s.zu">-{{ s.zu }}</span>
39 <!-- <el-button type="text" @click="editThis(s)">{{ language == 0 ? '修改' : 'Edit' }}</el-button>-->
40 <!-- <el-button type="text" @click="editMates(s)">更换队友</el-button>-->
41 <!-- <el-button type="text" @click="removeThis(s.id)">{{ language == 0 ? '删除' : 'Delete' }}</el-button>-->
42 </li>
43 </ol>
44 </template>
45 </el-table-column>
46 <el-table-column :fixed="hasAction?false:'right'" :label="language==0?'保险费':'Premium'" prop="insuranceFee">
47 <template #default="scope">
48 <span class="text-primary">¥{{ scope.row.insuranceFee }}</span>
49 </template>
50 </el-table-column>
51 <!-- 补充信息-->
52 <el-table-column v-for="(e,index) in extraTableHead" :key="index" :label="e" min-width="110" align="center">
53 <template #default="scope">
54 <el-link v-if="scope.row.signInfo[0].extraPersonInfoMapList[index]?.type=='2'"
55 :herf="scope.row.signInfo[0].extraPersonInfoMapList[index].value.url">
56 {{ scope.row.signInfo[0].extraPersonInfoMapList[index].value.name }}
57 </el-link>
58 <img v-else-if="scope.row.signInfo[0].extraPersonInfoMapList[index]?.type=='3'" style="width: 50px;"
59 :src="scope.row.signInfo[0].extraPersonInfoMapList[index].value.url||scope.row.signInfo[0].extraPersonInfoMapList[index].value">
60 <span v-else>{{ scope.row.signInfo[0].extraPersonInfoMapList[index]?.value }}</span>
61 </template>
62 </el-table-column>
63 <el-table-column v-if="hasAction" :label="language==0?'操作':'Actions'" fixed="right" width="150" align="center">
64 <template #default="scope">
65 <el-button v-if="extraform&&extraform.length>0" type="primary" link @click="goPersonInfo(scope.row)">
66 <span v-if="scope.row.extraPersonInfo">{{ language == 0 ? '修改' : 'Edit' }}</span>
67 <span v-else class="red">{{ language == 0?'完善补充信息':'Additional Information' }}</span>
68 </el-button>
69 </template>
70 </el-table-column>
71 </el-table>
72
73 </template>
74
75 <script setup>
76 import * as match from "@/apiPc/match";
77 import {onMounted} from "@vue/runtime-core";
78 import {watch} from "vue";
79
80 const emit = defineEmits(['editExtra'])
81 const props = defineProps({
82 matchId: {
83 type: String,
84 required: true
85 },
86 list: {
87 type: Array,
88 required: true
89 },
90 extraform: {
91 type: Object,
92 required: false
93 },
94 hasAction: {
95 type: Boolean,
96 required: false,
97 default: true
98 }
99 })
100 import cache from "@/plugins/cache";
101 const language = ref(cache.local.get('language') || 0)
102 const extraTableHead = ref([])
103 const loading = ref(true)
104 getTableHead()
105 const goPersonInfo = (row) => {
106 emit('editExtra', row)
107 }
108 function getTableHead() {
109 match.getCptExtraInfo(props.matchId).then(res => {
110 extraTableHead.value = res.data
111 loading.value = false
112 })
113 }
114 </script>
115
116 <style scoped>
117
118 </style>
1 <template>
2 <el-steps :active="activeStep" align-center>
3 <el-step :title="language==0?'教练/领队/其他':'Coach/Team Leader/Other'" />
4 <el-step :title="language==0?'选手报名':'Participant Registration'" />
5 <el-step :title="language==0?'提交审核':'Submit for review'" />
6 </el-steps>
7 </template>
8
9 <script setup>
10 import cache from "@/plugins/cache";
11 const language = ref(cache.local.get('language') || 0)
12 const props = defineProps({
13 activeStep: {
14 type: Number,
15 required: true
16 }
17 })
18 </script>
19
20 <style scoped>
21
22 </style>
...@@ -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="@/assets/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>
......
...@@ -8,15 +8,12 @@ ...@@ -8,15 +8,12 @@
8 </template> 8 </template>
9 9
10 <script setup> 10 <script setup>
11 import cache from "@/plugins/cache";
12 const language = ref(cache.local.get('language') || 0)
11 const props = defineProps({ 13 const props = defineProps({
12 activeStep: { 14 activeStep: {
13 type: Number, 15 type: Number,
14 required: true 16 required: true
15 },
16 language: {
17 type: Number,
18 required: true,
19 default: 0
20 } 17 }
21 }) 18 })
22 </script> 19 </script>
......
1 <template>
2 <el-table :data="list" border style="width: 100%">
3 <el-table-column :label="language==0?'组别代码':'Group code'" width="120px" prop="zuName"/>
4 <el-table-column :label="language==0?'组别':'Group'" prop="project.name"/>
5 <el-table-column :label="language==0?'舞种':'Dance Style'" width="120px" prop="project.danceType"/>
6 <el-table-column :label="language==0?'参赛说明':'Participation Instructions'" prop="project.remarks"/>
7 <el-table-column :label="language==0?'参赛运动员':'Participating athletes'" width="120px">
8 <template #default="scope">
9 <div>
10 <span v-for="s in scope.row.athletes">{{ s.name }},</span>
11 </div>
12 </template>
13 </el-table-column>
14 <el-table-column :label="language==0?'报名费':'Registration Fee'" width="120px" prop="">
15 <template #default="scope">
16 <div class="text-primary">
17 ¥{{ scope.row.project.serviceFee }}
18 </div>
19 </template>
20 </el-table-column>
21 <el-table-column v-if="hasAction" :label="language==0?'操作':'Actions'" fixed="right" width="150" align="center">
22 <template #default="scope">
23 <el-button type="primary" link @click="remove(scope.row.signId)">
24 {{language == 0 ? '删除' : 'Delete' }}
25 </el-button>
26
27 </template>
28 </el-table-column>
29 </el-table>
30
31 </template>
32
33 <script setup>
34 const emit = defineEmits(['delete'])
35 const props = defineProps({
36 list: {
37 type: Array,
38 required: true
39 },
40 hasAction:{
41 type: Boolean,
42 required: false,
43 default: true
44 }
45 })
46 import cache from "@/plugins/cache";
47 const language = ref(cache.local.get('language') || 0)
48 const remove = (id) => {
49 emit('delete', id)
50 }
51 </script>
52
53 <style scoped>
54
55 </style>
...@@ -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="@/assets/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,11 +141,11 @@ ...@@ -141,11 +141,11 @@
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="@/assets/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="@/assets/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" v-html="matchData.signKnow">
...@@ -195,7 +195,7 @@ const router = useRouter() ...@@ -195,7 +195,7 @@ const router = useRouter()
195 const { proxy } = getCurrentInstance() 195 const { proxy } = getCurrentInstance()
196 import * as match from '@/apiPc/match' 196 import * as match from '@/apiPc/match'
197 import { toRefs } from '@vueuse/shared' 197 import { toRefs } from '@vueuse/shared'
198 import { ElMessage } from 'element-plus' 198 import {dayjs, ElMessage} from 'element-plus'
199 import useUserStore from "@/store/modules/user"; 199 import useUserStore from "@/store/modules/user";
200 const data = reactive({ 200 const data = reactive({
201 matchData: {}, 201 matchData: {},
...@@ -205,13 +205,18 @@ const data = reactive({ ...@@ -205,13 +205,18 @@ const data = reactive({
205 popupGroupList:false, 205 popupGroupList:false,
206 menu:[{name:'赛事详情',active:1},{name:'赛事设项',active:0},{name:'日程',active:0},{name:'参赛队',active:0},{name:'成绩',active:0},{name:'报名须知',active:0}], 206 menu:[{name:'赛事详情',active:1},{name:'赛事设项',active:0},{name:'日程',active:0},{name:'参赛队',active:0},{name:'成绩',active:0},{name:'报名须知',active:0}],
207 menu1:[{name:'分站赛',active:1},{name:'赛事详情',active:0},{name:'日程',active:0}], 207 menu1:[{name:'分站赛',active:1},{name:'赛事详情',active:0},{name:'日程',active:0}],
208 signDoneGroupList: [] 208 signDoneGroupList: [],
209 time:''
209 }) 210 })
210 const {matchData,matchId,groupId,activeName2,popupGroupList,menu,menu1,signDoneGroupList} = toRefs(data) 211 const {time,matchData,matchId,groupId,activeName2,popupGroupList,menu,menu1,signDoneGroupList} = toRefs(data)
211 const group = useUserStore().group 212 const group = useUserStore().group
212 const user = useUserStore().user 213 const user = useUserStore().user
213 onMounted(() => { 214 onMounted(() => {
214 groupId.value = group.id 215 if(group){
216 groupId.value = group.id
217 } else {
218 groupId.value = 0
219 }
215 match.getMaList().then((res) => { 220 match.getMaList().then((res) => {
216 if(route.params.id!=0){ 221 if(route.params.id!=0){
217 matchId.value = route.params.id 222 matchId.value = route.params.id
...@@ -230,6 +235,8 @@ function getMatch(id) { ...@@ -230,6 +235,8 @@ function getMatch(id) {
230 if(id!=0) 235 if(id!=0)
231 match.getMatchById({ id: id }).then(res => { 236 match.getMatchById({ id: id }).then(res => {
232 matchData.value = res.data 237 matchData.value = res.data
238 var today = dayjs().format('YYYY-MM-DD HH:mm:ss')
239 time.value = dayjs(res.data.signEndTime).diff(today, 'millisecond')
233 }) 240 })
234 } 241 }
235 function getGroupListByCptId(id) { 242 function getGroupListByCptId(id) {
...@@ -255,8 +262,15 @@ function choseSignType() { ...@@ -255,8 +262,15 @@ function choseSignType() {
255 // checkIsSign().then(() => { 262 // checkIsSign().then(() => {
256 if (matchData.value.signType == '0'||(matchData.value.signType == '2' && user.utype == '1')) { 263 if (matchData.value.signType == '0'||(matchData.value.signType == '2' && user.utype == '1')) {
257 // 个人报名 264 // 个人报名
265 // router.push({
266 // path: `${matchId.value}/singleSign`
267 // })
258 router.push({ 268 router.push({
259 path: `${matchId.value}/singleSign` 269 name: `chooseCoach`,
270 query: {
271 matchId: matchId.value,
272 signType: matchData.value.signType
273 }
260 }) 274 })
261 } 275 }
262 if(matchData.value.signType == '1'||(matchData.value.signType == '2' && user.utype == '2')){ 276 if(matchData.value.signType == '1'||(matchData.value.signType == '2' && user.utype == '2')){
......
...@@ -8,13 +8,13 @@ ...@@ -8,13 +8,13 @@
8 <img class="mauto w100" :src="fillImgUrl(matchData.coverUrl)" > 8 <img class="mauto w100" :src="fillImgUrl(matchData.coverUrl)" >
9 </el-col> 9 </el-col>
10 <el-col :lg="9" :md="12" :xl="10"> 10 <el-col :lg="9" :md="12" :xl="10">
11 <h3> 11 <h3 class="m0">
12 {{ matchData.name }} 12 {{ matchData.name }}
13 </h3> 13 </h3>
14 <p class="ppl"><label class="bm1">Playing Time:</label>{{matchData.beginTime?.slice(0,10)}} ~ {{ matchData.endTime?.slice(0,10) }}</p> 14 <p class="ppl"><label class="bm1">Playing Time:</label>{{matchData.beginTime?.slice(0,10)}} ~ {{ matchData.endTime?.slice(0,10) }}</p>
15 <p class="ppl"><label class="bm2">Event Level:</label>{{ matchData.level }}</p> 15 <p class="ppl"><label class="bm2">Event Level:</label>{{ matchData.level }}</p>
16 <p class="ppl"><label class="bm3">Location:</label>{{ matchData.address }}</p> 16 <p class="ppl" v-if="matchData.address"><label class="bm3">Location:</label>{{ matchData.address }}</p>
17 <p class="ppl"><label class="bm4">Registration Deadline:</label>{{ matchData.signEndTime?.slice(0,10) }}</p> 17 <p class="ppl" v-if="matchData.signEndTime"><label class="bm4">Registration Deadline:</label>{{ matchData.signEndTime?.slice(0,10) }}</p>
18 </el-col> 18 </el-col>
19 <el-col :lg="8" :md="12" :xl="8" v-if="matchData.type=='0'"> 19 <el-col :lg="8" :md="12" :xl="8" v-if="matchData.type=='0'">
20 <p class="countDownTitle"><span>Registration deadline countdown</span></p> 20 <p class="countDownTitle"><span>Registration deadline countdown</span></p>
...@@ -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="@/assets/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,11 +141,11 @@ ...@@ -141,11 +141,11 @@
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="@/assets/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="@/assets/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" v-html="matchData.signKnow">
...@@ -197,7 +197,7 @@ const router = useRouter() ...@@ -197,7 +197,7 @@ const router = useRouter()
197 const { proxy } = getCurrentInstance() 197 const { proxy } = getCurrentInstance()
198 import * as match from '@/apiPc/match' 198 import * as match from '@/apiPc/match'
199 import { toRefs } from '@vueuse/shared' 199 import { toRefs } from '@vueuse/shared'
200 import { ElMessage } from 'element-plus' 200 import {dayjs, ElMessage} from 'element-plus'
201 import useUserStore from "@/store/modules/user"; 201 import useUserStore from "@/store/modules/user";
202 const user = useUserStore().user || {} 202 const user = useUserStore().user || {}
203 const group = useUserStore().group || {} 203 const group = useUserStore().group || {}
...@@ -210,11 +210,16 @@ const data = reactive({ ...@@ -210,11 +210,16 @@ const data = reactive({
210 menu:[{name:'Event details',active:1},{name:'Event settings',active:0},{name:'Schedule',active:0},{name:'Participating teams',active:0}, 210 menu:[{name:'Event details',active:1},{name:'Event settings',active:0},{name:'Schedule',active:0},{name:'Participating teams',active:0},
211 {name:'Achievement',active:0},{name:'Notes',active:0}], 211 {name:'Achievement',active:0},{name:'Notes',active:0}],
212 menu1:[{name:'Station race',active:1},{name:'Event details',active:0},{name:'Schedule',active:0}], 212 menu1:[{name:'Station race',active:1},{name:'Event details',active:0},{name:'Schedule',active:0}],
213 signDoneGroupList: [] 213 signDoneGroupList: [],
214 time:''
214 }) 215 })
215 const {matchData,matchId,groupId,activeName2,popupGroupList,menu,menu1,signDoneGroupList} = toRefs(data) 216 const {matchData,matchId,groupId,activeName2,popupGroupList,menu,menu1,signDoneGroupList,time} = toRefs(data)
216 onMounted(() => { 217 onMounted(() => {
217 groupId.value = group.id 218 if(group){
219 groupId.value = group.id
220 } else {
221 groupId.value = 0
222 }
218 match.getMaList().then((res) => { 223 match.getMaList().then((res) => {
219 if(route.params.id!=0){ 224 if(route.params.id!=0){
220 matchId.value = route.params.id 225 matchId.value = route.params.id
...@@ -232,6 +237,8 @@ function getMatch(id) { ...@@ -232,6 +237,8 @@ function getMatch(id) {
232 if(id!=0) 237 if(id!=0)
233 match.getMatchById({ id: id }).then(res => { 238 match.getMatchById({ id: id }).then(res => {
234 matchData.value = res.data 239 matchData.value = res.data
240 var today = dayjs().format('YYYY-MM-DD HH:mm:ss')
241 time.value = dayjs(res.data.signEndTime).diff(today, 'millisecond')
235 }) 242 })
236 } 243 }
237 function getGroupListByCptId(id) { 244 function getGroupListByCptId(id) {
...@@ -257,9 +264,13 @@ function choseSignType() { ...@@ -257,9 +264,13 @@ function choseSignType() {
257 // checkIsSign().then(() => { 264 // checkIsSign().then(() => {
258 if (matchData.value.signType == '0'||(matchData.value.signType == '2' && user.utype == '1')) { 265 if (matchData.value.signType == '0'||(matchData.value.signType == '2' && user.utype == '1')) {
259 // 个人报名 266 // 个人报名
260 router.push({ 267 router.push({
261 path: `${route.params.id}/singleSign` 268 name: `chooseCoach`,
262 }) 269 query: {
270 matchId: matchId.value,
271 signType: matchData.value.signType
272 }
273 })
263 } 274 }
264 if(matchData.value.signType == '1'||(matchData.value.signType == '2' && user.utype == '2')){ 275 if(matchData.value.signType == '1'||(matchData.value.signType == '2' && user.utype == '2')){
265 router.push({ 276 router.push({
...@@ -289,6 +300,7 @@ function checkIsSign() { ...@@ -289,6 +300,7 @@ function checkIsSign() {
289 </script> 300 </script>
290 301
291 <style scoped lang="scss"> 302 <style scoped lang="scss">
303 .m0{margin: 0;}
292 .indexTitle{margin: 20px 0 12px; 304 .indexTitle{margin: 20px 0 12px;
293 h3{ 305 h3{
294 font-size: 20px; 306 font-size: 20px;
......
1 <template> 1 <template>
2 <div> 2 <div style="min-height: 100vh">
3 <div class="box"> 3 <div class="box" v-if="!errorBox">
4 <el-card :body-style="{ padding: '0px' }" class="mt20"> 4 <el-card :body-style="{ padding: '0px' }" class="mt20">
5 <div slot="header"> 5 <div slot="header">
6 <div class="bg-lineg">报名缴费清单</div> 6 <div class="bg-lineg">{{ language == 0 ? '报名缴费清单' : 'Registration Payment List' }}</div>
7 </div> 7 </div>
8 <div class="pd20"> 8 <match-info-row v-if="matchId" :match-id="matchId"/>
9 <div class="border-info"> 9 <div v-if="isLogin">
10 <el-row> 10 <group-info-row v-if="groupId" :group-id="groupId"/>
11 <el-col :lg="8"> 11 <coach-info-row v-if="groupId" :group-id="groupId" :match-id="matchId"/>
12 <div class="item"><label>赛事名称</label>{{ matchInfo.name }}</div> 12 <div class="pd20">
13 </el-col> 13 <div class="leftboderTT">{{ language == 0 ? '参赛人员保险费' : 'Participant Insurance Fee' }}</div>
14 <el-col :lg="8">
15 <div class="item"><label>赛事类型</label>{{ matchInfo.name }}</div>
16 </el-col>
17 <el-col :lg="8">
18 <div class="item"><label>赛事时间</label>{{ matchInfo.beginTime?.slice(0, 10) }}
19 {{ matchInfo.endTime?.slice(0, 10) }}
20 </div>
21 </el-col>
22 <el-col :lg="8">
23 <div class="item"><label>报名时间</label>{{ matchInfo.signBeginTime?.slice(0, 10) }}
24 {{ matchInfo.signEndTime?.slice(0, 10) }}
25 </div>
26 </el-col>
27 <el-col :lg="16">
28 <div class="item"><label>比赛地址</label>{{ matchInfo.address }}</div>
29 </el-col>
30 </el-row>
31
32 </div>
33 <div class="border-info gray mt20">
34 <el-row>
35 <el-col :lg="8">
36 <div class="item"><label>团队名称</label>{{ matchInfo.signFee }}</div>
37 <div class="item"><label>团队类型</label>{{ matchInfo.signFee }}</div>
38 </el-col>
39 <el-col :lg="8">
40 <div class="item"><label>负责人姓名</label>{{ matchInfo.signFee }}</div>
41 <div class="item"><label>参赛队名称</label>{{ matchInfo.signFee }}</div>
42
43 </el-col>
44 <el-col :lg="8">
45 <div class="item"><label>邮箱</label>{{ matchInfo.signFee }}</div>
46 <div class="item"><label>详细地址</label>{{ matchInfo.signFee }}</div>
47 </el-col>
48 </el-row>
49 </div>
50 <div class="border-info mt20">
51 <el-row>
52 <el-col :lg="8">
53 <div class="item"><label>教练</label>{{ matchInfo.signFee }}</div>
54 <div class="item"><label>翻译</label>{{ matchInfo.signFee }}</div>
55 </el-col>
56 <el-col :lg="8">
57 <div class="item"><label>领队</label>{{ matchInfo.signFee }}</div>
58 <div class="item"><label>官员</label>{{ matchInfo.signFee }}</div>
59 </el-col>
60 <el-col :lg="8">
61 <div class="item"><label>队医</label>{{ matchInfo.signFee }}</div>
62 <div class="item"><label>其他</label>{{ matchInfo.signFee }}</div>
63 </el-col>
64 </el-row>
65 </div>
66
67 <div class="mt20">
68 <div class="leftboderTT">参赛人员保险费</div>
69 <!-- 人员列表--> 14 <!-- 人员列表-->
70 <el-table :data="tableData" border style="width: 100%" class="mt20" :span-method="arraySpanMethod"> 15 <sign-info-table class="mt20" v-if="matchId" :match-id="matchId" :list="signInfoList" :hasAction="false"/>
71 <el-table-column label="所属国家"/>
72 <el-table-column prop="name" label="姓氏" width="180" align="center"></el-table-column>
73 <el-table-column label="名"/>
74 <el-table-column label="短名"/>
75 <el-table-column prop="sex" label="性别" width="180" align="center"></el-table-column>
76 <el-table-column prop="age" label="年龄" width="180" align="center"></el-table-column>
77 <el-table-column label="出生日期" align="center"/>
78 <el-table-column prop="phone" label="手机号码" width="180" align="center"></el-table-column>
79 <el-table-column label="邮箱"/>
80 <el-table-column label="证件类型" align="center"/>
81 <el-table-column label="证件号码"/>
82 <el-table-column label="报项" fixed="right">
83 <template #default="scope">
84 <ol>
85 <li v-for="item in scope.row.items" :key="item.id">{{ item.name }}</li>
86 </ol>
87 </template>
88 </el-table-column>
89 <el-table-column label="保险费" fixed="right" align="center">
90 <template #default="scope">
91 <span class="text-primary">¥{{ scope.row.signFee }}/人</span>
92 </template>
93 </el-table-column>
94 </el-table>
95 </div> 16 </div>
96 17 <div class="pd20">
97 <div class="mt20"> 18 <div class="leftboderTT">{{ language == 0 ? '参赛设项报名费' : 'Registration Fee for Event Entry' }}</div>
98 <div class="leftboderTT">参赛设项报名费</div> 19 <zu-table class="mt20" :list="zuTableList" :hasAction="false"/>
99 <!-- 报项列表-->
100 <el-table :data="tableData" border style="width: 100%" class="mt20">
101 <el-table-column label="组别代码" align="center"/>
102 <el-table-column label="组别" align="center"/>
103 <el-table-column label="舞种" align="center"/>
104 <el-table-column label="参赛说明"/>
105 <el-table-column label="参赛运动员"/>
106 <el-table-column label="补充信息"/>
107 <el-table-column label="报名费" align="center">
108 <template #default="scope">
109 <span class="text-primary">¥{{ scope.row.signFee }}/人</span>
110 </template>
111 </el-table-column>
112 </el-table>
113 </div> 20 </div>
114 </div> 21 </div>
115 22 <div v-else class="pd20 skeletonBox">
23 <el-skeleton :rows="8"/>
24 <el-button type="primary" class="w200px btn-lineG" round>登录后查看详细报项信息</el-button>
25 </div>
116 </el-card> 26 </el-card>
117 27
118 <el-card class="mt20 mb20"> 28 <el-card class="mt20 mb20">
119 <el-row class="result"> 29 <el-row class="result">
120 <el-col :lg="12"> 30 <el-col :lg="12">
121 <div class="text-success flex" v-if="approved"> 31 <div class="text-warning flex" v-if="form.auditStatus=='1'">
32 <img src="@/assets/img/ing.png">
33 报名信息审核中
34 </div>
35 <div class="text-success flex" v-if="form.auditStatus=='2'">
122 <img src="@/assets/img/r.png"> 36 <img src="@/assets/img/r.png">
123 报名信息审核通过</div> 37 报名信息审核通过
124 <div class="text-danger flex" v-else> 38 </div>
125 <img src="@/assets/img/w.png">报名信息审核拒绝</div> 39 <div class="text-danger flex" v-if="form.auditStatus=='3'">
40 <img src="@/assets/img/w.png">报名信息审核拒绝
41 </div>
126 </el-col> 42 </el-col>
127 <el-col :lg="12"> 43 <el-col :lg="12">
128 <div class="priceb">待支付金额:<span class="price">¥1840.00</span></div> 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=='1'">已支付金额:<span class="price">¥{{ Number(totalFee).toFixed(2) }}</span></div>
129 </el-col> 46 </el-col>
130 </el-row> 47 </el-row>
131 </el-card> 48 </el-card>
132 <el-card class="mb60" v-if="approved"> 49 <el-card class="mb60" v-if="form.auditStatus=='2'&&form.payStatus=='0'">
133 <div class="leftboderTT">选择支付方式</div> 50 <div class="leftboderTT">{{ language==0?'选择支付方式':'Choose payment method' }}</div>
134 <div class="mt20"> 51 <div class="mt20">
135 <el-radio-group v-model="payType"> 52 <el-radio-group v-model="payType">
136 <!-- <el-radio label="1" border>--> 53 <!-- <el-radio label="1" border>-->
137 <!-- <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>--> 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>-->
138 <!-- </el-radio>--> 55 <!-- </el-radio>-->
139 <el-radio label="2" border> 56 <el-radio label="2" border>
140 <svg t="1709002960407" class="icon" viewBox="0 0 3152 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="24747" width="94" height="40"><path d="M381.998922 630.960647c-4.416173 2.208086-8.832345 3.312129-14.352561 3.312129-12.144474 0-22.080863-7.17628-28.1531-17.66469l-2.208086-4.968194-87.771428-204.247978c-1.104043-2.208086-1.104043-4.416173-1.104043-6.624259 0-9.384367 6.624259-16.560647 15.456603-16.560647 3.312129 0 6.624259 1.104043 9.936388 3.312129l103.780054 78.387062c7.728302 4.968194 16.560647 8.280323 26.497035 8.280324 5.520216 0 11.040431-1.104043 16.560647-3.312129l486.330998-230.192992C819.752022 131.381132 676.226415 60.17035 513.380054 60.17035 248.409704 59.618329 32.017251 250.61779 32.017251 486.883019c0 128.069003 64.586523 244.545553 166.15849 322.932614 7.728302 6.072237 13.248518 16.560647 13.248518 27.601079 0 3.312129-1.104043 7.17628-2.208086 10.488409-7.728302 32.017251-20.976819 84.459299-20.97682 86.667386-1.104043 3.312129-2.208086 8.280323-2.208086 13.248517 0 9.384367 6.624259 16.560647 15.456604 16.560647 3.312129 0 6.624259-1.104043 8.832345-3.312129l104.884097-65.138545c7.728302-4.968194 16.560647-8.280323 25.392992-8.280323 4.416173 0 9.936388 1.104043 14.35256 2.208086 49.129919 15.456604 102.676011 23.736927 157.326146 23.736927 265.522372 0 481.362803-191.551482 481.362803-427.816711 0-71.210782-19.872776-139.109434-54.650135-198.175741L385.863073 628.752561l-3.864151 2.208086z" fill="#09BB07" p-id="24748"></path><path d="M1398.822642 381.998922c-9.384367 19.320755-20.424798 38.641509-32.017251 57.962264v263.866307h-31.465229V485.226954c-13.248518 18.216712-27.049057 34.225337-40.297574 48.025876-3.864151-7.17628-14.352561-23.736927-20.424798-30.361186 34.777358-33.673315 71.210782-82.803235 93.843666-131.933153l30.361186 11.040431z m-8.280324-91.63558c-22.632884 36.985445-59.066307 78.939084-91.635579 105.98814-4.416173-7.17628-13.248518-19.320755-19.320755-25.945013 29.809164-23.736927 62.378437-61.274394 78.939083-92.187601l32.017251 12.144474z m181.615094 289.811321c1.656065 7.728302 6.072237 19.320755 8.832345 24.84097-55.754178 37.537466-66.242588 46.369811-72.866846 54.650135-1.656065-7.728302-8.280323-22.080863-12.696496-28.705121 4.968194-3.312129 12.696496-10.48841 12.696496-28.705121v-54.098114h-60.17035v27.049057c0 38.641509-7.728302 91.083558-42.505661 128.069003-4.416173-7.17628-16.560647-19.320755-22.632884-23.184906 29.809164-31.465229 34.225337-72.866846 34.225337-105.436119v-54.098113h118.684636v82.251213l36.433423-22.632884z m123.100809-176.094879c-9.384367 73.970889-23.184906 136.349326-48.025876 187.687332 16.560647 36.433423 39.193531 66.242588 67.346631 83.355256-7.17628 6.072237-17.112668 18.216712-22.632884 27.049057-25.945013-18.216712-46.369811-45.265768-62.930459-78.939084-20.424798 32.017251-45.81779 59.066307-78.939083 81.699191-3.864151-6.624259-13.248518-19.872776-19.872776-25.392992 36.985445-22.632884 64.034501-52.99407 83.907277-89.979514-12.696496-34.777358-22.080863-73.418868-28.705121-115.372507-4.968194 11.040431-10.48841 22.632884-16.560647 31.465229-3.864151-4.416173-10.48841-13.248518-17.112668-20.424798v5.520216h-154.014017v-29.809165h154.014017v9.384367c24.84097-49.129919 37.537466-118.684636 44.713746-191.551483l31.465229 4.968195c-3.864151 31.465229-8.280323 61.274394-13.800539 90.531536h96.051752v29.809164h-14.904582z m-142.973585 22.632884h-145.181671v-110.404312h24.84097v82.251213h35.32938V278.770889h26.497035v119.78868h33.673316V316.308356h25.392992v110.404312z m55.202156-22.632884c-1.656065 6.624259-3.312129 12.696496-4.416172 18.768734 6.072237 46.369811 14.904582 91.083558 28.1531 130.277088 16.560647-43.057682 26.497035-91.63558 32.569272-149.045822h-56.3062zM1882.393531 289.259299c-10.48841 31.465229-24.288949 62.378437-39.193531 91.63558v324.036657h-32.017251V437.201078c-13.800539 22.632884-29.257143 42.50566-44.161725 60.170351-3.312129-7.728302-13.248518-24.288949-19.320754-32.017251 41.953639-45.265768 80.043127-114.820485 103.780053-184.927224l30.913208 8.832345z m288.707278 65.690566v29.257143h-294.779515v-29.257143h294.779515z m-267.730459 199.831806h235.713208v147.941779h-30.913208v-16.560647h-174.438814v18.216712h-30.361186v-149.597844z m231.297035-104.332075H1909.994609v-28.1531h224.672776v28.1531zM1909.994609 486.883019h224.672776v28.1531H1909.994609v-28.1531z m23.736927 96.603773V656.90566h174.438814v-73.418868h-174.438814z m81.699192-231.297035c-6.072237-16.560647-20.424798-43.057682-32.017251-61.826415l29.257143-12.144474c13.248518 19.320755 27.601078 44.161725 34.225337 60.722372l-31.465229 13.248517zM2586.221024 468.114286c-26.497035 63.48248-69.002695 111.508356-122.548787 147.941779 50.785984 25.945013 110.956334 43.609704 180.511051 52.442048-7.728302 8.280323-16.560647 23.184906-21.528841 33.673316-75.074933-11.592453-139.661456-32.569272-192.655525-64.034502-57.962264 32.017251-125.308895 52.99407-195.415634 66.794609-3.312129-9.384367-12.696496-25.392992-19.320754-33.121293 66.242588-10.48841 129.173046-28.1531 183.271159-55.202157-44.161725-32.017251-78.939084-72.866846-103.780054-123.65283l10.48841-3.864151h-49.12992v-34.225337h155.670081V383.654987h-176.6469v-34.225337h176.6469V278.770889h35.32938v70.658761h177.750944v34.225337h-177.750944v71.210781H2555.859838l7.176281-1.656064 23.184905 14.904582z m-255.033962 20.976819c23.184906 43.609704 56.858221 80.043127 100.467925 108.748248 44.161725-28.1531 80.043127-63.48248 104.332075-108.748248h-204.8zM2834.630728 292.571429c-13.800539 34.777358-30.361186 69.554717-49.129919 101.571967v308.580054h-34.225337V447.689488c-14.904582 20.976819-31.465229 40.297574-46.921833 56.306199-4.416173-7.728302-14.904582-25.945013-21.528841-34.225337 47.473854-45.265768 91.63558-115.924528 118.132614-188.239353l33.673316 11.040432z m270.490566 123.65283h-58.514286v240.12938c0 25.945013-7.728302 36.985445-24.84097 41.953639-18.216712 5.520216-49.129919 6.072237-99.915903 5.520215-1.656065-8.832345-8.280323-24.84097-13.248518-34.225337 39.193531 1.656065 77.283019 1.656065 88.32345 1.104043 10.48841-1.104043 14.352561-3.864151 14.352561-14.35256V416.224259h-187.687332v-34.225337h187.687332V283.739084h34.777359v97.707816h58.514285v34.777359z m-184.375202 178.854986c-13.800539-28.705121-43.609704-78.939084-67.346631-115.924528l29.809164-13.800539c24.288949 35.881402 55.202156 84.459299 70.106739 112.612399l-32.569272 17.112668z" fill="#595757" p-id="24749"></path></svg> 57 <svg t="1709002960407" class="icon" viewBox="0 0 3152 1024" version="1.1"
58 xmlns="http://www.w3.org/2000/svg" p-id="24747" width="94" height="40">
59 <path
60 d="M381.998922 630.960647c-4.416173 2.208086-8.832345 3.312129-14.352561 3.312129-12.144474 0-22.080863-7.17628-28.1531-17.66469l-2.208086-4.968194-87.771428-204.247978c-1.104043-2.208086-1.104043-4.416173-1.104043-6.624259 0-9.384367 6.624259-16.560647 15.456603-16.560647 3.312129 0 6.624259 1.104043 9.936388 3.312129l103.780054 78.387062c7.728302 4.968194 16.560647 8.280323 26.497035 8.280324 5.520216 0 11.040431-1.104043 16.560647-3.312129l486.330998-230.192992C819.752022 131.381132 676.226415 60.17035 513.380054 60.17035 248.409704 59.618329 32.017251 250.61779 32.017251 486.883019c0 128.069003 64.586523 244.545553 166.15849 322.932614 7.728302 6.072237 13.248518 16.560647 13.248518 27.601079 0 3.312129-1.104043 7.17628-2.208086 10.488409-7.728302 32.017251-20.976819 84.459299-20.97682 86.667386-1.104043 3.312129-2.208086 8.280323-2.208086 13.248517 0 9.384367 6.624259 16.560647 15.456604 16.560647 3.312129 0 6.624259-1.104043 8.832345-3.312129l104.884097-65.138545c7.728302-4.968194 16.560647-8.280323 25.392992-8.280323 4.416173 0 9.936388 1.104043 14.35256 2.208086 49.129919 15.456604 102.676011 23.736927 157.326146 23.736927 265.522372 0 481.362803-191.551482 481.362803-427.816711 0-71.210782-19.872776-139.109434-54.650135-198.175741L385.863073 628.752561l-3.864151 2.208086z"
61 fill="#09BB07" p-id="24748"></path>
62 <path
63 d="M1398.822642 381.998922c-9.384367 19.320755-20.424798 38.641509-32.017251 57.962264v263.866307h-31.465229V485.226954c-13.248518 18.216712-27.049057 34.225337-40.297574 48.025876-3.864151-7.17628-14.352561-23.736927-20.424798-30.361186 34.777358-33.673315 71.210782-82.803235 93.843666-131.933153l30.361186 11.040431z m-8.280324-91.63558c-22.632884 36.985445-59.066307 78.939084-91.635579 105.98814-4.416173-7.17628-13.248518-19.320755-19.320755-25.945013 29.809164-23.736927 62.378437-61.274394 78.939083-92.187601l32.017251 12.144474z m181.615094 289.811321c1.656065 7.728302 6.072237 19.320755 8.832345 24.84097-55.754178 37.537466-66.242588 46.369811-72.866846 54.650135-1.656065-7.728302-8.280323-22.080863-12.696496-28.705121 4.968194-3.312129 12.696496-10.48841 12.696496-28.705121v-54.098114h-60.17035v27.049057c0 38.641509-7.728302 91.083558-42.505661 128.069003-4.416173-7.17628-16.560647-19.320755-22.632884-23.184906 29.809164-31.465229 34.225337-72.866846 34.225337-105.436119v-54.098113h118.684636v82.251213l36.433423-22.632884z m123.100809-176.094879c-9.384367 73.970889-23.184906 136.349326-48.025876 187.687332 16.560647 36.433423 39.193531 66.242588 67.346631 83.355256-7.17628 6.072237-17.112668 18.216712-22.632884 27.049057-25.945013-18.216712-46.369811-45.265768-62.930459-78.939084-20.424798 32.017251-45.81779 59.066307-78.939083 81.699191-3.864151-6.624259-13.248518-19.872776-19.872776-25.392992 36.985445-22.632884 64.034501-52.99407 83.907277-89.979514-12.696496-34.777358-22.080863-73.418868-28.705121-115.372507-4.968194 11.040431-10.48841 22.632884-16.560647 31.465229-3.864151-4.416173-10.48841-13.248518-17.112668-20.424798v5.520216h-154.014017v-29.809165h154.014017v9.384367c24.84097-49.129919 37.537466-118.684636 44.713746-191.551483l31.465229 4.968195c-3.864151 31.465229-8.280323 61.274394-13.800539 90.531536h96.051752v29.809164h-14.904582z m-142.973585 22.632884h-145.181671v-110.404312h24.84097v82.251213h35.32938V278.770889h26.497035v119.78868h33.673316V316.308356h25.392992v110.404312z m55.202156-22.632884c-1.656065 6.624259-3.312129 12.696496-4.416172 18.768734 6.072237 46.369811 14.904582 91.083558 28.1531 130.277088 16.560647-43.057682 26.497035-91.63558 32.569272-149.045822h-56.3062zM1882.393531 289.259299c-10.48841 31.465229-24.288949 62.378437-39.193531 91.63558v324.036657h-32.017251V437.201078c-13.800539 22.632884-29.257143 42.50566-44.161725 60.170351-3.312129-7.728302-13.248518-24.288949-19.320754-32.017251 41.953639-45.265768 80.043127-114.820485 103.780053-184.927224l30.913208 8.832345z m288.707278 65.690566v29.257143h-294.779515v-29.257143h294.779515z m-267.730459 199.831806h235.713208v147.941779h-30.913208v-16.560647h-174.438814v18.216712h-30.361186v-149.597844z m231.297035-104.332075H1909.994609v-28.1531h224.672776v28.1531zM1909.994609 486.883019h224.672776v28.1531H1909.994609v-28.1531z m23.736927 96.603773V656.90566h174.438814v-73.418868h-174.438814z m81.699192-231.297035c-6.072237-16.560647-20.424798-43.057682-32.017251-61.826415l29.257143-12.144474c13.248518 19.320755 27.601078 44.161725 34.225337 60.722372l-31.465229 13.248517zM2586.221024 468.114286c-26.497035 63.48248-69.002695 111.508356-122.548787 147.941779 50.785984 25.945013 110.956334 43.609704 180.511051 52.442048-7.728302 8.280323-16.560647 23.184906-21.528841 33.673316-75.074933-11.592453-139.661456-32.569272-192.655525-64.034502-57.962264 32.017251-125.308895 52.99407-195.415634 66.794609-3.312129-9.384367-12.696496-25.392992-19.320754-33.121293 66.242588-10.48841 129.173046-28.1531 183.271159-55.202157-44.161725-32.017251-78.939084-72.866846-103.780054-123.65283l10.48841-3.864151h-49.12992v-34.225337h155.670081V383.654987h-176.6469v-34.225337h176.6469V278.770889h35.32938v70.658761h177.750944v34.225337h-177.750944v71.210781H2555.859838l7.176281-1.656064 23.184905 14.904582z m-255.033962 20.976819c23.184906 43.609704 56.858221 80.043127 100.467925 108.748248 44.161725-28.1531 80.043127-63.48248 104.332075-108.748248h-204.8zM2834.630728 292.571429c-13.800539 34.777358-30.361186 69.554717-49.129919 101.571967v308.580054h-34.225337V447.689488c-14.904582 20.976819-31.465229 40.297574-46.921833 56.306199-4.416173-7.728302-14.904582-25.945013-21.528841-34.225337 47.473854-45.265768 91.63558-115.924528 118.132614-188.239353l33.673316 11.040432z m270.490566 123.65283h-58.514286v240.12938c0 25.945013-7.728302 36.985445-24.84097 41.953639-18.216712 5.520216-49.129919 6.072237-99.915903 5.520215-1.656065-8.832345-8.280323-24.84097-13.248518-34.225337 39.193531 1.656065 77.283019 1.656065 88.32345 1.104043 10.48841-1.104043 14.352561-3.864151 14.352561-14.35256V416.224259h-187.687332v-34.225337h187.687332V283.739084h34.777359v97.707816h58.514285v34.777359z m-184.375202 178.854986c-13.800539-28.705121-43.609704-78.939084-67.346631-115.924528l29.809164-13.800539c24.288949 35.881402 55.202156 84.459299 70.106739 112.612399l-32.569272 17.112668z"
64 fill="#595757" p-id="24749"></path>
65 </svg>
141 </el-radio> 66 </el-radio>
142 <el-radio label="3" border> 67 <el-radio label="3" border>
143 <svg t="1709003441012" class="icon" viewBox="0 0 3527 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="32905" width="90" height="40"><path d="M316.703858 1.763556h392.789333c54.840889 0 88.917333 45.966222 76.145778 102.542222l-182.897778 807.452444c-12.885333 56.405333-67.783111 102.4-122.652444 102.4H87.327858c-54.755556 0-88.917333-45.994667-76.145778-102.4L194.136747 104.305778C206.936747 47.729778 261.80608 1.763556 316.703858 1.763556" fill="#E0002B" p-id="32906"></path><path d="M679.569636 1.763556H1120.515413c53.532444 0 29.383111 45.966222 16.782223 102.542222l-178.460445 807.452444c-12.515556 56.405333-8.618667 102.4-62.264889 102.4H455.626524c-53.617778 0-86.812444-45.994667-74.211555-102.4L559.903858 104.305778C572.59008 47.729778 626.037191 1.763556 679.569636 1.763556" fill="#004380" p-id="32907"></path><path d="M1106.748302 1.763556h388.096c54.243556 0 87.921778 45.966222 75.178667 102.542222l-180.622222 807.452444c-12.771556 56.405333-67.043556 102.4-121.287111 102.4H880.245191c-54.272 0-87.921778-45.994667-75.235555-102.4L985.688747 104.305778C998.31808 47.729778 1052.504747 1.763556 1106.776747 1.763556" fill="#007A8A" p-id="32908"></path><path d="M1135.192747 604.416l-42.410667 173.568h11.434667l-8.874667 35.84h-11.320889l-2.673778 11.064889h-40.391111l2.759111-11.064889h-81.92l8.192-33.166222h8.334223l42.979555-176.241778 8.590222-35.527111h41.130667l-4.323556 17.92s10.979556-9.756444 21.361778-13.084445c10.382222-3.413333 70.001778-4.636444 70.001778-4.636444l-8.817778 35.328h-14.051555z m-72.533334 0l-10.894222 44.373333s12.231111-6.855111 18.858667-9.102222c6.741333-2.218667 16.839111-2.958222 16.839111-2.958222l7.879111-32.312889H1062.687858z m-16.327111 66.304l-11.264 46.193778s12.515556-7.879111 19.143111-10.382222a188.586667 188.586667 0 0 1 17.038223-3.470223l7.964444-32.341333h-32.881778z m-26.168889 107.690667h32.768l9.386667-38.968889H1029.692302l-9.500444 38.968889zM1186.108302 568.888889h40.704l0.398222 19.541333c-0.284444 3.328 1.934222 4.864 6.684445 4.864h8.277333l-7.566222 32.284445h-21.987556c-19.000889 1.763556-26.225778-8.789333-25.742222-20.650667L1186.108302 568.888889z" fill="#FEFEFE" p-id="32909"></path><path d="M1174.844302 721.635556h-46.08l7.907556-31.516445h52.650666l7.480889-28.814222h-51.968L1153.71008 625.777778h144.583111l-8.988444 35.555555H1240.75008l-7.566222 28.785778h48.64l-8.106667 31.516445h-52.508444l-9.386667 13.255111h21.333333l5.233778 39.708444c0.568889 3.953778 0.568889 6.542222 1.678222 8.248889 1.080889 1.393778 7.480889 2.133333 11.207111 2.133333h6.456889l-9.841777 38.599111h-16.440889c-2.503111 0-6.286222-0.199111-11.52-0.455111-4.892444-0.540444-8.362667-3.982222-11.690667-5.973333a18.403556 18.403556 0 0 1-8.590222-13.425778l-5.12-39.623111-23.950222 38.997333c-7.566222 12.373333-17.834667 21.788444-35.185778 21.788445h-33.422222l8.760888-34.503111h12.8c3.697778 0 6.912-1.706667 9.329778-3.214222a15.189333 15.189333 0 0 0 7.082667-7.025778l34.872889-58.510222zM677.635413 625.777778H793.603413l-8.590222 36.380444h-46.336l-7.224889 31.061334h47.416889l-8.675555 37.546666h-47.36l-11.52 50.517334c-1.393778 5.546667 11.264 6.257778 15.843555 6.257777l23.665778-4.266666L741.29408 824.888889h-53.418667c-4.323556 0-7.509333-0.824889-12.145777-2.190222-4.494222-1.507556-6.485333-4.152889-8.476445-8.135111-1.934222-4.124444-4.977778-7.480889-2.901333-16.327112l15.36-66.816h-26.339556l8.760889-38.200888h26.396445l7.025777-31.061334h-26.311111L677.635413 625.777778zM770.648747 583.822222h50.972444l-9.244444 27.363556h-69.632l-7.537778 5.745778c-3.242667 2.787556-4.352 1.649778-8.590222 3.640888a55.779556 55.779556 0 0 1-22.897778 5.205334h-22.300445l8.988445-26.282667h6.712889c5.632 0 9.528889-0.455111 11.491555-1.536 2.218667-1.28 4.721778-4.039111 7.452445-8.533333l12.885333-20.536889h50.602667l-8.903111 14.933333zM837.606969 569.088h48.355555l-7.082666 24.120889s15.303111-12.117333 25.998222-16.469333c10.638222-3.868444 34.730667-7.395556 34.730667-7.395556L1017.887858 568.888889l-26.652445 87.950222c-4.522667 15.018667-9.756444 24.746667-13.027555 29.212445a33.792 33.792 0 0 1-13.198222 12.032 49.806222 49.806222 0 0 1-18.119112 6.058666c-5.176889 0.369778-13.084444 0.483556-24.092444 0.654222H847.363413l-21.191111 69.461334c-2.019556 6.940444-2.986667 10.24-1.649778 12.117333a8.732444 8.732444 0 0 0 7.168 3.470222l33.28-3.100444L853.564302 824.888889h-37.148444c-11.861333 0-20.48-0.284444-26.510222-0.739556-5.745778-0.483556-11.719111 0-15.786667-3.015111-3.413333-3.043556-8.704-7.054222-8.590222-11.093333 0.369778-3.754667 1.991111-10.040889 4.380444-18.659556l67.697778-222.293333z m102.684444 88.746667H861.016747l-4.892445 15.815111h68.608c8.078222-0.938667 9.756444 0.199111 10.467556-0.170667l5.034666-15.644444z m-74.951111-14.279111s15.502222-14.023111 42.040889-18.545778c6.030222-1.137778 43.662222-0.739556 43.662222-0.739556l5.745778-18.830222H876.945636l-11.576889 38.115556z" fill="#FEFEFE" p-id="32910"></path><path d="M961.795413 711.111111l-4.494222 21.219556c-1.877333 6.656-3.555556 11.576889-8.561778 15.872-5.290667 4.465778-11.491556 9.159111-25.969777 9.159111l-26.823112 1.137778-0.199111 23.950222c-0.284444 6.741333 1.536 6.087111 2.588445 7.168 1.251556 1.223111 2.360889 1.678222 3.498666 2.161778l8.533334-0.483556 25.571555-1.422222L925.301191 824.888889h-29.383111c-20.536889 0-35.811556-0.483556-40.760889-4.408889-4.949333-3.128889-5.603556-7.025778-5.518222-13.767111l1.877333-93.496889h46.876445l-0.654223 19.114667h11.264c3.868444 0 6.485333-0.369778 8.078223-1.422223a8.448 8.448 0 0 0 3.128889-4.835555l4.721777-14.961778h36.835556zM368.529636 256c-1.564444 7.509333-30.976 142.933333-31.061334 143.075556-6.314667 27.392-10.922667 46.933333-26.567111 59.534222a47.388444 47.388444 0 0 1-31.288889 10.894222c-19.285333 0-30.549333-9.585778-32.426666-27.761778l-0.398223-6.257778s5.888-36.693333 5.888-36.892444c0 0 30.862222-123.448889 36.408889-139.776 0.284444-0.910222 0.341333-1.422222 0.426667-1.848889-60.046222 0.540444-70.712889 0-71.424-0.967111-0.398222 1.336889-1.905778 8.988444-1.905778 8.988444l-31.516444 139.093334-2.673778 11.832889-5.262222 38.599111c0 11.434667 2.275556 20.764444 6.741333 28.672C197.834524 508.245333 238.76608 512 261.919858 512c29.866667 0 57.856-6.314667 76.771555-17.891556 32.824889-19.370667 41.415111-49.664 49.095111-76.600888l3.527112-13.795556s31.800889-128.199111 37.205333-144.896c0.199111-0.910222 0.284444-1.422222 0.568889-1.848889-43.576889 0.455111-56.433778 0-60.558222-0.967111M548.042524 482.645333a453.518222 453.518222 0 0 0-45.397333 0.910223l-0.796444-1.763556c1.820444-8.846222 3.811556-17.521778 5.603555-26.453333l2.588445-12.060445c3.896889-18.716444 7.68-40.476444 8.106666-47.160889 0.426667-3.982222 1.706667-13.937778-8.732444-13.937777-4.352 0-8.903111 2.304-13.539556 4.693333-2.56 9.955556-7.651556 37.973333-10.097777 50.716444-5.205333 26.88-5.546667 29.980444-7.879112 43.264l-1.507555 1.792c-18.545778-0.341333-25.031111-0.341333-46.364445 0.910223l-0.938666-2.019556c3.527111-15.928889 7.111111-32.056889 10.496-48.042667 8.96-43.349333 11.093333-59.904 13.539555-81.948444l1.706667-1.28c20.849778-3.242667 25.884444-3.896889 48.440889-8.931556l1.905778 2.332445-3.470223 13.795555c3.84-2.503111 7.480889-5.034667 11.320889-7.196444 10.638222-5.745778 22.471111-7.452444 28.956445-7.452445 9.927111 0 20.736 3.015111 25.230222 15.587556 4.266667 11.207111 1.422222 24.974222-4.181333 52.110222l-2.901334 13.880889a1275.761778 1275.761778 0 0 0-9.955555 56.462222l-2.133334 1.792zM607.206969 482.645333c-8.362667-0.085333-13.767111-0.341333-18.972445-0.085333-5.205333 0.085333-10.296889 0.455111-18.062222 0.995556l-0.398222-0.995556-0.512-1.052444c2.133333-11.605333 3.271111-15.616 4.323556-19.740445 1.080889-4.152889 2.048-8.248889 3.925333-20.024889 2.446222-15.36 3.953778-26.083556 4.920889-35.498666 1.137778-9.102222 1.735111-16.867556 2.616889-25.827556l0.568889-0.682667 0.682666-0.881777c8.305778-1.678222 13.568-2.816 18.972445-4.067556 5.461333-1.024 10.922667-2.616889 19.512889-5.006222l0.312888 1.052444 0.256 1.137778c-1.592889 9.500444-3.242667 19.000889-4.807111 28.643556-1.507556 9.671111-3.128889 19.143111-4.608 28.643555-3.100444 20.195556-4.352 27.761778-5.091555 33.223111-0.711111 5.091556-0.910222 7.907556-2.104889 18.346667l-0.796445 0.938667-0.739555 0.853333zM790.474524 412.216889c6.684444-30.492444 1.450667-44.743111-5.12-53.418667-9.955556-13.226667-27.562667-17.464889-45.795555-17.464889-10.979556 0-37.148444 1.137778-57.571556 20.650667-14.677333 14.108444-21.447111 33.223111-25.543111 51.541333-4.124444 18.688-8.874667 52.309333 20.935111 64.796445 9.216 4.096 22.471111 5.233778 31.004445 5.233778 21.845333 0 44.259556-6.257778 61.098666-24.746667 12.970667-15.047111 18.887111-37.376 20.963556-46.592m-50.119111-2.190222c-0.967111 5.176889-5.319111 24.291556-11.178667 32.426666-4.096 6.030222-8.931556 9.671111-14.307555 9.671111-1.592889 0-11.093333 0-11.235556-14.620444-0.056889-7.224889 1.336889-14.592 3.100445-22.584889 5.034667-23.096889 10.951111-42.496 26.140444-42.496 11.889778 0 12.743111 14.449778 7.480889 37.603556M1249.653191 482.787556c-15.644444-0.170667-20.138667-0.170667-34.616889 0.768l-0.881778-1.820445c3.896889-23.011556 7.822222-45.937778 11.320889-69.205333 4.551111-30.179556 5.575111-43.008 7.054223-60.672l1.166222-1.479111c15.559111-3.413333 19.911111-4.408889 36.067555-9.045334l0.455111 2.076445c-2.958222 19.000889-5.859556 37.859556-8.760888 56.917333-5.944889 39.793778-8.106667 59.989333-10.382223 80.782222l-1.422222 1.706667z" fill="#FEFEFE" p-id="32911"></path><path d="M1231.078969 400.497778c-5.916444-15.644444-2.275556-47.217778-26.140445-57.827556-9.187556-4.181333-30.72 1.194667-49.265777 20.650667-13.056 13.880889-19.313778 32.938667-22.840889 51.2-3.754667 18.403556-8.049778 51.996444 18.631111 64 8.504889 4.152889 16.128 5.404444 23.893333 4.949333 26.794667-1.649778 47.217778-48.384 62.378667-66.844444 11.662222-14.620444-2.816-6.144-6.656-16.128z m-18.887111 10.439111c-1.052444 4.949333-5.006222 24.234667-10.268445 32.312889-3.527111 5.745778-11.889778 9.301333-16.725333 9.301333-1.365333 0-9.784889 0-10.097778-14.336-0.056889-7.139556 1.223111-14.506667 2.816-22.584889 4.579556-22.670222 9.870222-41.870222 23.552-41.870222 10.723556 0 15.303111 13.966222 10.723556 37.176889M912.472747 482.645333a452.408889 452.408889 0 0 0-45.368889 0.910223l-0.796445-1.763556c1.820444-8.846222 3.868444-17.521778 5.745778-26.453333l2.446222-12.060445c3.982222-18.716444 7.736889-40.476444 8.135111-47.160889 0.398222-3.982222 1.649778-13.937778-8.675555-13.937777-4.494222 0-8.988444 2.304-13.653333 4.693333-2.446222 9.955556-7.68 37.973333-10.183112 50.716444-5.063111 26.88-5.404444 29.980444-7.708444 43.264l-1.592889 1.792a469.788444 469.788444 0 0 0-46.307555 0.910223l-0.938667-2.019556c3.555556-15.928889 7.111111-32.056889 10.524444-48.042667 8.931556-43.349333 11.008-59.904 13.511111-81.948444l1.592889-1.28c20.821333-3.242667 25.969778-3.896889 48.526223-8.931556l1.706666 2.332445-3.214222 13.795555c3.697778-2.503111 7.509333-5.034667 11.292444-7.196444 10.552889-5.745778 22.471111-7.452444 28.956445-7.452445 9.784889 0 20.650667 3.015111 25.315555 15.587556 4.181333 11.207111 1.308444 24.974222-4.352 52.110222l-2.844444 13.880889a992.568889 992.568889 0 0 0-9.955556 56.462222l-2.161777 1.792zM1102.538524 335.815111c-3.043556 16.952889-12.032 31.175111-23.580444 38.087111-9.500444 5.831111-21.134222 6.314667-33.137778 6.314667h-7.765333l0.568889-3.811556 14.250666-75.918222 0.455112-3.896889 0.199111-2.986666 5.717333 0.739555 30.208 3.157333c11.662222 5.518222 16.440889 19.740444 13.084444 38.314667m-18.773333-79.445333l-14.478222 0.142222c-37.546667 0.568889-52.622222 0.426667-58.794667-0.512l-1.507555 9.301333-13.454223 76.458667-33.735111 169.955556c32.796444-0.483556 46.250667-0.483556 51.911111 0.284444 1.28-7.651556 8.874667-52.992 8.96-52.992 0 0 6.456889-33.251556 6.855112-34.474667 0 0 2.048-3.470222 4.067555-4.835555h3.015111c28.273778 0 60.216889 0 85.248-22.528 17.038222-15.473778 28.672-38.286222 33.848889-66.048 1.393778-6.798222 2.360889-14.876444 2.360889-22.983111 0-10.638222-1.735111-21.134222-6.769778-29.354667-12.771556-21.845333-38.200889-22.272-67.527111-22.414222M1438.438969 315.022222L1436.447858 312.888889c-25.429333 4.835556-30.037333 5.603556-53.447111 8.561778l-1.706667 1.621333c-0.085333 0.256-0.142222 0.654222-0.284444 1.024l-0.056889-0.369778c-17.436444 37.660444-16.924444 29.525333-31.089778 59.164445-0.085333-1.336889-0.085333-2.161778-0.142222-3.612445l-3.555556-64.284444-2.247111-2.104889c-26.652444 4.835556-27.306667 5.603556-51.911111 8.561778l-1.905778 1.621333c-0.284444 0.768-0.284444 1.592889-0.426667 2.531556l0.142223 0.312888c3.072 14.762667 2.332444 11.463111 5.404444 34.730667 1.479111 11.434667 3.384889 22.926222 4.835556 34.190222 2.417778 18.887111 3.783111 28.16 6.741333 57.002667-16.64 25.713778-20.565333 35.470222-36.579556 58.026667l1.024 2.133333c24.007111-0.853333 29.582222-0.853333 47.388445-0.853333l3.868444-4.124445c13.454222-27.192889 115.939556-192 115.939556-192M615.398969 363.832889c11.832889-6.4 13.312-15.217778 3.384889-19.797333-10.069333-4.636444-27.733333-3.128889-39.623111 3.242666-11.861333 6.257778-13.226667 15.160889-3.185778 19.854222 9.898667 4.494222 27.648 3.157333 39.424-3.299555M1298.264747 568.888889l-12.686223 35.555555c-3.982222 12.174222-11.434667 21.248-23.239111 21.333334l-20.167111-0.568889 5.888-32h3.953778c2.048 0 3.527111-0.170667 4.664889-1.109333 1.024-0.568889 1.763556-1.877333 2.588444-3.84l7.480889-19.370667h31.516445z" fill="#FEFEFE" p-id="32912"></path><path d="M3499.95008 747.576889c-5.148444-1.706667-10.524444-2.56-15.957333-2.503111a40.334222 40.334222 0 0 0-35.413334 30.151111v91.619555h-39.879111v-153.6h32.910222l2.730667 27.164445h0.995556a53.134222 53.134222 0 0 1 43.633777-31.004445c6.257778-0.170667 12.430222 0.938667 18.204445 3.328l-7.224889 34.844445z m-59.591111-179.114667h-63.800889a1286.144 1286.144 0 0 1-42.666667-204.231111h-14.193777v164.067556a16.184889 16.184889 0 0 0 15.957333 16.298666h17.720889v23.438223h-69.319111a27.676444 27.676444 0 0 1-28.16-27.619556v-176.184889h-27.676445v-23.836444h27.676445v-169.528889h63.800889v169.528889h121.656888v23.893333h-43.121777a1378.104889 1378.104889 0 0 0 42.126222 204.174222z m-104.675556-243.2a742.542222 742.542222 0 0 0 35.640889-143.530666h63.317334a835.811556 835.811556 0 0 1-34.673778 143.530666h-64.284445z m-106.467555 353.991111a50.062222 50.062222 0 0 0-16.213334-3.271111c-11.946667 0-18.688 7.111111-18.688 24.149334v13.169777h28.928v31.800889H3194.314524v121.770667h-40.135111v-121.742222h-20.679111v-29.952l20.679111-1.621334v-12.629333a49.863111 49.863111 0 0 1 53.361778-56.775111c9.955556 0 19.854222 1.848889 29.155556 5.461333l-7.480889 29.639111z m-59.335111-461.169777a12.458667 12.458667 0 0 0-13.454223-11.690667h-54.613333a11.946667 11.946667 0 0 0-12.686222 11.662222v217.656889h-49.379556v-225.564444a28.956444 28.956444 0 0 1 30.435556-28.046223h117.902222a29.098667 29.098667 0 0 1 30.919111 28.046223v225.564444h-49.123555V218.083556z m42.638222 351.488h-54.840889l-19.456-68.209778c-8.078222 23.893333-18.858667 46.791111-32.142222 68.209778h-62.577778a323.271111 323.271111 0 0 0 57.827556-195.413334V241.976889h55.580444v115.541333a583.964444 583.964444 0 0 1-6.968889 93.297778h28.444445l34.133333 118.727111z m-98.474667 158.663111l-17.948444 24.405333a59.192889 59.192889 0 0 0-33.393778-13.169778 16.327111 16.327111 0 0 0-20.195556 14.791111c0 11.264 15.189333 15.36 31.146667 21.418667 20.451556 7.68 42.894222 17.806222 42.894222 46.336 0 26.88-21.191111 48.554667-61.098666 48.554667a97.223111 97.223111 0 0 1-58.595556-21.674667l18.488889-25.230222c11.377778 10.097778 25.884444 15.985778 41.102222 16.725333 15.473778 0 22.186667-6.599111 22.186667-16.213333 0-11.491556-15.928889-16.696889-31.886222-23.011556a52.053333 52.053333 0 0 1-42.126223-44.686222 50.005333 50.005333 0 0 1 57.088-47.160889 85.589333 85.589333 0 0 1 52.337778 19.057778v-0.142222z m-249.031111-338.631111h106.183111a14.791111 14.791111 0 0 1 12.970667 6.712888c3.356444 4.266667 4.039111 10.040889 1.735111 14.961778l-75.292444 127.658667 16.952888 30.151111h-64.568888L2796.234524 449.422222h64.568889l16.952889 31.004445 41.870222-66.986667h-104.96a14.961778 14.961778 0 0 1-12.231111-6.286222 14.421333 14.421333 0 0 1-3.214222-12.970667l10.979556-51.854222h-41.159111v-24.32h46.648888l15.928889-73.671111H2781.016747v-24.263111h55.836444l10.979556-49.379556h64.568889l-10.979556 49.379556h80.014222v24.263111h-84.992l-16.213333 73.671111h112.440889v24.32h-117.418667l-10.24 47.274667z m-131.896889 179.086222H2670.083413v-74.922667l-78.279111 5.859556v-23.836445l78.279111-5.888v-61.098666h-59.818666a15.644444 15.644444 0 0 1-11.946667-4.977778 16.241778 16.241778 0 0 1-3.527111-12.970667l19.968-152.32h-22.698667v-23.893333h25.685334l5.973333-43.776h59.079111l-5.717333 43.918222h90.225777v23.864889h-93.724444l-18.204444 137.671111a7.480889 7.480889 0 0 0 1.991111 5.888 7.082667 7.082667 0 0 0 5.973333 2.929778h10.24V278.812444h59.562667v106.439112h29.667555v23.836444h-29.667555v56.092444l34.161777-2.503111v23.864889l-34.133333 2.503111v79.900445-0.284445z m-98.702222 140.629333c6.229333-0.199111 12.430222 0.910222 18.204444 3.271111l-7.224888 34.901334a47.616 47.616 0 0 0-15.729778-2.474667 40.106667 40.106667 0 0 0-35.384889 30.151111v91.591111h-40.135111v-153.571555h32.910222l2.730667 27.164444h0.995555a53.788444 53.788444 0 0 1 43.633778-30.890667v-0.142222z m-149.589333-168.618667a27.875556 27.875556 0 0 1-27.904 27.591112h-99.214223v-23.836445h46.848a15.815111 15.815111 0 0 0 15.957334-15.928889V333.653333h-128.853334v-23.808h252.501334v23.808h-59.335111v207.189334-0.142223z m-182.215111-349.013333h230.115555v24.064h-230.115555v-24.064z m-64.056889 151.523556h18.944v225.564444h-64.853334V398.506667h-48.839111a818.346667 818.346667 0 0 0 43.377778-90.823111h-43.377778a664.974222 664.974222 0 0 0 57.344-136.448h64.824889c-6.741333 26.026667-15.502222 51.484444-26.168889 76.174222h32.881778a569.685333 569.685333 0 0 1-34.133333 95.914666v-0.085333zM2169.233636 866.702222h-40.391112v-90.794666c0-23.580444-6.485333-32.085333-21.674666-32.085334a44.430222 44.430222 0 0 0-32.142222 17.294222v105.585778h-39.907556v-153.6h32.910222l2.730667 20.309334h0.995555a70.997333 70.997333 0 0 1 49.863112-24.120889c33.166222 0 47.616 23.04 47.616 61.696v95.715555z m-123.648-451.640889h49.863111a451.982222 451.982222 0 0 1-34.133334 87.893334c9.955556 21.390222 20.679111 42.752 32.398223 64.056889h-68.835556a747.861333 747.861333 0 0 1-72.760889-179.086223h-21.191111v140.202667c0.483556 8.96 7.964444 15.928889 16.952889 15.872l19.427555 0.426667v23.836444h-75.52a29.383111 29.383111 0 0 1-30.663111-27.619555V210.204444a29.098667 29.098667 0 0 1 30.663111-27.619555h166.769778a29.098667 29.098667 0 0 1 30.663111 27.619555v150.272a29.383111 29.383111 0 0 1-30.663111 27.619556h-38.4c4.750222 18.830222 10.723556 37.205333 16.952889 55.608889 3.584-9.272889 6.428444-18.801778 8.476445-28.529778v-0.113778z m-43.861334-209.635555H1947.878969a16.554667 16.554667 0 0 0-16.952889 15.900444v54.840889h88.462222V222.208a17.578667 17.578667 0 0 0-17.664-16.611556v-0.170666z m17.692445 94.606222h-88.490667v64.426667h70.798222a16.896 16.896 0 0 0 17.692445-15.872v-48.554667zM1761.909191 866.702222H1689.603413v-202.979555h67.072c41.614222 0 73.528889 12.088889 73.528889 49.863111a46.108444 46.108444 0 0 1-27.676444 43.889778v1.706666c23.04 4.039111 39.424 24.661333 38.144 47.985778 0 40.760889-33.905778 59.733333-78.791111 59.733333v-0.199111z m-7.736889-172.003555h-23.921778v51.541333h23.409778c25.941333 0 37.148444-10.410667 37.148445-26.595556 0-17.578667-12.231111-24.746667-36.636445-24.746666v-0.199111z m4.238222 81.720889h-28.16v58.965333h28.16c27.676444 0 42.638222-9.984 42.638223-31.004445 0-19.512889-14.734222-27.733333-42.666667-27.733333v-0.227555z m-13.454222-215.864889a28.586667 28.586667 0 0 1-8.476444-19.939556v-89.543111h-37.148445v-23.864889h37.148445v-76.856889h-37.148445v-24.291555h138.097778v24.291555H1802.527858v76.999111h34.901333v23.893334H1802.527858v77.368889a16.184889 16.184889 0 0 0 16.469333 16.327111h18.432v23.836444h-72.277333a28.785778 28.785778 0 0 1-20.195556-7.992889v-0.227555z m17.436445-247.608889h-66.048c14.506667-46.307556 24.092444-93.980444 28.672-142.279111h65.536c-1.991111 19.456-4.977778 38.855111-8.476445 58.168889h55.352889v23.836444h-59.818667a696.32 696.32 0 0 1-15.217777 60.501333v-0.227555z m191.203555 455.480889a23.921778 23.921778 0 0 0-25.912889-26.624 86.442667 86.442667 0 0 0-42.382222 14.535111l-14.478222-26.595556a121.742222 121.742222 0 0 1 64.085333-20.280889c38.883556 0 59.079111 23.324444 59.079111 67.726223v89.742222h-32.910222l-2.986667-16.497778h-0.995555a72.021333 72.021333 0 0 1-46.364445 20.337778 43.52 43.52 0 0 1-45.368888-45.539556c0-32.967111 26.652444-50.232889 88.234666-56.803555z m-29.667555 70.741333a40.675556 40.675556 0 0 0 29.667555-15.075556v-31.004444c-37.376 4.977778-49.863111 15.075556-49.863111 28.785778a17.152 17.152 0 0 0 20.195556 17.294222z m326.087111-59.505778h1.223111l53.105778-66.360889h43.889777l-53.105777 62.776889 58.083555 90.794667h-43.633778l-37.376-63.630222-22.186666 25.230222v38.4h-39.139556v-218.88h39.139556v131.669333z m201.415111-107.52h33.649778v41.159111h37.888v31.800889h-37.888v67.982222a20.707556 20.707556 0 0 0 20.707555 25.799112c5.205333-0.227556 10.353778-1.336889 15.189334-3.299556l6.485333 29.383111c-10.325333 3.697778-21.191111 5.632-32.142222 5.745778-36.664889 0-50.631111-23.04-50.631111-57.6v-67.982222h-21.674667v-29.952l23.694222-1.905778 4.721778-41.130667z m302.876444 96.284445a23.921778 23.921778 0 0 0-25.912889-26.624 86.442667 86.442667 0 0 0-42.382222 14.535111l-14.449778-26.595556a121.742222 121.742222 0 0 1 64.056889-20.280889c38.883556 0 59.079111 23.324444 59.079111 67.726223v89.742222h-32.910222l-2.986666-16.497778h-0.995556a72.021333 72.021333 0 0 1-46.364444 20.337778 43.52 43.52 0 0 1-45.368889-45.539556c0-32.967111 26.424889-50.232889 88.234666-56.803555z m-29.667555 70.741333a40.675556 40.675556 0 0 0 29.667555-15.075556v-31.004444c-37.376 4.977778-49.834667 15.075556-49.834666 28.785778a17.152 17.152 0 0 0 20.195555 17.294222z m146.858666-105.585778h0.995556a70.997333 70.997333 0 0 1 49.834667-24.120889c33.166222 0 47.616 23.04 47.616 61.696v95.715556h-40.391111v-90.794667c0-23.580444-6.456889-32.056889-21.674667-32.056889a44.430222 44.430222 0 0 0-32.142222 17.265778v105.585778h-39.907556v-153.6h32.910222l2.759111 20.309333z m439.751112-24.120889c42.382222 0 64.284444 31.004444 64.284444 73.472 0.056889 6.200889-0.597333 12.373333-1.991111 18.375111h-94.72a40.334222 40.334222 0 0 0 42.638222 38.4 63.203556 63.203556 0 0 0 34.417778-10.695111l13.681778 24.689778a96.113778 96.113778 0 0 1-53.589334 17.009778 74.410667 74.410667 0 0 1-76.288-80.355556 75.207111 75.207111 0 0 1 71.537778-80.896z m29.639111 65.251556a28.757333 28.757333 0 0 0-29.155556-33.991111 34.56 34.56 0 0 0-33.393778 33.991111h62.577778z" fill="#4D4D4D" p-id="32913"></path></svg> 68 <svg t="1709003441012" class="icon" viewBox="0 0 3527 1024" version="1.1"
69 xmlns="http://www.w3.org/2000/svg" p-id="32905" width="90" height="40">
70 <path
71 d="M316.703858 1.763556h392.789333c54.840889 0 88.917333 45.966222 76.145778 102.542222l-182.897778 807.452444c-12.885333 56.405333-67.783111 102.4-122.652444 102.4H87.327858c-54.755556 0-88.917333-45.994667-76.145778-102.4L194.136747 104.305778C206.936747 47.729778 261.80608 1.763556 316.703858 1.763556"
72 fill="#E0002B" p-id="32906"></path>
73 <path
74 d="M679.569636 1.763556H1120.515413c53.532444 0 29.383111 45.966222 16.782223 102.542222l-178.460445 807.452444c-12.515556 56.405333-8.618667 102.4-62.264889 102.4H455.626524c-53.617778 0-86.812444-45.994667-74.211555-102.4L559.903858 104.305778C572.59008 47.729778 626.037191 1.763556 679.569636 1.763556"
75 fill="#004380" p-id="32907"></path>
76 <path
77 d="M1106.748302 1.763556h388.096c54.243556 0 87.921778 45.966222 75.178667 102.542222l-180.622222 807.452444c-12.771556 56.405333-67.043556 102.4-121.287111 102.4H880.245191c-54.272 0-87.921778-45.994667-75.235555-102.4L985.688747 104.305778C998.31808 47.729778 1052.504747 1.763556 1106.776747 1.763556"
78 fill="#007A8A" p-id="32908"></path>
79 <path
80 d="M1135.192747 604.416l-42.410667 173.568h11.434667l-8.874667 35.84h-11.320889l-2.673778 11.064889h-40.391111l2.759111-11.064889h-81.92l8.192-33.166222h8.334223l42.979555-176.241778 8.590222-35.527111h41.130667l-4.323556 17.92s10.979556-9.756444 21.361778-13.084445c10.382222-3.413333 70.001778-4.636444 70.001778-4.636444l-8.817778 35.328h-14.051555z m-72.533334 0l-10.894222 44.373333s12.231111-6.855111 18.858667-9.102222c6.741333-2.218667 16.839111-2.958222 16.839111-2.958222l7.879111-32.312889H1062.687858z m-16.327111 66.304l-11.264 46.193778s12.515556-7.879111 19.143111-10.382222a188.586667 188.586667 0 0 1 17.038223-3.470223l7.964444-32.341333h-32.881778z m-26.168889 107.690667h32.768l9.386667-38.968889H1029.692302l-9.500444 38.968889zM1186.108302 568.888889h40.704l0.398222 19.541333c-0.284444 3.328 1.934222 4.864 6.684445 4.864h8.277333l-7.566222 32.284445h-21.987556c-19.000889 1.763556-26.225778-8.789333-25.742222-20.650667L1186.108302 568.888889z"
81 fill="#FEFEFE" p-id="32909"></path>
82 <path
83 d="M1174.844302 721.635556h-46.08l7.907556-31.516445h52.650666l7.480889-28.814222h-51.968L1153.71008 625.777778h144.583111l-8.988444 35.555555H1240.75008l-7.566222 28.785778h48.64l-8.106667 31.516445h-52.508444l-9.386667 13.255111h21.333333l5.233778 39.708444c0.568889 3.953778 0.568889 6.542222 1.678222 8.248889 1.080889 1.393778 7.480889 2.133333 11.207111 2.133333h6.456889l-9.841777 38.599111h-16.440889c-2.503111 0-6.286222-0.199111-11.52-0.455111-4.892444-0.540444-8.362667-3.982222-11.690667-5.973333a18.403556 18.403556 0 0 1-8.590222-13.425778l-5.12-39.623111-23.950222 38.997333c-7.566222 12.373333-17.834667 21.788444-35.185778 21.788445h-33.422222l8.760888-34.503111h12.8c3.697778 0 6.912-1.706667 9.329778-3.214222a15.189333 15.189333 0 0 0 7.082667-7.025778l34.872889-58.510222zM677.635413 625.777778H793.603413l-8.590222 36.380444h-46.336l-7.224889 31.061334h47.416889l-8.675555 37.546666h-47.36l-11.52 50.517334c-1.393778 5.546667 11.264 6.257778 15.843555 6.257777l23.665778-4.266666L741.29408 824.888889h-53.418667c-4.323556 0-7.509333-0.824889-12.145777-2.190222-4.494222-1.507556-6.485333-4.152889-8.476445-8.135111-1.934222-4.124444-4.977778-7.480889-2.901333-16.327112l15.36-66.816h-26.339556l8.760889-38.200888h26.396445l7.025777-31.061334h-26.311111L677.635413 625.777778zM770.648747 583.822222h50.972444l-9.244444 27.363556h-69.632l-7.537778 5.745778c-3.242667 2.787556-4.352 1.649778-8.590222 3.640888a55.779556 55.779556 0 0 1-22.897778 5.205334h-22.300445l8.988445-26.282667h6.712889c5.632 0 9.528889-0.455111 11.491555-1.536 2.218667-1.28 4.721778-4.039111 7.452445-8.533333l12.885333-20.536889h50.602667l-8.903111 14.933333zM837.606969 569.088h48.355555l-7.082666 24.120889s15.303111-12.117333 25.998222-16.469333c10.638222-3.868444 34.730667-7.395556 34.730667-7.395556L1017.887858 568.888889l-26.652445 87.950222c-4.522667 15.018667-9.756444 24.746667-13.027555 29.212445a33.792 33.792 0 0 1-13.198222 12.032 49.806222 49.806222 0 0 1-18.119112 6.058666c-5.176889 0.369778-13.084444 0.483556-24.092444 0.654222H847.363413l-21.191111 69.461334c-2.019556 6.940444-2.986667 10.24-1.649778 12.117333a8.732444 8.732444 0 0 0 7.168 3.470222l33.28-3.100444L853.564302 824.888889h-37.148444c-11.861333 0-20.48-0.284444-26.510222-0.739556-5.745778-0.483556-11.719111 0-15.786667-3.015111-3.413333-3.043556-8.704-7.054222-8.590222-11.093333 0.369778-3.754667 1.991111-10.040889 4.380444-18.659556l67.697778-222.293333z m102.684444 88.746667H861.016747l-4.892445 15.815111h68.608c8.078222-0.938667 9.756444 0.199111 10.467556-0.170667l5.034666-15.644444z m-74.951111-14.279111s15.502222-14.023111 42.040889-18.545778c6.030222-1.137778 43.662222-0.739556 43.662222-0.739556l5.745778-18.830222H876.945636l-11.576889 38.115556z"
84 fill="#FEFEFE" p-id="32910"></path>
85 <path
86 d="M961.795413 711.111111l-4.494222 21.219556c-1.877333 6.656-3.555556 11.576889-8.561778 15.872-5.290667 4.465778-11.491556 9.159111-25.969777 9.159111l-26.823112 1.137778-0.199111 23.950222c-0.284444 6.741333 1.536 6.087111 2.588445 7.168 1.251556 1.223111 2.360889 1.678222 3.498666 2.161778l8.533334-0.483556 25.571555-1.422222L925.301191 824.888889h-29.383111c-20.536889 0-35.811556-0.483556-40.760889-4.408889-4.949333-3.128889-5.603556-7.025778-5.518222-13.767111l1.877333-93.496889h46.876445l-0.654223 19.114667h11.264c3.868444 0 6.485333-0.369778 8.078223-1.422223a8.448 8.448 0 0 0 3.128889-4.835555l4.721777-14.961778h36.835556zM368.529636 256c-1.564444 7.509333-30.976 142.933333-31.061334 143.075556-6.314667 27.392-10.922667 46.933333-26.567111 59.534222a47.388444 47.388444 0 0 1-31.288889 10.894222c-19.285333 0-30.549333-9.585778-32.426666-27.761778l-0.398223-6.257778s5.888-36.693333 5.888-36.892444c0 0 30.862222-123.448889 36.408889-139.776 0.284444-0.910222 0.341333-1.422222 0.426667-1.848889-60.046222 0.540444-70.712889 0-71.424-0.967111-0.398222 1.336889-1.905778 8.988444-1.905778 8.988444l-31.516444 139.093334-2.673778 11.832889-5.262222 38.599111c0 11.434667 2.275556 20.764444 6.741333 28.672C197.834524 508.245333 238.76608 512 261.919858 512c29.866667 0 57.856-6.314667 76.771555-17.891556 32.824889-19.370667 41.415111-49.664 49.095111-76.600888l3.527112-13.795556s31.800889-128.199111 37.205333-144.896c0.199111-0.910222 0.284444-1.422222 0.568889-1.848889-43.576889 0.455111-56.433778 0-60.558222-0.967111M548.042524 482.645333a453.518222 453.518222 0 0 0-45.397333 0.910223l-0.796444-1.763556c1.820444-8.846222 3.811556-17.521778 5.603555-26.453333l2.588445-12.060445c3.896889-18.716444 7.68-40.476444 8.106666-47.160889 0.426667-3.982222 1.706667-13.937778-8.732444-13.937777-4.352 0-8.903111 2.304-13.539556 4.693333-2.56 9.955556-7.651556 37.973333-10.097777 50.716444-5.205333 26.88-5.546667 29.980444-7.879112 43.264l-1.507555 1.792c-18.545778-0.341333-25.031111-0.341333-46.364445 0.910223l-0.938666-2.019556c3.527111-15.928889 7.111111-32.056889 10.496-48.042667 8.96-43.349333 11.093333-59.904 13.539555-81.948444l1.706667-1.28c20.849778-3.242667 25.884444-3.896889 48.440889-8.931556l1.905778 2.332445-3.470223 13.795555c3.84-2.503111 7.480889-5.034667 11.320889-7.196444 10.638222-5.745778 22.471111-7.452444 28.956445-7.452445 9.927111 0 20.736 3.015111 25.230222 15.587556 4.266667 11.207111 1.422222 24.974222-4.181333 52.110222l-2.901334 13.880889a1275.761778 1275.761778 0 0 0-9.955555 56.462222l-2.133334 1.792zM607.206969 482.645333c-8.362667-0.085333-13.767111-0.341333-18.972445-0.085333-5.205333 0.085333-10.296889 0.455111-18.062222 0.995556l-0.398222-0.995556-0.512-1.052444c2.133333-11.605333 3.271111-15.616 4.323556-19.740445 1.080889-4.152889 2.048-8.248889 3.925333-20.024889 2.446222-15.36 3.953778-26.083556 4.920889-35.498666 1.137778-9.102222 1.735111-16.867556 2.616889-25.827556l0.568889-0.682667 0.682666-0.881777c8.305778-1.678222 13.568-2.816 18.972445-4.067556 5.461333-1.024 10.922667-2.616889 19.512889-5.006222l0.312888 1.052444 0.256 1.137778c-1.592889 9.500444-3.242667 19.000889-4.807111 28.643556-1.507556 9.671111-3.128889 19.143111-4.608 28.643555-3.100444 20.195556-4.352 27.761778-5.091555 33.223111-0.711111 5.091556-0.910222 7.907556-2.104889 18.346667l-0.796445 0.938667-0.739555 0.853333zM790.474524 412.216889c6.684444-30.492444 1.450667-44.743111-5.12-53.418667-9.955556-13.226667-27.562667-17.464889-45.795555-17.464889-10.979556 0-37.148444 1.137778-57.571556 20.650667-14.677333 14.108444-21.447111 33.223111-25.543111 51.541333-4.124444 18.688-8.874667 52.309333 20.935111 64.796445 9.216 4.096 22.471111 5.233778 31.004445 5.233778 21.845333 0 44.259556-6.257778 61.098666-24.746667 12.970667-15.047111 18.887111-37.376 20.963556-46.592m-50.119111-2.190222c-0.967111 5.176889-5.319111 24.291556-11.178667 32.426666-4.096 6.030222-8.931556 9.671111-14.307555 9.671111-1.592889 0-11.093333 0-11.235556-14.620444-0.056889-7.224889 1.336889-14.592 3.100445-22.584889 5.034667-23.096889 10.951111-42.496 26.140444-42.496 11.889778 0 12.743111 14.449778 7.480889 37.603556M1249.653191 482.787556c-15.644444-0.170667-20.138667-0.170667-34.616889 0.768l-0.881778-1.820445c3.896889-23.011556 7.822222-45.937778 11.320889-69.205333 4.551111-30.179556 5.575111-43.008 7.054223-60.672l1.166222-1.479111c15.559111-3.413333 19.911111-4.408889 36.067555-9.045334l0.455111 2.076445c-2.958222 19.000889-5.859556 37.859556-8.760888 56.917333-5.944889 39.793778-8.106667 59.989333-10.382223 80.782222l-1.422222 1.706667z"
87 fill="#FEFEFE" p-id="32911"></path>
88 <path
89 d="M1231.078969 400.497778c-5.916444-15.644444-2.275556-47.217778-26.140445-57.827556-9.187556-4.181333-30.72 1.194667-49.265777 20.650667-13.056 13.880889-19.313778 32.938667-22.840889 51.2-3.754667 18.403556-8.049778 51.996444 18.631111 64 8.504889 4.152889 16.128 5.404444 23.893333 4.949333 26.794667-1.649778 47.217778-48.384 62.378667-66.844444 11.662222-14.620444-2.816-6.144-6.656-16.128z m-18.887111 10.439111c-1.052444 4.949333-5.006222 24.234667-10.268445 32.312889-3.527111 5.745778-11.889778 9.301333-16.725333 9.301333-1.365333 0-9.784889 0-10.097778-14.336-0.056889-7.139556 1.223111-14.506667 2.816-22.584889 4.579556-22.670222 9.870222-41.870222 23.552-41.870222 10.723556 0 15.303111 13.966222 10.723556 37.176889M912.472747 482.645333a452.408889 452.408889 0 0 0-45.368889 0.910223l-0.796445-1.763556c1.820444-8.846222 3.868444-17.521778 5.745778-26.453333l2.446222-12.060445c3.982222-18.716444 7.736889-40.476444 8.135111-47.160889 0.398222-3.982222 1.649778-13.937778-8.675555-13.937777-4.494222 0-8.988444 2.304-13.653333 4.693333-2.446222 9.955556-7.68 37.973333-10.183112 50.716444-5.063111 26.88-5.404444 29.980444-7.708444 43.264l-1.592889 1.792a469.788444 469.788444 0 0 0-46.307555 0.910223l-0.938667-2.019556c3.555556-15.928889 7.111111-32.056889 10.524444-48.042667 8.931556-43.349333 11.008-59.904 13.511111-81.948444l1.592889-1.28c20.821333-3.242667 25.969778-3.896889 48.526223-8.931556l1.706666 2.332445-3.214222 13.795555c3.697778-2.503111 7.509333-5.034667 11.292444-7.196444 10.552889-5.745778 22.471111-7.452444 28.956445-7.452445 9.784889 0 20.650667 3.015111 25.315555 15.587556 4.181333 11.207111 1.308444 24.974222-4.352 52.110222l-2.844444 13.880889a992.568889 992.568889 0 0 0-9.955556 56.462222l-2.161777 1.792zM1102.538524 335.815111c-3.043556 16.952889-12.032 31.175111-23.580444 38.087111-9.500444 5.831111-21.134222 6.314667-33.137778 6.314667h-7.765333l0.568889-3.811556 14.250666-75.918222 0.455112-3.896889 0.199111-2.986666 5.717333 0.739555 30.208 3.157333c11.662222 5.518222 16.440889 19.740444 13.084444 38.314667m-18.773333-79.445333l-14.478222 0.142222c-37.546667 0.568889-52.622222 0.426667-58.794667-0.512l-1.507555 9.301333-13.454223 76.458667-33.735111 169.955556c32.796444-0.483556 46.250667-0.483556 51.911111 0.284444 1.28-7.651556 8.874667-52.992 8.96-52.992 0 0 6.456889-33.251556 6.855112-34.474667 0 0 2.048-3.470222 4.067555-4.835555h3.015111c28.273778 0 60.216889 0 85.248-22.528 17.038222-15.473778 28.672-38.286222 33.848889-66.048 1.393778-6.798222 2.360889-14.876444 2.360889-22.983111 0-10.638222-1.735111-21.134222-6.769778-29.354667-12.771556-21.845333-38.200889-22.272-67.527111-22.414222M1438.438969 315.022222L1436.447858 312.888889c-25.429333 4.835556-30.037333 5.603556-53.447111 8.561778l-1.706667 1.621333c-0.085333 0.256-0.142222 0.654222-0.284444 1.024l-0.056889-0.369778c-17.436444 37.660444-16.924444 29.525333-31.089778 59.164445-0.085333-1.336889-0.085333-2.161778-0.142222-3.612445l-3.555556-64.284444-2.247111-2.104889c-26.652444 4.835556-27.306667 5.603556-51.911111 8.561778l-1.905778 1.621333c-0.284444 0.768-0.284444 1.592889-0.426667 2.531556l0.142223 0.312888c3.072 14.762667 2.332444 11.463111 5.404444 34.730667 1.479111 11.434667 3.384889 22.926222 4.835556 34.190222 2.417778 18.887111 3.783111 28.16 6.741333 57.002667-16.64 25.713778-20.565333 35.470222-36.579556 58.026667l1.024 2.133333c24.007111-0.853333 29.582222-0.853333 47.388445-0.853333l3.868444-4.124445c13.454222-27.192889 115.939556-192 115.939556-192M615.398969 363.832889c11.832889-6.4 13.312-15.217778 3.384889-19.797333-10.069333-4.636444-27.733333-3.128889-39.623111 3.242666-11.861333 6.257778-13.226667 15.160889-3.185778 19.854222 9.898667 4.494222 27.648 3.157333 39.424-3.299555M1298.264747 568.888889l-12.686223 35.555555c-3.982222 12.174222-11.434667 21.248-23.239111 21.333334l-20.167111-0.568889 5.888-32h3.953778c2.048 0 3.527111-0.170667 4.664889-1.109333 1.024-0.568889 1.763556-1.877333 2.588444-3.84l7.480889-19.370667h31.516445z"
90 fill="#FEFEFE" p-id="32912"></path>
91 <path
92 d="M3499.95008 747.576889c-5.148444-1.706667-10.524444-2.56-15.957333-2.503111a40.334222 40.334222 0 0 0-35.413334 30.151111v91.619555h-39.879111v-153.6h32.910222l2.730667 27.164445h0.995556a53.134222 53.134222 0 0 1 43.633777-31.004445c6.257778-0.170667 12.430222 0.938667 18.204445 3.328l-7.224889 34.844445z m-59.591111-179.114667h-63.800889a1286.144 1286.144 0 0 1-42.666667-204.231111h-14.193777v164.067556a16.184889 16.184889 0 0 0 15.957333 16.298666h17.720889v23.438223h-69.319111a27.676444 27.676444 0 0 1-28.16-27.619556v-176.184889h-27.676445v-23.836444h27.676445v-169.528889h63.800889v169.528889h121.656888v23.893333h-43.121777a1378.104889 1378.104889 0 0 0 42.126222 204.174222z m-104.675556-243.2a742.542222 742.542222 0 0 0 35.640889-143.530666h63.317334a835.811556 835.811556 0 0 1-34.673778 143.530666h-64.284445z m-106.467555 353.991111a50.062222 50.062222 0 0 0-16.213334-3.271111c-11.946667 0-18.688 7.111111-18.688 24.149334v13.169777h28.928v31.800889H3194.314524v121.770667h-40.135111v-121.742222h-20.679111v-29.952l20.679111-1.621334v-12.629333a49.863111 49.863111 0 0 1 53.361778-56.775111c9.955556 0 19.854222 1.848889 29.155556 5.461333l-7.480889 29.639111z m-59.335111-461.169777a12.458667 12.458667 0 0 0-13.454223-11.690667h-54.613333a11.946667 11.946667 0 0 0-12.686222 11.662222v217.656889h-49.379556v-225.564444a28.956444 28.956444 0 0 1 30.435556-28.046223h117.902222a29.098667 29.098667 0 0 1 30.919111 28.046223v225.564444h-49.123555V218.083556z m42.638222 351.488h-54.840889l-19.456-68.209778c-8.078222 23.893333-18.858667 46.791111-32.142222 68.209778h-62.577778a323.271111 323.271111 0 0 0 57.827556-195.413334V241.976889h55.580444v115.541333a583.964444 583.964444 0 0 1-6.968889 93.297778h28.444445l34.133333 118.727111z m-98.474667 158.663111l-17.948444 24.405333a59.192889 59.192889 0 0 0-33.393778-13.169778 16.327111 16.327111 0 0 0-20.195556 14.791111c0 11.264 15.189333 15.36 31.146667 21.418667 20.451556 7.68 42.894222 17.806222 42.894222 46.336 0 26.88-21.191111 48.554667-61.098666 48.554667a97.223111 97.223111 0 0 1-58.595556-21.674667l18.488889-25.230222c11.377778 10.097778 25.884444 15.985778 41.102222 16.725333 15.473778 0 22.186667-6.599111 22.186667-16.213333 0-11.491556-15.928889-16.696889-31.886222-23.011556a52.053333 52.053333 0 0 1-42.126223-44.686222 50.005333 50.005333 0 0 1 57.088-47.160889 85.589333 85.589333 0 0 1 52.337778 19.057778v-0.142222z m-249.031111-338.631111h106.183111a14.791111 14.791111 0 0 1 12.970667 6.712888c3.356444 4.266667 4.039111 10.040889 1.735111 14.961778l-75.292444 127.658667 16.952888 30.151111h-64.568888L2796.234524 449.422222h64.568889l16.952889 31.004445 41.870222-66.986667h-104.96a14.961778 14.961778 0 0 1-12.231111-6.286222 14.421333 14.421333 0 0 1-3.214222-12.970667l10.979556-51.854222h-41.159111v-24.32h46.648888l15.928889-73.671111H2781.016747v-24.263111h55.836444l10.979556-49.379556h64.568889l-10.979556 49.379556h80.014222v24.263111h-84.992l-16.213333 73.671111h112.440889v24.32h-117.418667l-10.24 47.274667z m-131.896889 179.086222H2670.083413v-74.922667l-78.279111 5.859556v-23.836445l78.279111-5.888v-61.098666h-59.818666a15.644444 15.644444 0 0 1-11.946667-4.977778 16.241778 16.241778 0 0 1-3.527111-12.970667l19.968-152.32h-22.698667v-23.893333h25.685334l5.973333-43.776h59.079111l-5.717333 43.918222h90.225777v23.864889h-93.724444l-18.204444 137.671111a7.480889 7.480889 0 0 0 1.991111 5.888 7.082667 7.082667 0 0 0 5.973333 2.929778h10.24V278.812444h59.562667v106.439112h29.667555v23.836444h-29.667555v56.092444l34.161777-2.503111v23.864889l-34.133333 2.503111v79.900445-0.284445z m-98.702222 140.629333c6.229333-0.199111 12.430222 0.910222 18.204444 3.271111l-7.224888 34.901334a47.616 47.616 0 0 0-15.729778-2.474667 40.106667 40.106667 0 0 0-35.384889 30.151111v91.591111h-40.135111v-153.571555h32.910222l2.730667 27.164444h0.995555a53.788444 53.788444 0 0 1 43.633778-30.890667v-0.142222z m-149.589333-168.618667a27.875556 27.875556 0 0 1-27.904 27.591112h-99.214223v-23.836445h46.848a15.815111 15.815111 0 0 0 15.957334-15.928889V333.653333h-128.853334v-23.808h252.501334v23.808h-59.335111v207.189334-0.142223z m-182.215111-349.013333h230.115555v24.064h-230.115555v-24.064z m-64.056889 151.523556h18.944v225.564444h-64.853334V398.506667h-48.839111a818.346667 818.346667 0 0 0 43.377778-90.823111h-43.377778a664.974222 664.974222 0 0 0 57.344-136.448h64.824889c-6.741333 26.026667-15.502222 51.484444-26.168889 76.174222h32.881778a569.685333 569.685333 0 0 1-34.133333 95.914666v-0.085333zM2169.233636 866.702222h-40.391112v-90.794666c0-23.580444-6.485333-32.085333-21.674666-32.085334a44.430222 44.430222 0 0 0-32.142222 17.294222v105.585778h-39.907556v-153.6h32.910222l2.730667 20.309334h0.995555a70.997333 70.997333 0 0 1 49.863112-24.120889c33.166222 0 47.616 23.04 47.616 61.696v95.715555z m-123.648-451.640889h49.863111a451.982222 451.982222 0 0 1-34.133334 87.893334c9.955556 21.390222 20.679111 42.752 32.398223 64.056889h-68.835556a747.861333 747.861333 0 0 1-72.760889-179.086223h-21.191111v140.202667c0.483556 8.96 7.964444 15.928889 16.952889 15.872l19.427555 0.426667v23.836444h-75.52a29.383111 29.383111 0 0 1-30.663111-27.619555V210.204444a29.098667 29.098667 0 0 1 30.663111-27.619555h166.769778a29.098667 29.098667 0 0 1 30.663111 27.619555v150.272a29.383111 29.383111 0 0 1-30.663111 27.619556h-38.4c4.750222 18.830222 10.723556 37.205333 16.952889 55.608889 3.584-9.272889 6.428444-18.801778 8.476445-28.529778v-0.113778z m-43.861334-209.635555H1947.878969a16.554667 16.554667 0 0 0-16.952889 15.900444v54.840889h88.462222V222.208a17.578667 17.578667 0 0 0-17.664-16.611556v-0.170666z m17.692445 94.606222h-88.490667v64.426667h70.798222a16.896 16.896 0 0 0 17.692445-15.872v-48.554667zM1761.909191 866.702222H1689.603413v-202.979555h67.072c41.614222 0 73.528889 12.088889 73.528889 49.863111a46.108444 46.108444 0 0 1-27.676444 43.889778v1.706666c23.04 4.039111 39.424 24.661333 38.144 47.985778 0 40.760889-33.905778 59.733333-78.791111 59.733333v-0.199111z m-7.736889-172.003555h-23.921778v51.541333h23.409778c25.941333 0 37.148444-10.410667 37.148445-26.595556 0-17.578667-12.231111-24.746667-36.636445-24.746666v-0.199111z m4.238222 81.720889h-28.16v58.965333h28.16c27.676444 0 42.638222-9.984 42.638223-31.004445 0-19.512889-14.734222-27.733333-42.666667-27.733333v-0.227555z m-13.454222-215.864889a28.586667 28.586667 0 0 1-8.476444-19.939556v-89.543111h-37.148445v-23.864889h37.148445v-76.856889h-37.148445v-24.291555h138.097778v24.291555H1802.527858v76.999111h34.901333v23.893334H1802.527858v77.368889a16.184889 16.184889 0 0 0 16.469333 16.327111h18.432v23.836444h-72.277333a28.785778 28.785778 0 0 1-20.195556-7.992889v-0.227555z m17.436445-247.608889h-66.048c14.506667-46.307556 24.092444-93.980444 28.672-142.279111h65.536c-1.991111 19.456-4.977778 38.855111-8.476445 58.168889h55.352889v23.836444h-59.818667a696.32 696.32 0 0 1-15.217777 60.501333v-0.227555z m191.203555 455.480889a23.921778 23.921778 0 0 0-25.912889-26.624 86.442667 86.442667 0 0 0-42.382222 14.535111l-14.478222-26.595556a121.742222 121.742222 0 0 1 64.085333-20.280889c38.883556 0 59.079111 23.324444 59.079111 67.726223v89.742222h-32.910222l-2.986667-16.497778h-0.995555a72.021333 72.021333 0 0 1-46.364445 20.337778 43.52 43.52 0 0 1-45.368888-45.539556c0-32.967111 26.652444-50.232889 88.234666-56.803555z m-29.667555 70.741333a40.675556 40.675556 0 0 0 29.667555-15.075556v-31.004444c-37.376 4.977778-49.863111 15.075556-49.863111 28.785778a17.152 17.152 0 0 0 20.195556 17.294222z m326.087111-59.505778h1.223111l53.105778-66.360889h43.889777l-53.105777 62.776889 58.083555 90.794667h-43.633778l-37.376-63.630222-22.186666 25.230222v38.4h-39.139556v-218.88h39.139556v131.669333z m201.415111-107.52h33.649778v41.159111h37.888v31.800889h-37.888v67.982222a20.707556 20.707556 0 0 0 20.707555 25.799112c5.205333-0.227556 10.353778-1.336889 15.189334-3.299556l6.485333 29.383111c-10.325333 3.697778-21.191111 5.632-32.142222 5.745778-36.664889 0-50.631111-23.04-50.631111-57.6v-67.982222h-21.674667v-29.952l23.694222-1.905778 4.721778-41.130667z m302.876444 96.284445a23.921778 23.921778 0 0 0-25.912889-26.624 86.442667 86.442667 0 0 0-42.382222 14.535111l-14.449778-26.595556a121.742222 121.742222 0 0 1 64.056889-20.280889c38.883556 0 59.079111 23.324444 59.079111 67.726223v89.742222h-32.910222l-2.986666-16.497778h-0.995556a72.021333 72.021333 0 0 1-46.364444 20.337778 43.52 43.52 0 0 1-45.368889-45.539556c0-32.967111 26.424889-50.232889 88.234666-56.803555z m-29.667555 70.741333a40.675556 40.675556 0 0 0 29.667555-15.075556v-31.004444c-37.376 4.977778-49.834667 15.075556-49.834666 28.785778a17.152 17.152 0 0 0 20.195555 17.294222z m146.858666-105.585778h0.995556a70.997333 70.997333 0 0 1 49.834667-24.120889c33.166222 0 47.616 23.04 47.616 61.696v95.715556h-40.391111v-90.794667c0-23.580444-6.456889-32.056889-21.674667-32.056889a44.430222 44.430222 0 0 0-32.142222 17.265778v105.585778h-39.907556v-153.6h32.910222l2.759111 20.309333z m439.751112-24.120889c42.382222 0 64.284444 31.004444 64.284444 73.472 0.056889 6.200889-0.597333 12.373333-1.991111 18.375111h-94.72a40.334222 40.334222 0 0 0 42.638222 38.4 63.203556 63.203556 0 0 0 34.417778-10.695111l13.681778 24.689778a96.113778 96.113778 0 0 1-53.589334 17.009778 74.410667 74.410667 0 0 1-76.288-80.355556 75.207111 75.207111 0 0 1 71.537778-80.896z m29.639111 65.251556a28.757333 28.757333 0 0 0-29.155556-33.991111 34.56 34.56 0 0 0-33.393778 33.991111h62.577778z"
93 fill="#4D4D4D" p-id="32913"></path>
94 </svg>
144 </el-radio> 95 </el-radio>
145 <el-radio label="4" border> 96 <el-radio label="4" border>
146 <svg t="1709002828937" class="icon" viewBox="0 0 4220 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="22654" width="94" height="40"><path d="M3249.722604 229.409369h-232.537679c-15.641548 0-29.197556 11.470468-32.325865 27.112016l-93.849287 595.421589c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h118.875764c11.470468 0 20.855397-8.342159 21.898167-18.769858l27.112016-168.928717c2.08554-15.641548 15.641548-27.112016 32.325866-27.112016h72.99389c153.287169 0 240.879837-74.03666 263.820774-221.06721 10.427699-63.608961 0-114.704684-29.197556-150.158859-31.283096-38.582485-89.678208-58.395112-167.885947-58.395112z m27.112016 216.89613c-12.513238 83.421589-76.1222 83.421589-137.645621 83.421589h-35.454175l25.026476-155.372709c1.04277-9.384929 9.384929-16.684318 18.769858-16.684318h15.641547c41.710794 0 81.336049 0 102.191447 23.983707 12.513238 14.598778 15.641548 35.454175 11.470468 64.651731z" fill="#009CDE" p-id="22655"></path><path d="M1594.84684 229.409369h-232.537678c-15.641548 0-29.197556 11.470468-32.325866 27.112016l-93.849287 595.421589c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h110.533605c15.641548 0 29.197556-11.470468 32.325866-27.112017l25.026476-160.586558c2.08554-15.641548 15.641548-27.112016 32.325866-27.112016h72.99389c153.287169 0 240.879837-74.03666 263.820774-221.06721 10.427699-63.608961 0-114.704684-29.197556-150.158859-31.283096-38.582485-89.678208-58.395112-167.885947-58.395112z m27.112016 216.89613c-12.513238 83.421589-76.1222 83.421589-137.645621 83.421589h-35.454175l25.026476-155.372709c1.04277-9.384929 9.384929-16.684318 18.769858-16.684318h15.641548c41.710794 0 81.336049 0 102.191446 23.983707 12.513238 14.598778 15.641548 35.454175 11.470468 64.651731zM2288.288795 443.177189h-111.576375c-9.384929 0-17.727088 7.299389-18.769857 16.684318l-5.213849 31.283096-7.299389-11.470469c-23.983707-34.411405-77.164969-46.924644-131.389002-46.924643-123.046843 0-227.323829 92.806517-248.179226 223.152749-10.427699 64.651731 4.171079 127.217923 41.710794 171.014257 34.411405 39.625255 82.378819 56.309572 139.731161 56.309572 99.063136 0 153.287169-63.608961 153.287169-63.608961l-5.21385 31.283096c-2.08554 11.470468 7.299389 21.898167 18.769858 21.898167h100.105906c15.641548 0 29.197556-11.470468 32.325866-27.112017l60.480652-380.610998c2.08554-10.427699-6.256619-21.898167-18.769858-21.898167z m-154.329939 216.896131c-10.427699 63.608961-61.523422 106.362525-125.132383 106.362525-32.325866 0-58.395112-10.427699-75.079429-30.240326-16.684318-19.812627-22.940937-46.924644-17.727088-78.207739 10.427699-62.566191 61.523422-107.405295 124.089613-107.405295 31.283096 0 57.352342 10.427699 74.03666 30.240326 17.727088 20.855397 25.026477 47.967413 19.812627 79.250509z" fill="#003087" p-id="22656"></path><path d="M3943.164559 443.177189h-111.576375c-9.384929 0-17.727088 7.299389-18.769857 16.684318l-5.21385 31.283096-7.299389-11.470469c-23.983707-34.411405-77.164969-46.924644-131.389002-46.924643-123.046843 0-227.323829 92.806517-248.179226 223.152749-10.427699 64.651731 4.171079 127.217923 41.710795 171.014257 34.411405 39.625255 82.378819 56.309572 139.73116 56.309572 99.063136 0 153.287169-63.608961 153.28717-63.608961l-5.21385 31.283096c-2.08554 11.470468 7.299389 21.898167 18.769858 21.898167h100.105906c15.641548 0 29.197556-11.470468 32.325866-27.112017l60.480651-380.610998c2.08554-10.427699-6.256619-21.898167-18.769857-21.898167z m-154.329939 216.896131c-10.427699 63.608961-61.523422 106.362525-125.132383 106.362525-32.325866 0-58.395112-10.427699-75.07943-30.240326-16.684318-19.812627-22.940937-46.924644-17.727087-78.207739 10.427699-62.566191 61.523422-107.405295 124.089613-107.405295 31.283096 0 57.352342 10.427699 74.03666 30.240326 17.727088 20.855397 25.026477 47.967413 19.812627 79.250509z" fill="#009CDE" p-id="22657"></path><path d="M2880.582074 443.177189h-111.576375c-10.427699 0-20.855397 5.213849-27.112016 14.598778l-154.329939 227.323829-65.694501-217.9389c-4.171079-13.556008-16.684318-22.940937-31.283096-22.940937h-109.490835c-13.556008 0-22.940937 13.556008-18.769857 26.069247l123.046843 360.79837-115.747454 162.672098c-9.384929 12.513238 0 30.240326 15.641548 30.240326h111.576375c10.427699 0 20.855397-5.213849 26.069246-13.556008l371.226069-535.983707c11.470468-13.556008 2.08554-31.283096-13.556008-31.283096z" fill="#003087" p-id="22658"></path><path d="M4074.553561 245.050916l-94.892057 605.849288c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h95.934827c15.641548 0 29.197556-11.470468 32.325866-27.112017l93.849287-595.421588c2.08554-11.470468-7.299389-21.898167-18.769857-21.898167h-107.405296c-10.427699 1.04277-18.769857 7.299389-19.812627 16.684317z" fill="#009CDE" p-id="22659"></path><path d="M782.529121 259.649695c12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l-13.556008 85.507128c-2.08554 14.598778 9.384929 27.112016 23.983707 27.112016h165.800407c19.812627 0 36.496945-14.598778 39.625255-33.368635l2.08554-8.342159 31.283095-198.126273 2.08554-10.427699c3.12831-19.812627 19.812627-33.368635 39.625255-33.368635h25.026476c160.586558 0 285.718941-64.651731 322.215886-253.393075 15.641548-79.250509 7.299389-144.94501-33.368635-190.826884-12.513238-13.556008-28.154786-26.069246-45.881874-35.454175" fill="#009CDE" p-id="22660"></path><path d="M782.529121 259.649695c12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l49.010184-312.830958-1.04277 9.384929c3.12831-21.898167 21.898167-38.582485 44.839104-38.582485h93.849287c183.527495 0 327.429735-74.03666 369.140529-289.89002l3.12831-18.769857" fill="#012169" p-id="22661"></path><path d="M326.838693 260.692464c2.08554-13.556008 10.427699-23.983707 21.898167-30.240326 5.213849-2.08554 11.470468-4.171079 16.684318-4.171079h250.264766c29.197556 0 57.352342 2.08554 82.378819 6.256619 7.299389 1.04277 14.598778 2.08554 20.855397 4.17108 7.299389 1.04277 13.556008 3.12831 19.812627 5.213849l9.384929 3.128309c12.513238 4.171079 23.983707 9.384929 34.411405 14.598779 12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l49.010184-312.830958L326.838693 260.692464z" fill="#003087" p-id="22662"></path></svg> 97 <svg t="1709002828937" class="icon" viewBox="0 0 4220 1024" version="1.1"
98 xmlns="http://www.w3.org/2000/svg" p-id="22654" width="94" height="40">
99 <path
100 d="M3249.722604 229.409369h-232.537679c-15.641548 0-29.197556 11.470468-32.325865 27.112016l-93.849287 595.421589c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h118.875764c11.470468 0 20.855397-8.342159 21.898167-18.769858l27.112016-168.928717c2.08554-15.641548 15.641548-27.112016 32.325866-27.112016h72.99389c153.287169 0 240.879837-74.03666 263.820774-221.06721 10.427699-63.608961 0-114.704684-29.197556-150.158859-31.283096-38.582485-89.678208-58.395112-167.885947-58.395112z m27.112016 216.89613c-12.513238 83.421589-76.1222 83.421589-137.645621 83.421589h-35.454175l25.026476-155.372709c1.04277-9.384929 9.384929-16.684318 18.769858-16.684318h15.641547c41.710794 0 81.336049 0 102.191447 23.983707 12.513238 14.598778 15.641548 35.454175 11.470468 64.651731z"
101 fill="#009CDE" p-id="22655"></path>
102 <path
103 d="M1594.84684 229.409369h-232.537678c-15.641548 0-29.197556 11.470468-32.325866 27.112016l-93.849287 595.421589c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h110.533605c15.641548 0 29.197556-11.470468 32.325866-27.112017l25.026476-160.586558c2.08554-15.641548 15.641548-27.112016 32.325866-27.112016h72.99389c153.287169 0 240.879837-74.03666 263.820774-221.06721 10.427699-63.608961 0-114.704684-29.197556-150.158859-31.283096-38.582485-89.678208-58.395112-167.885947-58.395112z m27.112016 216.89613c-12.513238 83.421589-76.1222 83.421589-137.645621 83.421589h-35.454175l25.026476-155.372709c1.04277-9.384929 9.384929-16.684318 18.769858-16.684318h15.641548c41.710794 0 81.336049 0 102.191446 23.983707 12.513238 14.598778 15.641548 35.454175 11.470468 64.651731zM2288.288795 443.177189h-111.576375c-9.384929 0-17.727088 7.299389-18.769857 16.684318l-5.213849 31.283096-7.299389-11.470469c-23.983707-34.411405-77.164969-46.924644-131.389002-46.924643-123.046843 0-227.323829 92.806517-248.179226 223.152749-10.427699 64.651731 4.171079 127.217923 41.710794 171.014257 34.411405 39.625255 82.378819 56.309572 139.731161 56.309572 99.063136 0 153.287169-63.608961 153.287169-63.608961l-5.21385 31.283096c-2.08554 11.470468 7.299389 21.898167 18.769858 21.898167h100.105906c15.641548 0 29.197556-11.470468 32.325866-27.112017l60.480652-380.610998c2.08554-10.427699-6.256619-21.898167-18.769858-21.898167z m-154.329939 216.896131c-10.427699 63.608961-61.523422 106.362525-125.132383 106.362525-32.325866 0-58.395112-10.427699-75.079429-30.240326-16.684318-19.812627-22.940937-46.924644-17.727088-78.207739 10.427699-62.566191 61.523422-107.405295 124.089613-107.405295 31.283096 0 57.352342 10.427699 74.03666 30.240326 17.727088 20.855397 25.026477 47.967413 19.812627 79.250509z"
104 fill="#003087" p-id="22656"></path>
105 <path
106 d="M3943.164559 443.177189h-111.576375c-9.384929 0-17.727088 7.299389-18.769857 16.684318l-5.21385 31.283096-7.299389-11.470469c-23.983707-34.411405-77.164969-46.924644-131.389002-46.924643-123.046843 0-227.323829 92.806517-248.179226 223.152749-10.427699 64.651731 4.171079 127.217923 41.710795 171.014257 34.411405 39.625255 82.378819 56.309572 139.73116 56.309572 99.063136 0 153.287169-63.608961 153.28717-63.608961l-5.21385 31.283096c-2.08554 11.470468 7.299389 21.898167 18.769858 21.898167h100.105906c15.641548 0 29.197556-11.470468 32.325866-27.112017l60.480651-380.610998c2.08554-10.427699-6.256619-21.898167-18.769857-21.898167z m-154.329939 216.896131c-10.427699 63.608961-61.523422 106.362525-125.132383 106.362525-32.325866 0-58.395112-10.427699-75.07943-30.240326-16.684318-19.812627-22.940937-46.924644-17.727087-78.207739 10.427699-62.566191 61.523422-107.405295 124.089613-107.405295 31.283096 0 57.352342 10.427699 74.03666 30.240326 17.727088 20.855397 25.026477 47.967413 19.812627 79.250509z"
107 fill="#009CDE" p-id="22657"></path>
108 <path
109 d="M2880.582074 443.177189h-111.576375c-10.427699 0-20.855397 5.213849-27.112016 14.598778l-154.329939 227.323829-65.694501-217.9389c-4.171079-13.556008-16.684318-22.940937-31.283096-22.940937h-109.490835c-13.556008 0-22.940937 13.556008-18.769857 26.069247l123.046843 360.79837-115.747454 162.672098c-9.384929 12.513238 0 30.240326 15.641548 30.240326h111.576375c10.427699 0 20.855397-5.213849 26.069246-13.556008l371.226069-535.983707c11.470468-13.556008 2.08554-31.283096-13.556008-31.283096z"
110 fill="#003087" p-id="22658"></path>
111 <path
112 d="M4074.553561 245.050916l-94.892057 605.849288c-2.08554 11.470468 7.299389 21.898167 18.769857 21.898167h95.934827c15.641548 0 29.197556-11.470468 32.325866-27.112017l93.849287-595.421588c2.08554-11.470468-7.299389-21.898167-18.769857-21.898167h-107.405296c-10.427699 1.04277-18.769857 7.299389-19.812627 16.684317z"
113 fill="#009CDE" p-id="22659"></path>
114 <path
115 d="M782.529121 259.649695c12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l-13.556008 85.507128c-2.08554 14.598778 9.384929 27.112016 23.983707 27.112016h165.800407c19.812627 0 36.496945-14.598778 39.625255-33.368635l2.08554-8.342159 31.283095-198.126273 2.08554-10.427699c3.12831-19.812627 19.812627-33.368635 39.625255-33.368635h25.026476c160.586558 0 285.718941-64.651731 322.215886-253.393075 15.641548-79.250509 7.299389-144.94501-33.368635-190.826884-12.513238-13.556008-28.154786-26.069246-45.881874-35.454175"
116 fill="#009CDE" p-id="22660"></path>
117 <path
118 d="M782.529121 259.649695c12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l49.010184-312.830958-1.04277 9.384929c3.12831-21.898167 21.898167-38.582485 44.839104-38.582485h93.849287c183.527495 0 327.429735-74.03666 369.140529-289.89002l3.12831-18.769857"
119 fill="#012169" p-id="22661"></path>
120 <path
121 d="M326.838693 260.692464c2.08554-13.556008 10.427699-23.983707 21.898167-30.240326 5.213849-2.08554 11.470468-4.171079 16.684318-4.171079h250.264766c29.197556 0 57.352342 2.08554 82.378819 6.256619 7.299389 1.04277 14.598778 2.08554 20.855397 4.17108 7.299389 1.04277 13.556008 3.12831 19.812627 5.213849l9.384929 3.128309c12.513238 4.171079 23.983707 9.384929 34.411405 14.598779 12.513238-79.250509 0-133.474542-42.753564-182.484726C691.808143 22.940937 606.301015 0 496.81018 0H178.765374c-21.898167 0-41.710794 16.684318-44.839104 38.582485L0.451728 879.05499c-3.12831 16.684318 10.427699 31.283096 27.112016 31.283096h196.040733l49.010184-312.830958L326.838693 260.692464z"
122 fill="#003087" p-id="22662"></path>
123 </svg>
147 </el-radio> 124 </el-radio>
148 </el-radio-group> 125 </el-radio-group>
149 126
150 <div v-if="payType == '3'"> 127 <div v-if="payType == '3'">
151 <table class="table-border table" cellpadding="0" cellspacing="0"> 128 <table class="table-border table" cellpadding="0" cellspacing="0">
152 <tr> 129 <tr>
153 <th colspan="2" class="head">线下缴费的收款信息</th> 130 <th colspan="2" class="head">{{ language==0?'线下缴费的收款信息':'Offline Payment Collection Information' }}</th>
154 </tr> 131 </tr>
155 <tr> 132 <tr>
156 <th>付款金额</th> 133 <th>{{ language==0?'付款金额':'Payment Amount' }}</th>
157 <td> 134 <td>
158 ¥1840 135 ¥{{ totalFee }}
159 <div class="text-gray">请按照指定金额进行打款</div> 136 <div class="text-gray">请按照指定金额进行打款</div>
160 </td> 137 </td>
161 </tr> 138 </tr>
162 <tr> 139 <tr>
163 <th>收款账号</th> 140 <th>{{ language==0?'收款账号':`Receiver's Account Number` }}</th>
164 <td> 141 <td>
165 7665 5278 8829 9377 7888 8888 88 <span class="text-primary size12">复制25位账号</span> 142 {{ form.orgBankAccountNum }}
166 <div class="text-gray">请勿重复打款</div> 143 <span v-if="language==0" class="text-primary size12">复制25位账号</span>
167 </td> 144 <span v-else class="text-primary size12">Copy 25-digit Account Number</span>
168 </tr> 145 <div v-if="language==0" class="text-gray">请勿重复打款</div>
169 <tr> 146 <div v-else class="text-gray">Please do not make duplicate payments</div>
170 <th>收款公司名</th> 147 </td>
171 <td>无锡吉金体育有限公司</td> 148 </tr>
172 </tr> 149 <tr>
173 <tr> 150 <th>{{ language==0?'收款公司名':'Name of the Payee Company' }}</th>
174 <th>开户银行</th> 151 <td>{{ form.orgBankAccount }}</td>
175 <td>招商银行无锡分行</td> 152 </tr>
176 </tr> 153 <tr>
177 <tr> 154 <th>{{ language==0?'开户银行':'Bank Name' }}</th>
178 <th>备注信息</th> 155 <td>{{ form.orgBankName }}</td>
179 <td> 156 </tr>
180 体育舞蹈报名费保险费 157 <tr>
181 </td> 158 <th>{{ language==0?'备注信息':'Remarks' }}</th>
182 </tr> 159 <td>
183 <tr> 160 体育舞蹈报名费保险费
184 <th>联系人</th> 161 </td>
185 <td> 162 </tr>
186 张译文 163 <tr>
187 </td> 164 <th>{{ language==0?'联系人':'Contacts' }}</th>
188 </tr> 165 <td>
189 <tr> 166 张译文
190 <th>联系电话</th> 167 </td>
191 <td>16882846767</td> 168 </tr>
192 </tr> 169 <tr>
193 <tr> 170 <th>{{ language==0?'联系电话':'Telephone' }}</th>
194 <th>操作</th> 171 <td>16882846767</td>
195 <td> 172 </tr>
196 <el-link class="mr10" type="primary"><el-icon><Upload /></el-icon>上传汇款单</el-link> 173 <tr>
197 <span class="text-danger size12">*您可以在上传汇款单完成后,与联系人进行电话确认。具体缴费结果,可以在个人中心-我的报名中查看进度</span> 174 <th>{{ language==0?'操作':'Actions' }}</th>
198 </td> 175 <td>
199 </tr> 176 <el-link class="mr10" type="primary">
200 </table> 177 <el-icon>
178 <Upload/>
179 </el-icon>
180 {{ language==0?'上传汇款单':'Upload Remittance Receipt' }}
181 </el-link>
182 <span v-if="language==0" class="text-danger size12">*您可以在上传汇款单完成后,与联系人进行电话确认。具体缴费结果,可以在个人中心-我的报名中查看进度</span>
183 <span v-else class="text-danger size12">*You can confirm with the contact person by phone after uploading the remittance form. The specific payment results can be viewed in the My Registration section of the personal center to check the progress</span>
184 </td>
185 </tr>
186 </table>
201 187
202 <div class="text-center"> 188 <div class="text-center">
203 <el-button type="primary" round class="btn-lineG w200px">保存</el-button> 189 <el-button type="primary" round class="btn-lineG w200px">保存</el-button>
204 </div> 190 </div>
205 </div> 191 </div>
206 <div class="text-center mt20" v-else> 192 <div class="text-center mt20" v-else>
207 <el-button type="primary" round class="btn-lineG w200px">保存</el-button> 193 <el-button type="primary" round class="btn-lineG w200px">确定</el-button>
208 </div> 194 </div>
209 </div> 195 </div>
210 196
211 </el-card> 197 </el-card>
212 </div> 198 </div>
213 199
200 <div class="box" v-if="errorBox">
201 <el-result
202 icon="error"
203 title="未找到对应订单"
204 sub-title="请确认订单号是否正确"
205 >
206 <template #extra>
207 <el-button type="primary" @click="goHome" class="btn-lineG w200px" round>{{ language==0?'返回首页':'Home' }}</el-button>
208 </template>
209 </el-result>
210 </div>
214 </div> 211 </div>
215 </template> 212 </template>
216 213
217 <script setup> 214 <script setup>
218 import {ref} from 'vue' 215 import {ref} from 'vue'
216 import {onMounted} from "@vue/runtime-core"
217 import {useRoute,useRouter} from "vue-router"
218 import * as match from "@/apiPc/match"
219 import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row";
219 220
221 const route = useRoute()
222 const router = useRouter()
220 const matchInfo = ref({}) 223 const matchInfo = ref({})
221 const approved = ref(true) 224 const approved = ref(true)
222 const tableData = ref([]) 225 const tableData = ref([])
223 const payType = ref('2') 226 const payType = ref('2')
227 const orderId = ref(route.query.orderId)
228 const matchId = ref()
229 const groupId = ref()
230 import cache from "@/plugins/cache";
231 import GroupInfoRow from "@/viewsPc/match/components/groupInfo-row";
232 import CoachInfoRow from "@/viewsPc/match/components/coachInfo-row";
233 import SignInfoTable from "@/viewsPc/match/components/signInfo-table"
234 import ZuTable from "@/viewsPc/match/components/zu-table";
235 import useUserStore from "@/store/modules/user";
236 const isLogin = ref(false)
237 const language = ref(cache.local.get('language') || 0)
238 const signInfoList = ref([])
239 const zuTableList = ref([])
240 const totalFee = ref('')
241 const form = ref({})
242 const errorBox = ref(false)
243 console.log(route.query.orderId)
244 // 1763462073870237698
245 getData()
246 if (useUserStore().user) {
247 isLogin.value = true
248 }
249 function getData() {
250 match.getMyOrderDetail({orderId:orderId.value}).then(res => {
251 totalFee.value = res.data.totalFee
252 form.value = res.data
253 matchId.value = form.value.cptId
254 groupId.value = form.value.groupId || 0
255 if(isLogin.value){
256 getSignList()
257 }
258 }).catch(err=>{
259 console.log(err)
260 errorBox.value = true
261 })
262 }
224 263
264 function getSignList() {
265 match.getMySignInfoList({
266 cptId: matchId.value,
267 groupId: groupId.value
268 }).then(res => {
269 signInfoList.value = res.data.singleData
270 zuTableList.value = res.data.zuData
271 })
272 }
273 function goHome() {
274 router.push('/')
275 }
225 </script> 276 </script>
226 277
227 <style scoped lang="scss"> 278 <style scoped lang="scss">
228 .el-radio.is-bordered{height: 40px;} 279 .el-radio.is-bordered {
229 .leftboderTT{font-weight: 600; 280 height: 40px;
281 }
282
283 .leftboderTT {
284 font-weight: 600;
230 font-size: 16px; 285 font-size: 16px;
231 color: #453DEA;} 286 color: #453DEA;
287 }
288
232 .bg-lineg { 289 .bg-lineg {
233 height: 40px; 290 height: 40px;
234 line-height: 40px; 291 line-height: 40px;
235 font-size: 18px; 292 font-size: 18px;
236 text-align: center; 293 text-align: center;
237 } 294 }
238 .table{width: 100%;max-width: 1000px;margin:20px auto; 295
239 .head{background: #EFF2F7;height: 50px;font-size: 16px;font-weight: 400;} 296 .table {
240 th{background: #FAFBFD;font-size: 14px; 297 width: 100%;
241 border-bottom: 1px solid #E5E5E5;border-right: 1px solid #E5E5E5;} 298 max-width: 1000px;
242 td{border-bottom: 1px solid #E5E5E5;border-right: 1px solid #E5E5E5; 299 margin: 20px auto;
300
301 .head {
302 background: #EFF2F7;
303 height: 50px;
304 font-size: 16px;
305 font-weight: 400;
306 }
307
308 th {
309 background: #FAFBFD;
310 font-size: 14px;
311 border-bottom: 1px solid #E5E5E5;
312 border-right: 1px solid #E5E5E5;
313 }
314
315 td {
316 border-bottom: 1px solid #E5E5E5;
317 border-right: 1px solid #E5E5E5;
243 padding: 10px; 318 padding: 10px;
244 } 319 }
245 &.table-border{border-top: 1px solid #E5E5E5;border-left: 1px solid #E5E5E5;} 320
321 &.table-border {
322 border-top: 1px solid #E5E5E5;
323 border-left: 1px solid #E5E5E5;
324 }
246 } 325 }
247 .text-gray{font-weight: 400; 326
327 .text-gray {
328 font-weight: 400;
248 font-size: 12px; 329 font-size: 12px;
249 color: #929AA0;} 330 color: #929AA0;
250 .size12{font-size: 12px;} 331 }
251 .result{font-size: 22px; 332
252 .flex{display: flex;align-items: center;font-weight: 500; 333 .size12 {
253 img{margin-right: 10px} 334 font-size: 12px;
335 }
336
337 .result {
338 font-size: 22px;
339
340 .flex {
341 display: flex;
342 align-items: center;
343 font-weight: 500;
344
345 img {
346 margin-right: 10px
347 }
254 } 348 }
255 .priceb{color: #7B7F83;font-size: 16px;text-align: right; 349
350 .priceb {
351 color: #7B7F83;
352 font-size: 16px;
353 text-align: right;
256 line-height: 50px; 354 line-height: 50px;
257 span{font-weight: bold; 355
258 font-size: 22px;font-family: DIN Alternate; 356 span {
259 color: #EB6100;} 357 font-weight: bold;
358 font-size: 22px;
359 font-family: DIN Alternate;
360 color: #EB6100;
361 }
362 }
363 }
364 .skeletonBox{position: relative;overflow: hidden;
365 .btn-lineG{position: absolute;left: 0;right: 0;margin: auto;top: 0;bottom: 0;
366 width: 200px;box-shadow: 0 0 1000px 500px rgba(255,255,255,0.5);
260 } 367 }
261 } 368 }
262 </style> 369 </style>
......
...@@ -5,56 +5,18 @@ ...@@ -5,56 +5,18 @@
5 <team-sign-step :language="language" :active-step="activeStep"/> 5 <team-sign-step :language="language" :active-step="activeStep"/>
6 </el-card> 6 </el-card>
7 <el-card :body-style="{ padding: '0px' }"> 7 <el-card :body-style="{ padding: '0px' }">
8 <match-info-row :matchInfo="matchInfo" :language="language"/> 8 <match-info-row v-if="matchId" :match-id="matchId"/>
9 <group-info-row :groupInfo="groupInfo" :language="language"/> 9 <group-info-row />
10 <coach-info-row :names="names" :language="language"/> 10 <coach-info-row v-if="matchId" :match-id="matchId" :language="language"/>
11 <div style="margin: 20px"> 11 <div style="margin: 20px">
12 12
13 <div class="mt20"> 13 <div class="mt20">
14 <div class="leftboderTT">参赛人员清单</div> 14 <div class="leftboderTT">{{ language==0?'参赛人员清单':'Participant List' }}</div>
15 <el-table :data="tableData" border style="width: 100%" class="mt20" :span-method="arraySpanMethod"> 15 <sign-info-table class="mt20" :match-id="matchId" :list="signInfoList" :hasAction="false"/>
16 <el-table-column label="所属国家"/>
17 <el-table-column prop="name" label="姓氏" width="180" align="center"></el-table-column>
18 <el-table-column label="名"/>
19 <el-table-column label="短名"/>
20 <el-table-column prop="sex" label="性别" width="180" align="center"></el-table-column>
21 <el-table-column prop="age" label="年龄" width="180" align="center"></el-table-column>
22 <el-table-column label="出生日期" align="center"/>
23 <el-table-column prop="phone" label="手机号码" width="180" align="center"></el-table-column>
24 <el-table-column label="邮箱"/>
25 <el-table-column label="证件类型" align="center"/>
26 <el-table-column label="证件号码"/>
27 <el-table-column label="报项" fixed="right">
28 <template #default="scope">
29 <ol>
30 <li v-for="item in scope.row.items" :key="item.id">{{ item.name }}</li>
31 </ol>
32 </template>
33 </el-table-column>
34 <el-table-column label="保险费" fixed="right" align="center">
35 <template #default="scope">
36 <span class="text-primary">¥{{ scope.row.signFee }}/人</span>
37 </template>
38 </el-table-column>
39 </el-table>
40
41 </div> 16 </div>
42 <div class="mt20"> 17 <div class="mt20">
43 <div class="leftboderTT">设项报名清单</div> 18 <div class="leftboderTT">{{ language==0?'设项报名清单':'Event Registration List' }}</div>
44 <!-- 报项列表--> 19 <zu-table class="mt20" :list="zuTableList" :hasAction="false"/>
45 <el-table :data="tableData" border style="width: 100%" class="mt20">
46 <el-table-column label="组别代码" align="center"/>
47 <el-table-column label="组别" align="center"/>
48 <el-table-column label="舞种" align="center"/>
49 <el-table-column label="参赛说明"/>
50 <el-table-column label="参赛运动员"/>
51 <el-table-column label="补充信息"/>
52 <el-table-column label="报名费" align="center">
53 <template #default="scope">
54 <span class="text-primary">¥{{ scope.row.signFee }}/人</span>
55 </template>
56 </el-table-column>
57 </el-table>
58 </div> 20 </div>
59 </div> 21 </div>
60 22
...@@ -64,20 +26,22 @@ ...@@ -64,20 +26,22 @@
64 <el-row class="priceBar"> 26 <el-row class="priceBar">
65 <el-col :lg="16" :xs="24" class="pd20"> 27 <el-col :lg="16" :xs="24" class="pd20">
66 <div class="flex"> 28 <div class="flex">
67 <div class="item"><label>报名费:</label><span>¥3000</span></div> 29 <div class="item"><label>{{ language==0?'报名费':'Registration Fee' }}</label><span>¥{{form.cptRegistrationFee?.totalFee}}</span></div>
68 <div class="item"><label>保险费:</label><span>¥3000</span></div> 30 <div class="item"><label>{{ language==0?'保险费':'Insurance Fee' }}</label><span>¥{{form.cptInsuranceFee?.totalFee}}</span></div>
69 <div class="item"><label>费用总计:</label><span>¥6000</span></div> 31 <div class="item"><label>{{ language==0?'费用总计':'Total Cost' }}</label><span>¥{{form.totalFee}}</span></div>
70 </div> 32 </div>
71 </el-col> 33 </el-col>
72 <el-col :lg="8" :xs="24" class="text-right pd20"> 34 <el-col :lg="8" :xs="24" class="text-right pd20">
73 <el-link type="primary"><el-icon><Upload /></el-icon>导出参赛人员清单</el-link> 35 <el-link type="primary" @click="exportSignList(1)"><el-icon><Upload /></el-icon>
74 <el-link type="primary"><el-icon><Upload /></el-icon>导出设项报名清单</el-link> 36 {{ language==0?'导出参赛人员清单':'Export Participant List' }}</el-link>
37 <el-link type="primary" @click="exportSignList(2)"><el-icon><Upload /></el-icon>
38 {{ language==0?'导出设项报名清单':'Registration Fee for Event Entry' }}</el-link>
75 </el-col> 39 </el-col>
76 </el-row> 40 </el-row>
77 <div class="text-center pd20"> 41 <div class="text-center pd20">
78 <el-button type="primary" class="" plain round @click="goPrev()">上一步</el-button> 42 <el-button type="primary" class="" plain round @click="goPrev()">{{ language == 0 ? "上一步" : 'Go back' }}</el-button>
79 <el-button type="primary" class="" plain round @click="submitForm()">保存暂不提交审核</el-button> 43 <el-button type="primary" class="" plain round @click="submitForm(0)">{{ language==0?'保存暂不提交审核':'Save, Do Not Submit for Review Yet' }}</el-button>
80 <el-button type="primary" class="btn-lineG w200px" round @click="submitForm()">提交审核</el-button> 44 <el-button type="primary" class="btn-lineG w200px" round @click="submitForm(1)">{{ language==0?'提交审核':'Submit for review' }}</el-button>
81 </div> 45 </div>
82 </el-card> 46 </el-card>
83 </div> 47 </div>
...@@ -89,64 +53,117 @@ import TeamSignStep from './components/teamSignStep' ...@@ -89,64 +53,117 @@ import TeamSignStep from './components/teamSignStep'
89 import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row" 53 import MatchInfoRow from "@/viewsPc/match/components/matchInfo-row"
90 import GroupInfoRow from "@/viewsPc/match/components/groupInfo-row" 54 import GroupInfoRow from "@/viewsPc/match/components/groupInfo-row"
91 import CoachInfoRow from "@/viewsPc/match/components/coachInfo-row" 55 import CoachInfoRow from "@/viewsPc/match/components/coachInfo-row"
92 56 import SignInfoTable from "@/viewsPc/match/components/signInfo-table"
93 import {ref} from "vue" 57 import {getCurrentInstance, ref} from "vue"
94 import cache from "@/plugins/cache"; 58 import cache from "@/plugins/cache";
95 import {onMounted} from "@vue/runtime-core"; 59 import {onMounted} from "@vue/runtime-core";
96 import * as match from "@/apiPc/match" 60 import * as match from "@/apiPc/match"
97 import {useRoute, useRouter} from "vue-router"; 61 import {useRoute, useRouter} from "vue-router";
98 import useUserStore from "@/store/modules/user"; 62 import useUserStore from "@/store/modules/user";
63 import ZuTable from "@/viewsPc/match/components/zu-table";
64 import {ElMessageBox} from "element-plus";
65 import {exportCn} from "@/apiPc/match";
99 const route = useRoute() 66 const route = useRoute()
100 const router = useRouter() 67 const router = useRouter()
101 const activeStep = ref(3) 68 const activeStep = ref(3)
102 const matchInfo = ref({})
103 const groupInfo = useUserStore().group || {} 69 const groupInfo = useUserStore().group || {}
104 const language = ref(cache.local.get('language') || 0) 70 const language = ref(cache.local.get('language') || 0)
105 const groupId = ref() 71 const groupId = ref()
106 const form = ref({}) 72 const form = ref({})
107 const matchId = ref() 73 const matchId = ref(route.query.matchId)
108 const names = ref({}) 74 const signInfoList = ref([])
75 const zuTableList = ref([])
76 const {proxy} = getCurrentInstance()
109 onMounted(()=>{ 77 onMounted(()=>{
110 console.log(route.query) 78 // console.log(route.query)
111 groupId.value = route.query.groupId || 0
112 matchId.value = route.query.matchId 79 matchId.value = route.query.matchId
113 getMatch() 80 groupId.value = route.query.groupId || 0
114 getFee() 81 getSignList()
115 if(groupId.value!=0){ 82 getFee(groupId.value)
116 tuandui()
117 } else {
118 geren()
119 }
120 }) 83 })
121 const getMatch = () => {
122 match.getMatchById({ id: matchId.value }).then(res => {
123 matchInfo.value = res.data
124 })
125 }
126 function geren() {
127 match.getChooseDoneSingleCoachs(matchId.value).then(res => {
128 names.value = res.data
129 })
130 }
131 84
132 function tuandui() { 85
133 match.getChooseDoneGroupCoachs(matchId.value, groupId.value).then(res => { 86 function getSignList() {
134 names.value = res.data 87 match.getMySignInfoList({
88 cptId: matchId.value,
89 groupId: groupId.value
90 }).then(res=>{
91 signInfoList.value = res.data.singleData
92 zuTableList.value = res.data.zuData
135 }) 93 })
136 } 94 }
137 const goPrev = () => { 95 const goPrev = () => {
138 router.go(-1) 96 // router.go(-1)
97 router.push({
98 name: 'chooseSportsman',
99 query: {
100 matchId: matchId.value,
101 groupId: groupId.value
102 }
103 })
139 } 104 }
140 const getFee = () => { 105 const getFee = (entryId) => {
141 console.log(groupId.value)
142
143 match.getTotalFee({ 106 match.getTotalFee({
144 entryId: groupId.value, 107 entryId: entryId,
145 cptId: matchId.value 108 cptId: matchId.value
146 }).then(res => { 109 }).then(res => {
147 form.value = res.data 110 form.value = res.data
148 }) 111 })
149 } 112 }
113 const submitForm = (n) => {
114 if(n==0){
115 ElMessageBox.confirm(`您当前的操作为暂存,并不是提交审核,必须在报名截止时间XXXX-XX-XX之前完成提交。\n` +
116 '\n' +
117 '您也可以在个人中心-我的报名中,找到这条报名,点击提交审核。','提示',{
118 confirmButtonText: '去个人中心',
119 cancelButtonText: '知道了',
120 type: 'warning'
121 }).then((res)=>{
122 console.log(res)
123 router.push({name: 'myMatch'})
124 })
125 return
126 }
127 match.commitSign({
128 groupId: groupId.value,
129 cptId: matchId.value
130 }).then(res=>{
131 router.push({
132 name:`commitDone`,
133 params: {
134 orderId: res.data
135 }
136 })
137 })
138 }
139 function exportSignList(n) {
140 var obj = {
141 cptId: matchId.value,
142 groupId: groupId.value,
143 type:n
144 }
145 var fileName
146 if(language.value==0){
147 if(n==1){
148 fileName = '参赛人员清单'
149 }else {
150 fileName = '设项报名清单'
151 }
152 proxy.download('/league/sign/exportCn', {
153 ...obj
154 }, `${fileName}_${new Date().getTime()}.xlsx`)
155 } else {
156 if(n==1){
157 fileName = 'Participant List'
158 }else {
159 fileName = 'Registration Fee for Event Entry'
160 }
161 proxy.download('/league/sign/exportEn', {
162 ...obj
163 }, `${fileName}_${new Date().getTime()}.xlsx`)
164 }
165
166 }
150 </script> 167 </script>
151 168
152 <style scoped lang="scss"> 169 <style scoped lang="scss">
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
7 </el-card> 7 </el-card>
8 <div class="h20"></div> 8 <div class="h20"></div>
9 <div class="panel" style="box-shadow: var(--el-box-shadow)"> 9 <div class="panel" style="box-shadow: var(--el-box-shadow)">
10 <match-info-row :matchInfo="matchInfo" :language="language"/> 10 <match-info-row :match-id="cptId" :language="language"/>
11 <div class="h20"></div> 11 <div class="h20"></div>
12 <el-form ref="ruleFormRef" label-width="120px" class="signForm" 12 <el-form ref="ruleFormRef" label-width="120px" class="signForm"
13 :model="form" :rules="rules" 13 :model="form" :rules="rules"
...@@ -108,8 +108,8 @@ const data = reactive({ ...@@ -108,8 +108,8 @@ const data = reactive({
108 enBo:{} 108 enBo:{}
109 }, 109 },
110 form: {}, 110 form: {},
111 groupId: 0, 111 groupId: route.query.groupId||0,
112 cptId: 0, 112 cptId: route.query.matchId||0,
113 signType: false, 113 signType: false,
114 regionsList: [], 114 regionsList: [],
115 participantsInfoArr: [], 115 participantsInfoArr: [],
...@@ -143,9 +143,7 @@ const uploadUrl = ref('/upload/upLoadToFileServer') ...@@ -143,9 +143,7 @@ const uploadUrl = ref('/upload/upLoadToFileServer')
143 143
144 onMounted(() => { 144 onMounted(() => {
145 // 获取团体信息 145 // 获取团体信息
146 groupId.value = route.query.groupId
147 getGroupInfo() 146 getGroupInfo()
148 cptId.value = route.query.matchId
149 signType.value = route.query.signType 147 signType.value = route.query.signType
150 148
151 getRegionsList() 149 getRegionsList()
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
5 <!-- 国内-机构注册--> 5 <!-- 国内-机构注册-->
6 <el-card> 6 <el-card>
7 <el-steps :active="activeStep" finish-status="success" align-center> 7 <el-steps :active="activeStep" finish-status="success" align-center>
8 <el-step title="创建账号"/> 8 <el-step :title="language==0?'创建账号':'create an account'"/>
9 <el-step title="注册完成"/> 9 <el-step :title="language==0?'注册完成':'stered successfully'" />
10 </el-steps> 10 </el-steps>
11 </el-card> 11 </el-card>
12 12
...@@ -14,37 +14,53 @@ ...@@ -14,37 +14,53 @@
14 <div v-if="activeStep==0"> 14 <div v-if="activeStep==0">
15 <el-card style="min-height: 50vh"> 15 <el-card style="min-height: 50vh">
16 <div class="pt30"> 16 <div class="pt30">
17 <el-form class="d-form" size="large" label-width="120" 17 <el-form class="d-form" size="large" :label-width="language==0?120:180"
18 style="max-width: 500px;margin: auto"> 18 style="max-width: 500px;margin: auto">
19 <el-form-item label="WDSF卡号" required> 19 <el-form-item :label="language==0?'WDSF卡号':'WDSF'" required>
20 <el-input type="text" v-model="form.WDSF" @change="resetCode(0)" @blur="verifyCode"> 20 <el-input type="text" v-model="form.card" @change="resetCode(0)" @blur="verifyCode">
21 <template #append> 21 <template #append>
22 <el-button type="primary" plain style="width: 110px" @click="checkwdsf"> 22 <el-button type="primary" plain style="width: 110px" @click="checkCard">
23 <span>校验卡号</span> 23 <el-icon v-if="checkStatus" size="16" color="#67C23A"><CircleCheckFilled /></el-icon>
24 <span v-else>{{ language==0?'校验卡号':'Check Code' }}</span>
24 </el-button> 25 </el-button>
25 </template> 26 </template>
26 </el-input> 27 </el-input>
28
27 </el-form-item> 29 </el-form-item>
28 <el-form-item label="手机/邮箱" required> 30 <el-form-item :label="language==0?'手机/邮箱':'E-mail / Phone number'" required>
29 <el-input type="text" v-model="form.account" @change="resetCode(1)" @blur="verifyCode"/> 31 <el-input type="text" v-model="form.account" @change="resetCode(1)" @blur="verifyCode"/>
30 </el-form-item> 32 </el-form-item>
31 <el-form-item label="验证码" required> 33 <el-form-item :label="language==0?'验证码':'Code'" required>
32 <el-input v-model="form.code"> 34 <el-input v-model="form.code">
33 <template #append> 35 <template #append>
34 <el-button type="primary" plain style="width: 110px" @click="sendsmsMsg"> 36 <el-button type="primary" plain style="width: 110px" @click="sendsmsMsg">
35 <count-down v-if="counting" v-slot="{ totalSeconds }" :time="60000" @end="counting=false"> 37 <count-down v-if="counting" v-slot="{ totalSeconds }" :time="60000" @end="counting=false">
36 {{ totalSeconds }} 38 {{ totalSeconds }} {{ language==0?'秒':'s' }}
37 </count-down> 39 </count-down>
38 <span v-else>发送验证码</span> 40 <span v-else>{{ language==0?'发送验证码':'Send code' }}</span>
39 </el-button> 41 </el-button>
40 </template> 42 </template>
41 </el-input> 43 </el-input>
42 </el-form-item> 44 </el-form-item>
45 <div class="h30"></div>
46 <div class="leftboderTT">{{ language == 0 ? '登录密码' : 'Password' }} <span
47 v-if="language==0">(登录时需要验证,保护账户信息)</span></div>
48 <div class="h20"></div>
49 <el-form-item :label="language==0?'密码':'Password'" required>
50 <el-input type="password" show-password v-model="form.password"
51 :placeholder="language==0?'6-16位密码。区分大小写':''"/>
52 </el-form-item>
53 <el-form-item :label="language==0?'确认密码':'Confirm Password'" required>
54 <el-input type="password" show-password v-model="form.confirmPassword" @blur="vconfirmPassword"
55 :placeholder="language==0?'再次输入密码':'Confirm Password'"/>
56 </el-form-item>
43 </el-form> 57 </el-form>
44 </div> 58 </div>
45 <div class="text-center"> 59 <div class="text-center">
46 <!-- <el-button class="primary-kx" round @click="goBack">取消</el-button>--> 60 <!-- <el-button class="primary-kx" round @click="goBack">取消</el-button>-->
47 <el-button type="primary" class="btn-lineG w200px" round @click="next">下一步</el-button> 61 <el-button type="primary" class="btn-lineG w200px" round @click="next">
62 {{ language==0?'立即注册':'Register Now' }}
63 </el-button>
48 </div> 64 </div>
49 </el-card> 65 </el-card>
50 </div> 66 </div>
...@@ -66,19 +82,22 @@ import Vcode from "vue3-puzzle-vcode" ...@@ -66,19 +82,22 @@ import Vcode from "vue3-puzzle-vcode"
66 import { ElMessage } from 'element-plus' 82 import { ElMessage } from 'element-plus'
67 import CountDown from '@chenfengyuan/vue-countdown' 83 import CountDown from '@chenfengyuan/vue-countdown'
68 import cache from '@/plugins/cache' 84 import cache from '@/plugins/cache'
85 import {checkWdsf, getCaptchaSms, registerSingle} from "@/apiPc/match";
86 import {setToken} from "@/utils/auth";
69 const language = ref(cache.local.get('language') || 0) 87 const language = ref(cache.local.get('language') || 0)
70 88
71 const data = reactive({ 89 const data = reactive({
72 isShow:false, 90 isShow:false,
73 isCodeTrue:0, 91 isCodeTrue:0,
74 counting:false, 92 counting:false,
93 checkStatus:false,
75 form:{}, 94 form:{},
76 activeStep: 0, 95 activeStep: 0,
77 failVcode:'验证失败,请重试', 96 failVcode:'验证失败,请重试',
78 successVcode:'验证通过!', 97 successVcode:'验证通过!',
79 sliderText: '拖动滑块完成拼图', 98 sliderText: '拖动滑块完成拼图',
80 }) 99 })
81 const {isShow,isCodeTrue,counting,form,activeStep,failVcode,successVcode,sliderText} = toRefs(data) 100 const {isShow,isCodeTrue,counting,form,activeStep,failVcode,successVcode,sliderText,checkStatus} = toRefs(data)
82 onMounted(()=>{ 101 onMounted(()=>{
83 if(language.value==1){ 102 if(language.value==1){
84 failVcode.value = 'Error!' 103 failVcode.value = 'Error!'
...@@ -95,14 +114,15 @@ function sendsmsMsg() { ...@@ -95,14 +114,15 @@ function sendsmsMsg() {
95 } 114 }
96 return 115 return
97 } 116 }
117
98 if(counting.value){ 118 if(counting.value){
99 return 119 return
100 } else { 120 } else {
101 isShow.value = true 121 isShow.value = true
102 } 122 }
103 } 123 }
104 function checkwdsf() { 124 function checkCard() {
105 if(!form.value.WDSF){ 125 if(!form.value.card){
106 if(language.value==0){ 126 if(language.value==0){
107 ElMessage.error('请填写WDSF卡号') 127 ElMessage.error('请填写WDSF卡号')
108 } else { 128 } else {
...@@ -125,13 +145,15 @@ function codeSuccess(msg) { ...@@ -125,13 +145,15 @@ function codeSuccess(msg) {
125 isShow.value = false 145 isShow.value = false
126 isCodeTrue.value += 1 146 isCodeTrue.value += 1
127 if(isCodeTrue.value==1){ 147 if(isCodeTrue.value==1){
128 148 checkWdsf({card:form.value.card}).then(res=>{
149 checkStatus.value = res.data
150 })
129 } 151 }
130 if(isCodeTrue.value==2){ 152 if(isCodeTrue.value==2){
131 counting.value = true 153 counting.value = true
132 // getCaptchaSms({account:form.value.account}).then(res=>{ 154 getCaptchaSms({account:form.value.account}).then(res=>{
133 // 155
134 // }) 156 })
135 } 157 }
136 158
137 } 159 }
...@@ -139,10 +161,24 @@ function resetCode(n) { ...@@ -139,10 +161,24 @@ function resetCode(n) {
139 isCodeTrue.value = n 161 isCodeTrue.value = n
140 } 162 }
141 function next() { 163 function next() {
142 activeStep.value = 1 164 registerSingle(form.value).then(res=>{
165 setToken(res.data.token)
166 activeStep.value = 1
167 })
143 } 168 }
144 </script> 169 </script>
145 170
146 <style scoped> 171 <style scoped lang="scss">
172 .leftboderTT {
173 color: var(--el-color-primary);
174 font-size: 16px;
175 font-weight: 600;
147 176
177 span {
178 color: #929AA0;
179 font-size: 14px;
180 }
181 }
182 .h20{height: 20px}
183 .h30{height: 30px}
148 </style> 184 </style>
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
10 <template #append> 10 <template #append>
11 <el-button type="primary" plain style="width: 110px" @click="sendsmsMsg"> 11 <el-button type="primary" plain style="width: 110px" @click="sendsmsMsg">
12 <count-down v-if="counting" v-slot="{ totalSeconds }" :time="60000" @end="counting=false"> 12 <count-down v-if="counting" v-slot="{ totalSeconds }" :time="60000" @end="counting=false">
13 {{ totalSeconds }} 13 {{ totalSeconds }} {{ language==0?'秒':'s' }}
14 </count-down> 14 </count-down>
15 <span v-else> 15 <span v-else>
16 {{ language==0?'发送验证码':'Send code' }} 16 {{ language==0?'发送验证码':'Send code' }}
...@@ -89,9 +89,9 @@ function codeSuccess(msg) { ...@@ -89,9 +89,9 @@ function codeSuccess(msg) {
89 isShow.value = false 89 isShow.value = false
90 isCodeTrue.value = true 90 isCodeTrue.value = true
91 counting.value = true 91 counting.value = true
92 // getCaptchaSms({account:form.value.account}).then(res=>{ 92 getCaptchaSms({account:form.value.account}).then(res=>{
93 // 93
94 // }) 94 })
95 } 95 }
96 function resetCode() { 96 function resetCode() {
97 isCodeTrue.value = false 97 isCodeTrue.value = false
......
...@@ -167,6 +167,7 @@ const goStep3 = () => { ...@@ -167,6 +167,7 @@ const goStep3 = () => {
167 loading.value = true 167 loading.value = true
168 delete form.value.confirmPassword 168 delete form.value.confirmPassword
169 form.value.regionId = regionArr.value.pop() 169 form.value.regionId = regionArr.value.pop()
170 form.value.username= props.accont
170 match.pcRegisterTeam(form.value).then(res => { 171 match.pcRegisterTeam(form.value).then(res => {
171 setToken(res.data.token) 172 setToken(res.data.token)
172 emit('submit') 173 emit('submit')
......
...@@ -17,13 +17,14 @@ ...@@ -17,13 +17,14 @@
17 </template> 17 </template>
18 18
19 <script setup> 19 <script setup>
20 import {reactive} from "@vue/runtime-core"; 20 import {reactive,toRefs} from "@vue/runtime-core";
21 import {toRefs} from "@vueuse/shared/index"; 21 const router = useRouter()
22 import Vcode from "vue3-puzzle-vcode" 22 import Vcode from "vue3-puzzle-vcode"
23 import {ElMessage} from 'element-plus' 23 import {ElMessage} from 'element-plus'
24 import CountDown from '@chenfengyuan/vue-countdown' 24 import CountDown from '@chenfengyuan/vue-countdown'
25 import {getCaptchaSms, checkRegisterCode} from "@/apiPc/match" 25 import {getCaptchaSms, checkRegisterCode} from "@/apiPc/match"
26 import cache from '@/plugins/cache' 26 import cache from '@/plugins/cache'
27 import {useRouter} from "vue-router";
27 const language = ref(cache.local.get('language') || 0) 28 const language = ref(cache.local.get('language') || 0)
28 const props = defineProps({ 29 const props = defineProps({
29 accont:{ 30 accont:{
...@@ -42,10 +43,15 @@ const {isShow, isCodeTrue, counting, form, activeStep} = toRefs(data) ...@@ -42,10 +43,15 @@ const {isShow, isCodeTrue, counting, form, activeStep} = toRefs(data)
42 const emit = defineEmits(['submit', 'userName']) 43 const emit = defineEmits(['submit', 'userName'])
43 44
44 const goHome = () => { 45 const goHome = () => {
45 46 router.push({
47 name: `home`
48 })
46 } 49 }
47 const goSign = () => { 50 const goSign = () => {
48 51 router.push({
52 name: `matchDetail`,
53 params:{id:0}
54 })
49 } 55 }
50 56
51 </script> 57 </script>
......
...@@ -70,19 +70,19 @@ export default defineConfig(({ mode, command }) => { ...@@ -70,19 +70,19 @@ export default defineConfig(({ mode, command }) => {
70 rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '') 70 rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '')
71 }, 71 },
72 '/dev-api/ztx-match': { 72 '/dev-api/ztx-match': {
73 target: 'http://192.168.1.132:8083', 73 target: 'http://192.168.1.131:8083',
74 // target: 'http://192.168.1.132:8081', 74 // target: 'http://192.168.1.132:8081',
75 changeOrigin: true, 75 changeOrigin: true,
76 rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '') 76 rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '')
77 }, 77 },
78 '/dev-api/ztx-webSite': { 78 '/dev-api/ztx-webSite': {
79 // target: 'http://123.60.96.243:1897/stage-api/', 79 // target: 'http://123.60.96.243:1897/stage-api/',
80 target: 'http://192.168.1.130:8083/', 80 target: 'http://192.168.1.131:8083/',
81 changeOrigin: true, 81 changeOrigin: true,
82 rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') 82 rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '')
83 }, 83 },
84 '/dev-api': { 84 '/dev-api': {
85 target: 'http://192.168.1.130:8083', 85 target: 'http://192.168.1.131:8083',
86 // target: 'http://localhost:8787', 86 // target: 'http://localhost:8787',
87 changeOrigin: true, 87 changeOrigin: true,
88 rewrite: (p) => p.replace(/^\/dev-api/, '') 88 rewrite: (p) => p.replace(/^\/dev-api/, '')
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!