no message
Showing
122 changed files
with
2248 additions
and
799 deletions
No preview for this file type
| ... | @@ -2,7 +2,7 @@ import request from '@/utils/request' | ... | @@ -2,7 +2,7 @@ import request from '@/utils/request' |
| 2 | 2 | ||
| 3 | export function getMaList(params) { | 3 | export function getMaList(params) { |
| 4 | return request({ | 4 | return request({ |
| 5 | url: `/ztx-match/league/competition/webList`, | 5 | url: `/league/competition/webList`, |
| 6 | method: 'get', | 6 | method: 'get', |
| 7 | params: params | 7 | params: params |
| 8 | }) | 8 | }) |
| ... | @@ -18,7 +18,7 @@ export function getMatchById(params) { | ... | @@ -18,7 +18,7 @@ export function getMatchById(params) { |
| 18 | 18 | ||
| 19 | export function getMySignCptList(query) { | 19 | export function getMySignCptList(query) { |
| 20 | return request({ | 20 | return request({ |
| 21 | url: 'ztx-match/league/competition/getMySignCptList', | 21 | url: '/league/competition/getMySignCptList', |
| 22 | method: 'get', | 22 | method: 'get', |
| 23 | params: query | 23 | params: query |
| 24 | }) | 24 | }) |
| ... | @@ -35,35 +35,35 @@ export function getMySignDetailById(params) { | ... | @@ -35,35 +35,35 @@ export function getMySignDetailById(params) { |
| 35 | // 获取赛事下的已报团队 | 35 | // 获取赛事下的已报团队 |
| 36 | export function getGroupListByCptId(cptId) { | 36 | export function getGroupListByCptId(cptId) { |
| 37 | return request({ | 37 | return request({ |
| 38 | url: `ztx-match/league/group/getGroupListByCptId/${cptId}`, | 38 | url: `/league/group/getGroupListByCptId/${cptId}`, |
| 39 | method: 'get' | 39 | method: 'get' |
| 40 | }) | 40 | }) |
| 41 | } | 41 | } |
| 42 | 42 | ||
| 43 | export function getMyPersonInfoWithcptId(cptId) { | 43 | export function getMyPersonInfoWithcptId(cptId) { |
| 44 | return request({ | 44 | return request({ |
| 45 | url: `ztx-match/systemj/personInfo/getMyPersonInfo/${cptId}`, | 45 | url: `/systemj/personInfo/getMyPersonInfo/${cptId}`, |
| 46 | method: 'get' | 46 | method: 'get' |
| 47 | }) | 47 | }) |
| 48 | } | 48 | } |
| 49 | 49 | ||
| 50 | export function getMyPersonInfo() { | 50 | export function getMyPersonInfo() { |
| 51 | return request({ | 51 | return request({ |
| 52 | url: `/ztx-match/systemj/personInfo/getMyPersonInfo`, | 52 | url: `/systemj/personInfo/getMyPersonInfo`, |
| 53 | method: 'get' | 53 | method: 'get' |
| 54 | }) | 54 | }) |
| 55 | } | 55 | } |
| 56 | 56 | ||
| 57 | export function countryList() { | 57 | export function countryList() { |
| 58 | return request({ | 58 | return request({ |
| 59 | url: `/ztx-match/systemj/country/countryList`, | 59 | url: `/systemj/country/countryList`, |
| 60 | method: 'get' | 60 | method: 'get' |
| 61 | }) | 61 | }) |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | export function saveMyBaseInfo(data) { | 64 | export function saveMyBaseInfo(data) { |
| 65 | return request({ | 65 | return request({ |
| 66 | url: `/ztx-match/systemj/personInfo/saveMyBaseInfo`, | 66 | url: `/systemj/personInfo/saveMyBaseInfo`, |
| 67 | method: 'post', | 67 | method: 'post', |
| 68 | data: data | 68 | data: data |
| 69 | }) | 69 | }) |
| ... | @@ -87,7 +87,7 @@ export function checkRegisterCode(data) { | ... | @@ -87,7 +87,7 @@ export function checkRegisterCode(data) { |
| 87 | 87 | ||
| 88 | export function getMyGroupList() { | 88 | export function getMyGroupList() { |
| 89 | return request({ | 89 | return request({ |
| 90 | url: `/ztx-match/league/group/getMyGroupList`, | 90 | url: `/league/group/getMyGroupList`, |
| 91 | method: 'get' | 91 | method: 'get' |
| 92 | }) | 92 | }) |
| 93 | } | 93 | } |
| ... | @@ -115,6 +115,20 @@ export function saveMyGroup(data) { | ... | @@ -115,6 +115,20 @@ export function saveMyGroup(data) { |
| 115 | data: data | 115 | data: data |
| 116 | }) | 116 | }) |
| 117 | } | 117 | } |
| 118 | export function saveMyGroupForCpt(data) { | ||
| 119 | return request({ | ||
| 120 | url: `/league/group/saveMyGroupForCpt`, | ||
| 121 | method: 'post', | ||
| 122 | data: data | ||
| 123 | }) | ||
| 124 | } | ||
| 125 | export function commitAudit(data) { | ||
| 126 | return request({ | ||
| 127 | url: `/league/group/commitAudit`, | ||
| 128 | method: 'post', | ||
| 129 | data: data | ||
| 130 | }) | ||
| 131 | } | ||
| 118 | 132 | ||
| 119 | // 退出团队 | 133 | // 退出团队 |
| 120 | export function leaveGroup(groupId) { | 134 | export function leaveGroup(groupId) { |
| ... | @@ -127,7 +141,7 @@ export function leaveGroup(groupId) { | ... | @@ -127,7 +141,7 @@ export function leaveGroup(groupId) { |
| 127 | // 根据Id获取人员信息 | 141 | // 根据Id获取人员信息 |
| 128 | export function getPersonInfoById(id) { | 142 | export function getPersonInfoById(id) { |
| 129 | return request({ | 143 | return request({ |
| 130 | url: `ztx-match/systemj/personInfo/${id}`, | 144 | url: `/systemj/personInfo/${id}`, |
| 131 | method: 'get' | 145 | method: 'get' |
| 132 | }) | 146 | }) |
| 133 | } | 147 | } |
| ... | @@ -135,7 +149,7 @@ export function getPersonInfoById(id) { | ... | @@ -135,7 +149,7 @@ export function getPersonInfoById(id) { |
| 135 | // 保存补充信息 | 149 | // 保存补充信息 |
| 136 | export function saveSupplementInfo(data) { | 150 | export function saveSupplementInfo(data) { |
| 137 | return request({ | 151 | return request({ |
| 138 | url: `ztx-match/league/competitionPersonInfo/savePersonInfo`, | 152 | url: `/league/competitionPersonInfo/savePersonInfo`, |
| 139 | method: 'post', | 153 | method: 'post', |
| 140 | data: data | 154 | data: data |
| 141 | }) | 155 | }) |
| ... | @@ -144,14 +158,14 @@ export function saveSupplementInfo(data) { | ... | @@ -144,14 +158,14 @@ export function saveSupplementInfo(data) { |
| 144 | // 获取补充信息 | 158 | // 获取补充信息 |
| 145 | export function getSupplementInfo(id) { | 159 | export function getSupplementInfo(id) { |
| 146 | return request({ | 160 | return request({ |
| 147 | url: `ztx-match/league/competitionPersonInfo/${id}`, | 161 | url: `/league/competitionPersonInfo/${id}`, |
| 148 | method: 'get' | 162 | method: 'get' |
| 149 | }) | 163 | }) |
| 150 | } | 164 | } |
| 151 | 165 | ||
| 152 | export function getMySignInfo(data) { | 166 | export function getMySignInfo(data) { |
| 153 | return request({ | 167 | return request({ |
| 154 | url: `ztx-match/league/sign/getMySignInfo`, | 168 | url: `/league/sign/getMySignInfo`, |
| 155 | method: 'post', | 169 | method: 'post', |
| 156 | data: data | 170 | data: data |
| 157 | }) | 171 | }) |
| ... | @@ -173,7 +187,7 @@ export function getLeveListByGroupId(cptGroupId) { | ... | @@ -173,7 +187,7 @@ export function getLeveListByGroupId(cptGroupId) { |
| 173 | 187 | ||
| 174 | export function saveMyTeam(data) { | 188 | export function saveMyTeam(data) { |
| 175 | return request({ | 189 | return request({ |
| 176 | url: `ztx-match/league/team/saveMyTeam`, | 190 | url: `/league/team/saveMyTeam`, |
| 177 | method: 'post', | 191 | method: 'post', |
| 178 | data: data | 192 | data: data |
| 179 | }) | 193 | }) |
| ... | @@ -181,7 +195,7 @@ export function saveMyTeam(data) { | ... | @@ -181,7 +195,7 @@ export function saveMyTeam(data) { |
| 181 | 195 | ||
| 182 | export function getMyOrderList(params) { | 196 | export function getMyOrderList(params) { |
| 183 | return request({ | 197 | return request({ |
| 184 | url: `/ztx-match/league/signOrder/getMyOrderList`, | 198 | url: `/league/signOrder/getMyOrderList`, |
| 185 | method: 'get', | 199 | method: 'get', |
| 186 | params: params | 200 | params: params |
| 187 | }) | 201 | }) |
| ... | @@ -196,7 +210,7 @@ export function getMySignListFromOrderList(orderId) { | ... | @@ -196,7 +210,7 @@ export function getMySignListFromOrderList(orderId) { |
| 196 | 210 | ||
| 197 | export function getMyOrderDetail(orderId) { | 211 | export function getMyOrderDetail(orderId) { |
| 198 | return request({ | 212 | return request({ |
| 199 | url: `/ztx-match/league/signOrder/getMyOrderDetail/${orderId}`, | 213 | url: `/league/signOrder/getMyOrderDetail/${orderId}`, |
| 200 | method: 'get' | 214 | method: 'get' |
| 201 | }) | 215 | }) |
| 202 | } | 216 | } |
| ... | @@ -219,30 +233,37 @@ export function getVenueDetail(id) { | ... | @@ -219,30 +233,37 @@ export function getVenueDetail(id) { |
| 219 | // 获取团队下的队伍 | 233 | // 获取团队下的队伍 |
| 220 | export function getMyTeamList(cptId, groupId) { | 234 | export function getMyTeamList(cptId, groupId) { |
| 221 | return request({ | 235 | return request({ |
| 222 | url: `ztx-match/league/team/getTeamList/${cptId}/${groupId}`, | 236 | url: `/league/team/getTeamList/${cptId}/${groupId}`, |
| 223 | method: 'get' | 237 | method: 'get' |
| 224 | }) | 238 | }) |
| 225 | } | 239 | } |
| 226 | 240 | ||
| 227 | export function getMyGroupForCpt(groupId, cptId) { | 241 | export function getMyGroupForCpt(groupId, cptId) { |
| 228 | return request({ | 242 | return request({ |
| 229 | url: `ztx-match/league/group/getMyGroupForCpt/${groupId}/${cptId}`, | 243 | url: `/league/group/getMyGroupForCpt/${groupId}/${cptId}`, |
| 230 | method: 'get' | 244 | method: 'get' |
| 231 | }) | 245 | }) |
| 232 | } | 246 | } |
| 233 | 247 | ||
| 234 | export function getMyGroupForCptFilter(groupId, cptId, query) { | 248 | export function getMyGroupForCptFilter(groupId, cptId, query) { |
| 235 | return request({ | 249 | return request({ |
| 236 | url: `ztx-match/league/group/getMyGroupForCptFilter/${groupId}/${cptId}`, | 250 | url: `/league/group/getMyGroupForCptFilter/${groupId}/${cptId}`, |
| 237 | method: 'post', | 251 | method: 'post', |
| 238 | data: query | 252 | data: query |
| 239 | }) | 253 | }) |
| 240 | } | 254 | } |
| 255 | export function getGroupPersonList(query,groupId) { | ||
| 256 | return request({ | ||
| 257 | url: `/systemj/personInfo/getPersonInfoListByGroupIdNoLabel/${groupId}`, | ||
| 258 | method: 'get', | ||
| 259 | params: query | ||
| 260 | }) | ||
| 261 | } | ||
| 241 | 262 | ||
| 242 | // 获取团队报名时已选人员 | 263 | // 获取团队报名时已选人员 |
| 243 | export function getChooseDoneGroupCoachs(cptId, groupId) { | 264 | export function getChooseDoneGroupCoachs(cptId, groupId) { |
| 244 | return request({ | 265 | return request({ |
| 245 | url: `ztx-match/league/unitCompetitionRole/getGroupInfo/${cptId}/${groupId}`, | 266 | url: `/league/unitCompetitionRole/getGroupInfo/${cptId}/${groupId}`, |
| 246 | method: 'get' | 267 | method: 'get' |
| 247 | }) | 268 | }) |
| 248 | } | 269 | } |
| ... | @@ -250,14 +271,14 @@ export function getChooseDoneGroupCoachs(cptId, groupId) { | ... | @@ -250,14 +271,14 @@ export function getChooseDoneGroupCoachs(cptId, groupId) { |
| 250 | // 获取个人报名时已选人员 | 271 | // 获取个人报名时已选人员 |
| 251 | export function getChooseDoneSingleCoachs(cptId) { | 272 | export function getChooseDoneSingleCoachs(cptId) { |
| 252 | return request({ | 273 | return request({ |
| 253 | url: `ztx-match/league/unitCompetitionRole/getPersonInfo/${cptId}`, | 274 | url: `/league/unitCompetitionRole/getPersonInfo/${cptId}`, |
| 254 | method: 'get' | 275 | method: 'get' |
| 255 | }) | 276 | }) |
| 256 | } | 277 | } |
| 257 | 278 | ||
| 258 | export function savePersonForMyGroup(data) { | 279 | export function savePersonForMyGroup(data) { |
| 259 | return request({ | 280 | return request({ |
| 260 | url: `ztx-match/systemj/personInfo/savePersonForMyGroup`, | 281 | url: `/systemj/personInfo/savePersonForMyGroup`, |
| 261 | method: 'post', | 282 | method: 'post', |
| 262 | data: data | 283 | data: data |
| 263 | }) | 284 | }) |
| ... | @@ -265,7 +286,7 @@ export function savePersonForMyGroup(data) { | ... | @@ -265,7 +286,7 @@ export function savePersonForMyGroup(data) { |
| 265 | 286 | ||
| 266 | export function savePersonForMyPerson(data) { | 287 | export function savePersonForMyPerson(data) { |
| 267 | return request({ | 288 | return request({ |
| 268 | url: `ztx-match/systemj/personInfo/savePersonForMyPerson`, | 289 | url: `/systemj/personInfo/savePersonForMyPerson`, |
| 269 | method: 'post', | 290 | method: 'post', |
| 270 | data: data | 291 | data: data |
| 271 | }) | 292 | }) |
| ... | @@ -283,14 +304,14 @@ export function editPersonInfo(params) { | ... | @@ -283,14 +304,14 @@ export function editPersonInfo(params) { |
| 283 | // 人员删除 | 304 | // 人员删除 |
| 284 | export function delPerson(id) { | 305 | export function delPerson(id) { |
| 285 | return request({ | 306 | return request({ |
| 286 | url: `ztx-match/systemj/personInfo/${id}`, | 307 | url: `/systemj/personInfo/${id}`, |
| 287 | method: 'delete' | 308 | method: 'delete' |
| 288 | }) | 309 | }) |
| 289 | } | 310 | } |
| 290 | 311 | ||
| 291 | export function singleSignSavePerson(data) { | 312 | export function singleSignSavePerson(data) { |
| 292 | return request({ | 313 | return request({ |
| 293 | url: `ztx-match/league/unitCompetitionRole/savePersonInfo`, | 314 | url: `/league/unitCompetitionRole/savePersonInfo`, |
| 294 | method: 'post', | 315 | method: 'post', |
| 295 | data: data | 316 | data: data |
| 296 | }) | 317 | }) |
| ... | @@ -298,7 +319,7 @@ export function singleSignSavePerson(data) { | ... | @@ -298,7 +319,7 @@ export function singleSignSavePerson(data) { |
| 298 | 319 | ||
| 299 | export function groupSignSavePerson(data) { | 320 | export function groupSignSavePerson(data) { |
| 300 | return request({ | 321 | return request({ |
| 301 | url: `ztx-match/league/unitCompetitionRole/saveGroupInfo`, | 322 | url: `/league/unitCompetitionRole/saveGroupInfo`, |
| 302 | method: 'post', | 323 | method: 'post', |
| 303 | data: data | 324 | data: data |
| 304 | }) | 325 | }) |
| ... | @@ -326,20 +347,20 @@ export function getCanSignlevelListFromSelectPerson(groupId, personId) { | ... | @@ -326,20 +347,20 @@ export function getCanSignlevelListFromSelectPerson(groupId, personId) { |
| 326 | } | 347 | } |
| 327 | export function delRank(id) { | 348 | export function delRank(id) { |
| 328 | return request({ | 349 | return request({ |
| 329 | url: `ztx-match/league/team/${id}`, | 350 | url: `/league/team/${id}`, |
| 330 | method: 'delete' | 351 | method: 'delete' |
| 331 | }) | 352 | }) |
| 332 | } | 353 | } |
| 333 | export function getCanSignLevelPerson(data) { | 354 | export function getCanSignLevelPerson(data) { |
| 334 | return request({ | 355 | return request({ |
| 335 | url: `ztx-match/league/competitionLevel/getCanSignLevelPerson`, | 356 | url: `/league/competitionLevel/getCanSignLevelPerson`, |
| 336 | method: 'post', | 357 | method: 'post', |
| 337 | data: data | 358 | data: data |
| 338 | }) | 359 | }) |
| 339 | } | 360 | } |
| 340 | export function sportsmanDone(data) { | 361 | export function sportsmanDone(data) { |
| 341 | return request({ | 362 | return request({ |
| 342 | url: `ztx-match/league/sign/signUp`, | 363 | url: `/league/sign/signUp`, |
| 343 | method: 'post', | 364 | method: 'post', |
| 344 | data: data | 365 | data: data |
| 345 | }) | 366 | }) |
| ... | @@ -347,20 +368,20 @@ export function sportsmanDone(data) { | ... | @@ -347,20 +368,20 @@ export function sportsmanDone(data) { |
| 347 | // 删除报名接口 | 368 | // 删除报名接口 |
| 348 | export function deleteSign(id) { | 369 | export function deleteSign(id) { |
| 349 | return request({ | 370 | return request({ |
| 350 | url: `ztx-match/league/sign/deleteSign/${id}`, | 371 | url: `/league/sign/deleteSign/${id}`, |
| 351 | method: 'post' | 372 | method: 'post' |
| 352 | }) | 373 | }) |
| 353 | } | 374 | } |
| 354 | // 选择运动员的补充信息表头 | 375 | // 选择运动员的补充信息表头 |
| 355 | export function getCptExtraInfo(cptId) { | 376 | export function getCptExtraInfo(cptId) { |
| 356 | return request({ | 377 | return request({ |
| 357 | url: `ztx-match/league/competition/getCptExtraInfo/${cptId}`, | 378 | url: `/league/competition/getCptExtraInfo/${cptId}`, |
| 358 | method: 'get' | 379 | method: 'get' |
| 359 | }) | 380 | }) |
| 360 | } | 381 | } |
| 361 | export function recoverMySign(data) { | 382 | export function recoverMySign(data) { |
| 362 | return request({ | 383 | return request({ |
| 363 | url: `ztx-match/league/sign/recoverMySign`, | 384 | url: `/league/sign/recoverMySign`, |
| 364 | method: 'post', | 385 | method: 'post', |
| 365 | data: data | 386 | data: data |
| 366 | }) | 387 | }) |
| ... | @@ -368,21 +389,21 @@ export function recoverMySign(data) { | ... | @@ -368,21 +389,21 @@ export function recoverMySign(data) { |
| 368 | // 生成订单 | 389 | // 生成订单 |
| 369 | export function commitSign(data) { | 390 | export function commitSign(data) { |
| 370 | return request({ | 391 | return request({ |
| 371 | url: `ztx-match/league/sign/commitSign`, | 392 | url: `/league/sign/commitSign`, |
| 372 | method: 'post', | 393 | method: 'post', |
| 373 | data: data | 394 | data: data |
| 374 | }) | 395 | }) |
| 375 | } | 396 | } |
| 376 | export function getTotalFee(data) { | 397 | export function getTotalFee(data) { |
| 377 | return request({ | 398 | return request({ |
| 378 | url: `ztx-match/league/expenseConfig/getTotalFee`, | 399 | url: `/league/expenseConfig/getTotalFee`, |
| 379 | method: 'post', | 400 | method: 'post', |
| 380 | data: data | 401 | data: data |
| 381 | }) | 402 | }) |
| 382 | } | 403 | } |
| 383 | export function getMemberInfoByCptId(cptId) { | 404 | export function getMemberInfoByCptId(cptId) { |
| 384 | return request({ | 405 | return request({ |
| 385 | url: `ztx-match/systemj/member/editMemberCode/${cptId}`, | 406 | url: `/systemj/member/editMemberCode/${cptId}`, |
| 386 | method: 'get' | 407 | method: 'get' |
| 387 | }) | 408 | }) |
| 388 | } | 409 | } |
| ... | @@ -395,20 +416,20 @@ export function getTemplate() { | ... | @@ -395,20 +416,20 @@ export function getTemplate() { |
| 395 | // 支付 orderId,payType | 416 | // 支付 orderId,payType |
| 396 | export function payMatch(data) { | 417 | export function payMatch(data) { |
| 397 | return request({ | 418 | return request({ |
| 398 | url: `ztx-match/league/signOrder/payForOrderFromPc`, | 419 | url: `/league/signOrder/payForOrderFromPc`, |
| 399 | method: 'post', | 420 | method: 'post', |
| 400 | data: data | 421 | data: data |
| 401 | }) | 422 | }) |
| 402 | } | 423 | } |
| 403 | export function cancelMyUnPayedOrder(orderId) { | 424 | export function cancelMyUnPayedOrder(orderId) { |
| 404 | return request({ | 425 | return request({ |
| 405 | url: `ztx-match/league/signOrder/cancelMyUnPayedOrder/${orderId}`, | 426 | url: `/league/signOrder/cancelMyUnPayedOrder/${orderId}`, |
| 406 | method: 'post' | 427 | method: 'post' |
| 407 | }) | 428 | }) |
| 408 | } | 429 | } |
| 409 | export function getMySignListFromBaoXiang(data) { | 430 | export function getMySignListFromBaoXiang(data) { |
| 410 | return request({ | 431 | return request({ |
| 411 | url: `ztx-match/league/sign/getMySignListFromBaoXiang`, | 432 | url: `/league/sign/getMySignListFromBaoXiang`, |
| 412 | method: 'post', | 433 | method: 'post', |
| 413 | data: data | 434 | data: data |
| 414 | }) | 435 | }) |
| ... | @@ -421,27 +442,27 @@ export function deleteMyGroup(groupId) { | ... | @@ -421,27 +442,27 @@ export function deleteMyGroup(groupId) { |
| 421 | } | 442 | } |
| 422 | export function checkPerson(data) { | 443 | export function checkPerson(data) { |
| 423 | return request({ | 444 | return request({ |
| 424 | url: `ztx-match/systemj/personInfo/checkPersonInfoExist`, | 445 | url: `/systemj/personInfo/checkPersonInfoExist`, |
| 425 | method: 'post', | 446 | method: 'post', |
| 426 | data: data | 447 | data: data |
| 427 | }) | 448 | }) |
| 428 | } | 449 | } |
| 429 | export function getMySignListTree(cptId, personId, teamId) { | 450 | export function getMySignListTree(cptId, personId, teamId) { |
| 430 | return request({ | 451 | return request({ |
| 431 | url: `ztx-match/league/competitionProject/getAllInfoFromSelectPerson/${cptId}/${personId}/${teamId || 0}`, | 452 | url: `/league/competitionProject/getAllInfoFromSelectPerson/${cptId}/${personId}/${teamId || 0}`, |
| 432 | method: 'get' | 453 | method: 'get' |
| 433 | }) | 454 | }) |
| 434 | } | 455 | } |
| 435 | export function getMySignInfoList(data) { | 456 | export function getMySignInfoList(data) { |
| 436 | return request({ | 457 | return request({ |
| 437 | url: `ztx-match/league/sign/getMySignInfoList`, | 458 | url: `/league/sign/getMySignInfoList`, |
| 438 | method: 'post', | 459 | method: 'post', |
| 439 | data: data | 460 | data: data |
| 440 | }) | 461 | }) |
| 441 | } | 462 | } |
| 442 | export function saveMyGroupExtraInfo(data) { | 463 | export function saveMyGroupExtraInfo(data) { |
| 443 | return request({ | 464 | return request({ |
| 444 | url: `ztx-match/league/competitionGroupInfo/saveMyGroupExtraInfo`, | 465 | url: `/league/competitionGroupInfo/saveMyGroupExtraInfo`, |
| 445 | method: 'post', | 466 | method: 'post', |
| 446 | data: data | 467 | data: data |
| 447 | }) | 468 | }) |
| ... | @@ -454,19 +475,19 @@ export function saveMyGroupExtraInfo(data) { | ... | @@ -454,19 +475,19 @@ export function saveMyGroupExtraInfo(data) { |
| 454 | } | 475 | } |
| 455 | export function getMySignIds(cptId, personId, teamId) { | 476 | export function getMySignIds(cptId, personId, teamId) { |
| 456 | return request({ | 477 | return request({ |
| 457 | url: `ztx-match/league/sign/getSignEntityByPersonId/${cptId}/${personId}/${teamId || 0}`, | 478 | url: `/league/sign/getSignEntityByPersonId/${cptId}/${personId}/${teamId || 0}`, |
| 458 | method: 'get' | 479 | method: 'get' |
| 459 | }) | 480 | }) |
| 460 | } | 481 | } |
| 461 | export function querySonLevel(parentId) { | 482 | export function querySonLevel(parentId) { |
| 462 | return request({ | 483 | return request({ |
| 463 | url: `ztx-match/league/competitionSonLevel/querySonLevelByParentId/${parentId}`, | 484 | url: `/league/competitionSonLevel/querySonLevelByParentId/${parentId}`, |
| 464 | method: 'get' | 485 | method: 'get' |
| 465 | }) | 486 | }) |
| 466 | } | 487 | } |
| 467 | export function getPayedOrderPdf(cptId, groupId) { | 488 | export function getPayedOrderPdf(cptId, groupId) { |
| 468 | return request({ | 489 | return request({ |
| 469 | url: `ztx-match/pdf/getPayedOrderPdf/${cptId}/${groupId}`, | 490 | url: `/pdf/getPayedOrderPdf/${cptId}/${groupId}`, |
| 470 | method: 'get' | 491 | method: 'get' |
| 471 | }) | 492 | }) |
| 472 | } | 493 | } | ... | ... |
src/assets/file/h2.pdf
deleted
100644 → 0
No preview for this file type
src/assets/file/jw.pdf
deleted
100644 → 0
No preview for this file type
src/assets/file/ss.pdf
deleted
100644 → 0
No preview for this file type
src/assets/images/bg1@2x.png
deleted
100644 → 0
195 KB
src/assets/images/gg@2x.png
deleted
100644 → 0
794 KB
src/assets/images/gg_bg@2x.png
deleted
100644 → 0
50.2 KB
src/assets/img/head0.png
0 → 100644
1.5 KB
src/assets/img/head1.png
0 → 100644
1.64 KB
src/assets/logo/ico.png
deleted
100644 → 0
3.29 KB
src/assets/pc/banner.png
deleted
100644 → 0
1.14 MB
src/assets/pc/bg.png
deleted
100644 → 0
124 KB
src/assets/pc/btn1.png
deleted
100644 → 0
4.01 KB
src/assets/pc/btn2.png
deleted
100644 → 0
1.34 KB
src/assets/pc/btn3.png
deleted
100644 → 0
1.02 KB
src/assets/pc/btn4.png
deleted
100644 → 0
655 Bytes
src/assets/pc/btn5.png
deleted
100644 → 0
3.2 KB
src/assets/pc/cg01.png
deleted
100644 → 0
23.6 KB
src/assets/pc/cg02.png
deleted
100644 → 0
17.7 KB
src/assets/pc/cg03.png
deleted
100644 → 0
27.7 KB
src/assets/pc/cg04.png
deleted
100644 → 0
29.4 KB
src/assets/pc/cg05.png
deleted
100644 → 0
27.9 KB
src/assets/pc/cg_btn01.png
deleted
100644 → 0
1.38 KB
src/assets/pc/cg_btn01_g.png
deleted
100644 → 0
1.36 KB
src/assets/pc/cg_btn02.png
deleted
100644 → 0
1.51 KB
src/assets/pc/cg_btn02_g.png
deleted
100644 → 0
1.52 KB
src/assets/pc/cg_btn03.png
deleted
100644 → 0
1.49 KB
src/assets/pc/cg_btn03_g.png
deleted
100644 → 0
1.42 KB
src/assets/pc/cg_btn04.png
deleted
100644 → 0
1.81 KB
src/assets/pc/cg_btn04_g.png
deleted
100644 → 0
1.75 KB
src/assets/pc/cg_btn05.png
deleted
100644 → 0
1.1 KB
src/assets/pc/cg_btn05_g.png
deleted
100644 → 0
1.08 KB
src/assets/pc/cg_btn06.png
deleted
100644 → 0
1020 Bytes
src/assets/pc/cg_btn06_g.png
deleted
100644 → 0
1002 Bytes
src/assets/pc/cg_btn07.png
deleted
100644 → 0
1.23 KB
src/assets/pc/cg_btn07_g.png
deleted
100644 → 0
1.2 KB
src/assets/pc/cg_btn08.png
deleted
100644 → 0
1.15 KB
src/assets/pc/cg_btn08_g.png
deleted
100644 → 0
1.09 KB
src/assets/pc/k1.png
deleted
100644 → 0
2.24 KB
src/assets/pc/k2.png
deleted
100644 → 0
2.72 KB
src/assets/pc/k3.png
deleted
100644 → 0
2.36 KB
src/assets/pc/logo.png
deleted
100644 → 0
3.82 KB
src/assets/pc/phone.png
deleted
100644 → 0
545 KB
src/assets/pc/px_banner.png
deleted
100644 → 0
113 KB
src/assets/pc/ss01.png
deleted
100644 → 0
2.2 KB
src/assets/pc/ss01_dwn.png
deleted
100644 → 0
1.36 KB
src/assets/pc/ss02.png
deleted
100644 → 0
2.96 KB
src/assets/pc/ss02_dwn.png
deleted
100644 → 0
2.23 KB
src/assets/pc/ss03.png
deleted
100644 → 0
2.97 KB
src/assets/pc/ss03_dwn.png
deleted
100644 → 0
2.23 KB
src/assets/pc/ss04.png
deleted
100644 → 0
2.52 KB
src/assets/pc/ss04_dwn.png
deleted
100644 → 0
1.69 KB
src/assets/pc/ss05.png
deleted
100644 → 0
2.47 KB
src/assets/pc/ss05_dwn.png
deleted
100644 → 0
1.64 KB
src/assets/pc/ss06.png
deleted
100644 → 0
3.04 KB
src/assets/pc/ss06_dwn.png
deleted
100644 → 0
2.46 KB
src/assets/pc/ss07.png
deleted
100644 → 0
3.34 KB
src/assets/pc/ss07_dwn.png
deleted
100644 → 0
2.56 KB
src/assets/pc/ss08.png
deleted
100644 → 0
2.3 KB
src/assets/pc/ss08_dwn.png
deleted
100644 → 0
1.49 KB
src/assets/pc/ss09.png
deleted
100644 → 0
2.88 KB
src/assets/pc/ss09_dwn.png
deleted
100644 → 0
2.05 KB
src/assets/pc/ss10.png
deleted
100644 → 0
2.37 KB
src/assets/pc/ss10_dwn.png
deleted
100644 → 0
1.56 KB
src/assets/pc/tool02.png
deleted
100644 → 0
985 Bytes
src/assets/pc/tool02_dwn.png
deleted
100644 → 0
974 Bytes
src/assets/pc/tool03.png
deleted
100644 → 0
664 Bytes
src/assets/pc/tool03_dwn.png
deleted
100644 → 0
661 Bytes
src/assets/pc/tool04.png
deleted
100644 → 0
460 Bytes
src/assets/pc/tool04_dwn.png
deleted
100644 → 0
458 Bytes
src/assets/pc/weCode2.jpg
deleted
100644 → 0
40.9 KB
src/assets/pc/wlogo.png
deleted
100644 → 0
4.82 KB
src/assets/sign/tag03.png
0 → 100644
989 Bytes
src/assets/sign/tag04.png
0 → 100644
1.32 KB
src/assets/sign/tag05.png
0 → 100644
1.08 KB
src/assets/sign/tag06.png
0 → 100644
1015 Bytes
| ... | @@ -74,7 +74,7 @@ div:focus { | ... | @@ -74,7 +74,7 @@ div:focus { |
| 74 | .pl-5 { | 74 | .pl-5 { |
| 75 | padding-left: 5px; | 75 | padding-left: 5px; |
| 76 | } | 76 | } |
| 77 | 77 | .mr5{margin-right: 5px;} | |
| 78 | .block { | 78 | .block { |
| 79 | display: block; | 79 | display: block; |
| 80 | } | 80 | } |
| ... | @@ -123,7 +123,7 @@ aside { | ... | @@ -123,7 +123,7 @@ aside { |
| 123 | 123 | ||
| 124 | //main-container全局样式 | 124 | //main-container全局样式 |
| 125 | .app-container { | 125 | .app-container { |
| 126 | padding: 20px; | 126 | padding: 20px 0 0; |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | .components-container { | 129 | .components-container { |
| ... | @@ -138,7 +138,7 @@ aside { | ... | @@ -138,7 +138,7 @@ aside { |
| 138 | .text-center { | 138 | .text-center { |
| 139 | text-align: center | 139 | text-align: center |
| 140 | } | 140 | } |
| 141 | 141 | .h20{height: 20px;} | |
| 142 | .sub-navbar { | 142 | .sub-navbar { |
| 143 | height: 50px; | 143 | height: 50px; |
| 144 | line-height: 50px; | 144 | line-height: 50px; |
| ... | @@ -186,9 +186,13 @@ aside { | ... | @@ -186,9 +186,13 @@ aside { |
| 186 | .primary-kx:hover{} | 186 | .primary-kx:hover{} |
| 187 | .border-info{background: rgba(69,61,234,0.04); | 187 | .border-info{background: rgba(69,61,234,0.04); |
| 188 | border: 1px solid #D3D1F6; | 188 | border: 1px solid #D3D1F6; |
| 189 | border-radius: 5px;padding: 20px;margin-bottom: 20px; | 189 | border-radius: 5px;padding: 10px;margin-bottom: 20px; |
| 190 | &.inline{display: inline-block;border-radius: 50px;padding: 10px 20px; | 190 | &.inline{display: inline-block;border-radius: 50px;padding: 10px 20px; |
| 191 | margin: 0 40% 20px;min-width: 200px;} | 191 | margin: 0 40% 20px;min-width: 200px;} |
| 192 | &.gray{background: #FAFBFD; | ||
| 193 | border: 1px solid #EEEFF0;} | ||
| 194 | label{margin-right: 10px;} | ||
| 195 | .item{margin: 10px} | ||
| 192 | } | 196 | } |
| 193 | .el-step__title.is-success{ | 197 | .el-step__title.is-success{ |
| 194 | color: var(--el-color-primary)!important; | 198 | color: var(--el-color-primary)!important; |
| ... | @@ -198,6 +202,7 @@ aside { | ... | @@ -198,6 +202,7 @@ aside { |
| 198 | background: linear-gradient(90deg, #8623FC, #453DEA);} | 202 | background: linear-gradient(90deg, #8623FC, #453DEA);} |
| 199 | } | 203 | } |
| 200 | .el-step__line{border-top:1px dashed #D1D6D8;background: transparent!important; | 204 | .el-step__line{border-top:1px dashed #D1D6D8;background: transparent!important; |
| 205 | .el-step__line-inner{border-width: 0!important;} | ||
| 201 | } | 206 | } |
| 202 | .el-step__head.is-process{border-top: var(--el-color-primary); | 207 | .el-step__head.is-process{border-top: var(--el-color-primary); |
| 203 | .el-step__icon{color: #fff;border: none; | 208 | .el-step__icon{color: #fff;border: none; |
| ... | @@ -250,3 +255,75 @@ aside { | ... | @@ -250,3 +255,75 @@ aside { |
| 250 | h4{font-size: 18px;margin-top: -10px;} | 255 | h4{font-size: 18px;margin-top: -10px;} |
| 251 | &:hover{box-shadow:var(--el-box-shadow-dark);} | 256 | &:hover{box-shadow:var(--el-box-shadow-dark);} |
| 252 | } | 257 | } |
| 258 | .fieldset-form{ border: groove #eee 1px; | ||
| 259 | legend{ | ||
| 260 | font-weight: 600; | ||
| 261 | color: #4C5359; | ||
| 262 | font-size: 14px;} | ||
| 263 | } | ||
| 264 | |||
| 265 | .el-button--primary.is-link, .el-button--primary.is-plain, .el-button--primary.is-text{ | ||
| 266 | --el-button-border-color:var(--el-color-primary)!important; | ||
| 267 | --el-button-bg-color:#fff!important; | ||
| 268 | } | ||
| 269 | @media (max-width: 500px) { | ||
| 270 | .footAll{display: none;} | ||
| 271 | .app-container{padding: 0;overflow: auto; | ||
| 272 | min-height: auto;} | ||
| 273 | .rightPart{width: calc(100vw - 100px);left: 100px;position: fixed; | ||
| 274 | border: none!important; | ||
| 275 | |||
| 276 | height: calc(100vh - 80px);overflow: auto;top: 80px; | ||
| 277 | .indexTitle{display: none;} | ||
| 278 | .pd20{padding: 8px;} | ||
| 279 | .pt30{padding: 8px;} | ||
| 280 | .d-form-border{border: none} | ||
| 281 | .el-card{box-shadow: none!important; border: none!important;} | ||
| 282 | .fieldset-form{ | ||
| 283 | .el-form-item{flex-direction: column;} | ||
| 284 | } | ||
| 285 | .el-form-item__label{width: auto!important;justify-content:flex-start} | ||
| 286 | } | ||
| 287 | } | ||
| 288 | .chooseForm { | ||
| 289 | .el-checkbox-group{ | ||
| 290 | display: flex; | ||
| 291 | flex-wrap: wrap; | ||
| 292 | } | ||
| 293 | :deep(.el-form-item__content) { | ||
| 294 | background: rgba(245, 247, 249, 0.38); | ||
| 295 | padding: 20px 40px 10px; | ||
| 296 | } | ||
| 297 | |||
| 298 | .el-checkbox { | ||
| 299 | height: auto;position: relative; | ||
| 300 | } | ||
| 301 | |||
| 302 | :deep(.el-checkbox__input) { | ||
| 303 | position: absolute; | ||
| 304 | right: 0; | ||
| 305 | top: 0; | ||
| 306 | } | ||
| 307 | |||
| 308 | .name { | ||
| 309 | text-align: center; | ||
| 310 | } | ||
| 311 | } | ||
| 312 | .addBttn {margin-right: 20px; | ||
| 313 | width: 60px; | ||
| 314 | color: #7B7F83; | ||
| 315 | font-size: 20px; | ||
| 316 | height: 60px; | ||
| 317 | display: flex; | ||
| 318 | align-items: center; | ||
| 319 | justify-content: center; | ||
| 320 | background: #FFFFFF; | ||
| 321 | border: 1px dashed #95A1A6; | ||
| 322 | border-radius: 50%; | ||
| 323 | |||
| 324 | &:hover { | ||
| 325 | cursor: pointer; | ||
| 326 | color: var(--el-color-primary); | ||
| 327 | border-color: var(--el-color-primary); | ||
| 328 | } | ||
| 329 | } | ... | ... |
| ... | @@ -1006,16 +1006,22 @@ img{display: block;} | ... | @@ -1006,16 +1006,22 @@ img{display: block;} |
| 1006 | 1006 | ||
| 1007 | //赛事 | 1007 | //赛事 |
| 1008 | .ph-30{padding-top: 30px;padding-bottom: 30px;} | 1008 | .ph-30{padding-top: 30px;padding-bottom: 30px;} |
| 1009 | .panel{border-radius: 10px;background: #FFFFFF; | 1009 | .panel{border-radius: 0;background: #FFFFFF;padding: 1px 0 0; |
| 1010 | .panel-header{background: #FBFCFD;line-height: 50px;height: 50px;} | 1010 | .panel-header{line-height: 50px;height: 50px;border-bottom: 1px solid #EEEEEE; |
| 1011 | .panel-title{text-align: center;font-size: 18px;line-height: 50px;margin: 0;} | 1011 | padding: 0 20px;position: relative; |
| 1012 | .fr{position: absolute;right: 20px;top: 0px;font-size: 14px;color: #666; | ||
| 1013 | text-decoration: underline;} | ||
| 1014 | } | ||
| 1015 | .panel-title{font-size: 16px;line-height: 50px;margin: 0; | ||
| 1016 | color: var(--el-color-primary)} | ||
| 1012 | .panel-body{padding: 20px;} | 1017 | .panel-body{padding: 20px;} |
| 1018 | &.border{border: 1px solid #EEEEEE;} | ||
| 1019 | } | ||
| 1013 | .panel-footer{border-top: 1px solid #e1e1e1;height: 80px; | 1020 | .panel-footer{border-top: 1px solid #e1e1e1;height: 80px; |
| 1014 | display: flex; | 1021 | display: flex; |
| 1015 | justify-content: center; | 1022 | justify-content: center; |
| 1016 | align-items: center; | 1023 | align-items: center; |
| 1017 | } | 1024 | } |
| 1018 | } | ||
| 1019 | .panel-footer .el-button--danger{background: var(--el-color-primary);border: none; | 1025 | .panel-footer .el-button--danger{background: var(--el-color-primary);border: none; |
| 1020 | padding: 0 40px; | 1026 | padding: 0 40px; |
| 1021 | font-size: 16px; | 1027 | font-size: 16px; |
| ... | @@ -1394,3 +1400,10 @@ img{display: block;} | ... | @@ -1394,3 +1400,10 @@ img{display: block;} |
| 1394 | p{text-align: left;word-break: break-all;} | 1400 | p{text-align: left;word-break: break-all;} |
| 1395 | } | 1401 | } |
| 1396 | } | 1402 | } |
| 1403 | .chooseForm{ | ||
| 1404 | :deep(.el-form-item__content){background: rgba(245, 247, 249, 0.38); | ||
| 1405 | padding: 20px 40px 10px;} | ||
| 1406 | .el-checkbox{height: auto;} | ||
| 1407 | :deep(.el-checkbox__input){position: absolute;right: 0;top: 0;} | ||
| 1408 | .name{text-align: center;} | ||
| 1409 | } | ... | ... |
src/assets/v1/about/123.jpg
deleted
100644 → 0
45 KB
src/assets/v1/about/photo.png
deleted
100644 → 0
353 KB
src/assets/v1/about/tab1.png
deleted
100644 → 0
91.8 KB
src/assets/v1/about/zz.png
deleted
100644 → 0
146 KB
src/assets/v1/help@2x.png
deleted
100644 → 0
15 KB
src/assets/v1/news_btn.png
deleted
100644 → 0
3.82 KB
src/assets/v1/news_btn2.png
deleted
100644 → 0
3.73 KB
src/assets/v1/ss01.png
deleted
100644 → 0
95.8 KB
src/assets/v1/ss02.png
deleted
100644 → 0
90.4 KB
src/assets/v1/ss03.png
deleted
100644 → 0
79.6 KB
src/assets/v1/star.png
deleted
100644 → 0
51.1 KB
src/assets/v1/wt@2x.png
deleted
100644 → 0
40.3 KB
src/components/FileImport/index.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div class="upload-file"> | ||
| 3 | <el-upload | ||
| 4 | ref="fileUpload" | ||
| 5 | multiple | ||
| 6 | :action="uploadFileUrl" | ||
| 7 | :before-upload="handleBeforeUpload" | ||
| 8 | :file-list="fileList" | ||
| 9 | :limit="limit" | ||
| 10 | :on-error="handleUploadError" | ||
| 11 | :on-exceed="handleExceed" | ||
| 12 | :on-success="handleUploadSuccess" | ||
| 13 | :show-file-list="false" | ||
| 14 | :headers="headers" | ||
| 15 | class="upload-file-uploader" | ||
| 16 | :name="name" | ||
| 17 | :accept="accept" | ||
| 18 | > | ||
| 19 | <!-- 上传按钮 --> | ||
| 20 | <el-button type="primary">选取文件</el-button> | ||
| 21 | </el-upload> | ||
| 22 | <!-- 上传提示 --> | ||
| 23 | <div v-if="showTip" class="el-upload__tip"> | ||
| 24 | 请上传 | ||
| 25 | <template v-if="fileSize"> | ||
| 26 | 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> | ||
| 27 | </template> | ||
| 28 | <template v-if="fileType"> | ||
| 29 | 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> | ||
| 30 | </template> | ||
| 31 | 的文件 | ||
| 32 | </div> | ||
| 33 | <!-- 文件列表 --> | ||
| 34 | <transition-group | ||
| 35 | class="upload-file-list el-upload-list el-upload-list--text" | ||
| 36 | name="el-fade-in-linear" | ||
| 37 | tag="ul" | ||
| 38 | > | ||
| 39 | <li | ||
| 40 | v-for="(file, index) in fileList" | ||
| 41 | :key="file.uid" | ||
| 42 | class="el-upload-list__item ele-upload-list__item-content" | ||
| 43 | > | ||
| 44 | <el-link | ||
| 45 | :href="`${file.url}`" | ||
| 46 | :underline="false" | ||
| 47 | target="_blank" | ||
| 48 | @click="downFN(file.url)" | ||
| 49 | > | ||
| 50 | <span class="el-icon-document"> {{ getFileName(file.name) }} </span> | ||
| 51 | </el-link> | ||
| 52 | <div class="ele-upload-list__item-content-action"> | ||
| 53 | <el-link :underline="false" type="danger" @click="handleDelete(index)">删除</el-link> | ||
| 54 | </div> | ||
| 55 | </li> | ||
| 56 | </transition-group> | ||
| 57 | </div> | ||
| 58 | </template> | ||
| 59 | |||
| 60 | <script setup> | ||
| 61 | import { getToken } from '@/utils/auth' | ||
| 62 | import _ from 'lodash' | ||
| 63 | import { computed } from 'vue' | ||
| 64 | |||
| 65 | const props = defineProps({ | ||
| 66 | modelValue: [String, Object, Array], | ||
| 67 | // 数量限制 | ||
| 68 | limit: { | ||
| 69 | type: Number, | ||
| 70 | default: 5 | ||
| 71 | }, | ||
| 72 | // 大小限制(MB) | ||
| 73 | fileSize: { | ||
| 74 | type: Number, | ||
| 75 | default: 120 | ||
| 76 | }, | ||
| 77 | // 文件类型, 例如['png', 'jpg', 'jpeg'] | ||
| 78 | fileType: { | ||
| 79 | type: Array, | ||
| 80 | default: () => ['xlsx'] | ||
| 81 | }, | ||
| 82 | // 是否显示提示 | ||
| 83 | isShowTip: { | ||
| 84 | type: Boolean, | ||
| 85 | default: true | ||
| 86 | }, | ||
| 87 | name: { | ||
| 88 | type: String, | ||
| 89 | default: 'file' | ||
| 90 | }, | ||
| 91 | action: { | ||
| 92 | type: String, | ||
| 93 | default: '/upload/uploadFile' | ||
| 94 | } | ||
| 95 | }) | ||
| 96 | const accept = computed(() => { | ||
| 97 | return _.map(props.fileType, (t) => { | ||
| 98 | if (t.indexOf('.') === 0) { | ||
| 99 | return t | ||
| 100 | } else { | ||
| 101 | return '.' + t | ||
| 102 | } | ||
| 103 | }).join(',') | ||
| 104 | }) | ||
| 105 | |||
| 106 | const { proxy } = getCurrentInstance() | ||
| 107 | const emit = defineEmits(['update:modelValue', 'uploadSuccess']) | ||
| 108 | const number = ref(0) | ||
| 109 | const fileOriginalName = ref('') | ||
| 110 | const uploadList = ref([]) | ||
| 111 | // const baseUrl = import.meta.env.VITE_APP_BASE_API; | ||
| 112 | const uploadFileUrl = ref(import.meta.env.VITE_APP_BASE_API + props.action) // 上传文件服务器地址 | ||
| 113 | const headers = ref({ Authorization: 'Bearer ' + getToken() }) | ||
| 114 | const fileList = ref([]) | ||
| 115 | const showTip = computed( | ||
| 116 | () => props.isShowTip && (props.fileType || props.fileSize) | ||
| 117 | ) | ||
| 118 | |||
| 119 | watch( | ||
| 120 | () => props.modelValue, | ||
| 121 | (val) => { | ||
| 122 | if (val) { | ||
| 123 | let temp = 1 | ||
| 124 | // 首先将值转为数组 | ||
| 125 | const list = Array.isArray(val) ? val : (_.isObject(props.modelValue) ? [props.modelValue] : props.modelValue.split(',')) | ||
| 126 | console.log(list) | ||
| 127 | |||
| 128 | // 然后将数组转为对象数组 | ||
| 129 | fileList.value = list.map((item) => { | ||
| 130 | if (typeof item === 'string') { | ||
| 131 | item = { name: item, url: item } | ||
| 132 | } | ||
| 133 | item.uid = item.uid || new Date().getTime() + temp++ | ||
| 134 | return item | ||
| 135 | }) | ||
| 136 | } else { | ||
| 137 | fileList.value = [] | ||
| 138 | return [] | ||
| 139 | } | ||
| 140 | }, | ||
| 141 | { deep: true, immediate: true } | ||
| 142 | ) | ||
| 143 | |||
| 144 | // 上传前校检格式和大小 | ||
| 145 | function handleBeforeUpload(file) { | ||
| 146 | // 校检文件类型 | ||
| 147 | if (props.fileType.length) { | ||
| 148 | let fileExtension = '' | ||
| 149 | if (file.name.lastIndexOf('.') > -1) { | ||
| 150 | fileExtension = file.name.slice(file.name.lastIndexOf('.') + 1) | ||
| 151 | } | ||
| 152 | const isTypeOk = props.fileType.some((type) => { | ||
| 153 | if (file.type.indexOf(type) > -1) return true | ||
| 154 | if (fileExtension && fileExtension.indexOf(type) > -1) return true | ||
| 155 | return false | ||
| 156 | }) | ||
| 157 | if (!isTypeOk) { | ||
| 158 | proxy.$modal.msgError( | ||
| 159 | `文件格式不正确, 请上传${props.fileType.join('/')}格式文件!` | ||
| 160 | ) | ||
| 161 | return false | ||
| 162 | } | ||
| 163 | } | ||
| 164 | // 校检文件大小 | ||
| 165 | if (props.fileSize) { | ||
| 166 | const isLt = file.size / 1024 / 1024 < props.fileSize | ||
| 167 | if (!isLt) { | ||
| 168 | proxy.$modal.msgError(`上传文件大小不能超过 ${props.fileSize} MB!`) | ||
| 169 | return false | ||
| 170 | } | ||
| 171 | } | ||
| 172 | proxy.$modal.loading('正在上传文件,请稍候...') | ||
| 173 | number.value++ | ||
| 174 | return true | ||
| 175 | } | ||
| 176 | |||
| 177 | // 文件个数超出 | ||
| 178 | function handleExceed() { | ||
| 179 | proxy.$modal.msgError(`上传文件数量不能超过 ${props.limit} 个!`) | ||
| 180 | } | ||
| 181 | |||
| 182 | // 上传失败 | ||
| 183 | function handleUploadError(err) { | ||
| 184 | proxy.$modal.msgError('上传文件失败') | ||
| 185 | proxy.$modal.closeLoading() | ||
| 186 | } | ||
| 187 | |||
| 188 | // 上传成功回调 | ||
| 189 | function handleUploadSuccess(res, file) { | ||
| 190 | console.log(file) | ||
| 191 | fileOriginalName.value = file.name | ||
| 192 | if (res.code === 200) { | ||
| 193 | if (res.data) { | ||
| 194 | uploadList.value.push({ name: file.name, url: res.data.fileUrl }) | ||
| 195 | uploadedSuccessfully() | ||
| 196 | } else { | ||
| 197 | proxy.$modal.closeLoading() | ||
| 198 | } | ||
| 199 | } else { | ||
| 200 | number.value-- | ||
| 201 | proxy.$modal.closeLoading() | ||
| 202 | proxy.$modal.msgError(res.msg) | ||
| 203 | proxy.$refs.fileUpload.handleRemove(file) | ||
| 204 | uploadedSuccessfully() | ||
| 205 | } | ||
| 206 | |||
| 207 | emit('uploadSuccess', res) | ||
| 208 | } | ||
| 209 | |||
| 210 | // 删除文件 | ||
| 211 | function handleDelete(index) { | ||
| 212 | fileList.value.splice(index, 1) | ||
| 213 | emit('update:modelValue', listToString(fileList.value)) | ||
| 214 | } | ||
| 215 | |||
| 216 | function handleClear() { | ||
| 217 | fileList.value = [] | ||
| 218 | emit('update:modelValue', listToString(fileList.value)) | ||
| 219 | } | ||
| 220 | |||
| 221 | // 上传结束处理 | ||
| 222 | function uploadedSuccessfully() { | ||
| 223 | if (number.value > 0 && uploadList.value.length === number.value) { | ||
| 224 | fileList.value = fileList.value | ||
| 225 | .filter((f) => f.url !== undefined) | ||
| 226 | .concat(uploadList.value) | ||
| 227 | uploadList.value = [] | ||
| 228 | number.value = 0 | ||
| 229 | emit('update:modelValue', listToString(fileList.value)) | ||
| 230 | proxy.$modal.closeLoading() | ||
| 231 | } | ||
| 232 | } | ||
| 233 | |||
| 234 | // 获取文件名称 | ||
| 235 | function getFileName(name) { | ||
| 236 | try { | ||
| 237 | if (name.lastIndexOf('/') > -1) { | ||
| 238 | return name.slice(name.lastIndexOf('/') + 1) | ||
| 239 | } else { | ||
| 240 | return name | ||
| 241 | } | ||
| 242 | } catch (ex) { | ||
| 243 | return '' | ||
| 244 | } | ||
| 245 | } | ||
| 246 | |||
| 247 | // 对象转成指定字符串分隔 | ||
| 248 | function listToString(list, separator) { | ||
| 249 | // let strs = ""; | ||
| 250 | // separator = separator || ","; | ||
| 251 | // for (const i in list) { | ||
| 252 | // if (list[i].url) { | ||
| 253 | // strs += list[i].url + separator; | ||
| 254 | // } | ||
| 255 | // } | ||
| 256 | // return strs != "" ? strs.substr(0, strs.length - 1) : ""; | ||
| 257 | |||
| 258 | return fileList.value | ||
| 259 | } | ||
| 260 | |||
| 261 | // 文件下载 | ||
| 262 | function downFN(row) { | ||
| 263 | console.log(row) | ||
| 264 | } | ||
| 265 | |||
| 266 | defineExpose({ | ||
| 267 | handleClear | ||
| 268 | }) | ||
| 269 | </script> | ||
| 270 | |||
| 271 | <style scoped lang="scss"> | ||
| 272 | .upload-file-uploader { | ||
| 273 | margin-bottom: 5px; | ||
| 274 | } | ||
| 275 | .upload-file-list .el-upload-list__item { | ||
| 276 | border: 1px solid #e4e7ed; | ||
| 277 | line-height: 2; | ||
| 278 | margin-bottom: 10px; | ||
| 279 | position: relative; | ||
| 280 | } | ||
| 281 | .upload-file-list .ele-upload-list__item-content { | ||
| 282 | display: flex; | ||
| 283 | justify-content: space-between; | ||
| 284 | align-items: center; | ||
| 285 | color: inherit; | ||
| 286 | } | ||
| 287 | .ele-upload-list__item-content-action .el-link { | ||
| 288 | margin-right: 10px; | ||
| 289 | } | ||
| 290 | </style> |
| ... | @@ -73,12 +73,13 @@ function handleCurrentChange(val) { | ... | @@ -73,12 +73,13 @@ function handleCurrentChange(val) { |
| 73 | 73 | ||
| 74 | </script> | 74 | </script> |
| 75 | 75 | ||
| 76 | <style scoped> | 76 | <style scoped lang="scss"> |
| 77 | .pagination-container { | 77 | .pagination-container1 { |
| 78 | background: #fff; | 78 | background: #fff; |
| 79 | padding: 32px 16px; | 79 | padding: 8px 16px; |
| 80 | .el-pagination{justify-content: end;} | ||
| 80 | } | 81 | } |
| 81 | .pagination-container.hidden { | 82 | .pagination-container1.hidden { |
| 82 | display: none; | 83 | display: none; |
| 83 | } | 84 | } |
| 84 | </style> | 85 | </style> | ... | ... |
| ... | @@ -35,6 +35,7 @@ import RightToolbar from '@/components/RightToolbar' | ... | @@ -35,6 +35,7 @@ import RightToolbar from '@/components/RightToolbar' |
| 35 | import Editor from '@/components/Editor' | 35 | import Editor from '@/components/Editor' |
| 36 | // 文件上传组件 | 36 | // 文件上传组件 |
| 37 | import FileUpload from '@/components/FileUpload' | 37 | import FileUpload from '@/components/FileUpload' |
| 38 | import FileImport from '@/components/FileImport' | ||
| 38 | // 图片上传组件 | 39 | // 图片上传组件 |
| 39 | import ImageUpload from '@/components/ImageUpload' | 40 | import ImageUpload from '@/components/ImageUpload' |
| 40 | import ImageUpload2 from '@/components/ImageUpload/index2' | 41 | import ImageUpload2 from '@/components/ImageUpload/index2' |
| ... | @@ -87,6 +88,7 @@ app.component('DictTag', DictTag) | ... | @@ -87,6 +88,7 @@ app.component('DictTag', DictTag) |
| 87 | app.component('PaginationPc', PaginationPc) | 88 | app.component('PaginationPc', PaginationPc) |
| 88 | app.component('TreeSelect', TreeSelect) | 89 | app.component('TreeSelect', TreeSelect) |
| 89 | app.component('FileUpload', FileUpload) | 90 | app.component('FileUpload', FileUpload) |
| 91 | app.component('FileImport', FileImport) | ||
| 90 | app.component('ImageUpload', ImageUpload) | 92 | app.component('ImageUpload', ImageUpload) |
| 91 | app.component('ImageUpload2', ImageUpload2) | 93 | app.component('ImageUpload2', ImageUpload2) |
| 92 | app.component('ImagePreview', ImagePreview) | 94 | app.component('ImagePreview', ImagePreview) | ... | ... |
| ... | @@ -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: 'pay', | ||
| 405 | component: () => import('@/viewsPc/match/pay'), | ||
| 406 | name: 'signPay', | ||
| 407 | meta: { title: '缴费清单' } | ||
| 408 | }, | ||
| 409 | { | ||
| 404 | path: 'list', | 410 | path: 'list', |
| 405 | component: () => import('@/viewsPc/match/index'), | 411 | component: () => import('@/viewsPc/match/index'), |
| 406 | name: 'matchList', | 412 | name: 'matchList', |
| ... | @@ -447,6 +453,12 @@ export const constantRoutes = [ | ... | @@ -447,6 +453,12 @@ export const constantRoutes = [ |
| 447 | component: () => import('@/viewsPc/match/expenseDetails'), | 453 | component: () => import('@/viewsPc/match/expenseDetails'), |
| 448 | name: 'expenseDetails', | 454 | name: 'expenseDetails', |
| 449 | meta: { title: '费用明细' } | 455 | meta: { title: '费用明细' } |
| 456 | }, | ||
| 457 | { | ||
| 458 | path: 'list/:id/signPreview', | ||
| 459 | component: () => import('@/viewsPc/match/signPreview'), | ||
| 460 | name: 'signPreview', | ||
| 461 | meta: { title: '提交审核' } | ||
| 450 | } | 462 | } |
| 451 | ] | 463 | ] |
| 452 | }, | 464 | }, |
| ... | @@ -498,16 +510,22 @@ export const constantRoutes = [ | ... | @@ -498,16 +510,22 @@ export const constantRoutes = [ |
| 498 | meta: { title: '团队认证' } | 510 | meta: { title: '团队认证' } |
| 499 | }, | 511 | }, |
| 500 | { | 512 | { |
| 513 | path: 'myMember', | ||
| 514 | component: () => import('@/viewsPc/center/myMember'), | ||
| 515 | name: 'myMember', | ||
| 516 | meta: { title: '选手管理' } | ||
| 517 | }, | ||
| 518 | { | ||
| 501 | path: 'myMatch', | 519 | path: 'myMatch', |
| 502 | component: () => import('@/viewsPc/center/myMatch'), | 520 | component: () => import('@/viewsPc/center/myMatch'), |
| 503 | name: 'myMatch', | 521 | name: 'myMatch', |
| 504 | meta: { title: '我的赛事' } | 522 | meta: { title: '我的报名' } |
| 505 | }, | 523 | }, |
| 506 | { | 524 | { |
| 507 | path: 'myTrain', | 525 | path: 'myTrain', |
| 508 | component: () => import('@/viewsPc/center/myTrain'), | 526 | component: () => import('@/viewsPc/center/myTrain'), |
| 509 | name: 'myTrain', | 527 | name: 'myTrain', |
| 510 | meta: { title: '我的培训' } | 528 | meta: { title: '我的预定' } |
| 511 | } | 529 | } |
| 512 | ] | 530 | ] |
| 513 | } | 531 | } | ... | ... |
| ... | @@ -14,6 +14,7 @@ const useUserStore = defineStore( | ... | @@ -14,6 +14,7 @@ const useUserStore = defineStore( |
| 14 | state: () => ({ | 14 | state: () => ({ |
| 15 | token: getToken(), | 15 | token: getToken(), |
| 16 | user: null, | 16 | user: null, |
| 17 | group: {}, | ||
| 17 | name: '', | 18 | name: '', |
| 18 | nickName: '', | 19 | nickName: '', |
| 19 | avatar: '', | 20 | avatar: '', |
| ... | @@ -91,6 +92,7 @@ const useUserStore = defineStore( | ... | @@ -91,6 +92,7 @@ const useUserStore = defineStore( |
| 91 | this.roles = ['ROLE_DEFAULT'] | 92 | this.roles = ['ROLE_DEFAULT'] |
| 92 | } | 93 | } |
| 93 | this.user = user | 94 | this.user = user |
| 95 | this.group = res.data.group | ||
| 94 | this.name = user.userName | 96 | this.name = user.userName |
| 95 | this.nickName = user.nickName | 97 | this.nickName = user.nickName |
| 96 | this.deptType = user.dept.deptType | 98 | this.deptType = user.dept.deptType | ... | ... |
| ... | @@ -144,7 +144,7 @@ service.interceptors.response.use( | ... | @@ -144,7 +144,7 @@ service.interceptors.response.use( |
| 144 | '登录状态已过期,您可以继续留在该页面,或者重新登录', | 144 | '登录状态已过期,您可以继续留在该页面,或者重新登录', |
| 145 | '系统提示', | 145 | '系统提示', |
| 146 | { | 146 | { |
| 147 | confirmButtonText: '重新登录', | 147 | confirmButtonText: '好的', |
| 148 | cancelButtonText: '取消', | 148 | cancelButtonText: '取消', |
| 149 | type: 'warning' | 149 | type: 'warning' |
| 150 | } | 150 | } | ... | ... |
src/viewsPc/center/component/import.vue
0 → 100644
| 1 | <template> | ||
| 2 | <el-dialog v-model="show" :title="title" width="500px" class="pcloginpop" | ||
| 3 | append-to-body :close-on-click-modal="false"> | ||
| 4 | <el-form ref="dialogRef" label-width="100px"> | ||
| 5 | <el-form-item label="下载模板"> | ||
| 6 | <el-link href="/file/sportsmanTemplate.xlsx" type="primary" target="_blank">人员模板</el-link> | ||
| 7 | </el-form-item> | ||
| 8 | |||
| 9 | <el-form-item label="上传模板" prop="discount"> | ||
| 10 | <fileUpload ref="upload" name="excel" :action="action" :accept="accept" @uploadSuccess="uploadSuccess"/> | ||
| 11 | </el-form-item> | ||
| 12 | </el-form> | ||
| 13 | |||
| 14 | |||
| 15 | </el-dialog> | ||
| 16 | </template> | ||
| 17 | |||
| 18 | <script setup> | ||
| 19 | import { getCurrentInstance } from '@vue/runtime-core' | ||
| 20 | import { reactive, ref, watch } from 'vue' | ||
| 21 | import { toRefs } from '@vueuse/shared' | ||
| 22 | import * as match from '@/api/match/pc' | ||
| 23 | import { ElMessage, ElMessageBox } from 'element-plus' | ||
| 24 | |||
| 25 | const { proxy } = getCurrentInstance() | ||
| 26 | |||
| 27 | const emit = defineEmits(['submitForm']) | ||
| 28 | |||
| 29 | const action = ref('') | ||
| 30 | const accept = ref('.xlsx') | ||
| 31 | const title = ref('') | ||
| 32 | const show = ref(false) | ||
| 33 | |||
| 34 | function uploadSuccess(res) { | ||
| 35 | console.log(res) | ||
| 36 | cancel() | ||
| 37 | if (res.code == 500) { | ||
| 38 | ElMessageBox.alert(res.data, '提示', { | ||
| 39 | confirmButtonText: '好的' | ||
| 40 | }) | ||
| 41 | } else { | ||
| 42 | proxy.$modal.msgSuccess(`${res.msg}`) | ||
| 43 | } | ||
| 44 | |||
| 45 | emit('uploadSuccess') | ||
| 46 | proxy.$refs['upload'].handleClear() | ||
| 47 | } | ||
| 48 | |||
| 49 | const open = (params) => { | ||
| 50 | show.value = true | ||
| 51 | title.value = params.title | ||
| 52 | action.value = `/systemj/personInfo/importPerson/${params.groupId}` | ||
| 53 | } | ||
| 54 | defineExpose({ | ||
| 55 | open | ||
| 56 | }) | ||
| 57 | |||
| 58 | function cancel() { | ||
| 59 | show.value = false | ||
| 60 | } | ||
| 61 | </script> | ||
| 62 | |||
| 63 | <style scoped> | ||
| 64 | :deep(.el-upload__tip) { | ||
| 65 | display: none | ||
| 66 | } | ||
| 67 | </style> |
| ... | @@ -2,8 +2,8 @@ | ... | @@ -2,8 +2,8 @@ |
| 2 | <div class="app-container"> | 2 | <div class="app-container"> |
| 3 | <div class="box"> | 3 | <div class="box"> |
| 4 | <el-row :gutter="20"> | 4 | <el-row :gutter="20"> |
| 5 | <el-col :span="6"> | 5 | <el-col :lg="5" :md="5" :xl="6" :sm="8" :xs="8"> |
| 6 | <el-card> | 6 | <el-card class="mb20"> |
| 7 | <div class="center-menu"> | 7 | <div class="center-menu"> |
| 8 | <ul v-if="user.utype=='2'"> | 8 | <ul v-if="user.utype=='2'"> |
| 9 | <li | 9 | <li |
| ... | @@ -31,10 +31,9 @@ | ... | @@ -31,10 +31,9 @@ |
| 31 | </ul> | 31 | </ul> |
| 32 | </div> | 32 | </div> |
| 33 | </el-card> | 33 | </el-card> |
| 34 | |||
| 35 | </el-col> | 34 | </el-col> |
| 36 | <el-col :span="18"> | 35 | <el-col :lg="19" :md="19" :xl="18" :sm="16" :xs="16"> |
| 37 | <router-view :user="user"/> | 36 | <router-view :user="user" class="rightPart"/> |
| 38 | </el-col> | 37 | </el-col> |
| 39 | </el-row> | 38 | </el-row> |
| 40 | </div> | 39 | </div> |
| ... | @@ -64,7 +63,7 @@ const menus = ref([ | ... | @@ -64,7 +63,7 @@ const menus = ref([ |
| 64 | name: '修改密码', | 63 | name: '修改密码', |
| 65 | routeName: 'myPassword', | 64 | routeName: 'myPassword', |
| 66 | picUrl1: '/img/nav_27.png', | 65 | picUrl1: '/img/nav_27.png', |
| 67 | picUrl2: '/img/nav_27.png', | 66 | picUrl2: '/img/nav_27_dwn.png', |
| 68 | isActive: false | 67 | isActive: false |
| 69 | }, | 68 | }, |
| 70 | { | 69 | { |
| ... | @@ -76,7 +75,7 @@ const menus = ref([ | ... | @@ -76,7 +75,7 @@ const menus = ref([ |
| 76 | }, | 75 | }, |
| 77 | { | 76 | { |
| 78 | name: '选手管理', | 77 | name: '选手管理', |
| 79 | routeName: 'myMatch', | 78 | routeName: 'myMember', |
| 80 | picUrl1: '/img/nav_31.png', | 79 | picUrl1: '/img/nav_31.png', |
| 81 | picUrl2: '/img/nav_31_dwn.png', | 80 | picUrl2: '/img/nav_31_dwn.png', |
| 82 | isActive: false | 81 | isActive: false |
| ... | @@ -115,7 +114,7 @@ const menusPersonal = ref([ | ... | @@ -115,7 +114,7 @@ const menusPersonal = ref([ |
| 115 | name: '修改密码', | 114 | name: '修改密码', |
| 116 | routeName: 'myPassword', | 115 | routeName: 'myPassword', |
| 117 | picUrl1: '/img/nav_27.png', | 116 | picUrl1: '/img/nav_27.png', |
| 118 | picUrl2: '/img/nav_27.png', | 117 | picUrl2: '/img/nav_27_dwn.png', |
| 119 | isActive: false | 118 | isActive: false |
| 120 | }, | 119 | }, |
| 121 | { | 120 | { |
| ... | @@ -165,14 +164,6 @@ const toInfo = (item) => { | ... | @@ -165,14 +164,6 @@ const toInfo = (item) => { |
| 165 | </script> | 164 | </script> |
| 166 | 165 | ||
| 167 | <style scoped lang="scss"> | 166 | <style scoped lang="scss"> |
| 168 | .app-container { | ||
| 169 | background: #f5f7f9; | ||
| 170 | } | ||
| 171 | |||
| 172 | .grid-content { | ||
| 173 | background: #fff; | ||
| 174 | } | ||
| 175 | |||
| 176 | :deep(.el-tabs__nav-wrap) { | 167 | :deep(.el-tabs__nav-wrap) { |
| 177 | padding: 0 15px; | 168 | padding: 0 15px; |
| 178 | } | 169 | } |
| ... | @@ -197,4 +188,23 @@ li img { | ... | @@ -197,4 +188,23 @@ li img { |
| 197 | background: linear-gradient(90deg, #8623FC, #453DEA); | 188 | background: linear-gradient(90deg, #8623FC, #453DEA); |
| 198 | border-radius: 20px; | 189 | border-radius: 20px; |
| 199 | } | 190 | } |
| 191 | @media (max-width: 500px) { | ||
| 192 | .pd20{padding: 8px;} | ||
| 193 | .el-card{box-shadow: none!important; | ||
| 194 | :deep(.el-card__body){padding: 0!important;} | ||
| 195 | } | ||
| 196 | .el-col{padding: 0!important;} | ||
| 197 | .center-menu{height: 100vh;padding: 20px 0;position: fixed;left: 0; | ||
| 198 | background: #F5F7F9;top: 80px;width: 100px;border-right: 1px solid #eee; | ||
| 199 | li{font-size: 13px;padding:8px 10px;border-radius: 0; | ||
| 200 | img{display: none} | ||
| 201 | &.active{background: #fff; | ||
| 202 | border-left: 2px solid var(--el-color-primary); | ||
| 203 | color: var(--el-color-primary);} | ||
| 204 | } | ||
| 205 | } | ||
| 206 | .rightPart{width: calc(100vw - 100px);left: 100px;position: fixed; | ||
| 207 | height: calc(100vh - 80px);overflow: auto;top: 80px; | ||
| 208 | } | ||
| 209 | } | ||
| 200 | </style> | 210 | </style> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <el-card :body-style="{'padding':'0'}"> | 2 | <el-card :body-style="{'padding':'0'}"> |
| 3 | <div class="indexTitle"><h3 class="leftboderTT">团队认证</h3></div> | 3 | <div class="indexTitle"><h3 class="leftboderTT">团队认证</h3></div> |
| 4 | |||
| 5 | <div class="pd20"> | ||
| 6 | <el-form :model="form" label-width="160px"> | ||
| 7 | <fieldset class="fieldset-form"> | ||
| 8 | <legend>机构类型</legend> | ||
| 9 | <div class="pt30"> | ||
| 10 | <el-form-item label="选择机构类型" required> | ||
| 11 | <el-radio-group v-model="form.type"> | ||
| 12 | <el-radio-button label="0">普通院校</el-radio-button> | ||
| 13 | <el-radio-button label="1">专业舞蹈学校</el-radio-button> | ||
| 14 | <el-radio-button label="2">培训机构/俱乐部</el-radio-button> | ||
| 15 | <el-radio-button label="3">地方协会</el-radio-button> | ||
| 16 | <el-radio-button label="4">国家协会</el-radio-button> | ||
| 17 | </el-radio-group> | ||
| 18 | </el-form-item> | ||
| 19 | </div> | ||
| 20 | </fieldset> | ||
| 21 | <fieldset class="fieldset-form mt30"> | ||
| 22 | <legend>机构基础信息 </legend> | ||
| 23 | <div class="pt30" style="max-width: 500px"> | ||
| 24 | <el-form-item label="所属国家" required> | ||
| 25 | <el-select filterable v-model="form.countryId"> | ||
| 26 | <el-option v-for="item in countryList" :key="item.id" :label="item.name" :value="item.id" /> | ||
| 27 | </el-select> | ||
| 28 | </el-form-item> | ||
| 29 | <el-form-item label="详细地址" required prop="address"> | ||
| 30 | <el-cascader v-if="form.countryId == 240" | ||
| 31 | v-model="form.regionId" | ||
| 32 | style="width: 100%;" | ||
| 33 | :options="regionsList" | ||
| 34 | :props="{ label:'text' }" | ||
| 35 | /> | ||
| 36 | <el-input type="textarea" v-model="form.address" class="mt10" placeholder="请输入详细地址"/> | ||
| 37 | </el-form-item> | ||
| 38 | <el-form-item label="机构名称" required prop="name"> | ||
| 39 | <el-input type="text" v-model="form.name" placeholder="请输入内容"/> | ||
| 40 | </el-form-item> | ||
| 41 | <el-form-item label="联系人姓名" required prop="contactPerson"> | ||
| 42 | <el-input type="text" v-model="form.contactPerson" placeholder="请输入内容"/> | ||
| 43 | </el-form-item> | ||
| 44 | <el-form-item label="联系人电话" required prop="contactTelno"> | ||
| 45 | <el-input v-model="form.contactTelno" type="phone" placeholder="请输入内容"/> | ||
| 46 | </el-form-item> | ||
| 47 | <el-form-item label="联系人邮箱" required prop="contactEmail"> | ||
| 48 | <el-input v-model="form.contactEmail" type="email" placeholder="请输入内容"/> | ||
| 49 | </el-form-item> | ||
| 50 | |||
| 51 | </div> | ||
| 52 | </fieldset> | ||
| 53 | <fieldset class="fieldset-form mt30"> | ||
| 54 | <legend>机构认证信息 </legend> | ||
| 55 | <div class="pt30" style="max-width: 500px"> | ||
| 56 | <el-form-item label="机构代码" required prop="orgCode"> | ||
| 57 | <el-input type="text" v-model="form.orgCode" placeholder="请输入内容"/> | ||
| 58 | </el-form-item> | ||
| 59 | <el-form-item label="机构证件" required prop="orgCert"> | ||
| 60 | <file-upload v-model="form.orgCert"/> | ||
| 61 | </el-form-item> | ||
| 62 | |||
| 63 | </div> | ||
| 64 | </fieldset> | ||
| 65 | <fieldset class="fieldset-form mt30"> | ||
| 66 | <legend>机构法人信息 </legend> | ||
| 67 | <div class="pt30" style="max-width: 500px"> | ||
| 68 | <el-form-item label="法人姓名" required prop="orgCode"> | ||
| 69 | <el-input type="text" v-model="form.orgCode" placeholder="请输入内容"/> | ||
| 70 | </el-form-item> | ||
| 71 | <el-form-item label="法定代表人身份文件" required prop="orgCert"> | ||
| 72 | <file-upload v-model="form.orgCert"/> | ||
| 73 | </el-form-item> | ||
| 74 | |||
| 75 | </div> | ||
| 76 | </fieldset> | ||
| 77 | |||
| 78 | </el-form> | ||
| 79 | <div class="text-center mt30"> | ||
| 80 | <el-button type="primary" class="btn-lineG w200px" round>提交审核</el-button> | ||
| 81 | </div> | ||
| 82 | </div> | ||
| 4 | </el-card> | 83 | </el-card> |
| 5 | </template> | 84 | </template> |
| 6 | 85 | ||
| 7 | <script setup> | 86 | <script setup> |
| 87 | import {commitAudit, getGroupInfo} from "@/apiPc/match"; | ||
| 88 | import {onMounted} from "@vue/runtime-core"; | ||
| 89 | import {ref} from 'vue' | ||
| 90 | import {useRouter} from 'vue-router' | ||
| 91 | import {ElMessage, ElMessageBox} from 'element-plus' | ||
| 92 | import FileUpload from "@/components/FileUpload"; | ||
| 93 | import * as match from "@/apiPc/match"; | ||
| 8 | 94 | ||
| 95 | const form = ref({}) | ||
| 96 | const regionsList = ref([]) | ||
| 97 | function submit() { | ||
| 98 | commitAudit().then(res => { | ||
| 99 | |||
| 100 | }) | ||
| 101 | } | ||
| 102 | |||
| 103 | onMounted(() => { | ||
| 104 | getRegionsList() | ||
| 105 | getData() | ||
| 106 | }) | ||
| 107 | function getRegionsList() { | ||
| 108 | match.regionsList().then(res => { | ||
| 109 | regionsList.value = res.data | ||
| 110 | }) | ||
| 111 | } | ||
| 112 | function getData() { | ||
| 113 | getGroupInfo().then(res => { | ||
| 114 | form.value = res.data | ||
| 115 | }) | ||
| 116 | } | ||
| 9 | </script> | 117 | </script> |
| 10 | 118 | ||
| 11 | <style scoped lang="scss"> | 119 | <style scoped lang="scss"> |
| 12 | .indexTitle{margin: 20px 0 12px;padding: 0 20px 15px;border-bottom: 1px solid #e5e5e5; | 120 | .indexTitle { |
| 13 | h3{ | 121 | margin: 20px 0 12px; |
| 122 | padding: 0 20px 15px; | ||
| 123 | border-bottom: 1px solid #e5e5e5; | ||
| 124 | |||
| 125 | h3 { | ||
| 14 | font-size: 16px; | 126 | font-size: 16px; |
| 15 | color:var(--el-color-primary); | 127 | color: var(--el-color-primary); |
| 128 | } | ||
| 129 | } | ||
| 130 | |||
| 131 | fieldset { | ||
| 132 | :deep(.el-radio-button.el-radio-button--default) { | ||
| 133 | margin-right: 8px; | ||
| 134 | border-radius: 5px; | ||
| 135 | |||
| 136 | .el-radio-button__inner { | ||
| 137 | background: rgba(69, 61, 234, 0.1); | ||
| 138 | border-radius: 5px; | ||
| 139 | color: #000000; | ||
| 140 | } | ||
| 141 | |||
| 142 | &.is-active { | ||
| 143 | background: linear-gradient(90deg, #8623FC, #453DEA); | ||
| 144 | |||
| 145 | .el-radio-button__inner { | ||
| 146 | color: #fff; | ||
| 147 | } | ||
| 148 | } | ||
| 16 | } | 149 | } |
| 17 | } | 150 | } |
| 18 | 151 | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <el-card> | 2 | <el-card> |
| 3 | <div class="grid-content"> | 3 | <div class="grid-content"> |
| 4 | <el-tabs v-model="activeName"> | 4 | <!-- <el-tabs v-model="activeName">--> |
| 5 | <el-tab-pane label="报项" name="first"> | 5 | <!-- <el-tab-pane label="报项" name="first">--> |
| 6 | <div class="pad20"> | 6 | <div class="pad20"> |
| 7 | <el-form :model="query" :inline="true"> | 7 | <el-form :model="query" :inline="true"> |
| 8 | <el-form-item label="赛事名称"> | 8 | <el-form-item label="赛事名称"> |
| ... | @@ -67,137 +67,137 @@ | ... | @@ -67,137 +67,137 @@ |
| 67 | @pagination="getList" | 67 | @pagination="getList" |
| 68 | /> | 68 | /> |
| 69 | </div> | 69 | </div> |
| 70 | </el-tab-pane> | 70 | <!-- </el-tab-pane>--> |
| 71 | <el-tab-pane label="订单" name="two"> | 71 | <!-- <el-tab-pane label="订单" name="two">--> |
| 72 | <div class="pad20"> | 72 | <!-- <div class="pad20">--> |
| 73 | <el-form :model="query2" :inline="true"> | 73 | <!-- <el-form :model="query2" :inline="true">--> |
| 74 | <el-form-item label="订单状态"> | 74 | <!-- <el-form-item label="订单状态">--> |
| 75 | <el-select v-model="query2.payStatus" @change="getBillList"> | 75 | <!-- <el-select v-model="query2.payStatus" @change="getBillList">--> |
| 76 | <el-option value="" label="全部" /> | 76 | <!-- <el-option value="" label="全部" />--> |
| 77 | <el-option value="0" label="待支付" /> | 77 | <!-- <el-option value="0" label="待支付" />--> |
| 78 | <el-option value="3" label="已完成" /> | 78 | <!-- <el-option value="3" label="已完成" />--> |
| 79 | <el-option value="5" label="已退回" /> | 79 | <!-- <el-option value="5" label="已退回" />--> |
| 80 | </el-select> | 80 | <!-- </el-select>--> |
| 81 | </el-form-item> | 81 | <!-- </el-form-item>--> |
| 82 | <el-form-item label="支付方式"> | 82 | <!-- <el-form-item label="支付方式">--> |
| 83 | <el-select v-model="query2.payTypeParam" @change="getBillList"> | 83 | <!-- <el-select v-model="query2.payTypeParam" @change="getBillList">--> |
| 84 | <el-option value="" label="全部">全部</el-option> | 84 | <!-- <el-option value="" label="全部">全部</el-option>--> |
| 85 | <el-option value="0" label="线上支付">线上支付</el-option> | 85 | <!-- <el-option value="0" label="线上支付">线上支付</el-option>--> |
| 86 | <el-option value="1" label="线下支付">线下支付</el-option> | 86 | <!-- <el-option value="1" label="线下支付">线下支付</el-option>--> |
| 87 | <el-option value="2" label="会员卡支付">会员卡支付</el-option> | 87 | <!-- <el-option value="2" label="会员卡支付">会员卡支付</el-option>--> |
| 88 | <el-option value="3" label="微信支付">微信支付</el-option> | 88 | <!-- <el-option value="3" label="微信支付">微信支付</el-option>--> |
| 89 | </el-select> | 89 | <!-- </el-select>--> |
| 90 | </el-form-item> | 90 | <!-- </el-form-item>--> |
| 91 | <el-form-item label="订单号"> | 91 | <!-- <el-form-item label="订单号">--> |
| 92 | <el-input v-model="query2.code" /> | 92 | <!-- <el-input v-model="query2.code" />--> |
| 93 | </el-form-item> | 93 | <!-- </el-form-item>--> |
| 94 | <el-form-item label="订单名称"> | 94 | <!-- <el-form-item label="订单名称">--> |
| 95 | <el-input v-model="query2.cptName" style="width: 214px;" @change="getBillList" /> | 95 | <!-- <el-input v-model="query2.cptName" style="width: 214px;" @change="getBillList" />--> |
| 96 | </el-form-item> | 96 | <!-- </el-form-item>--> |
| 97 | <el-form-item label="付款时间"> | 97 | <!-- <el-form-item label="付款时间">--> |
| 98 | <el-date-picker | 98 | <!-- <el-date-picker--> |
| 99 | v-model="payTimeArr" | 99 | <!-- v-model="payTimeArr"--> |
| 100 | format="YYYY-MM-DD" type="daterange" | 100 | <!-- format="YYYY-MM-DD" type="daterange"--> |
| 101 | value-format="YYYY-MM-DD" range-separator="至" | 101 | <!-- value-format="YYYY-MM-DD" range-separator="至"--> |
| 102 | start-placeholder="开始时间" | 102 | <!-- start-placeholder="开始时间"--> |
| 103 | end-placeholder="结束时间" | 103 | <!-- end-placeholder="结束时间"--> |
| 104 | @change="getBillList" | 104 | <!-- @change="getBillList"--> |
| 105 | /> | 105 | <!-- />--> |
| 106 | </el-form-item> | 106 | <!-- </el-form-item>--> |
| 107 | <el-form-item label="下单时间"> | 107 | <!-- <el-form-item label="下单时间">--> |
| 108 | <el-date-picker | 108 | <!-- <el-date-picker--> |
| 109 | v-model="commitTimeArr" | 109 | <!-- v-model="commitTimeArr"--> |
| 110 | format="YYYY-MM-DD" type="daterange" | 110 | <!-- format="YYYY-MM-DD" type="daterange"--> |
| 111 | value-format="YYYY-MM-DD" range-separator="至" | 111 | <!-- value-format="YYYY-MM-DD" range-separator="至"--> |
| 112 | start-placeholder="开始时间" | 112 | <!-- start-placeholder="开始时间"--> |
| 113 | end-placeholder="结束时间" | 113 | <!-- end-placeholder="结束时间"--> |
| 114 | @change="getBillList" | 114 | <!-- @change="getBillList"--> |
| 115 | /> | 115 | <!-- />--> |
| 116 | </el-form-item> | 116 | <!-- </el-form-item>--> |
| 117 | <el-form-item> | 117 | <!-- <el-form-item>--> |
| 118 | <el-button type="primary" @click="getBillList">查询</el-button> | 118 | <!-- <el-button type="primary" @click="getBillList">查询</el-button>--> |
| 119 | <el-button type="info" @click="reset(query2)">重置</el-button> | 119 | <!-- <el-button type="info" @click="reset(query2)">重置</el-button>--> |
| 120 | </el-form-item> | 120 | <!-- </el-form-item>--> |
| 121 | 121 | ||
| 122 | </el-form> | 122 | <!-- </el-form>--> |
| 123 | 123 | ||
| 124 | <el-table v-if="billList.length>0" :data="billList" style="width: 100%"> | 124 | <!-- <el-table v-if="billList.length>0" :data="billList" style="width: 100%">--> |
| 125 | <!-- <el-table-column type="selection" width="80" />--> | 125 | <!-- <!– <el-table-column type="selection" width="80" />–>--> |
| 126 | <el-table-column prop="id" label="订单编号" min-width="200" /> | 126 | <!-- <el-table-column prop="id" label="订单编号" min-width="200" />--> |
| 127 | <el-table-column prop="cptName" label="订单名称" min-width="200" /> | 127 | <!-- <el-table-column prop="cptName" label="订单名称" min-width="200" />--> |
| 128 | <el-table-column prop="commitTime" label="下单时间" min-width="180" /> | 128 | <!-- <el-table-column prop="commitTime" label="下单时间" min-width="180" />--> |
| 129 | <el-table-column prop="payTime" label="付款时间" min-width="180" /> | 129 | <!-- <el-table-column prop="payTime" label="付款时间" min-width="180" />--> |
| 130 | <el-table-column label="支付金额" min-width="120" align="center"> | 130 | <!-- <el-table-column label="支付金额" min-width="120" align="center">--> |
| 131 | <template #default="scope"> | 131 | <!-- <template #default="scope">--> |
| 132 | <span v-if="scope.row.needPay=='0'" class="green">免费订单</span> | 132 | <!-- <span v-if="scope.row.needPay=='0'" class="green">免费订单</span>--> |
| 133 | <span v-else>¥{{ scope.row.totalAmount }}</span> | 133 | <!-- <span v-else>¥{{ scope.row.totalAmount }}</span>--> |
| 134 | </template> | 134 | <!-- </template>--> |
| 135 | </el-table-column> | 135 | <!-- </el-table-column>--> |
| 136 | <!-- <el-table-column label="已付金额" min-width="120" align="center">--> | 136 | <!-- <!– <el-table-column label="已付金额" min-width="120" align="center">–>--> |
| 137 | <!-- <template #default="scope">--> | 137 | <!-- <!– <template #default="scope">–>--> |
| 138 | <!-- <span v-if="scope.row.needPay=='0'" class="green">免费订单</span>--> | 138 | <!-- <!– <span v-if="scope.row.needPay=='0'" class="green">免费订单</span>–>--> |
| 139 | <!-- <span v-else-if="scope.row.totalPayAmount" class="orange">¥{{ scope.row.totalPayAmount }}</span>--> | 139 | <!-- <!– <span v-else-if="scope.row.totalPayAmount" class="orange">¥{{ scope.row.totalPayAmount }}</span>–>--> |
| 140 | <!-- <span v-else>--</span>--> | 140 | <!-- <!– <span v-else>--</span>–>--> |
| 141 | <!-- </template>--> | 141 | <!-- <!– </template>–>--> |
| 142 | <!-- </el-table-column>--> | 142 | <!-- <!– </el-table-column>–>--> |
| 143 | <el-table-column label="付款方式" min-width="120" align="center"> | 143 | <!-- <el-table-column label="付款方式" min-width="120" align="center">--> |
| 144 | <template #default="scope"> | 144 | <!-- <template #default="scope">--> |
| 145 | <span v-if="scope.row.payType=='0'">会员卡支付</span> | 145 | <!-- <span v-if="scope.row.payType=='0'">会员卡支付</span>--> |
| 146 | <span v-else-if="scope.row.payType=='1'">微信支付</span> | 146 | <!-- <span v-else-if="scope.row.payType=='1'">微信支付</span>--> |
| 147 | <span v-else-if="scope.row.payType=='2'">线下支付</span> | 147 | <!-- <span v-else-if="scope.row.payType=='2'">线下支付</span>--> |
| 148 | </template> | 148 | <!-- </template>--> |
| 149 | </el-table-column> | 149 | <!-- </el-table-column>--> |
| 150 | <el-table-column prop="name" label="支付状态" min-width="120" align="center"> | 150 | <!-- <el-table-column prop="name" label="支付状态" min-width="120" align="center">--> |
| 151 | <template #default="scope"> | 151 | <!-- <template #default="scope">--> |
| 152 | <span v-if="scope.row.needPay=='0'" class="green">免费订单</span> | 152 | <!-- <span v-if="scope.row.needPay=='0'" class="green">免费订单</span>--> |
| 153 | <div v-else> | 153 | <!-- <div v-else>--> |
| 154 | <span v-if="scope.row.payStatus=='0'">待支付</span> | 154 | <!-- <span v-if="scope.row.payStatus=='0'">待支付</span>--> |
| 155 | <span v-if="scope.row.payStatus=='1'">待核销</span> | 155 | <!-- <span v-if="scope.row.payStatus=='1'">待核销</span>--> |
| 156 | <span v-if="scope.row.payStatus=='2'">付款中</span> | 156 | <!-- <span v-if="scope.row.payStatus=='2'">付款中</span>--> |
| 157 | <span v-if="scope.row.payStatus=='3'" class="green">已完成</span> | 157 | <!-- <span v-if="scope.row.payStatus=='3'" class="green">已完成</span>--> |
| 158 | <span v-if="scope.row.payStatus=='4'">退款中</span> | 158 | <!-- <span v-if="scope.row.payStatus=='4'">退款中</span>--> |
| 159 | <span v-if="scope.row.payStatus=='5'" class="text-danger">已退回</span> | 159 | <!-- <span v-if="scope.row.payStatus=='5'" class="text-danger">已退回</span>--> |
| 160 | <span v-if="scope.row.payStatus=='6'">退款核销中</span> | 160 | <!-- <span v-if="scope.row.payStatus=='6'">退款核销中</span>--> |
| 161 | </div> | 161 | <!-- </div>--> |
| 162 | </template> | 162 | <!-- </template>--> |
| 163 | </el-table-column> | 163 | <!-- </el-table-column>--> |
| 164 | <el-table-column prop="name" label="审核状态" min-width="120" align="center"> | 164 | <!-- <el-table-column prop="name" label="审核状态" min-width="120" align="center">--> |
| 165 | <template #default="scope"> | 165 | <!-- <template #default="scope">--> |
| 166 | <!-- 待核销,待审核,审核拒绝,审核通过,已取消--> | 166 | <!-- <!– 待核销,待审核,审核拒绝,审核通过,已取消–>--> |
| 167 | <span v-if="scope.row.auditStatus=='1'" class="text-warning">审核中</span> | 167 | <!-- <span v-if="scope.row.auditStatus=='1'" class="text-warning">审核中</span>--> |
| 168 | <span v-if="scope.row.auditStatus=='2'" class="green">审核通过</span> | 168 | <!-- <span v-if="scope.row.auditStatus=='2'" class="green">审核通过</span>--> |
| 169 | <span v-if="scope.row.auditStatus=='3'" class="text-danger">审核拒绝</span> | 169 | <!-- <span v-if="scope.row.auditStatus=='3'" class="text-danger">审核拒绝</span>--> |
| 170 | <span v-if="scope.row.auditStatus=='4'">已取消</span> | 170 | <!-- <span v-if="scope.row.auditStatus=='4'">已取消</span>--> |
| 171 | </template> | 171 | <!-- </template>--> |
| 172 | </el-table-column> | 172 | <!-- </el-table-column>--> |
| 173 | <el-table-column label="操作" align="center" fixed="right" class-name="small-padding" width="150"> | 173 | <!-- <el-table-column label="操作" align="center" fixed="right" class-name="small-padding" width="150">--> |
| 174 | <template #default="scope"> | 174 | <!-- <template #default="scope">--> |
| 175 | <el-button type="text" @click="billDetail(scope.row)">详情</el-button> | 175 | <!-- <el-button type="text" @click="billDetail(scope.row)">详情</el-button>--> |
| 176 | <el-button | 176 | <!-- <el-button--> |
| 177 | v-if="scope.row.payType!='2'&&scope.row.payStatus=='0'&&scope.row.auditStatus=='0'" type="text" | 177 | <!-- v-if="scope.row.payType!='2'&&scope.row.payStatus=='0'&&scope.row.auditStatus=='0'" type="text"--> |
| 178 | @click="goPay(scope.row)" | 178 | <!-- @click="goPay(scope.row)"--> |
| 179 | >支付 | 179 | <!-- >支付--> |
| 180 | </el-button> | 180 | <!-- </el-button>--> |
| 181 | <el-button | 181 | <!-- <el-button--> |
| 182 | v-if="scope.row.payStatus=='0'&&scope.row.auditStatus=='0'&&scope.row.payType!='2'" type="text" | 182 | <!-- v-if="scope.row.payStatus=='0'&&scope.row.auditStatus=='0'&&scope.row.payType!='2'" type="text"--> |
| 183 | @click="cancelBill(scope.row)" | 183 | <!-- @click="cancelBill(scope.row)"--> |
| 184 | >取消 | 184 | <!-- >取消--> |
| 185 | </el-button> | 185 | <!-- </el-button>--> |
| 186 | </template> | 186 | <!-- </template>--> |
| 187 | </el-table-column> | 187 | <!-- </el-table-column>--> |
| 188 | </el-table> | 188 | <!-- </el-table>--> |
| 189 | <el-empty v-if="billList.length==0" description="暂无数据" /> | 189 | <!-- <el-empty v-if="billList.length==0" description="暂无数据" />--> |
| 190 | <pagination | 190 | <!-- <pagination--> |
| 191 | v-show="total > 0" | 191 | <!-- v-show="total > 0"--> |
| 192 | v-model:page="query2.pageNum" | 192 | <!-- v-model:page="query2.pageNum"--> |
| 193 | v-model:limit="query2.pageSize" | 193 | <!-- v-model:limit="query2.pageSize"--> |
| 194 | :total="total2" | 194 | <!-- :total="total2"--> |
| 195 | @pagination="getBillList" | 195 | <!-- @pagination="getBillList"--> |
| 196 | /> | 196 | <!-- />--> |
| 197 | </div> | 197 | <!-- </div>--> |
| 198 | </el-tab-pane> | 198 | <!-- </el-tab-pane>--> |
| 199 | 199 | ||
| 200 | </el-tabs> | 200 | <!-- </el-tabs>--> |
| 201 | 201 | ||
| 202 | <!-- 报项详情--> | 202 | <!-- 报项详情--> |
| 203 | <dialogModifySign :props="dialogModifySignProps" /> | 203 | <dialogModifySign :props="dialogModifySignProps" /> | ... | ... |
src/viewsPc/center/myMember.vue
0 → 100644
| 1 | <template> | ||
| 2 | <el-card> | ||
| 3 | <div class="funcBtns"> | ||
| 4 | <el-button type="primary" @click="addMember">添加选手</el-button> | ||
| 5 | <el-button type="primary" plain @click="importSportman">导入选手</el-button> | ||
| 6 | <el-button type="primary" plain> | ||
| 7 | <a href="/file/sportsmanTemplate.xlsx" target="_blank">下载模板</a> | ||
| 8 | </el-button> | ||
| 9 | </div> | ||
| 10 | <div class="from-Card"> | ||
| 11 | <el-form :inline="true" :model="query" class="mt20" label-width="60" size="small"> | ||
| 12 | <el-form-item label="姓名"> | ||
| 13 | <el-input v-model="query.realName" style="width: 120px;" clearable/> | ||
| 14 | </el-form-item> | ||
| 15 | <el-form-item label="短名"> | ||
| 16 | <el-input v-model="query.shortName" style="width: 120px;" clearable/> | ||
| 17 | </el-form-item> | ||
| 18 | <el-form-item label="手机号码"> | ||
| 19 | <el-input v-model="query.phone" style="width: 120px;" clearable/> | ||
| 20 | </el-form-item> | ||
| 21 | <el-form-item label="邮箱"> | ||
| 22 | <el-input v-model="query.email" style="width: 120px;" clearable/> | ||
| 23 | </el-form-item> | ||
| 24 | <el-form-item label="证件类型"> | ||
| 25 | <el-input v-model="query.idcType" style="width: 120px;" clearable/> | ||
| 26 | </el-form-item> | ||
| 27 | <el-form-item label="证件号"> | ||
| 28 | <el-input v-model="query.idcode" style="width: 120px;" clearable/> | ||
| 29 | </el-form-item> | ||
| 30 | <el-form-item label="角色"> | ||
| 31 | <el-input v-model="query.label" style="width: 120px;" clearable/> | ||
| 32 | </el-form-item> | ||
| 33 | <el-form-item> | ||
| 34 | <el-button type="primary" @click="getList">查询</el-button> | ||
| 35 | </el-form-item> | ||
| 36 | </el-form> | ||
| 37 | </div> | ||
| 38 | |||
| 39 | <!-- 人员表格--> | ||
| 40 | <person-table :table-data="tableData" @edit="editCoach" @delete="delperson"/> | ||
| 41 | <el-table :data="tableData" class="mt20"> | ||
| 42 | <el-table-column type="index" label="序号" width="80" align="center"/> | ||
| 43 | <el-table-column label="所属国家" prop="countryName"/> | ||
| 44 | <el-table-column label="姓氏" prop="xing"/> | ||
| 45 | <el-table-column label="名" prop="ming"/> | ||
| 46 | <el-table-column label="短名" prop="shortName"/> | ||
| 47 | <el-table-column label="性别" prop="sexStr"/> | ||
| 48 | <el-table-column label="年龄" prop="age"/> | ||
| 49 | <el-table-column label="出生日期" prop="birth" width="100"/> | ||
| 50 | <el-table-column label="手机号码" prop="phone" width="120"/> | ||
| 51 | <el-table-column label="邮箱" prop="email" width="150"/> | ||
| 52 | <el-table-column label="证件类型" prop="idcTypeStr"/> | ||
| 53 | <el-table-column label="证件号码" prop="idcCode" width="200"/> | ||
| 54 | <el-table-column label="会员角色"> | ||
| 55 | <template #default="scope"> | ||
| 56 | <span v-for="item in scope.row.label?.split(',')" :key="item.id"> | ||
| 57 | <el-tag type="primary" size="mini" v-if="item==='0'" effect="dark" class="ml10">运动员</el-tag> | ||
| 58 | <el-tag type="info" size="mini" v-if="item==='1'" effect="dark" class="ml10">教练</el-tag> | ||
| 59 | <el-tag type="info" size="mini" v-if="item==='2'" effect="dark" class="ml10">领队</el-tag> | ||
| 60 | <el-tag type="info" size="mini" v-if="item==='3'" effect="dark" class="ml10">队医</el-tag> | ||
| 61 | <el-tag type="info" size="mini" v-if="item==='4'" effect="dark" class="ml10">翻译</el-tag> | ||
| 62 | <el-tag type="info" size="mini" v-if="item==='5'" effect="dark" class="ml10">官员</el-tag> | ||
| 63 | <el-tag type="info" size="mini" v-if="item==='6'" effect="dark" class="ml10">其他</el-tag> | ||
| 64 | </span> | ||
| 65 | </template> | ||
| 66 | </el-table-column> | ||
| 67 | <el-table-column label="详细地址" prop="address"/> | ||
| 68 | <el-table-column label="操作" fixed="right" width="160" header-align="center" align="center"> | ||
| 69 | <template #default="scope"> | ||
| 70 | <a class="text-primary pd10" @click="editCoach(scope.row)">编辑</a> | ||
| 71 | <a class="text-primary pd10" @click="delperson(scope.row)">删除</a> | ||
| 72 | </template> | ||
| 73 | </el-table-column> | ||
| 74 | </el-table> | ||
| 75 | <paginationPc | ||
| 76 | v-show="total>0" | ||
| 77 | v-model:page="query.pageNum" | ||
| 78 | v-model:limit="query.pageSize" | ||
| 79 | :total="total" | ||
| 80 | @pagination="getList" | ||
| 81 | /> | ||
| 82 | </el-card> | ||
| 83 | |||
| 84 | <!-- 添加人员--> | ||
| 85 | <addCoach ref="dialogAddCoach" @submitForm="getList"/> | ||
| 86 | <Import ref="dialogImportProps"/> | ||
| 87 | </template> | ||
| 88 | |||
| 89 | <script setup> | ||
| 90 | import addCoach from '../match/components/addCoach' | ||
| 91 | import personTable from '../match/components/personTable' | ||
| 92 | import Import from '../match/components/import' | ||
| 93 | import {ref, watch} from 'vue' | ||
| 94 | import {useRouter} from 'vue-router' | ||
| 95 | import {getCurrentInstance, onMounted} from '@vue/runtime-core' | ||
| 96 | |||
| 97 | const router = useRouter() | ||
| 98 | const {proxy} = getCurrentInstance() | ||
| 99 | import * as match from '@/apiPc/match' | ||
| 100 | import {ElMessage, ElMessageBox} from 'element-plus' | ||
| 101 | import {getGroupPersonList} from "@/apiPc/match"; | ||
| 102 | import PersonTable from "@/viewsPc/match/components/personTable"; | ||
| 103 | |||
| 104 | const tableData = ref([]) | ||
| 105 | const query = ref({ | ||
| 106 | pageNum: 1, pageSize: 10 | ||
| 107 | }) | ||
| 108 | const total = ref(0) | ||
| 109 | const groupId = ref('1759813142128967681') | ||
| 110 | onMounted(() => { | ||
| 111 | getList(groupId.value) | ||
| 112 | }) | ||
| 113 | |||
| 114 | function addMember() { | ||
| 115 | const params = { | ||
| 116 | title: '添加人员', | ||
| 117 | id: 0, | ||
| 118 | groupId: groupId.value | ||
| 119 | } | ||
| 120 | proxy.$refs['dialogAddCoach'].open(params) | ||
| 121 | } | ||
| 122 | |||
| 123 | function importSportman() { | ||
| 124 | const params = { | ||
| 125 | title: '批量导入选手', | ||
| 126 | groupId: groupId.value | ||
| 127 | } | ||
| 128 | proxy.$refs['dialogImportProps'].open(params) | ||
| 129 | } | ||
| 130 | |||
| 131 | function getList() { | ||
| 132 | getGroupPersonList(query.value, groupId.value).then(res => { | ||
| 133 | tableData.value = res.rows | ||
| 134 | total.value = res.total | ||
| 135 | }) | ||
| 136 | } | ||
| 137 | |||
| 138 | function editCoach(row) { | ||
| 139 | const params = { | ||
| 140 | id: row.id, | ||
| 141 | groupId: row.groupId | ||
| 142 | } | ||
| 143 | proxy.$refs['dialogAddCoach'].open(params) | ||
| 144 | } | ||
| 145 | |||
| 146 | function delperson(p) { | ||
| 147 | //删除团队下的人 | ||
| 148 | ElMessageBox.confirm(`确定删除${p.realName}吗?`, '提示', { | ||
| 149 | confirmButtonText: '确定', | ||
| 150 | cancelButtonText: '取消', | ||
| 151 | type: 'warning' | ||
| 152 | }).then(() => { | ||
| 153 | match.delPerson(p.id).then(res => { | ||
| 154 | ElMessage.success('操作成功') | ||
| 155 | getList(groupId.value) | ||
| 156 | }) | ||
| 157 | }) | ||
| 158 | } | ||
| 159 | </script> | ||
| 160 | |||
| 161 | <style scoped lang="scss"> | ||
| 162 | .el-form--inline .el-form-item { | ||
| 163 | width: auto; | ||
| 164 | } | ||
| 165 | </style> |
| 1 | <template> | 1 | <template> |
| 2 | <div class="app-container"> | 2 | <div class=""> |
| 3 | 3 | ||
| 4 | <div class="box ph-30"> | 4 | <div class="box ph-30"> |
| 5 | <div class="panel"> | 5 | <el-card> |
| 6 | <div class="panel-header"> | 6 | <el-steps :active="activeStep" align-center> |
| 7 | <h3 class="panel-title">选择教练/领队/其他</h3> | 7 | <el-step title="团队信息"/> |
| 8 | </div> | 8 | <el-step title="教练/领队/其他"/> |
| 9 | <div class="panel-body"> | 9 | <el-step title="选手报名"/> |
| 10 | <span class="tip">*至少选择一个教练或领队</span> | 10 | <el-step title="提交审核"/> |
| 11 | <div class="text-right"> | 11 | </el-steps> |
| 12 | <el-button type="success" @click="addCoach">新建教练</el-button> | 12 | </el-card> |
| 13 | </div> | ||
| 14 | 13 | ||
| 15 | <el-form | 14 | <el-row class="mt20" :gutter="20"> |
| 16 | ref="ruleFormRef" label-width="120px" label-position="top" class="chooseForm" :model="form" | 15 | <el-col :lg="12"> |
| 17 | :rules="rules" | 16 | <el-card> |
| 18 | > | 17 | <template #header> |
| 19 | <el-form-item label="教练" prop="coachs"> | 18 | <div class="card-header"> |
| 19 | <img src="@/assets/sign/tag01.png"/> | ||
| 20 | 教练<span class="tip">(教练/领队,至少选择一项)</span> | ||
| 21 | </div> | ||
| 22 | </template> | ||
| 23 | <div class="chooseForm"> | ||
| 20 | <el-checkbox-group v-model="form.coachs" @change="changecoachs"> | 24 | <el-checkbox-group v-model="form.coachs" @change="changecoachs"> |
| 25 | <div class="addBttn" @click="addCoach(0)">+</div> | ||
| 21 | <el-checkbox v-for="c in coachList" :label="c.id"> | 26 | <el-checkbox v-for="c in coachList" :label="c.id"> |
| 22 | <el-avatar :size="60" :src="c.picUrl" /> | 27 | <el-avatar fit="cover" :size="60" :src="fillImgUrl(c.picUrl)"/> |
| 23 | <p class="name">{{ c.realName }} | 28 | <p class="name">{{ c.shortName }} |
| 24 | <el-icon @click.stop="editPerson(c.id)"> | 29 | <el-icon @click.stop="editPerson(c.id)"> |
| 25 | <Edit /> | 30 | <Edit/> |
| 26 | </el-icon> | 31 | </el-icon> |
| 27 | </p> | 32 | </p> |
| 28 | </el-checkbox> | 33 | </el-checkbox> |
| 29 | </el-checkbox-group> | 34 | </el-checkbox-group> |
| 30 | </el-form-item> | 35 | </div> |
| 31 | <el-form-item label="领队" prop="leader"> | 36 | </el-card> |
| 37 | </el-col> | ||
| 38 | <el-col :lg="12"> | ||
| 39 | <el-card> | ||
| 40 | <template #header> | ||
| 41 | <div class="card-header"> | ||
| 42 | <img src="@/assets/sign/tag02.png"/> | ||
| 43 | 领队<span class="tip">(教练/领队,至少选择一项)</span> | ||
| 44 | </div> | ||
| 45 | </template> | ||
| 46 | <div class="chooseForm"> | ||
| 32 | <el-checkbox-group v-model="form.leader"> | 47 | <el-checkbox-group v-model="form.leader"> |
| 48 | <div class="addBttn" @click="addCoach(0)">+</div> | ||
| 33 | <el-checkbox v-for="c in leaderList" :label="c.id"> | 49 | <el-checkbox v-for="c in leaderList" :label="c.id"> |
| 34 | <el-avatar :size="60" :src="c.picUrl" /> | 50 | <el-avatar fit="cover" :size="60" :src="fillImgUrl(c.picUrl)"/> |
| 35 | <p class="name">{{ c.realName }} | 51 | <p class="name">{{ c.shortName }} |
| 36 | <el-icon @click.stop="editPerson(c.id)"> | 52 | <el-icon @click.stop="editPerson(c.id)"> |
| 37 | <Edit /> | 53 | <Edit/> |
| 38 | </el-icon> | 54 | </el-icon> |
| 39 | </p> | 55 | </p> |
| 40 | </el-checkbox> | 56 | </el-checkbox> |
| 41 | </el-checkbox-group> | 57 | </el-checkbox-group> |
| 42 | </el-form-item> | 58 | </div> |
| 43 | <el-form-item label="队医" prop="doctors"> | 59 | </el-card> |
| 60 | </el-col> | ||
| 61 | <el-col :lg="12"> | ||
| 62 | <el-card class="mt20"> | ||
| 63 | <template #header> | ||
| 64 | <div class="card-header"> | ||
| 65 | <img src="@/assets/sign/tag03.png"/> | ||
| 66 | 队医 | ||
| 67 | </div> | ||
| 68 | </template> | ||
| 69 | <div class="chooseForm"> | ||
| 44 | <el-checkbox-group v-model="form.doctor"> | 70 | <el-checkbox-group v-model="form.doctor"> |
| 71 | <div class="addBttn" @click="addCoach(0)">+</div> | ||
| 45 | <el-checkbox v-for="c in doctorList" :label="c.id"> | 72 | <el-checkbox v-for="c in doctorList" :label="c.id"> |
| 46 | <el-avatar :size="60" :src="c.picUrl" /> | 73 | <el-avatar fit="cover" :size="60" :src="fillImgUrl(c.picUrl)"/> |
| 47 | <p class="name">{{ c.realName }} | 74 | <p class="name">{{ c.shortName }} |
| 48 | <el-icon @click.stop="editPerson(c.id)"> | 75 | <el-icon @click.stop="editPerson(c.id)"> |
| 49 | <Edit /> | 76 | <Edit/> |
| 50 | </el-icon> | 77 | </el-icon> |
| 51 | </p> | 78 | </p> |
| 52 | </el-checkbox> | 79 | </el-checkbox> |
| 53 | </el-checkbox-group> | 80 | </el-checkbox-group> |
| 54 | </el-form-item> | 81 | </div> |
| 55 | <el-form-item label="翻译" prop="translator"> | 82 | </el-card> |
| 83 | </el-col> | ||
| 84 | <el-col :lg="12"> | ||
| 85 | <el-card class="mt20"> | ||
| 86 | <template #header> | ||
| 87 | <div class="card-header"> | ||
| 88 | <img src="@/assets/sign/tag04.png"/> | ||
| 89 | 翻译 | ||
| 90 | </div> | ||
| 91 | </template> | ||
| 92 | <div class="chooseForm"> | ||
| 56 | <el-checkbox-group v-model="form.translator"> | 93 | <el-checkbox-group v-model="form.translator"> |
| 94 | <div class="addBttn" @click="addCoach(0)">+</div> | ||
| 57 | <el-checkbox v-for="c in translatorList" :label="c.id"> | 95 | <el-checkbox v-for="c in translatorList" :label="c.id"> |
| 58 | <el-avatar :size="60" :src="c.picUrl" /> | 96 | <el-avatar fit="cover" :size="60" :src="fillImgUrl(c.picUrl)"/> |
| 59 | <p class="name">{{ c.realName }} | 97 | <p class="name">{{ c.shortName }} |
| 60 | <el-icon @click.stop="editPerson(c.id)"> | 98 | <el-icon @click.stop="editPerson(c.id)"> |
| 61 | <Edit /> | 99 | <Edit/> |
| 62 | </el-icon> | 100 | </el-icon> |
| 63 | </p> | 101 | </p> |
| 64 | </el-checkbox> | 102 | </el-checkbox> |
| 65 | </el-checkbox-group> | 103 | </el-checkbox-group> |
| 66 | </el-form-item> | 104 | </div> |
| 67 | <el-form-item label="官员" prop="official"> | 105 | </el-card> |
| 106 | </el-col> | ||
| 107 | <el-col :lg="12"> | ||
| 108 | <el-card class="mt20"> | ||
| 109 | <template #header> | ||
| 110 | <div class="card-header"> | ||
| 111 | <img src="@/assets/sign/tag05.png"/> | ||
| 112 | 官员 | ||
| 113 | </div> | ||
| 114 | </template> | ||
| 115 | <div class="chooseForm"> | ||
| 68 | <el-checkbox-group v-model="form.official"> | 116 | <el-checkbox-group v-model="form.official"> |
| 117 | <div class="addBttn" @click="addCoach(0)">+</div> | ||
| 69 | <el-checkbox v-for="c in officialList" :label="c.id"> | 118 | <el-checkbox v-for="c in officialList" :label="c.id"> |
| 70 | <el-avatar :size="60" :src="c.picUrl" /> | 119 | <el-avatar fit="cover" :size="60" :src="fillImgUrl(c.picUrl)"/> |
| 71 | <p class="name">{{ c.realName }} | 120 | <p class="name">{{ c.shortName }} |
| 72 | <el-icon @click.stop="editPerson(c.id)"> | 121 | <el-icon @click.stop="editPerson(c.id)"> |
| 73 | <Edit /> | 122 | <Edit/> |
| 74 | </el-icon> | 123 | </el-icon> |
| 75 | </p> | 124 | </p> |
| 76 | </el-checkbox> | 125 | </el-checkbox> |
| 77 | </el-checkbox-group> | 126 | </el-checkbox-group> |
| 78 | </el-form-item> | 127 | </div> |
| 79 | <el-form-item label="其他" prop="other"> | 128 | </el-card> |
| 129 | </el-col> | ||
| 130 | <el-col :lg="12"> | ||
| 131 | <el-card class="mt20"> | ||
| 132 | <template #header> | ||
| 133 | <div class="card-header"> | ||
| 134 | <img src="@/assets/sign/tag06.png"/> | ||
| 135 | 其他 | ||
| 136 | </div> | ||
| 137 | </template> | ||
| 138 | <div class="chooseForm"> | ||
| 80 | <el-checkbox-group v-model="form.other"> | 139 | <el-checkbox-group v-model="form.other"> |
| 140 | <div class="addBttn" @click="addCoach(0)">+</div> | ||
| 81 | <el-checkbox v-for="c in otherList" :label="c.id"> | 141 | <el-checkbox v-for="c in otherList" :label="c.id"> |
| 82 | <el-avatar :size="60" :src="c.picUrl" /> | 142 | <el-avatar fit="cover" :size="60" :src="fillImgUrl(c.picUrl)"/> |
| 83 | <p class="name">{{ c.realName }} | 143 | <p class="name">{{ c.shortName }} |
| 84 | <el-icon @click.stop="editPerson(c.id)"> | 144 | <el-icon @click.stop="editPerson(c.id)"> |
| 85 | <Edit /> | 145 | <Edit/> |
| 86 | </el-icon> | 146 | </el-icon> |
| 87 | </p> | 147 | </p> |
| 88 | </el-checkbox> | 148 | </el-checkbox> |
| 89 | </el-checkbox-group> | 149 | </el-checkbox-group> |
| 90 | </el-form-item> | ||
| 91 | |||
| 92 | </el-form> | ||
| 93 | |||
| 94 | </div> | ||
| 95 | <div class="panel-footer text-center"> | ||
| 96 | <el-button type="success" plain round @click="goPrev()">上一步</el-button> | ||
| 97 | <el-button v-if="signType!='2'" type="success" round @click="goNext()">下一步</el-button> | ||
| 98 | <el-button v-else type="success" round @click="chooseDone()">确定</el-button> | ||
| 99 | </div> | 150 | </div> |
| 151 | </el-card> | ||
| 152 | </el-col> | ||
| 153 | </el-row> | ||
| 154 | <el-card class="mt20"> | ||
| 155 | <div class="text-center"> | ||
| 156 | <el-button type="primary" class="w200px" plain round @click="goPrev()">上一步</el-button> | ||
| 157 | <el-button type="primary" class="btn-lineG w200px" round @click="goNext()">下一步</el-button> | ||
| 100 | </div> | 158 | </div> |
| 159 | </el-card> | ||
| 160 | |||
| 161 | |||
| 101 | </div> | 162 | </div> |
| 102 | 163 | ||
| 103 | <dialogAddCoach ref="dialogAddCoachRef" @submitForm="getList" /> | 164 | <dialogAddCoach ref="dialogAddCoachRef" @submitForm="getList"/> |
| 104 | 165 | ||
| 105 | </div> | 166 | </div> |
| 106 | </template> | 167 | </template> |
| 107 | 168 | ||
| 108 | <script setup> | 169 | <script setup> |
| 109 | import { ref, reactive } from 'vue' | 170 | import {ref, reactive} from 'vue' |
| 110 | import { getCurrentInstance, onMounted } from '@vue/runtime-core' | 171 | import {getCurrentInstance, onMounted} from '@vue/runtime-core' |
| 111 | import * as match from '@/apiPc/match' | 172 | import * as match from '@/apiPc/match' |
| 112 | import dialogAddCoach from './components/addCoach' | 173 | import dialogAddCoach from './components/addCoach' |
| 113 | const { proxy } = getCurrentInstance() | 174 | |
| 175 | const {proxy} = getCurrentInstance() | ||
| 114 | const router = useRouter() | 176 | const router = useRouter() |
| 115 | const route = useRoute() | 177 | const route = useRoute() |
| 116 | import { ElMessage } from 'element-plus' | 178 | import {ElMessage} from 'element-plus' |
| 117 | import { useRoute, useRouter } from 'vue-router' | 179 | import {useRoute, useRouter} from 'vue-router' |
| 180 | |||
| 118 | const data = reactive({ | 181 | const data = reactive({ |
| 119 | form: { | 182 | form: { |
| 120 | coachs: [], | 183 | coachs: [], |
| ... | @@ -129,12 +192,21 @@ const data = reactive({ | ... | @@ -129,12 +192,21 @@ const data = reactive({ |
| 129 | hasChooseObj: {}, | 192 | hasChooseObj: {}, |
| 130 | groupId: '0', | 193 | groupId: '0', |
| 131 | signType: '', | 194 | signType: '', |
| 132 | rules: { | 195 | activeStep: 1 |
| 133 | // coachs: { required: true, message: '至少选择一个', trigger: 'change' }, | ||
| 134 | // leader: { required: true, message: '至少选择一个', trigger: 'change' } | ||
| 135 | } | ||
| 136 | }) | 196 | }) |
| 137 | const { form, coachList, leaderList, otherList, doctorList, translatorList, officialList, rules, signType, groupId, hasChooseObj } = toRefs(data) | 197 | const { |
| 198 | form, | ||
| 199 | coachList, | ||
| 200 | leaderList, | ||
| 201 | otherList, | ||
| 202 | doctorList, | ||
| 203 | translatorList, | ||
| 204 | officialList, | ||
| 205 | rules, | ||
| 206 | signType, | ||
| 207 | groupId, | ||
| 208 | hasChooseObj,activeStep | ||
| 209 | } = toRefs(data) | ||
| 138 | let matchId = '' | 210 | let matchId = '' |
| 139 | onMounted(() => { | 211 | onMounted(() => { |
| 140 | matchId = route.query.matchId | 212 | matchId = route.query.matchId |
| ... | @@ -142,6 +214,7 @@ onMounted(() => { | ... | @@ -142,6 +214,7 @@ onMounted(() => { |
| 142 | signType.value = route.query.signType || '' | 214 | signType.value = route.query.signType || '' |
| 143 | getList() | 215 | getList() |
| 144 | }) | 216 | }) |
| 217 | |||
| 145 | function getList() { | 218 | function getList() { |
| 146 | if (signType.value == '0') { | 219 | if (signType.value == '0') { |
| 147 | geren() | 220 | geren() |
| ... | @@ -149,11 +222,14 @@ function getList() { | ... | @@ -149,11 +222,14 @@ function getList() { |
| 149 | tuandui() | 222 | tuandui() |
| 150 | } | 223 | } |
| 151 | } | 224 | } |
| 225 | |||
| 152 | function changecoachs(e) { | 226 | function changecoachs(e) { |
| 153 | console.log(e) | 227 | console.log(e) |
| 154 | } | 228 | } |
| 229 | |||
| 155 | // 获取报名时是否已选过 | 230 | // 获取报名时是否已选过 |
| 156 | let hasChooseId | 231 | let hasChooseId |
| 232 | |||
| 157 | function tuandui() { | 233 | function tuandui() { |
| 158 | Promise.all([ | 234 | Promise.all([ |
| 159 | match.getMyGroupForCpt(groupId.value, matchId), | 235 | match.getMyGroupForCpt(groupId.value, matchId), |
| ... | @@ -186,6 +262,7 @@ function tuandui() { | ... | @@ -186,6 +262,7 @@ function tuandui() { |
| 186 | } | 262 | } |
| 187 | }) | 263 | }) |
| 188 | } | 264 | } |
| 265 | |||
| 189 | function geren() { | 266 | function geren() { |
| 190 | Promise.all([ | 267 | Promise.all([ |
| 191 | match.getMyPersonInfoWithcptId(matchId), | 268 | match.getMyPersonInfoWithcptId(matchId), |
| ... | @@ -210,10 +287,12 @@ function geren() { | ... | @@ -210,10 +287,12 @@ function geren() { |
| 210 | } | 287 | } |
| 211 | }) | 288 | }) |
| 212 | } | 289 | } |
| 290 | |||
| 213 | function chooseDone() { | 291 | function chooseDone() { |
| 214 | // 返回团队报名 | 292 | // 返回团队报名 |
| 215 | router.go(-1) | 293 | router.go(-1) |
| 216 | } | 294 | } |
| 295 | |||
| 217 | function goNext() { | 296 | function goNext() { |
| 218 | console.log(form.value) | 297 | console.log(form.value) |
| 219 | if ((form.value.coachs.length < 1) && (form.value.leader.length < 1)) { | 298 | if ((form.value.coachs.length < 1) && (form.value.leader.length < 1)) { |
| ... | @@ -262,9 +341,11 @@ function goNext() { | ... | @@ -262,9 +341,11 @@ function goNext() { |
| 262 | 341 | ||
| 263 | console.log(form.value) | 342 | console.log(form.value) |
| 264 | } | 343 | } |
| 344 | |||
| 265 | function goPrev() { | 345 | function goPrev() { |
| 266 | router.back() | 346 | router.back() |
| 267 | } | 347 | } |
| 348 | |||
| 268 | function editPerson(id) { | 349 | function editPerson(id) { |
| 269 | proxy.$refs['dialogAddCoachRef'].open({ | 350 | proxy.$refs['dialogAddCoachRef'].open({ |
| 270 | title: '编辑人员', | 351 | title: '编辑人员', |
| ... | @@ -272,6 +353,7 @@ function editPerson(id) { | ... | @@ -272,6 +353,7 @@ function editPerson(id) { |
| 272 | groupId: groupId.value | 353 | groupId: groupId.value |
| 273 | }) | 354 | }) |
| 274 | } | 355 | } |
| 356 | |||
| 275 | function addCoach() { | 357 | function addCoach() { |
| 276 | proxy.$refs['dialogAddCoachRef'].open({ | 358 | proxy.$refs['dialogAddCoachRef'].open({ |
| 277 | title: '新建人员', | 359 | title: '新建人员', |
| ... | @@ -282,15 +364,45 @@ function addCoach() { | ... | @@ -282,15 +364,45 @@ function addCoach() { |
| 282 | </script> | 364 | </script> |
| 283 | 365 | ||
| 284 | <style scoped lang="scss"> | 366 | <style scoped lang="scss"> |
| 285 | .app-container{ padding: 0;background: #F5F7F9;} | 367 | .addBttn {margin-right: 20px; |
| 286 | .panel-footer .el-button--success { | 368 | width: 60px; |
| 287 | padding: 0 40px; | 369 | color: #7B7F83; |
| 370 | font-size: 20px; | ||
| 371 | height: 60px; | ||
| 372 | display: flex; | ||
| 373 | align-items: center; | ||
| 374 | justify-content: center; | ||
| 375 | background: #FFFFFF; | ||
| 376 | border: 1px dashed #95A1A6; | ||
| 377 | border-radius: 50%; | ||
| 378 | |||
| 379 | &:hover { | ||
| 380 | cursor: pointer; | ||
| 381 | color: var(--el-color-primary); | ||
| 382 | border-color: var(--el-color-primary); | ||
| 288 | } | 383 | } |
| 289 | .chooseForm{ | 384 | } |
| 385 | |||
| 386 | .card-header { | ||
| 387 | display: flex; | ||
| 388 | align-items: center;color: var(--el-color-primary); | ||
| 389 | |||
| 390 | img { | ||
| 391 | margin-right: 8px; | ||
| 392 | flex: 0 0 auto; | ||
| 393 | } | ||
| 394 | } | ||
| 395 | |||
| 396 | .panel-footer .el-button--success { | ||
| 397 | padding: 0 40px; | ||
| 398 | } | ||
| 399 | .chooseForm{ | ||
| 290 | :deep(.el-form-item__content){background: rgba(245, 247, 249, 0.38); | 400 | :deep(.el-form-item__content){background: rgba(245, 247, 249, 0.38); |
| 291 | padding: 20px 40px 10px;} | 401 | padding: 20px 40px 10px;} |
| 292 | .el-checkbox{height: auto;} | 402 | .el-checkbox{height: auto;} |
| 293 | :deep(.el-checkbox__input){position: absolute;right: 0;top: 0;} | 403 | :deep(.el-checkbox__input){position: absolute;right: 0;top: 0;} |
| 294 | .name{text-align: center;} | 404 | .name{text-align: center;} |
| 295 | } | 405 | } |
| 406 | :deep(.el-avatar)>img{width: 100%;} | ||
| 407 | |||
| 296 | </style> | 408 | </style> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div class="app-container"> | 2 | <div> |
| 3 | <div class="box ph-30"> | 3 | <div class="box ph-30"> |
| 4 | <div class="panel"> | 4 | <el-card class="mb20"> |
| 5 | <div class="panel-header"> | 5 | <el-steps :active="activeStep" align-center> |
| 6 | <h3 class="panel-title">选择运动员</h3> | 6 | <el-step title="团队信息"/> |
| 7 | <el-step title="教练/领队/其他"/> | ||
| 8 | <el-step title="选手报名"/> | ||
| 9 | <el-step title="提交审核"/> | ||
| 10 | </el-steps> | ||
| 11 | </el-card> | ||
| 12 | |||
| 13 | <el-card :body-style="{'padding-top': '0'}"> | ||
| 14 | <el-row class="mt20" :gutter="20"> | ||
| 15 | <el-col :lg="8"> | ||
| 16 | <div class="panel border"> | ||
| 17 | <div class="panel-header "> | ||
| 18 | <h3 class="panel-title">选择参赛运动员清单</h3> | ||
| 19 | <a class="fr" @click="emptyChoosed">清空</a> | ||
| 7 | </div> | 20 | </div> |
| 8 | <div class="panel-body"> | 21 | <div class="panel-body"> |
| 9 | <div class="text-right mb20"> | 22 | <div class="chooseForm"> |
| 10 | <el-button type="success" @click="chooseSportman">选择参赛运动员</el-button> | 23 | <el-checkbox-group v-model="choosedchoosed" @change="changechoosed"> |
| 11 | <el-button type="success" @click="importSportman">批量导入人员</el-button> | 24 | <div class="addBttn" @click="chooseSportman">+</div> |
| 12 | <el-button type="success" @click="addCoach">新增运动员</el-button> | 25 | <el-checkbox v-for="c in choosedList" :label="c.id"> |
| 13 | </div> | 26 | <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/> |
| 27 | <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="@/assets/img/head1.png"/> | ||
| 28 | <el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="@/assets/img/head0.png"/> | ||
| 14 | 29 | ||
| 15 | <el-tabs | 30 | <p class="name">{{ c.shortName }} |
| 16 | v-if="signType=='2'" | 31 | <el-icon @click.stop="editPerson(c.id)"> |
| 17 | v-model="activeTeam" | 32 | <Edit/> |
| 18 | type="card" | 33 | </el-icon> |
| 19 | class="demo-tabs" | 34 | <!-- <el-icon @click.stop="delthischoosed(c)">--> |
| 20 | @tab-click="teamClick" | 35 | <!-- <Delete/>--> |
| 21 | > | 36 | <!-- </el-icon>--> |
| 22 | <el-tab-pane v-for="t in teamList" :key="t.id" :label="t.name" :name="t.id" /> | 37 | </p> |
| 23 | </el-tabs> | ||
| 24 | |||
| 25 | <!-- 已选运动员列表--> | ||
| 26 | <div v-if="choosedList.length > 0" class="hasChoose"> | ||
| 27 | <el-checkbox-group v-model="choosedchoosed" style="display: flex;flex-wrap: wrap;"> | ||
| 28 | <div v-for="p in choosedList" class="choseItem"> | ||
| 29 | <a class="poClose" @click.stop="delthischoosed(p)"> | ||
| 30 | <el-icon :size="20" color="#999"><CircleClose /></el-icon> | ||
| 31 | </a> | ||
| 32 | <el-checkbox border :label="p.id" @click="signForThisMan(p)"> | ||
| 33 | {{ p.realName }} | ||
| 34 | <span v-if="p.sex=='1'">(男)</span> | ||
| 35 | <span v-if="p.sex=='0'">(女)</span> | ||
| 36 | </el-checkbox> | 38 | </el-checkbox> |
| 39 | </el-checkbox-group> | ||
| 37 | </div> | 40 | </div> |
| 38 | 41 | </div> | |
| 42 | </div> | ||
| 43 | </el-col> | ||
| 44 | <el-col :lg="8"> | ||
| 45 | <div class="panel border"> | ||
| 46 | <div class="panel-header "> | ||
| 47 | <h3 class="panel-title">选择一个参赛组合</h3> | ||
| 48 | </div> | ||
| 49 | <div class="panel-body"> | ||
| 50 | <div class="chooseForm"> | ||
| 51 | <el-checkbox-group v-model="choosedchoosed" @change="changechoosed"> | ||
| 52 | <!-- v-show="choosedchoosed.indexOf(c.id) !== -1"--> | ||
| 53 | <el-checkbox v-for="c in choosed2List" :label="c.id" checked> | ||
| 54 | <el-avatar fit="cover" v-if="c.picUrl" :size="60" :src="fillImgUrl(c.picUrl)"/> | ||
| 55 | <el-avatar fit="cover" v-else-if="c.sex == 0" :size="60" src="@/assets/img/head1.png"/> | ||
| 56 | <el-avatar fit="cover" v-else-if="c.sex == 1" :size="60" src="@/assets/img/head0.png"/> | ||
| 57 | <p class="name">{{ c.shortName }} | ||
| 58 | <el-icon @click.stop="editPerson(c.id)"> | ||
| 59 | <Edit/> | ||
| 60 | </el-icon> | ||
| 61 | </p> | ||
| 62 | </el-checkbox> | ||
| 39 | </el-checkbox-group> | 63 | </el-checkbox-group> |
| 40 | <el-button size="small" type="warning" plain @click="delchoosedchoosed">批量删除</el-button> | ||
| 41 | </div> | 64 | </div> |
| 42 | <ul class="mb20 namesUl"> | 65 | </div> |
| 43 | <li v-show="names.coachList?.length>0"><label>教练:</label><span v-for="c in names.coachList">{{ c.realName }}</span> </li> | 66 | </div> |
| 44 | <li v-show="names.leaderList?.length>0"><label>领队:</label><span v-for="c in names.leaderList">{{ c.realName }}</span></li> | 67 | </el-col> |
| 45 | <li v-show="names.teamDoctorList?.length>0"><label>队医:</label><span v-for="c in names.teamDoctorList">{{ c.realName }}</span></li> | 68 | <el-col :lg="8"> |
| 46 | <li v-show="names.translatorList?.length>0"><label>翻译:</label><span v-for="c in names.translatorList">{{ c.realName }}</span></li> | 69 | <div class="panel border"> |
| 47 | <li v-show="names.officialList?.length>0"><label>官员:</label><span v-for="c in names.officialList">{{ c.realName }}</span></li> | 70 | <div class="panel-header "> |
| 48 | <li v-show="names.otherList?.length>0"><label>其他:</label><span v-for="c in names.otherList">{{ c.realName }}</span></li> | 71 | <h3 class="panel-title">可参与报名的项目</h3> |
| 49 | </ul> | 72 | <div class="fr"> |
| 50 | 73 | <el-input size="small" v-model="projectQuery.name" :prefix-icon="Search" @change="getProjectList" clearable/> | |
| 51 | <el-table :data="signInfoTable" style="width: 100%"> | 74 | </div> |
| 75 | </div> | ||
| 76 | <div class="panel-body" v-loading="loadingProject"> | ||
| 77 | <el-empty v-if="projectList.length==0" image="@/assets/img/order_no.png" image-size="228" description="无可选项目" /> | ||
| 78 | </div> | ||
| 79 | </div> | ||
| 80 | </el-col> | ||
| 81 | </el-row> | ||
| 82 | <el-row class="mt20"> | ||
| 83 | <el-col :span="24"> | ||
| 84 | <div class="text-center"> | ||
| 85 | <el-button type="primary" class="btn-lineG w200px" round>确定</el-button> | ||
| 86 | </div> | ||
| 87 | </el-col> | ||
| 88 | </el-row> | ||
| 89 | </el-card> | ||
| 90 | |||
| 91 | <el-card class="mt20" :body-style="{'padding-top': '0'}"> | ||
| 92 | <div class="border-info mt20"> | ||
| 93 | <el-row> | ||
| 94 | <el-col :lg="8"> | ||
| 95 | <div class="item"><label>教练</label> | ||
| 96 | <span v-for="c in names.coachList">{{ c.shortName }}</span> | ||
| 97 | </div> | ||
| 98 | <div class="item"><label>翻译</label> | ||
| 99 | <span v-for="c in names.translatorList">{{ c.shortName }}</span> | ||
| 100 | </div> | ||
| 101 | </el-col> | ||
| 102 | <el-col :lg="8"> | ||
| 103 | <div class="item"><label>领队</label> | ||
| 104 | <span v-for="c in names.leaderList">{{ c.shortName }}</span> | ||
| 105 | </div> | ||
| 106 | <div class="item"><label>官员</label> | ||
| 107 | <span class="mr5" v-for="c in names.officialList">{{ c.shortName }}</span> | ||
| 108 | <span v-if="!names.officialList">--</span> | ||
| 109 | </div> | ||
| 110 | </el-col> | ||
| 111 | <el-col :lg="8"> | ||
| 112 | <div class="item"><label>队医</label><span class="mr5" v-for="c in names.teamDoctorList">{{ | ||
| 113 | c.shortName | ||
| 114 | }}</span></div> | ||
| 115 | <div class="item"><label>其他</label><span class="mr5" v-for="c in names.otherList">{{ | ||
| 116 | c.shortName | ||
| 117 | }}</span></div> | ||
| 118 | </el-col> | ||
| 119 | </el-row> | ||
| 120 | </div> | ||
| 121 | |||
| 122 | <div> | ||
| 123 | |||
| 124 | <!-- <el-button type="success" @click="importSportman">批量导入人员</el-button>--> | ||
| 125 | <!-- <el-button type="success" @click="addCoach">新增运动员</el-button>--> | ||
| 126 | |||
| 127 | <div class="fr mb20" @click="switchTabletype"> | ||
| 128 | <el-button plain type="primary" :icon="Switch" v-if="tableType==1">按人员查看报项</el-button> | ||
| 129 | <el-button plain type="primary" :icon="Switch" v-else>按组别查看报项</el-button> | ||
| 130 | </div> | ||
| 131 | <el-table :data="signInfoTable" border style="width: 100%" v-if="tableType==0"> | ||
| 52 | <el-table-column label="运动员" width="240px"> | 132 | <el-table-column label="运动员" width="240px"> |
| 53 | <template #default="scope"> | 133 | <template #default="scope"> |
| 54 | <div style="display: flex;align-items: center;"> | 134 | <div style="display: flex;align-items: center;"> |
| 55 | <!-- <el-image v-if="scope.row.personInfo.picUrl" style="width: 50px; height: 50px" fit="contain" :src="scope.row.personInfo.picUrl" />--> | 135 | <!-- <el-image v-if="scope.row.personInfo.picUrl" style="width: 50px; height: 50px" fit="contain" :src="scope.row.personInfo.picUrl" />--> |
| 56 | <p>{{ scope.row.personInfo.realName }}({{ scope.row.personInfo.sexStr }})</p> | 136 | <p>{{ scope.row.personInfo.shortName }}({{ scope.row.personInfo.sexStr }})</p> |
| 57 | </div> | 137 | </div> |
| 58 | </template> | 138 | </template> |
| 59 | </el-table-column> | 139 | </el-table-column> |
| ... | @@ -72,7 +152,6 @@ | ... | @@ -72,7 +152,6 @@ |
| 72 | </li> | 152 | </li> |
| 73 | </ol> | 153 | </ol> |
| 74 | </template> | 154 | </template> |
| 75 | |||
| 76 | </el-table-column> | 155 | </el-table-column> |
| 77 | 156 | ||
| 78 | <!-- 补充信息--> | 157 | <!-- 补充信息--> |
| ... | @@ -95,21 +174,42 @@ | ... | @@ -95,21 +174,42 @@ |
| 95 | </el-table-column> | 174 | </el-table-column> |
| 96 | </el-table> | 175 | </el-table> |
| 97 | 176 | ||
| 98 | </div> | 177 | <el-table v-if="tableType==1" :data="signInfoTable" border style="width: 100%"> |
| 99 | <div class="panel-footer text-center"> | 178 | <el-table-column label="组别代码" width="120px"> |
| 100 | <el-button type="success" plain round @click="goPrev()">上一步</el-button> | 179 | <template #default="scope"> |
| 101 | <el-button type="success" round @click="submitForm()">下一步</el-button> | 180 | NO.1 |
| 181 | </template> | ||
| 182 | </el-table-column> | ||
| 183 | <el-table-column label="组别" /> | ||
| 184 | <el-table-column label="舞种" width="120px"/> | ||
| 185 | <el-table-column label="参赛说明" /> | ||
| 186 | <el-table-column label="参赛运动员" width="120px"/> | ||
| 187 | <el-table-column label="报名费" width="120px"/> | ||
| 188 | <el-table-column label="操作" fixed="right" width="150" align="center"> | ||
| 189 | <template #default="scope"> | ||
| 190 | <el-button v-if="extraform&&extraform.length>0" type="text" @click="goPersonInfo(scope.row)"> | ||
| 191 | <span v-if="scope.row.extraPersonInfo">修改</span> | ||
| 192 | <span v-else class="red">完善补充信息</span> | ||
| 193 | </el-button> | ||
| 194 | <el-button type="text" @click="goPersonInfo(scope.row)">删除</el-button> | ||
| 195 | </template> | ||
| 196 | </el-table-column> | ||
| 197 | </el-table> | ||
| 198 | <div class="text-center mt20"> | ||
| 199 | <el-button type="primary" class="w200px" plain round @click="goPrev()">上一步</el-button> | ||
| 200 | <el-button type="primary" class="btn-lineG w200px" round @click="submitForm()">预览报名信息</el-button> | ||
| 102 | </div> | 201 | </div> |
| 103 | </div> | 202 | </div> |
| 203 | </el-card> | ||
| 104 | </div> | 204 | </div> |
| 105 | 205 | ||
| 106 | <dialogAddCoach ref="dialogAddCoachRef" /> | 206 | <dialogAddCoach ref="dialogAddCoachRef"/> |
| 107 | <dialogSportsmanList ref="dialogSportsmanListRef" @submitForm="getSignInfoList" /> | 207 | <dialogSportsmanList ref="dialogSportsmanListRef" @submitForm="getSignInfoList"/> |
| 108 | <dialogAllSportsmanList ref="dialogAllSportsmanListRef" @transfer="getChoosed" @submitForm="getSignInfoList" /> | 208 | <dialogAllSportsmanList ref="dialogAllSportsmanListRef" @transfer="getChoosed" @submitForm="getSignInfoList"/> |
| 109 | 209 | ||
| 110 | <dialogMates ref="dialogMatesRef" @submitForm="getSignInfoList" /> | 210 | <dialogMates ref="dialogMatesRef" @submitForm="getSignInfoList"/> |
| 111 | 211 | ||
| 112 | <dialogImport ref="dialogImportProps" @submitForm="getMySignInfo" /> | 212 | <dialogImport ref="dialogImportProps" @submitForm="getMySignInfo"/> |
| 113 | 213 | ||
| 114 | <el-dialog v-model="showResult" :close-on-click-modal="false" :show-close="false"> | 214 | <el-dialog v-model="showResult" :close-on-click-modal="false" :show-close="false"> |
| 115 | <el-result icon="success" title="报名成功"> | 215 | <el-result icon="success" title="报名成功"> |
| ... | @@ -121,16 +221,16 @@ | ... | @@ -121,16 +221,16 @@ |
| 121 | 221 | ||
| 122 | </el-dialog> | 222 | </el-dialog> |
| 123 | 223 | ||
| 124 | <dialogChangeCoach ref="popChangeCoach" @submitForm="getMySignInfo" /> | 224 | <!-- <dialogChangeCoach ref="popChangeCoach" @submitForm="getMySignInfo"/>--> |
| 125 | 225 | ||
| 126 | <dialogExtraForm ref="popExtraForm" @submitForm="getSignInfoList" /> | 226 | <dialogExtraForm ref="popExtraForm" @submitForm="getSignInfoList"/> |
| 127 | </div> | 227 | </div> |
| 128 | </template> | 228 | </template> |
| 129 | 229 | ||
| 130 | <script setup> | 230 | <script setup> |
| 131 | import { ref, reactive } from 'vue' | 231 | import {ref, reactive} from 'vue' |
| 132 | import * as match from '@/apiPc/match' | 232 | import * as match from '@/apiPc/match' |
| 133 | import { getCurrentInstance, onMounted } from '@vue/runtime-core' | 233 | import {getCurrentInstance, onMounted} from '@vue/runtime-core' |
| 134 | import dialogAddCoach from './components/addCoach' | 234 | import dialogAddCoach from './components/addCoach' |
| 135 | import dialogSportsmanList from './components/sportsmanList' | 235 | import dialogSportsmanList from './components/sportsmanList' |
| 136 | import dialogAllSportsmanList from './components/allSportsmanList' | 236 | import dialogAllSportsmanList from './components/allSportsmanList' |
| ... | @@ -138,13 +238,15 @@ import dialogImport from './components/import' | ... | @@ -138,13 +238,15 @@ import dialogImport from './components/import' |
| 138 | import dialogChangeCoach from './components/changeCoach' | 238 | import dialogChangeCoach from './components/changeCoach' |
| 139 | import dialogExtraForm from './components/extraForm' | 239 | import dialogExtraForm from './components/extraForm' |
| 140 | import dialogMates from './components/dialogMates' | 240 | import dialogMates from './components/dialogMates' |
| 141 | const { proxy } = getCurrentInstance() | 241 | import {Search,Switch} from "@element-plus/icons-vue"; |
| 242 | const {proxy} = getCurrentInstance() | ||
| 142 | const router = useRouter() | 243 | const router = useRouter() |
| 143 | const route = useRoute() | 244 | const route = useRoute() |
| 144 | import _ from 'lodash' | 245 | import _ from 'lodash' |
| 145 | import { ElMessage, ElMessageBox } from 'element-plus' | 246 | import {ElMessage, ElMessageBox} from 'element-plus' |
| 247 | |||
| 146 | const data = reactive({ | 248 | const data = reactive({ |
| 147 | coachForm: {}, | 249 | coachForm: {}, activeStep: 2, |
| 148 | tableData: [], signInfoTable: [], choosedList: [], | 250 | tableData: [], signInfoTable: [], choosedList: [], |
| 149 | extraPersonInfoMapList: [], | 251 | extraPersonInfoMapList: [], |
| 150 | teamList: [], | 252 | teamList: [], |
| ... | @@ -155,14 +257,19 @@ const data = reactive({ | ... | @@ -155,14 +257,19 @@ const data = reactive({ |
| 155 | noPhotoCanSign: null, | 257 | noPhotoCanSign: null, |
| 156 | showResult: false, | 258 | showResult: false, |
| 157 | showExtraForm: false, | 259 | showExtraForm: false, |
| 260 | loadingProject: false, | ||
| 158 | extraTableHead: [], | 261 | extraTableHead: [], |
| 159 | activeTeam: '', | 262 | activeTeam: '', |
| 160 | names: {}, | 263 | names: {}, |
| 161 | choosedchoosed: [] | 264 | choosedchoosed: [], |
| 265 | projectList: [], | ||
| 266 | choosed2List:[],projectQuery:{},tableType:0 | ||
| 162 | }) | 267 | }) |
| 163 | const { activeTeam, names, tableData, signInfoTable, choosedList, showExtraForm, extraPersonInfoMapList, teamList, | 268 | const { |
| 269 | activeTeam, names, tableData, signInfoTable, choosedList, showExtraForm, extraPersonInfoMapList, teamList, | ||
| 164 | extraform, groupId, signType, coachOrLeaderFlag, showResult, noPhotoCanSign, extraTableHead, | 270 | extraform, groupId, signType, coachOrLeaderFlag, showResult, noPhotoCanSign, extraTableHead, |
| 165 | coachForm, choosedchoosed } = toRefs(data) | 271 | coachForm, choosedchoosed, activeStep,projectList,choosed2List,loadingProject,projectQuery,tableType |
| 272 | } = toRefs(data) | ||
| 166 | let matchId = '' | 273 | let matchId = '' |
| 167 | let signInfoType = null | 274 | let signInfoType = null |
| 168 | onMounted(() => { | 275 | onMounted(() => { |
| ... | @@ -184,11 +291,13 @@ onMounted(() => { | ... | @@ -184,11 +291,13 @@ onMounted(() => { |
| 184 | getTableHead() | 291 | getTableHead() |
| 185 | getMySignInfo() | 292 | getMySignInfo() |
| 186 | }) | 293 | }) |
| 294 | |||
| 187 | function geren() { | 295 | function geren() { |
| 188 | match.getChooseDoneSingleCoachs(matchId).then(res => { | 296 | match.getChooseDoneSingleCoachs(matchId).then(res => { |
| 189 | names.value = res.data | 297 | names.value = res.data |
| 190 | }) | 298 | }) |
| 191 | } | 299 | } |
| 300 | |||
| 192 | function tuandui() { | 301 | function tuandui() { |
| 193 | match.getChooseDoneGroupCoachs(matchId, groupId.value).then(res => { | 302 | match.getChooseDoneGroupCoachs(matchId, groupId.value).then(res => { |
| 194 | names.value = res.data | 303 | names.value = res.data |
| ... | @@ -196,6 +305,7 @@ function tuandui() { | ... | @@ -196,6 +305,7 @@ function tuandui() { |
| 196 | } | 305 | } |
| 197 | 306 | ||
| 198 | let chargeFlag | 307 | let chargeFlag |
| 308 | |||
| 199 | function getMatch(id) { | 309 | function getMatch(id) { |
| 200 | match.getMatchById({ | 310 | match.getMatchById({ |
| 201 | id: id | 311 | id: id |
| ... | @@ -206,6 +316,7 @@ function getMatch(id) { | ... | @@ -206,6 +316,7 @@ function getMatch(id) { |
| 206 | extraform.value = JSON.parse(res.data.participantsInfo) | 316 | extraform.value = JSON.parse(res.data.participantsInfo) |
| 207 | }) | 317 | }) |
| 208 | } | 318 | } |
| 319 | |||
| 209 | function getMySignInfo() { | 320 | function getMySignInfo() { |
| 210 | // 获取已报 | 321 | // 获取已报 |
| 211 | match.getMySignInfo({ | 322 | match.getMySignInfo({ |
| ... | @@ -216,6 +327,7 @@ function getMySignInfo() { | ... | @@ -216,6 +327,7 @@ function getMySignInfo() { |
| 216 | signInfoType = res.data.type | 327 | signInfoType = res.data.type |
| 217 | }) | 328 | }) |
| 218 | } | 329 | } |
| 330 | |||
| 219 | function getSignInfoList() { | 331 | function getSignInfoList() { |
| 220 | // console.log(activeTeam.value) | 332 | // console.log(activeTeam.value) |
| 221 | match.getMySignInfoList({ | 333 | match.getMySignInfoList({ |
| ... | @@ -238,12 +350,14 @@ function getSignInfoList() { | ... | @@ -238,12 +350,14 @@ function getSignInfoList() { |
| 238 | // } | 350 | // } |
| 239 | }) | 351 | }) |
| 240 | } | 352 | } |
| 353 | |||
| 241 | function getTableHead() { | 354 | function getTableHead() { |
| 242 | match.getCptExtraInfo(matchId).then(res => { | 355 | match.getCptExtraInfo(matchId).then(res => { |
| 243 | // console.log(res.data) | 356 | // console.log(res.data) |
| 244 | extraTableHead.value = res.data | 357 | extraTableHead.value = res.data |
| 245 | }) | 358 | }) |
| 246 | } | 359 | } |
| 360 | |||
| 247 | function getTeamList(a, b) { | 361 | function getTeamList(a, b) { |
| 248 | match.getMyTeamList(a, b).then(res => { | 362 | match.getMyTeamList(a, b).then(res => { |
| 249 | teamList.value = res.data | 363 | teamList.value = res.data |
| ... | @@ -251,18 +365,28 @@ function getTeamList(a, b) { | ... | @@ -251,18 +365,28 @@ function getTeamList(a, b) { |
| 251 | getSignInfoList() | 365 | getSignInfoList() |
| 252 | }) | 366 | }) |
| 253 | } | 367 | } |
| 368 | |||
| 254 | function teamClick(tab, event) { | 369 | function teamClick(tab, event) { |
| 255 | activeTeam.value = tab.props.name | 370 | activeTeam.value = tab.props.name |
| 256 | getSignInfoList() | 371 | getSignInfoList() |
| 257 | } | 372 | } |
| 373 | |||
| 258 | function submitForm() { | 374 | function submitForm() { |
| 375 | router.push({ | ||
| 376 | name: 'signPreview', | ||
| 377 | query: { | ||
| 378 | matchId: matchId, | ||
| 379 | groupId: groupId.value, | ||
| 380 | teamId: activeTeam.value | ||
| 381 | } | ||
| 382 | }) | ||
| 259 | if (signInfoType == '1') { | 383 | if (signInfoType == '1') { |
| 260 | ElMessageBox.confirm('已报项,前往我的报项', '提示', { | 384 | ElMessageBox.confirm('已报项,前往我的报项', '提示', { |
| 261 | confirmButtonText: '确定', | 385 | confirmButtonText: '确定', |
| 262 | cancelButtonText: '取消', | 386 | cancelButtonText: '取消', |
| 263 | type: 'warning' | 387 | type: 'warning' |
| 264 | }).then(() => { | 388 | }).then(() => { |
| 265 | router.push({ name: 'myMatch' }) | 389 | router.push({name: 'myMatch'}) |
| 266 | }) | 390 | }) |
| 267 | return | 391 | return |
| 268 | } | 392 | } |
| ... | @@ -281,7 +405,7 @@ function submitForm() { | ... | @@ -281,7 +405,7 @@ function submitForm() { |
| 281 | } | 405 | } |
| 282 | } | 406 | } |
| 283 | if (signInfoType == '2') { | 407 | if (signInfoType == '2') { |
| 284 | match.recoverMySign({ cptId: matchId, groupId: groupId.value }).then(res => { | 408 | match.recoverMySign({cptId: matchId, groupId: groupId.value}).then(res => { |
| 285 | if (res.msg.indexOf('Exception:') > -1) { | 409 | if (res.msg.indexOf('Exception:') > -1) { |
| 286 | const msg = res.msg.slice(10) | 410 | const msg = res.msg.slice(10) |
| 287 | ElMessageBox.confirm(msg, '提示', { | 411 | ElMessageBox.confirm(msg, '提示', { |
| ... | @@ -300,6 +424,7 @@ function submitForm() { | ... | @@ -300,6 +424,7 @@ function submitForm() { |
| 300 | afterRecover() | 424 | afterRecover() |
| 301 | } | 425 | } |
| 302 | } | 426 | } |
| 427 | |||
| 303 | function afterRecover() { | 428 | function afterRecover() { |
| 304 | if (signInfoTable.value.length == 0) { | 429 | if (signInfoTable.value.length == 0) { |
| 305 | ElMessage.error('请至少选择一个项目') | 430 | ElMessage.error('请至少选择一个项目') |
| ... | @@ -330,6 +455,7 @@ function afterRecover() { | ... | @@ -330,6 +455,7 @@ function afterRecover() { |
| 330 | function goPrev() { | 455 | function goPrev() { |
| 331 | router.go(-1) | 456 | router.go(-1) |
| 332 | } | 457 | } |
| 458 | |||
| 333 | function chooseSportman() { | 459 | function chooseSportman() { |
| 334 | if (signInfoType == '2') { | 460 | if (signInfoType == '2') { |
| 335 | match.recoverMySign({ | 461 | match.recoverMySign({ |
| ... | @@ -363,8 +489,34 @@ function chooseSportman() { | ... | @@ -363,8 +489,34 @@ function chooseSportman() { |
| 363 | } | 489 | } |
| 364 | proxy.$refs['dialogAllSportsmanListRef'].open(params) | 490 | proxy.$refs['dialogAllSportsmanListRef'].open(params) |
| 365 | } | 491 | } |
| 492 | |||
| 493 | function changechoosed(e) { | ||
| 494 | console.log(e) | ||
| 495 | choosed2List.value = [] | ||
| 496 | for(var c of choosedList.value){ | ||
| 497 | if (choosedchoosed.value.indexOf(c.id) > -1) { | ||
| 498 | choosed2List.value.push(c) | ||
| 499 | } | ||
| 500 | } | ||
| 501 | getProjectList() | ||
| 502 | |||
| 503 | } | ||
| 504 | function getProjectList() { | ||
| 505 | if(choosed2List.value.length==0){ | ||
| 506 | ElMessage.error('请先选择运动员') | ||
| 507 | return | ||
| 508 | } | ||
| 509 | loadingProject.value = true | ||
| 510 | //根据已选人员id 获取项目列表 | ||
| 511 | match.getCanSignProjectList(matchId).then(res=>{ | ||
| 512 | projectList.value = res.data | ||
| 513 | loadingProject.value = false | ||
| 514 | }) | ||
| 515 | } | ||
| 366 | function getChoosed(list) { | 516 | function getChoosed(list) { |
| 517 | console.log(list) | ||
| 367 | choosedList.value = list | 518 | choosedList.value = list |
| 519 | console.log('选好了',choosedchoosed.value) | ||
| 368 | } | 520 | } |
| 369 | 521 | ||
| 370 | function addCoach() { | 522 | function addCoach() { |
| ... | @@ -394,6 +546,7 @@ function addCoach() { | ... | @@ -394,6 +546,7 @@ function addCoach() { |
| 394 | } | 546 | } |
| 395 | proxy.$refs['dialogAddCoachRef'].open(params) | 547 | proxy.$refs['dialogAddCoachRef'].open(params) |
| 396 | } | 548 | } |
| 549 | |||
| 397 | function signForThisMan(p) { | 550 | function signForThisMan(p) { |
| 398 | const params = { | 551 | const params = { |
| 399 | title: '选择报项', | 552 | title: '选择报项', |
| ... | @@ -412,6 +565,11 @@ function signForThisMan(p) { | ... | @@ -412,6 +565,11 @@ function signForThisMan(p) { |
| 412 | function delthischoosed(p) { | 565 | function delthischoosed(p) { |
| 413 | choosedList.value = _.without(choosedList.value, p) | 566 | choosedList.value = _.without(choosedList.value, p) |
| 414 | } | 567 | } |
| 568 | |||
| 569 | function emptyChoosed() { | ||
| 570 | choosedList.value = [] | ||
| 571 | } | ||
| 572 | |||
| 415 | function delchoosedchoosed() { | 573 | function delchoosedchoosed() { |
| 416 | console.log(choosedchoosed.value) | 574 | console.log(choosedchoosed.value) |
| 417 | for (var c of choosedList.value) { | 575 | for (var c of choosedList.value) { |
| ... | @@ -421,6 +579,7 @@ function delchoosedchoosed() { | ... | @@ -421,6 +579,7 @@ function delchoosedchoosed() { |
| 421 | } | 579 | } |
| 422 | choosedchoosed.value = [] | 580 | choosedchoosed.value = [] |
| 423 | } | 581 | } |
| 582 | |||
| 424 | function editThis(row) { | 583 | function editThis(row) { |
| 425 | const params = { | 584 | const params = { |
| 426 | title: '修改报项', | 585 | title: '修改报项', |
| ... | @@ -434,6 +593,7 @@ function editThis(row) { | ... | @@ -434,6 +593,7 @@ function editThis(row) { |
| 434 | } | 593 | } |
| 435 | proxy.$refs['dialogSportsmanListRef'].open(params) | 594 | proxy.$refs['dialogSportsmanListRef'].open(params) |
| 436 | } | 595 | } |
| 596 | |||
| 437 | function editMates(row) { | 597 | function editMates(row) { |
| 438 | const params = { | 598 | const params = { |
| 439 | title: '更换队友' | 599 | title: '更换队友' |
| ... | @@ -454,6 +614,7 @@ function removeThis(id) { | ... | @@ -454,6 +614,7 @@ function removeThis(id) { |
| 454 | }) | 614 | }) |
| 455 | }) | 615 | }) |
| 456 | } | 616 | } |
| 617 | |||
| 457 | function changeCoach(cptId, groupId) { | 618 | function changeCoach(cptId, groupId) { |
| 458 | // 更换教练 | 619 | // 更换教练 |
| 459 | const params = { | 620 | const params = { |
| ... | @@ -463,6 +624,7 @@ function changeCoach(cptId, groupId) { | ... | @@ -463,6 +624,7 @@ function changeCoach(cptId, groupId) { |
| 463 | } | 624 | } |
| 464 | proxy.$refs['popChangeCoach'].open(params) | 625 | proxy.$refs['popChangeCoach'].open(params) |
| 465 | } | 626 | } |
| 627 | |||
| 466 | function importSportman() { | 628 | function importSportman() { |
| 467 | const params = { | 629 | const params = { |
| 468 | title: '批量导入人员', | 630 | title: '批量导入人员', |
| ... | @@ -470,6 +632,7 @@ function importSportman() { | ... | @@ -470,6 +632,7 @@ function importSportman() { |
| 470 | } | 632 | } |
| 471 | proxy.$refs['dialogImportProps'].open(params) | 633 | proxy.$refs['dialogImportProps'].open(params) |
| 472 | } | 634 | } |
| 635 | |||
| 473 | function goMySign() { | 636 | function goMySign() { |
| 474 | router.push({ | 637 | router.push({ |
| 475 | name: 'myMatch' | 638 | name: 'myMatch' |
| ... | @@ -481,7 +644,7 @@ const goPersonInfo = (row) => { | ... | @@ -481,7 +644,7 @@ const goPersonInfo = (row) => { |
| 481 | ElMessageBox.alert('已报项,前往我的报项', '提示', { | 644 | ElMessageBox.alert('已报项,前往我的报项', '提示', { |
| 482 | confirmButtonText: 'OK', | 645 | confirmButtonText: 'OK', |
| 483 | callback: (Action) => { | 646 | callback: (Action) => { |
| 484 | router.push({ name: 'myMatch' }) | 647 | router.push({name: 'myMatch'}) |
| 485 | } | 648 | } |
| 486 | }) | 649 | }) |
| 487 | return | 650 | return |
| ... | @@ -497,41 +660,95 @@ const goPersonInfo = (row) => { | ... | @@ -497,41 +660,95 @@ const goPersonInfo = (row) => { |
| 497 | } | 660 | } |
| 498 | proxy.$refs['popExtraForm'].open(_.cloneDeep(params)) | 661 | proxy.$refs['popExtraForm'].open(_.cloneDeep(params)) |
| 499 | } | 662 | } |
| 663 | |||
| 500 | function downloadVoucher() { | 664 | function downloadVoucher() { |
| 501 | // 下载凭证 | 665 | // 下载凭证 |
| 502 | proxy.download( | 666 | proxy.download( |
| 503 | `/pdf/getPayedOrderPdf/${matchId}/${groupId.value || 0}`, {}, '报项凭证.pdf' | 667 | `/pdf/getPayedOrderPdf/${matchId}/${groupId.value || 0}`, {}, '报项凭证.pdf' |
| 504 | ) | 668 | ) |
| 505 | } | 669 | } |
| 670 | |||
| 671 | function editPerson(id) { | ||
| 672 | proxy.$refs['dialogAddCoachRef'].open({ | ||
| 673 | title: '编辑人员', | ||
| 674 | id: id, | ||
| 675 | groupId: groupId.value | ||
| 676 | }) | ||
| 677 | } | ||
| 678 | function switchTabletype() { | ||
| 679 | if(tableType.value == 0){ | ||
| 680 | tableType.value = 1 | ||
| 681 | }else{ | ||
| 682 | tableType.value = 0 | ||
| 683 | } | ||
| 684 | } | ||
| 506 | </script> | 685 | </script> |
| 507 | 686 | ||
| 508 | <style scoped lang="scss"> | 687 | <style scoped lang="scss"> |
| 509 | .app-container{ padding: 0;background: #F5F7F9;} | 688 | .app-container { |
| 510 | .panel-footer .el-button--success{background: #254385;border: none; | 689 | padding: 0; |
| 690 | background: #F5F7F9; | ||
| 691 | } | ||
| 692 | |||
| 693 | .panel-footer .el-button--success { | ||
| 694 | background: #254385; | ||
| 695 | border: none; | ||
| 511 | padding: 0 40px; | 696 | padding: 0 40px; |
| 512 | font-size: 16px; | 697 | font-size: 16px; |
| 698 | } | ||
| 699 | |||
| 700 | .panel-footer .el-button--success.is-plain { | ||
| 701 | background: #fff; | ||
| 702 | border: 1px solid #2ED981; | ||
| 703 | color: #2ED981; | ||
| 704 | } | ||
| 705 | |||
| 706 | .hasChoose { | ||
| 707 | margin: 0 0 20px; | ||
| 708 | display: flex; | ||
| 709 | justify-content: space-between; | ||
| 710 | |||
| 711 | button { | ||
| 712 | position: relative; | ||
| 713 | margin: 10px; | ||
| 513 | } | 714 | } |
| 514 | .panel-footer .el-button--success.is-plain{background: #fff;border:1px solid #2ED981;color: #2ED981;} | 715 | |
| 515 | .hasChoose{margin: 0 0 20px;display: flex;justify-content: space-between; | 716 | .choseItem { |
| 516 | button{ position: relative;margin: 10px;} | 717 | margin: 10px; |
| 517 | .choseItem{margin: 10px;position: relative; | 718 | position: relative; |
| 518 | .poClose{position: absolute; right: -6px;top: -12px;z-index: 1;} | 719 | |
| 720 | .poClose { | ||
| 721 | position: absolute; | ||
| 722 | right: -6px; | ||
| 723 | top: -12px; | ||
| 724 | z-index: 1; | ||
| 519 | } | 725 | } |
| 520 | } | 726 | } |
| 521 | .chooseForm{ | 727 | } |
| 522 | :deep(.el-form-item__content){background: rgba(245, 247, 249, 0.38);padding: 20px 40px 10px;} | 728 | |
| 523 | .el-checkbox{height: auto;} | 729 | .chooseForm { |
| 524 | :deep(.el-checkbox__input){position: absolute;right: 0;top: 0;} | 730 | :deep(.el-form-item__content) { |
| 525 | .name{text-align: center;} | 731 | background: rgba(245, 247, 249, 0.38); |
| 732 | padding: 20px 40px 10px; | ||
| 526 | } | 733 | } |
| 527 | .namesUl{ display: flex; | 734 | |
| 528 | flex-wrap: wrap; | 735 | .el-checkbox { |
| 529 | justify-content: space-between; | 736 | height: auto; |
| 530 | li{margin-bottom: 6px} | ||
| 531 | label{margin-right: 4px;} | ||
| 532 | span{margin-right: 10px;color: #666; | ||
| 533 | &:after{content: '、';} | ||
| 534 | &:last-child:after{display: none;} | ||
| 535 | } | 737 | } |
| 738 | |||
| 739 | :deep(.el-checkbox__input) { | ||
| 740 | position: absolute; | ||
| 741 | right: 0; | ||
| 742 | top: 0; | ||
| 743 | } | ||
| 744 | |||
| 745 | .name { | ||
| 746 | text-align: center; | ||
| 536 | } | 747 | } |
| 748 | } | ||
| 749 | |||
| 750 | :deep(.el-avatar) > img { | ||
| 751 | width: 100%; | ||
| 752 | } | ||
| 753 | .panel{height: 100%;} | ||
| 537 | </style> | 754 | </style> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <el-dialog | 2 | <el-dialog |
| 3 | v-model="show" :title="title" width="1100px" append-to-body | 3 | v-model="show" :title="title" width="1100px" append-to-body close-icon="CircleClose" center |
| 4 | :close-on-click-modal="false" | 4 | :close-on-click-modal="false" class="pcloginpop" |
| 5 | destroy-on-close | 5 | destroy-on-close |
| 6 | class="boxDialog" | ||
| 7 | > | 6 | > |
| 8 | <el-form ref="dialogRef" :model="form" :rules="rules" label-width="110px" inline> | 7 | <el-form ref="dialogRef" :model="form" :rules="rules" label-width="120px" inline> |
| 9 | <el-row> | 8 | <el-row :gutter="30"> |
| 10 | <el-col :span="4" class="touxiang"> | 9 | <el-col :lg="12" class="touxiang"> |
| 11 | <el-form-item prop="picUrl"> | 10 | <el-form-item prop="picUrl" label="个人照片" required> |
| 12 | <ImageUpload2 | 11 | <ImageUpload2 |
| 13 | 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" |
| 14 | :is-show-tip="false" | 13 | :is-show-tip="false" |
| 15 | /> | 14 | /> |
| 16 | </el-form-item> | 15 | </el-form-item> |
| 17 | </el-col> | 16 | <el-form-item label="姓氏" prop="xing" required> |
| 18 | <el-col :span="20"> | 17 | <el-input v-model="form.xing"/> |
| 19 | <el-row> | ||
| 20 | <el-col :span="8"> | ||
| 21 | <el-form-item label="姓名" prop="realName"> | ||
| 22 | <el-input v-model="form.realName" /> | ||
| 23 | </el-form-item> | 18 | </el-form-item> |
| 24 | </el-col> | 19 | <el-form-item label="短名" prop="shortName" required> |
| 25 | <el-col :span="8"> | 20 | <el-input v-model="form.shortName" placeholder="赛事用名"/> |
| 26 | <el-form-item label="国籍" prop="countryId"> | ||
| 27 | <el-select v-model="form.countryId" style="width: 100%;" @change="changeCountryId"> | ||
| 28 | <el-option v-for="item in countryList" :key="item.id" :label="item.name" :value="item.id" /> | ||
| 29 | </el-select> | ||
| 30 | </el-form-item> | 21 | </el-form-item> |
| 31 | </el-col> | 22 | <el-form-item label="出生日期" prop="birth" required> |
| 32 | <el-col :span="8"> | 23 | <el-date-picker |
| 33 | <el-form-item label="民族" prop="nation"> | 24 | v-model="form.birth" |
| 34 | <el-select v-model="form.nation" style="width: 100%;"> | 25 | style="width: 100%;" |
| 35 | <el-option | 26 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" |
| 36 | v-for="item in nationList" | 27 | placeholder="请选择出生日期" |
| 37 | :key="item.name" | ||
| 38 | :label="item.name" | ||
| 39 | :value="item.name" | ||
| 40 | /> | 28 | /> |
| 41 | </el-select> | ||
| 42 | </el-form-item> | 29 | </el-form-item> |
| 43 | </el-col> | 30 | <el-form-item label="证件类型" prop="idcType" required> |
| 44 | <el-col :span="8"> | ||
| 45 | <el-form-item label="证件类型" prop="idcType"> | ||
| 46 | <el-select v-model="form.idcType" style="width: 100%;"> | 31 | <el-select v-model="form.idcType" style="width: 100%;"> |
| 47 | <el-option | 32 | <el-option |
| 48 | v-for="item in certificates" | 33 | v-for="item in certificates" |
| ... | @@ -52,151 +37,104 @@ | ... | @@ -52,151 +37,104 @@ |
| 52 | /> | 37 | /> |
| 53 | </el-select> | 38 | </el-select> |
| 54 | </el-form-item> | 39 | </el-form-item> |
| 55 | </el-col> | 40 | <el-form-item label="手机号码" prop="phone" required> |
| 56 | <el-col :span="8"> | 41 | <el-input v-model="form.phone" type="number"/> |
| 57 | <el-form-item label="证件号码" prop="idcCode"> | ||
| 58 | <el-input v-model="form.idcCode" @blur="checkCode" /> | ||
| 59 | </el-form-item> | ||
| 60 | </el-col> | ||
| 61 | <el-col :span="8" /> | ||
| 62 | <el-col :span="8"> | ||
| 63 | <el-form-item label="性别" prop="sex"> | ||
| 64 | <el-radio-group v-model="form.sex"> | ||
| 65 | <el-radio label="0">女</el-radio> | ||
| 66 | <el-radio label="1">男</el-radio> | ||
| 67 | </el-radio-group> | ||
| 68 | </el-form-item> | ||
| 69 | </el-col> | ||
| 70 | <el-col :span="8"> | ||
| 71 | <el-form-item label="出生日期" prop="birth"> | ||
| 72 | <el-date-picker | ||
| 73 | v-model="form.birth" | ||
| 74 | style="width: 100%;" | ||
| 75 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | ||
| 76 | placeholder="请选择出生日期" | ||
| 77 | /> | ||
| 78 | </el-form-item> | ||
| 79 | </el-col> | ||
| 80 | <el-col v-if="showRequire" :span="8"> | ||
| 81 | <el-form-item label="联系方式" prop="phone"> | ||
| 82 | <el-input v-model="form.phone" type="number" /> | ||
| 83 | </el-form-item> | 42 | </el-form-item> |
| 84 | </el-col> | 43 | </el-col> |
| 85 | <el-col v-else :span="8"> | 44 | <el-col :lg="12"> |
| 86 | <el-form-item label="联系方式"> | 45 | <el-form-item label="所属国家" prop="countryId" required> |
| 87 | <el-input v-model="form.phone" type="number" /> | 46 | <el-select v-model="form.countryId" style="width: 100%;" @change="changeCountryId"> |
| 47 | <el-option v-for="item in countryList" :key="item.id" :label="item.name" :value="item.id"/> | ||
| 48 | </el-select> | ||
| 88 | </el-form-item> | 49 | </el-form-item> |
| 89 | </el-col> | 50 | <el-form-item label="详细地址" prop="address" required> |
| 90 | <el-col :span="16"> | 51 | <el-cascader v-if="form.countryId == 240" |
| 91 | <el-form-item label="所在地区" prop="regionId"> | ||
| 92 | <el-cascader | ||
| 93 | v-model="form.regionId" | 52 | v-model="form.regionId" |
| 94 | style="width: 100%;" | 53 | style="width: 100%;margin-bottom: 15px" |
| 95 | :options="regionsList" | 54 | :options="regionsList" |
| 96 | :props="{ label:'text' }" | 55 | :props="{ label:'text' }" |
| 97 | /> | 56 | /> |
| 57 | <el-input v-model="form.address" type="textarea" :rows="4"/> | ||
| 58 | |||
| 98 | </el-form-item> | 59 | </el-form-item> |
| 99 | </el-col> | 60 | <el-form-item label="名" prop="ming" required> |
| 100 | <el-col :span="8" /> | 61 | <el-input v-model="form.ming"/> |
| 101 | <el-col :span="16"> | ||
| 102 | <el-form-item label="详细地址" prop="address"> | ||
| 103 | <el-input v-model="form.address" type="textarea" :rows="2" /> | ||
| 104 | </el-form-item> | ||
| 105 | </el-col> | ||
| 106 | <el-col :span="8" /> | ||
| 107 | <el-col :span="8"> | ||
| 108 | <el-form-item label="紧急联系人"> | ||
| 109 | <el-input v-model="form.ecName" /> | ||
| 110 | </el-form-item> | 62 | </el-form-item> |
| 111 | </el-col> | 63 | <el-form-item label="性别" prop="sex"> |
| 112 | <el-col :span="8"> | 64 | <el-radio-group v-model="form.sex"> |
| 113 | <el-form-item label="紧急联系电话"> | 65 | <el-radio label="0">女</el-radio> |
| 114 | <el-input v-model="form.ecPhone" /> | 66 | <el-radio label="1">男</el-radio> |
| 67 | </el-radio-group> | ||
| 115 | </el-form-item> | 68 | </el-form-item> |
| 116 | </el-col> | 69 | <el-form-item label="邮箱" prop="idcCode" required> |
| 117 | <el-col :span="8"> | 70 | <el-input v-model="form.email"/> |
| 118 | <el-form-item label="与本人关系"> | ||
| 119 | <el-input v-model="form.ecRelationship" /> | ||
| 120 | </el-form-item> | 71 | </el-form-item> |
| 121 | </el-col> | 72 | <el-form-item label="证件号码" prop="idcCode" required> |
| 122 | <el-col :span="24"> | 73 | <el-input v-model="form.idcCode" @blur="checkCode"/> |
| 123 | <el-form-item label="身份标签" prop="labelArr"> | ||
| 124 | <el-checkbox-group v-model="form.labelArr" @change="labelvalue"> | ||
| 125 | <el-checkbox label="0">运动员</el-checkbox> | ||
| 126 | <el-checkbox label="1">教练</el-checkbox> | ||
| 127 | <el-checkbox label="2">领队</el-checkbox> | ||
| 128 | <el-checkbox label="4">队医</el-checkbox> | ||
| 129 | <el-checkbox label="5">翻译</el-checkbox> | ||
| 130 | <el-checkbox label="6">官员</el-checkbox> | ||
| 131 | <el-checkbox label="3">其他</el-checkbox> | ||
| 132 | </el-checkbox-group> | ||
| 133 | </el-form-item> | 74 | </el-form-item> |
| 134 | </el-col> | 75 | <el-form-item label="主要会员角色" prop="labelArr"> |
| 135 | </el-row> | 76 | <el-select v-model="form.labelArr" multiple @change="labelvalue"> |
| 136 | </el-col> | 77 | <el-option v-for="l in labels" :key="l.value" :value="l.value" :label="l.label"/> |
| 137 | </el-row> | 78 | </el-select> |
| 138 | <el-row> | ||
| 139 | <el-col :span="20" :offset="4"> | ||
| 140 | <el-form-item label="实名认证"> | ||
| 141 | <el-row class="shenfen"> | ||
| 142 | <el-col :span="12"> | ||
| 143 | <ImageUpload v-model="form.idcFrontImg" :limit="1" :is-show-tip="false" /> | ||
| 144 | </el-col> | ||
| 145 | <el-col :span="12"> | ||
| 146 | <ImageUpload v-model="form.idcBackImg" :limit="1" :is-show-tip="false" /> | ||
| 147 | </el-col> | ||
| 148 | </el-row> | ||
| 149 | </el-form-item> | 79 | </el-form-item> |
| 150 | </el-col> | 80 | </el-col> |
| 151 | </el-row> | 81 | </el-row> |
| 152 | |||
| 153 | </el-form> | 82 | </el-form> |
| 154 | <template #footer> | 83 | <template #footer> |
| 155 | <div class="dialog-footer text-center"> | 84 | <div class="dialog-footer text-center"> |
| 156 | <el-button type="primary" @click="submitForm">保 存</el-button> | 85 | <el-button type="primary" class="btn-lineG w200px" round @click="submitForm">确定</el-button> |
| 157 | <el-button @click="cancel">取 消</el-button> | ||
| 158 | </div> | 86 | </div> |
| 159 | </template> | 87 | </template> |
| 160 | </el-dialog> | 88 | </el-dialog> |
| 161 | |||
| 162 | </template> | 89 | </template> |
| 163 | 90 | ||
| 164 | <script setup> | 91 | <script setup> |
| 165 | import { reactive, toRefs, watch } from 'vue' | 92 | import {reactive, toRefs, watch} from 'vue' |
| 166 | import { getCurrentInstance, nextTick, onMounted } from '@vue/runtime-core' | 93 | import {getCurrentInstance, nextTick, onMounted} from '@vue/runtime-core' |
| 167 | import * as match from '@/apiPc/match' | 94 | import * as match from '@/apiPc/match' |
| 168 | import { certificates } from '@/assets/lib/nation' | 95 | import {certificates} from '@/assets/lib/nation' |
| 169 | import { ElMessage } from 'element-plus' | 96 | import {ElMessage} from 'element-plus' |
| 170 | import { nationList } from '@/assets/js/data' | 97 | import {nationList} from '@/assets/js/data' |
| 171 | import _ from 'lodash' | 98 | import _ from 'lodash' |
| 172 | const { proxy } = getCurrentInstance() | 99 | |
| 100 | const {proxy} = getCurrentInstance() | ||
| 173 | const emit = defineEmits(['submitForm']) | 101 | const emit = defineEmits(['submitForm']) |
| 174 | const data = reactive({ | 102 | const data = reactive({ |
| 175 | form: { | 103 | form: { |
| 176 | countryId: 240 | 104 | countryId: 240 |
| 177 | }, | 105 | }, |
| 178 | rules: { | 106 | rules: { |
| 179 | realName: [{ required: true, message: '必填', trigger: 'blur' }], | 107 | xing: [{required: true, message: '必填', trigger: 'blur'}], |
| 180 | nation: [{ required: true, message: '必填', trigger: 'blur' }], | 108 | ming: [{required: true, message: '必填', trigger: 'blur'}], |
| 181 | countryId: [{ required: true, message: '必填', trigger: 'change' }], | 109 | shortName: [{required: true, message: '必填', trigger: 'blur'}], |
| 182 | idcType: [{ required: true, message: '必填', trigger: 'change' }], | 110 | email: [{required: true, message: '必填', trigger: 'blur'}], |
| 183 | idcCode: [{ required: true, message: '必填', trigger: 'blur' }], | 111 | countryId: [{required: true, message: '必填', trigger: 'change'}], |
| 184 | phone: [{ required: true, message: '必填', trigger: 'blur' }], | 112 | idcType: [{required: true, message: '必填', trigger: 'change'}], |
| 113 | idcCode: [{required: true, message: '必填', trigger: 'blur'}], | ||
| 114 | phone: [{required: true, message: '必填', trigger: 'blur'}], | ||
| 185 | // regionId: [{ required: true, message: '必填', trigger: 'change' }], | 115 | // regionId: [{ required: true, message: '必填', trigger: 'change' }], |
| 186 | birth: [{ required: true, message: '必填', trigger: 'change' }], | 116 | birth: [{required: true, message: '必填', trigger: 'change'}], |
| 187 | // address: [{ required: true, message: '必填', trigger: 'blur' }], | 117 | address: [{ required: true, message: '必填', trigger: 'blur' }], |
| 188 | picUrl: [{ required: true, message: '必填', trigger: 'blur' }], | 118 | picUrl: [{required: true, message: '必填', trigger: 'blur'}], |
| 189 | sex: [{ required: true, message: '必填', trigger: 'change' }], | 119 | sex: [{required: true, message: '必填', trigger: 'change'}], |
| 190 | labelArr: [{ required: true, message: '必填', trigger: 'change' }] | 120 | labelArr: [{required: true, message: '必填', trigger: 'change'}] |
| 191 | }, | 121 | }, |
| 192 | show: false, | 122 | show: false, |
| 193 | countryList: [], | 123 | countryList: [], |
| 194 | regionsList: [], | 124 | regionsList: [], |
| 195 | title: '添加人员', | 125 | labels: [{value: '0', label: '运动员'}, |
| 126 | {value: '1', label: '教练'}, | ||
| 127 | {value: '2', label: '领队'}, | ||
| 128 | {value: '3', label: '队医'}, | ||
| 129 | {value: '4', label: '翻译'}, | ||
| 130 | {value: '5', label: '官员'}, | ||
| 131 | {value: '6', label: '其他'} | ||
| 132 | ], | ||
| 133 | title: '添加选手信息', | ||
| 196 | groupId: '0', | 134 | groupId: '0', |
| 197 | showRequire: false | 135 | showRequire: false |
| 198 | }) | 136 | }) |
| 199 | const { showRequire, form, rules, show, countryList, regionsList, title, groupId } = toRefs(data) | 137 | const {showRequire, form, rules, show, countryList, regionsList, title, groupId, labels} = toRefs(data) |
| 200 | onMounted(() => { | 138 | onMounted(() => { |
| 201 | getCountryList() | 139 | getCountryList() |
| 202 | getRegionsList() | 140 | getRegionsList() |
| ... | @@ -220,7 +158,7 @@ const open = (params) => { | ... | @@ -220,7 +158,7 @@ const open = (params) => { |
| 220 | }) | 158 | }) |
| 221 | } | 159 | } |
| 222 | } | 160 | } |
| 223 | defineExpose({ open }) | 161 | defineExpose({open}) |
| 224 | watch(show, (value) => { | 162 | watch(show, (value) => { |
| 225 | if (!value) { | 163 | if (!value) { |
| 226 | form.value = {} | 164 | form.value = {} |
| ... | @@ -399,14 +337,16 @@ function cancel() { | ... | @@ -399,14 +337,16 @@ function cancel() { |
| 399 | height: 200px; | 337 | height: 200px; |
| 400 | } | 338 | } |
| 401 | } | 339 | } |
| 340 | |||
| 402 | .touxiang { | 341 | .touxiang { |
| 403 | :deep(.el-upload--picture-card ){ | 342 | :deep(.el-upload--picture-card ) { |
| 404 | width: 140px; | 343 | width: 140px; |
| 405 | height: 200px; | 344 | height: 200px; |
| 406 | } | 345 | } |
| 407 | } | 346 | } |
| 347 | |||
| 408 | .touxiang { | 348 | .touxiang { |
| 409 | :deep(.el-upload-list__item ){ | 349 | :deep(.el-upload-list__item ) { |
| 410 | width: 140px; | 350 | width: 140px; |
| 411 | height: 200px; | 351 | height: 200px; |
| 412 | } | 352 | } |
| ... | @@ -418,12 +358,13 @@ function cancel() { | ... | @@ -418,12 +358,13 @@ function cancel() { |
| 418 | } | 358 | } |
| 419 | 359 | ||
| 420 | 360 | ||
| 421 | .boxDialog{ | 361 | .boxDialog { |
| 422 | .el-dialog__header{ | 362 | .el-dialog__header { |
| 423 | background:linear-gradient(#ed2c22,#fe6d45); | 363 | background: linear-gradient(#ed2c22, #fe6d45); |
| 424 | margin-right: 0; | 364 | margin-right: 0; |
| 425 | height: 52px; | 365 | height: 52px; |
| 426 | span{ | 366 | |
| 367 | span { | ||
| 427 | color: #fff; | 368 | color: #fff; |
| 428 | } | 369 | } |
| 429 | } | 370 | } | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <el-dialog v-model="show" :title="title" width="1000px" append-to-body> | 2 | <el-dialog v-model="show" :title="title" width="1000px" append-to-body> |
| 3 | <el-form :inline="true" :model="query" style="display: flex;"> | 3 | <div class="funcBtns"> |
| 4 | <el-button type="primary" @click="addMember">添加选手</el-button> | ||
| 5 | <el-button type="primary" plain @click="importSportman">导入选手</el-button> | ||
| 6 | </div> | ||
| 7 | <div class="from-Card"> | ||
| 8 | <el-form :inline="true" :model="query" class="mt20" label-width="60" size="small"> | ||
| 4 | <el-form-item label="姓名"> | 9 | <el-form-item label="姓名"> |
| 5 | <el-input v-model="query.name" style="width: 120px;" clearable /> | 10 | <el-input v-model="query.realName" style="width: 120px;" clearable/> |
| 11 | </el-form-item> | ||
| 12 | <el-form-item label="短名"> | ||
| 13 | <el-input v-model="query.shortName" style="width: 120px;" clearable/> | ||
| 14 | </el-form-item> | ||
| 15 | <el-form-item label="手机号码"> | ||
| 16 | <el-input v-model="query.phone" style="width: 120px;" clearable/> | ||
| 17 | </el-form-item> | ||
| 18 | <el-form-item label="邮箱"> | ||
| 19 | <el-input v-model="query.email" style="width: 120px;" clearable/> | ||
| 6 | </el-form-item> | 20 | </el-form-item> |
| 7 | <el-form-item label="性别"> | 21 | <el-form-item label="证件类型"> |
| 8 | <el-select v-model="query.sex" placeholder="请选择" style="width: 100px;" clearable @change="getList"> | 22 | <el-input v-model="query.idcType" style="width: 120px;" clearable/> |
| 9 | <el-option label="全部" value="" /> | ||
| 10 | <el-option label="男" value="1" /> | ||
| 11 | <el-option label="女" value="0" /> | ||
| 12 | </el-select> | ||
| 13 | </el-form-item> | 23 | </el-form-item> |
| 14 | <el-form-item label="出生日期"> | 24 | <el-form-item label="证件号"> |
| 15 | <el-date-picker | 25 | <el-input v-model="query.idcode" style="width: 120px;" clearable/> |
| 16 | v-model="birthArr" clearable | 26 | </el-form-item> |
| 17 | format="YYYY-MM-DD" value-format="YYYY-MM-DD" | 27 | <el-form-item label="角色"> |
| 18 | type="daterange" | 28 | <el-input v-model="query.label" style="width: 120px;" clearable/> |
| 19 | range-separator="至" | ||
| 20 | start-placeholder="开始日期" | ||
| 21 | end-placeholder="结束日期" | ||
| 22 | @change="getList" | ||
| 23 | /> | ||
| 24 | </el-form-item> | 29 | </el-form-item> |
| 25 | <el-form-item> | 30 | <el-form-item> |
| 26 | <el-button type="primary" @click="getList">查询</el-button> | 31 | <el-button type="primary" @click="getList">查询</el-button> |
| 27 | </el-form-item> | 32 | </el-form-item> |
| 28 | </el-form> | 33 | </el-form> |
| 34 | </div> | ||
| 29 | <p v-if="noPhotoCanSign == 0" class="text-danger">*需上传照片才可报名</p> | 35 | <p v-if="noPhotoCanSign == 0" class="text-danger">*需上传照片才可报名</p> |
| 30 | <el-table ref="allSportmenTable" v-loading="loading" :data="tableData" height="60vh" @selection-change="handleSelectionChange"> | 36 | <el-table ref="allSportmenTable" v-loading="loading" :data="tableData" height="60vh" |
| 31 | <el-table-column type="selection" label="选择" :selectable="selectable" /> | 37 | @selection-change="handleSelectionChange"> |
| 32 | <el-table-column label="照片" width="70"> | 38 | <el-table-column type="selection" label="选择" :selectable="selectable"/> |
| 33 | <template #default="scope"> | 39 | <el-table-column label="所属国家" prop="countryName"/> |
| 34 | <img :src="scope.row.picUrl" style="width: 50px"> | 40 | <el-table-column label="姓氏" prop="xing"/> |
| 35 | </template> | 41 | <el-table-column label="名" prop="ming"/> |
| 36 | </el-table-column> | 42 | <el-table-column label="短名" prop="shortName"/> |
| 37 | <el-table-column prop="realName" label="姓名" width="120" /> | 43 | <el-table-column label="性别" prop="sexStr"/> |
| 38 | <el-table-column prop="sex" label="性别" width="50"> | 44 | <el-table-column label="年龄" prop="age"/> |
| 39 | <template #default="scope"> | 45 | <el-table-column label="出生日期" prop="birth" width="100"/> |
| 40 | <span v-if="scope.row.sex=='0'">女</span> | 46 | <el-table-column label="手机号码" prop="phone" width="120"/> |
| 41 | <span v-if="scope.row.sex=='1'">男</span> | 47 | <el-table-column label="邮箱" prop="email" width="150"/> |
| 42 | </template> | 48 | <el-table-column label="证件类型" prop="idcTypeStr"/> |
| 43 | </el-table-column> | 49 | <el-table-column label="证件号码" prop="idcCode" width="200"/> |
| 44 | <el-table-column label="证件号码" width="80"> | 50 | <el-table-column label="会员角色" width="200"> |
| 45 | <template #default="scope"> | 51 | <template #default="scope"> |
| 46 | <span v-if="scope.row.idcType=='0'">身份证 </span> | 52 | <div> |
| 47 | <span v-if="scope.row.idcType=='1'">护照 </span> | 53 | <div style="white-space: nowrap" class="esp"> |
| 48 | <span v-if="scope.row.idcType=='2'">其他 </span> | 54 | <span v-for="item in scope.row.label?.split(',')" :key="item.id"> |
| 49 | </template> | 55 | <el-tag type="warning" size="small" v-if="item==='0'" effect="plain" class="ml10">运动员</el-tag> |
| 50 | </el-table-column> | 56 | <el-tag type="warning" size="small" v-if="item==='1'" effect="plain" class="ml10">教练</el-tag> |
| 51 | <el-table-column prop="idcCode" label="证件号码" width="200" /> | 57 | <el-tag type="warning" size="small" v-if="item==='2'" effect="plain" class="ml10">领队</el-tag> |
| 52 | <el-table-column label="出生日期" width="120"> | 58 | <el-tag type="warning" size="small" v-if="item==='3'" effect="plain" class="ml10">队医</el-tag> |
| 53 | <template #default="scope"> | 59 | <el-tag type="warning" size="small" v-if="item==='4'" effect="plain" class="ml10">翻译</el-tag> |
| 54 | <span>{{ scope.row.birth.substring(0,10) }}</span> | 60 | <el-tag type="warning" size="small" v-if="item==='5'" effect="plain" class="ml10">官员</el-tag> |
| 61 | <el-tag type="warning" size="small" v-if="item==='6'" effect="plain" class="ml10">其他</el-tag> | ||
| 62 | </span> | ||
| 63 | </div> | ||
| 64 | </div> | ||
| 55 | </template> | 65 | </template> |
| 56 | </el-table-column> | 66 | </el-table-column> |
| 57 | <el-table-column prop="phone" label="联系方式" /> | 67 | <el-table-column label="详细地址" prop="address"/> |
| 58 | 68 | ||
| 59 | <el-table-column label="操作" width="120"> | 69 | <el-table-column label="操作" width="120" fixed="right" align="center"> |
| 60 | <template #default="scope"> | 70 | <template #default="scope"> |
| 61 | <el-button type="text" @click="editPerson(scope.row)">编辑</el-button> | 71 | <el-button type="text" @click="editPerson(scope.row)">编辑</el-button> |
| 62 | </template> | 72 | </template> |
| ... | @@ -70,17 +80,19 @@ | ... | @@ -70,17 +80,19 @@ |
| 70 | </template> | 80 | </template> |
| 71 | </el-dialog> | 81 | </el-dialog> |
| 72 | 82 | ||
| 73 | <dialogPersonInfo ref="editPersonInfoRef" @submitForm="getList" /> | 83 | <addCoach ref="dialogAddCoach" @submitForm="getList"/> |
| 74 | 84 | <Import ref="dialogImportProps"/> | |
| 75 | </template> | 85 | </template> |
| 76 | 86 | ||
| 77 | <script setup> | 87 | <script setup> |
| 78 | import { reactive, ref, toRefs, watch } from 'vue' | 88 | import {reactive, ref, toRefs, watch} from 'vue' |
| 79 | import { getCurrentInstance, nextTick, onMounted } from '@vue/runtime-core' | 89 | import {getCurrentInstance, nextTick, onMounted} from '@vue/runtime-core' |
| 80 | import * as match from '@/apiPc/match' | 90 | import * as match from '@/apiPc/match' |
| 81 | import dialogPersonInfo from '../components/addCoach' | 91 | import addCoach from '../components/addCoach' |
| 92 | import {getGroupPersonList} from "@/apiPc/match"; | ||
| 93 | import Import from '../components/import' | ||
| 82 | 94 | ||
| 83 | const { proxy } = getCurrentInstance() | 95 | const {proxy} = getCurrentInstance() |
| 84 | const emit = defineEmits(['submitForm', 'transfer']) | 96 | const emit = defineEmits(['submitForm', 'transfer']) |
| 85 | const data = reactive({ | 97 | const data = reactive({ |
| 86 | query: {}, | 98 | query: {}, |
| ... | @@ -91,7 +103,7 @@ const data = reactive({ | ... | @@ -91,7 +103,7 @@ const data = reactive({ |
| 91 | title: '选择运动员', | 103 | title: '选择运动员', |
| 92 | noPhotoCanSign: 0 | 104 | noPhotoCanSign: 0 |
| 93 | }) | 105 | }) |
| 94 | const { query, tableData, show, title, birthArr, loading, noPhotoCanSign } = toRefs(data) | 106 | const {query, tableData, show, title, birthArr, loading, noPhotoCanSign} = toRefs(data) |
| 95 | let matchId | 107 | let matchId |
| 96 | let groupId | 108 | let groupId |
| 97 | let choosedList = [] | 109 | let choosedList = [] |
| ... | @@ -123,8 +135,8 @@ const getList = () => { | ... | @@ -123,8 +135,8 @@ const getList = () => { |
| 123 | query.value.birthBegin = birthArr.value[0] | 135 | query.value.birthBegin = birthArr.value[0] |
| 124 | query.value.birthEnd = birthArr.value[1] | 136 | query.value.birthEnd = birthArr.value[1] |
| 125 | } | 137 | } |
| 126 | match.getMyGroupForCptFilter(groupId, matchId, query.value).then(res => { | 138 | match.getGroupPersonList(query.value, groupId).then(res => { |
| 127 | tableData.value = res.data.athletes | 139 | tableData.value = res.rows |
| 128 | nextTick(() => { | 140 | nextTick(() => { |
| 129 | for (const n in tableData.value) { | 141 | for (const n in tableData.value) { |
| 130 | if (choosedIds.indexOf(tableData.value[n].id) > -1) { | 142 | if (choosedIds.indexOf(tableData.value[n].id) > -1) { |
| ... | @@ -140,24 +152,44 @@ function handleSelectionChange(val) { | ... | @@ -140,24 +152,44 @@ function handleSelectionChange(val) { |
| 140 | // console.log(val) | 152 | // console.log(val) |
| 141 | choosedList = val | 153 | choosedList = val |
| 142 | } | 154 | } |
| 155 | |||
| 143 | function submitForm() { | 156 | function submitForm() { |
| 144 | emit('transfer', choosedList) | 157 | emit('transfer', choosedList) |
| 145 | // emit('submitForm', choosedList) | 158 | // emit('submitForm', choosedList) |
| 146 | show.value = false | 159 | show.value = false |
| 147 | } | 160 | } |
| 161 | |||
| 148 | function cancel() { | 162 | function cancel() { |
| 149 | show.value = false | 163 | show.value = false |
| 150 | } | 164 | } |
| 165 | |||
| 151 | function editPerson(row) { | 166 | function editPerson(row) { |
| 152 | const params = { | 167 | const params = { |
| 153 | id: row.id, | 168 | id: row.id, |
| 154 | groupId: groupId | 169 | groupId: groupId |
| 155 | } | 170 | } |
| 156 | proxy.$refs['editPersonInfoRef'].open(params) | 171 | proxy.$refs['dialogAddCoach'].open(params) |
| 157 | } | 172 | } |
| 158 | 173 | ||
| 159 | </script> | 174 | function addMember() { |
| 160 | 175 | const params = { | |
| 161 | <style scoped> | 176 | title: '添加人员', |
| 177 | id: 0, | ||
| 178 | groupId: groupId.value | ||
| 179 | } | ||
| 180 | proxy.$refs['dialogAddCoach'].open(params) | ||
| 181 | } | ||
| 162 | 182 | ||
| 183 | function importSportman() { | ||
| 184 | const params = { | ||
| 185 | title: '批量导入选手', | ||
| 186 | groupId: groupId.value | ||
| 187 | } | ||
| 188 | proxy.$refs['dialogImportProps'].open(params) | ||
| 189 | } | ||
| 190 | </script> | ||
| 191 | <style scoped lang="scss"> | ||
| 192 | .el-form--inline .el-form-item { | ||
| 193 | width: auto; | ||
| 194 | } | ||
| 163 | </style> | 195 | </style> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <el-dialog v-model="show" :title="title" width="500px" append-to-body :close-on-click-modal="false"> | 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 | <el-form ref="dialogRef" label-width="100px"> | 4 | <el-form ref="dialogRef" label-width="100px"> |
| 4 | <el-form-item label="下载模板"> | 5 | <el-form-item label="下载模板"> |
| 5 | <el-link href="/file/sportsmanTemplate.xlsx" type="primary" target="_blank">人员模板</el-link> | 6 | <el-link href="/file/sportsmanTemplate.xlsx" type="primary" target="_blank">人员模板</el-link> |
| 6 | </el-form-item> | 7 | </el-form-item> |
| 7 | 8 | ||
| 8 | <el-form-item label="上传模板" prop="discount"> | 9 | <el-form-item label="上传模板" prop="discount"> |
| 9 | <fileUpload ref="upload" name="excel" :action="action" :accept="accept" @uploadSuccess="uploadSuccess" /> | 10 | <fileImport ref="upload" name="excel" :action="action" @uploadSuccess="uploadSuccess" /> |
| 10 | </el-form-item> | 11 | </el-form-item> |
| 11 | </el-form> | 12 | </el-form> |
| 12 | 13 | ||
| ... | @@ -22,14 +23,15 @@ import * as match from '@/apiPc/match' | ... | @@ -22,14 +23,15 @@ import * as match from '@/apiPc/match' |
| 22 | import { ElMessage, ElMessageBox } from 'element-plus' | 23 | import { ElMessage, ElMessageBox } from 'element-plus' |
| 23 | 24 | ||
| 24 | const { proxy } = getCurrentInstance() | 25 | const { proxy } = getCurrentInstance() |
| 25 | 26 | import useUserStore from '@/store/modules/user' | |
| 26 | const emit = defineEmits(['submitForm']) | 27 | const emit = defineEmits(['submitForm']) |
| 27 | 28 | ||
| 28 | const action = ref('') | 29 | const action = ref('') |
| 29 | const accept = ref('.xlsx') | 30 | const accept = ref('.xlsx') |
| 30 | const title = ref('') | 31 | const title = ref('') |
| 31 | const show = ref(false) | 32 | const show = ref(false) |
| 32 | 33 | const userStore = useUserStore() | |
| 34 | const groupId = useUserStore().group.id || 0 | ||
| 33 | function uploadSuccess(res) { | 35 | function uploadSuccess(res) { |
| 34 | console.log(res) | 36 | console.log(res) |
| 35 | cancel() | 37 | cancel() |
| ... | @@ -48,7 +50,7 @@ function uploadSuccess(res) { | ... | @@ -48,7 +50,7 @@ function uploadSuccess(res) { |
| 48 | const open = (params) => { | 50 | const open = (params) => { |
| 49 | show.value = true | 51 | show.value = true |
| 50 | title.value = params.title | 52 | title.value = params.title |
| 51 | action.value = `/systemj/personInfo/importPerson/${params.groupId}` | 53 | action.value = `/systemj/personInfo/importPerson/${groupId}` |
| 52 | } | 54 | } |
| 53 | defineExpose({ | 55 | defineExpose({ |
| 54 | open | 56 | open | ... | ... |
| ... | @@ -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> | ... | ... |
src/viewsPc/match/components/personTable.vue
0 → 100644
| 1 | <template> | ||
| 2 | <!-- 人员表格--> | ||
| 3 | <el-table :data="tableData" class="mt20"> | ||
| 4 | <el-table-column type="index" label="序号" width="80" align="center"/> | ||
| 5 | <el-table-column label="所属国家" prop="countryName"/> | ||
| 6 | <el-table-column label="姓氏" prop="xing"/> | ||
| 7 | <el-table-column label="名" prop="ming"/> | ||
| 8 | <el-table-column label="短名" prop="shortName"/> | ||
| 9 | <el-table-column label="性别" prop="sexStr"/> | ||
| 10 | <el-table-column label="年龄" prop="age"/> | ||
| 11 | <el-table-column label="出生日期" prop="birth" width="100"/> | ||
| 12 | <el-table-column label="手机号码" prop="phone" width="120"/> | ||
| 13 | <el-table-column label="邮箱" prop="email" width="150"/> | ||
| 14 | <el-table-column label="证件类型" prop="idcTypeStr"/> | ||
| 15 | <el-table-column label="证件号码" prop="idcCode" width="200"/> | ||
| 16 | <el-table-column label="会员角色"> | ||
| 17 | <template #default="scope"> | ||
| 18 | <span v-for="item in scope.row.label?.split(',')" :key="item.id"> | ||
| 19 | <el-tag type="primary" size="mini" v-if="item==='0'" effect="dark" class="ml10">运动员</el-tag> | ||
| 20 | <el-tag type="info" size="mini" v-if="item==='1'" effect="dark" class="ml10">教练</el-tag> | ||
| 21 | <el-tag type="info" size="mini" v-if="item==='2'" effect="dark" class="ml10">领队</el-tag> | ||
| 22 | <el-tag type="info" size="mini" v-if="item==='3'" effect="dark" class="ml10">队医</el-tag> | ||
| 23 | <el-tag type="info" size="mini" v-if="item==='4'" effect="dark" class="ml10">翻译</el-tag> | ||
| 24 | <el-tag type="info" size="mini" v-if="item==='5'" effect="dark" class="ml10">官员</el-tag> | ||
| 25 | <el-tag type="info" size="mini" v-if="item==='6'" effect="dark" class="ml10">其他</el-tag> | ||
| 26 | </span> | ||
| 27 | </template> | ||
| 28 | </el-table-column> | ||
| 29 | <el-table-column label="详细地址" prop="address"/> | ||
| 30 | <el-table-column label="操作" fixed="right" width="160" header-align="center" align="center"> | ||
| 31 | <template #default="scope"> | ||
| 32 | <a class="text-primary pd10" @click="editCoach(scope.row.id,scope.row.groupId)">编辑</a> | ||
| 33 | <a class="text-primary pd10" @click="delperson(scope.row)">删除</a> | ||
| 34 | </template> | ||
| 35 | </el-table-column> | ||
| 36 | </el-table> | ||
| 37 | <!-- <paginationPc--> | ||
| 38 | <!-- v-show="total>0"--> | ||
| 39 | <!-- v-model:page="query.pageNum"--> | ||
| 40 | <!-- v-model:limit="query.pageSize"--> | ||
| 41 | <!-- :total="total"--> | ||
| 42 | <!-- @pagination="getList"--> | ||
| 43 | <!-- />--> | ||
| 44 | </template> | ||
| 45 | |||
| 46 | <script setup> | ||
| 47 | const props = defineProps({ | ||
| 48 | tableData:{ | ||
| 49 | type:Array, | ||
| 50 | required:true | ||
| 51 | } | ||
| 52 | }) | ||
| 53 | const editCoach = () => { | ||
| 54 | |||
| 55 | } | ||
| 56 | </script> | ||
| 57 | |||
| 58 | <style scoped> | ||
| 59 | |||
| 60 | </style> |
| ... | @@ -16,7 +16,8 @@ | ... | @@ -16,7 +16,8 @@ |
| 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" description="无可选项目" /> | 19 | <el-empty v-if="projectList.length==0" image="@/assets/img/order_no.png" image-size="228" description="无可选项目" /> |
| 20 | |||
| 20 | </el-form-item> | 21 | </el-form-item> |
| 21 | </el-col> | 22 | </el-col> |
| 22 | <el-col :span="8"> | 23 | <el-col :span="8"> | ... | ... |
| ... | @@ -11,10 +11,10 @@ | ... | @@ -11,10 +11,10 @@ |
| 11 | <h3> | 11 | <h3> |
| 12 | {{ matchData.name }} | 12 | {{ matchData.name }} |
| 13 | </h3> | 13 | </h3> |
| 14 | <p class="ppl"><label class="bm1">比赛时间:</label>2024.07.21-{{ matchData.endTime }}</p> | 14 | <p class="ppl"><label class="bm1">比赛时间:</label>{{matchData.beginTime?.slice(0,10)}} 至 {{ matchData.endTime?.slice(0,10) }}</p> |
| 15 | <p class="ppl"><label class="bm2">赛事级别:</label>{{ matchData.level }}</p> | 15 | <p class="ppl"><label class="bm2">赛事级别:</label>{{ matchData.level }}</p> |
| 16 | <p class="ppl"><label class="bm3">地    点:</label>{{ matchData.address }}</p> | 16 | <p class="ppl"><label class="bm3">地    点:</label>{{ matchData.address }}</p> |
| 17 | <p class="ppl"><label class="bm4">报名截止:</label>{{ matchData.signEndTime }}</p> | 17 | <p class="ppl"><label class="bm4">报名截止:</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>报名截止倒计时</span></p> | 20 | <p class="countDownTitle"><span>报名截止倒计时</span></p> |
| ... | @@ -40,37 +40,37 @@ | ... | @@ -40,37 +40,37 @@ |
| 40 | 40 | ||
| 41 | <el-row gutter="14"> | 41 | <el-row gutter="14"> |
| 42 | <el-col :lg="4"> | 42 | <el-col :lg="4"> |
| 43 | <div class="funcBtn"> | 43 | <div class="funcBtn" @click="building"> |
| 44 | <img src="@/assets/dance/btn04.png"/> | 44 | <img src="@/assets/dance/btn04.png"/> |
| 45 | <h4>票务预订</h4> | 45 | <h4>票务预订</h4> |
| 46 | </div> | 46 | </div> |
| 47 | </el-col> | 47 | </el-col> |
| 48 | <el-col :lg="4"> | 48 | <el-col :lg="4"> |
| 49 | <div class="funcBtn"> | 49 | <div class="funcBtn" @click="building"> |
| 50 | <img src="@/assets/dance/btn01.png"/> | 50 | <img src="@/assets/dance/btn01.png"/> |
| 51 | <h4>酒店预约</h4> | 51 | <h4>酒店预约</h4> |
| 52 | </div> | 52 | </div> |
| 53 | </el-col> | 53 | </el-col> |
| 54 | <el-col :lg="4"> | 54 | <el-col :lg="4"> |
| 55 | <div class="funcBtn"> | 55 | <div class="funcBtn" @click="building"> |
| 56 | <img src="@/assets/dance/btn02.png"/> | 56 | <img src="@/assets/dance/btn02.png"/> |
| 57 | <h4>车辆预约</h4> | 57 | <h4>车辆预约</h4> |
| 58 | </div> | 58 | </div> |
| 59 | </el-col> | 59 | </el-col> |
| 60 | <el-col :lg="4"> | 60 | <el-col :lg="4"> |
| 61 | <div class="funcBtn"> | 61 | <div class="funcBtn" @click="building"> |
| 62 | <img src="@/assets/dance/btn03.png"/> | 62 | <img src="@/assets/dance/btn03.png"/> |
| 63 | <h4>餐饮预订</h4> | 63 | <h4>餐饮预订</h4> |
| 64 | </div> | 64 | </div> |
| 65 | </el-col> | 65 | </el-col> |
| 66 | <el-col :lg="4"> | 66 | <el-col :lg="4"> |
| 67 | <div class="funcBtn"> | 67 | <div class="funcBtn" @click="building"> |
| 68 | <img src="@/assets/dance/btn05.png"/> | 68 | <img src="@/assets/dance/btn05.png"/> |
| 69 | <h4>化妆预约</h4> | 69 | <h4>化妆预约</h4> |
| 70 | </div> | 70 | </div> |
| 71 | </el-col> | 71 | </el-col> |
| 72 | <el-col :lg="4"> | 72 | <el-col :lg="4"> |
| 73 | <div class="funcBtn"> | 73 | <div class="funcBtn" @click="building"> |
| 74 | <img src="@/assets/dance/btn06.png"/> | 74 | <img src="@/assets/dance/btn06.png"/> |
| 75 | <h4>拍照预约</h4> | 75 | <h4>拍照预约</h4> |
| 76 | </div> | 76 | </div> |
| ... | @@ -86,7 +86,6 @@ | ... | @@ -86,7 +86,6 @@ |
| 86 | </ul> | 86 | </ul> |
| 87 | </div> | 87 | </div> |
| 88 | <matchInfo :form="matchData" v-if="menu[0].active==1"/> | 88 | <matchInfo :form="matchData" v-if="menu[0].active==1"/> |
| 89 | <match-schedule-list :match-data="matchData" v-if="menu[2].active==1"/> | ||
| 90 | <div v-if="menu[1].active==1"> | 89 | <div v-if="menu[1].active==1"> |
| 91 | <div class="collapsebox"> | 90 | <div class="collapsebox"> |
| 92 | <el-collapse v-if="matchData.cptProjectList?.length > 0"> | 91 | <el-collapse v-if="matchData.cptProjectList?.length > 0"> |
| ... | @@ -176,6 +175,44 @@ | ... | @@ -176,6 +175,44 @@ |
| 176 | <el-empty image="@/assets/img/order_no.png" image-size="228" v-if="matchData.cptProjectList?.length == 0" description=" "/> | 175 | <el-empty image="@/assets/img/order_no.png" image-size="228" v-if="matchData.cptProjectList?.length == 0" description=" "/> |
| 177 | </div> | 176 | </div> |
| 178 | </div> | 177 | </div> |
| 178 | <match-schedule-list :match-data="matchData" v-if="menu[2].active==1"/> | ||
| 179 | <div v-if="menu[3].active==1"> | ||
| 180 | <el-row :gutter="20" v-if="matchData.signType == '0'"> | ||
| 181 | <el-col v-for="t in signDoneGroupList" :key="t.id" :span="8"> | ||
| 182 | <div class="teamItem"> | ||
| 183 | <el-avatar :size="60" :src="t.imgUrl||t.avatar" /> | ||
| 184 | <span class="name">{{ t.name }}</span> | ||
| 185 | </div> | ||
| 186 | </el-col> | ||
| 187 | </el-row> | ||
| 188 | <el-row :gutter="20" v-else> | ||
| 189 | <el-col :span="24" v-for="(t,index) in signDoneGroupList" :key="t.id"> | ||
| 190 | <div class="nowteamItem"> | ||
| 191 | <span>{{index+1}}.</span> | ||
| 192 | <el-avatar :size="80" :src="t.imgUrl||t.avatar" :fit="cover"/> | ||
| 193 | <div class="info"> | ||
| 194 | <h3 class="name">{{ t.name }}</h3> | ||
| 195 | <p v-if="t.extraInfo"> | ||
| 196 | <span v-for="(ee,index) in JSON.parse(t.extraInfo)" :key="index" v-show="(ee?.type == '0'||ee?.type == '4')&&index<2"> | ||
| 197 | {{ee.value}}   | ||
| 198 | </span> | ||
| 199 | </p> | ||
| 200 | </div> | ||
| 201 | <p class="rr"><span>{{t.renCi}}</span> 人参赛</p> | ||
| 202 | </div> | ||
| 203 | </el-col> | ||
| 204 | </el-row> | ||
| 205 | <el-empty image="@/assets/img/order_no.png" image-size="228" v-if="(signDoneGroupList==null)||(signDoneGroupList.length==0)" description="" /> | ||
| 206 | </div> | ||
| 207 | <div v-if="menu[4].active==1"> | ||
| 208 | <!-- 成绩--> | ||
| 209 | <el-empty image="@/assets/img/order_no.png" image-size="228" description="暂无成绩" /> | ||
| 210 | </div> | ||
| 211 | <div v-if="menu[5].active==1" class="pd20"> | ||
| 212 | <div class="xzbox" v-html="matchData.signKnow"> | ||
| 213 | |||
| 214 | </div> | ||
| 215 | </div> | ||
| 179 | </el-card> | 216 | </el-card> |
| 180 | <div style="height: 20px"></div> | 217 | <div style="height: 20px"></div> |
| 181 | 218 | ||
| ... | @@ -232,24 +269,6 @@ | ... | @@ -232,24 +269,6 @@ |
| 232 | </el-col> | 269 | </el-col> |
| 233 | </el-row> | 270 | </el-row> |
| 234 | </div> | 271 | </div> |
| 235 | |||
| 236 | <el-dialog v-model="popupGroupList" title="请选择参赛队" width="600px"> | ||
| 237 | <div class="popList"> | ||
| 238 | <div v-for="(t,index) in groups" :key="index" class="teamItem" @click="getThisGroupId(t)"> | ||
| 239 | <el-avatar :size="60" :src="t.imgUrl" /> | ||
| 240 | <span class="name">{{ t.name }}({{ t.abreviations }})</span> | ||
| 241 | ({{ t.typeStr }}) | ||
| 242 | </div> | ||
| 243 | <el-button plain style="width: 100%;height: 50px;font-size:16px;" type="success" @click="goAddgroup()"> | ||
| 244 | <el-icon> | ||
| 245 | <Plus /> | ||
| 246 | </el-icon> | ||
| 247 | 新建参赛队 | ||
| 248 | </el-button> | ||
| 249 | </div> | ||
| 250 | </el-dialog> | ||
| 251 | |||
| 252 | <groupDetail ref="dialogEditGroup" @submitForm="getMyGroupList" /> | ||
| 253 | </div> | 272 | </div> |
| 254 | </template> | 273 | </template> |
| 255 | 274 | ||
| ... | @@ -276,20 +295,30 @@ const data = reactive({ | ... | @@ -276,20 +295,30 @@ const data = reactive({ |
| 276 | activeName2:'first', | 295 | activeName2:'first', |
| 277 | popupGroupList:false, | 296 | popupGroupList:false, |
| 278 | menu:[{name:'赛事详情',active:1},{name:'赛事设项',active:0},{name:'日程',active:0},{name:'参赛队',active:0},{name:'成绩',active:0},{name:'报名须知',active:0}], | 297 | menu:[{name:'赛事详情',active:1},{name:'赛事设项',active:0},{name:'日程',active:0},{name:'参赛队',active:0},{name:'成绩',active:0},{name:'报名须知',active:0}], |
| 279 | menu1:[{name:'分站赛',active:1},{name:'赛事详情',active:0},{name:'日程',active:0}] | 298 | menu1:[{name:'分站赛',active:1},{name:'赛事详情',active:0},{name:'日程',active:0}], |
| 299 | signDoneGroupList: [] | ||
| 280 | }) | 300 | }) |
| 281 | const {matchData,matchId,groupId,activeName2,popupGroupList,menu,menu1} = toRefs(data) | 301 | const {matchData,matchId,groupId,activeName2,popupGroupList,menu,menu1,signDoneGroupList} = toRefs(data) |
| 282 | onMounted(() => { | 302 | onMounted(() => { |
| 283 | // matchId.value = route.params.id | 303 | // matchId.value = route.params.id |
| 284 | matchId.value = '1759477811976183809' | 304 | matchId.value = '1759477811976183809' |
| 285 | getMatch(matchId.value) | 305 | getMatch(matchId.value) |
| 306 | getGroupListByCptId(matchId.value) | ||
| 286 | }) | 307 | }) |
| 308 | function building() { | ||
| 309 | ElMessage.warning('暂未开发,敬请期待!') | ||
| 310 | } | ||
| 287 | function getMatch(id) { | 311 | function getMatch(id) { |
| 288 | if(id!=0) | 312 | if(id!=0) |
| 289 | match.getMatchById({ id: id }).then(res => { | 313 | match.getMatchById({ id: id }).then(res => { |
| 290 | matchData.value = res.data | 314 | matchData.value = res.data |
| 291 | }) | 315 | }) |
| 292 | } | 316 | } |
| 317 | function getGroupListByCptId(id) { | ||
| 318 | match.getGroupListByCptId(id).then(res => { | ||
| 319 | signDoneGroupList.value = res.data | ||
| 320 | }) | ||
| 321 | } | ||
| 293 | function changeMenu(menu,l){ | 322 | function changeMenu(menu,l){ |
| 294 | for(const n of menu){ | 323 | for(const n of menu){ |
| 295 | if(n==l){ | 324 | if(n==l){ |
| ... | @@ -309,40 +338,37 @@ function choseSignType() { | ... | @@ -309,40 +338,37 @@ function choseSignType() { |
| 309 | }) | 338 | }) |
| 310 | } else { | 339 | } else { |
| 311 | // 团队报名 团体-队伍报名 | 340 | // 团队报名 团体-队伍报名 |
| 312 | getMyGroupList() | 341 | match.getMyGroupList().then(res => { |
| 342 | checkIsSign(matchData.value.signType,res.data[0].id).then(() => { | ||
| 343 | goSignType2(res.data[0].id) | ||
| 344 | }) | ||
| 345 | }) | ||
| 346 | |||
| 313 | } | 347 | } |
| 314 | } | 348 | } |
| 349 | function goSignType2(groupId) { | ||
| 350 | router.push({ | ||
| 351 | path: `${route.params.id}/teamSign`, | ||
| 352 | query: { | ||
| 353 | matchId: matchId.value, | ||
| 354 | groupId: groupId, | ||
| 355 | signType: matchData.value.signType | ||
| 356 | } | ||
| 357 | }) | ||
| 358 | } | ||
| 315 | // 获取已报信息 | 359 | // 获取已报信息 |
| 316 | function checkIsSign(signType) { | 360 | function checkIsSign(signType,groupId) { |
| 317 | var obj = { | 361 | var obj = { |
| 318 | cptId: matchId.value, | 362 | cptId: matchId.value, |
| 319 | groupId: groupId.value || '' | 363 | groupId: groupId |
| 320 | } | 364 | } |
| 321 | return match.getMySignInfo(obj).then(res => { | 365 | return match.getMySignInfo(obj).then(res => { |
| 322 | if (res.data.type == '1') { | 366 | if (res.data.type == '1') { |
| 323 | let str = '' | 367 | ElMessage.error('已报名,不能重复报名') |
| 324 | if (signType == '0') { | ||
| 325 | str = '已报名,不能重复报名' | ||
| 326 | } else { | ||
| 327 | str = '该参赛队已报名,请选择其他参赛队' | ||
| 328 | } | ||
| 329 | ElMessage.error(str) | ||
| 330 | return Promise.reject('rejected message') | 368 | return Promise.reject('rejected message') |
| 331 | } | 369 | } |
| 332 | }) | 370 | }) |
| 333 | } | 371 | } |
| 334 | function getMyGroupList(){ | ||
| 335 | match.getMyGroupList().then(res => { | ||
| 336 | groups.value = res.data | ||
| 337 | popupGroupList.value = true | ||
| 338 | }) | ||
| 339 | } | ||
| 340 | function goAddgroup() { | ||
| 341 | // 新团 | ||
| 342 | proxy.$refs['dialogEditGroup'].open({ | ||
| 343 | title: '新建参赛队' | ||
| 344 | }) | ||
| 345 | } | ||
| 346 | </script> | 372 | </script> |
| 347 | 373 | ||
| 348 | <style scoped lang="scss"> | 374 | <style scoped lang="scss"> | ... | ... |
| ... | @@ -66,46 +66,7 @@ | ... | @@ -66,46 +66,7 @@ |
| 66 | <div style="padding: 0 20px 20px"> | 66 | <div style="padding: 0 20px 20px"> |
| 67 | <!-- 赛事详情--> | 67 | <!-- 赛事详情--> |
| 68 | <div class="indexTitle"><h3 class="leftboderTT">Organization</h3></div> | 68 | <div class="indexTitle"><h3 class="leftboderTT">Organization</h3></div> |
| 69 | <el-row :gutter="20"> | 69 | <div class="xzbox"></div> |
| 70 | <el-col :lg="8"> | ||
| 71 | <div class="dlbox"> | ||
| 72 | <dl> | ||
| 73 | <dt>Organizer</dt> | ||
| 74 | <dd>World Sports Dance Federation(WDSF)</dd> | ||
| 75 | <dd>Asian Sports Dance Federation(DSA)</dd> | ||
| 76 | <dd>China Sports Federation(CDSF)</dd> | ||
| 77 | </dl> | ||
| 78 | </div> | ||
| 79 | </el-col> | ||
| 80 | <el-col :lg="8"> | ||
| 81 | <div class="dlbox"> | ||
| 82 | <dl> | ||
| 83 | <dt>Undertaker</dt> | ||
| 84 | <dd>Jiangsu Provincial Sports Federation</dd> | ||
| 85 | <dd>Wuxi Municipal People's Government</dd> | ||
| 86 | </dl> | ||
| 87 | </div> | ||
| 88 | </el-col> | ||
| 89 | <el-col :lg="8"> | ||
| 90 | <div class="dlbox"> | ||
| 91 | <dl> | ||
| 92 | <dt>Co-organizer</dt> | ||
| 93 | <dd>Wuxi Sports Bureau</dd> | ||
| 94 | <dd>Jiangsu Wuxi Economic Development Zone Management Committee</dd> | ||
| 95 | <dd>Jiangsu Provincial Sports Dance Association</dd> | ||
| 96 | </dl> | ||
| 97 | </div> | ||
| 98 | </el-col> | ||
| 99 | <el-col :lg="8"> | ||
| 100 | <div class="dlbox"> | ||
| 101 | <dl> | ||
| 102 | <dt>Operator</dt> | ||
| 103 | <dd>Jijin Wuxi Sports and Health Co., Ltd</dd> | ||
| 104 | </dl> | ||
| 105 | </div> | ||
| 106 | </el-col> | ||
| 107 | |||
| 108 | </el-row> | ||
| 109 | <div class="indexTitle"><h3 class="leftboderTT">Notes</h3></div> | 70 | <div class="indexTitle"><h3 class="leftboderTT">Notes</h3></div> |
| 110 | <div class="xzbox"> | 71 | <div class="xzbox"> |
| 111 | 1. Each unit is limited to reporting one team, each team needs to report one leader (athletes can also serve), and athletes are limited to reporting four<br> | 72 | 1. Each unit is limited to reporting one team, each team needs to report one leader (athletes can also serve), and athletes are limited to reporting four<br> | ... | ... |
src/viewsPc/match/pay.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <div class="box"> | ||
| 4 | <el-card :body-style="{ padding: '0px' }" class="mt20 mb60"> | ||
| 5 | <div slot="header"> | ||
| 6 | <div class="bg-lineg">报名缴费清单</div> | ||
| 7 | </div> | ||
| 8 | <div class="pd20"> | ||
| 9 | <div class="border-info"> | ||
| 10 | <el-row> | ||
| 11 | <el-col :lg="8"> | ||
| 12 | <div class="item"><label>赛事名称</label>{{ matchInfo.name }}</div> | ||
| 13 | </el-col> | ||
| 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 | <!-- 人员列表--> | ||
| 70 | <el-table :data="tableData" border style="width: 100%" class="mt20" :span-method="arraySpanMethod"> | ||
| 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> | ||
| 96 | |||
| 97 | <div class="mt20"> | ||
| 98 | <div class="leftboderTT">参赛设项报名费</div> | ||
| 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> | ||
| 114 | </div> | ||
| 115 | |||
| 116 | </el-card> | ||
| 117 | |||
| 118 | </div> | ||
| 119 | |||
| 120 | </div> | ||
| 121 | </template> | ||
| 122 | |||
| 123 | <script setup> | ||
| 124 | import {ref} from 'vue' | ||
| 125 | |||
| 126 | const matchInfo = ref({}) | ||
| 127 | const tableData = ref([]) | ||
| 128 | |||
| 129 | </script> | ||
| 130 | |||
| 131 | <style scoped lang="scss"> | ||
| 132 | .leftboderTT{font-weight: 600; | ||
| 133 | font-size: 16px; | ||
| 134 | color: #453DEA;} | ||
| 135 | .bg-lineg { | ||
| 136 | height: 40px; | ||
| 137 | line-height: 40px; | ||
| 138 | font-size: 18px; | ||
| 139 | text-align: center; | ||
| 140 | } | ||
| 141 | </style> |
src/viewsPc/match/signPreview.vue
0 → 100644
| 1 | <template> | ||
| 2 | <div> | ||
| 3 | <div class="box ph-30"> | ||
| 4 | <el-card class="mb20"> | ||
| 5 | <el-steps :active="activeStep" align-center> | ||
| 6 | <el-step title="团队信息"/> | ||
| 7 | <el-step title="教练/领队/其他"/> | ||
| 8 | <el-step title="选手报名"/> | ||
| 9 | <el-step title="提交审核"/> | ||
| 10 | </el-steps> | ||
| 11 | </el-card> | ||
| 12 | <el-card> | ||
| 13 | <div class="border-info"> | ||
| 14 | <el-row> | ||
| 15 | <el-col :lg="8"> | ||
| 16 | <div class="item"><label>赛事名称</label>{{ matchInfo.name }}</div> | ||
| 17 | </el-col> | ||
| 18 | <el-col :lg="8"> | ||
| 19 | <div class="item"><label>赛事类型</label>{{ matchInfo.name }}</div> | ||
| 20 | </el-col> | ||
| 21 | <el-col :lg="8"> | ||
| 22 | <div class="item"><label>赛事时间</label>{{ matchInfo.beginTime?.slice(0, 10) }} 至 | ||
| 23 | {{ matchInfo.endTime?.slice(0, 10) }} | ||
| 24 | </div> | ||
| 25 | </el-col> | ||
| 26 | <el-col :lg="8"> | ||
| 27 | <div class="item"><label>报名时间</label>{{ matchInfo.signBeginTime?.slice(0, 10) }} | ||
| 28 | 至{{ matchInfo.signEndTime?.slice(0, 10) }} | ||
| 29 | </div> | ||
| 30 | </el-col> | ||
| 31 | <el-col :lg="16"> | ||
| 32 | <div class="item"><label>比赛地址</label>{{ matchInfo.address }}</div> | ||
| 33 | </el-col> | ||
| 34 | </el-row> | ||
| 35 | |||
| 36 | </div> | ||
| 37 | <div class="border-info gray mt20"> | ||
| 38 | <el-row> | ||
| 39 | <el-col :lg="8"> | ||
| 40 | <div class="item"><label>团队名称</label>{{ matchInfo.signFee }}</div> | ||
| 41 | <div class="item"><label>团队类型</label>{{ matchInfo.signFee }}</div> | ||
| 42 | </el-col> | ||
| 43 | <el-col :lg="8"> | ||
| 44 | <div class="item"><label>负责人姓名</label>{{ matchInfo.signFee }}</div> | ||
| 45 | <div class="item"><label>参赛队名称</label>{{ matchInfo.signFee }}</div> | ||
| 46 | |||
| 47 | </el-col> | ||
| 48 | <el-col :lg="8"> | ||
| 49 | <div class="item"><label>邮箱</label>{{ matchInfo.signFee }}</div> | ||
| 50 | <div class="item"><label>详细地址</label>{{ matchInfo.signFee }}</div> | ||
| 51 | </el-col> | ||
| 52 | </el-row> | ||
| 53 | </div> | ||
| 54 | <div class="border-info mt20"> | ||
| 55 | <el-row> | ||
| 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-col :lg="8"> | ||
| 65 | <div class="item"><label>队医</label>{{ matchInfo.signFee }}</div> | ||
| 66 | <div class="item"><label>其他</label>{{ matchInfo.signFee }}</div> | ||
| 67 | </el-col> | ||
| 68 | </el-row> | ||
| 69 | </div> | ||
| 70 | |||
| 71 | <div class="mt20"> | ||
| 72 | <div class="leftboderTT">参赛人员清单</div> | ||
| 73 | <el-table :data="tableData" border style="width: 100%" class="mt20" :span-method="arraySpanMethod"> | ||
| 74 | <el-table-column label="所属国家"/> | ||
| 75 | <el-table-column prop="name" label="姓氏" width="180" align="center"></el-table-column> | ||
| 76 | <el-table-column label="名"/> | ||
| 77 | <el-table-column label="短名"/> | ||
| 78 | <el-table-column prop="sex" label="性别" width="180" align="center"></el-table-column> | ||
| 79 | <el-table-column prop="age" label="年龄" width="180" align="center"></el-table-column> | ||
| 80 | <el-table-column label="出生日期" align="center"/> | ||
| 81 | <el-table-column prop="phone" label="手机号码" width="180" align="center"></el-table-column> | ||
| 82 | <el-table-column label="邮箱"/> | ||
| 83 | <el-table-column label="证件类型" align="center"/> | ||
| 84 | <el-table-column label="证件号码"/> | ||
| 85 | <el-table-column label="报项" fixed="right"> | ||
| 86 | <template #default="scope"> | ||
| 87 | <ol> | ||
| 88 | <li v-for="item in scope.row.items" :key="item.id">{{ item.name }}</li> | ||
| 89 | </ol> | ||
| 90 | </template> | ||
| 91 | </el-table-column> | ||
| 92 | <el-table-column label="保险费" fixed="right" align="center"> | ||
| 93 | <template #default="scope"> | ||
| 94 | <span class="text-primary">¥{{ scope.row.signFee }}/人</span> | ||
| 95 | </template> | ||
| 96 | </el-table-column> | ||
| 97 | </el-table> | ||
| 98 | |||
| 99 | </div> | ||
| 100 | <div class="mt20"> | ||
| 101 | <div class="leftboderTT">设项报名清单</div> | ||
| 102 | <!-- 报项列表--> | ||
| 103 | <el-table :data="tableData" border style="width: 100%" class="mt20"> | ||
| 104 | <el-table-column label="组别代码" align="center"/> | ||
| 105 | <el-table-column label="组别" align="center"/> | ||
| 106 | <el-table-column label="舞种" align="center"/> | ||
| 107 | <el-table-column label="参赛说明"/> | ||
| 108 | <el-table-column label="参赛运动员"/> | ||
| 109 | <el-table-column label="补充信息"/> | ||
| 110 | <el-table-column label="报名费" align="center"> | ||
| 111 | <template #default="scope"> | ||
| 112 | <span class="text-primary">¥{{ scope.row.signFee }}/人</span> | ||
| 113 | </template> | ||
| 114 | </el-table-column> | ||
| 115 | </el-table> | ||
| 116 | </div> | ||
| 117 | |||
| 118 | |||
| 119 | </el-card> | ||
| 120 | <el-card class="mt20"> | ||
| 121 | <el-row> | ||
| 122 | <el-col :lg="16"> | ||
| 123 | <div> | ||
| 124 | <div class="item"><label>报名费:</label><span>¥{{ matchInfo.signFee }}</span></div> | ||
| 125 | <div class="item"><label>保险费:</label><span>¥{{ matchInfo.signFee }}</span></div> | ||
| 126 | <div class="item"><label>费用总计:</label><span>¥{{ matchInfo.signFee }}</span></div> | ||
| 127 | </div> | ||
| 128 | </el-col> | ||
| 129 | <el-col :lg="8"> | ||
| 130 | <el-link type="primary"><el-icon><Upload /></el-icon>导出参赛人员清单</el-link> | ||
| 131 | <el-link type="primary"><el-icon><Upload /></el-icon>导出设项报名清单</el-link> | ||
| 132 | </el-col> | ||
| 133 | </el-row> | ||
| 134 | <div class="text-center"> | ||
| 135 | <el-button type="primary" class="" plain round @click="goPrev()">上一步</el-button> | ||
| 136 | <el-button type="primary" class="" plain round @click="submitForm()">保存暂不提交审核</el-button> | ||
| 137 | <el-button type="primary" class="btn-lineG w200px" round @click="submitForm()">提交审核</el-button> | ||
| 138 | </div> | ||
| 139 | </el-card> | ||
| 140 | </div> | ||
| 141 | </div> | ||
| 142 | </template> | ||
| 143 | |||
| 144 | <script setup> | ||
| 145 | import {ref} from "vue" | ||
| 146 | const activeStep = ref(3) | ||
| 147 | const matchInfo = ref({}) | ||
| 148 | </script> | ||
| 149 | |||
| 150 | <style scoped lang="scss"> | ||
| 151 | .leftboderTT{font-weight: 600; | ||
| 152 | font-size: 16px; | ||
| 153 | color: #453DEA;} | ||
| 154 | .bg-lineg { | ||
| 155 | height: 40px; | ||
| 156 | line-height: 40px; | ||
| 157 | font-size: 18px; | ||
| 158 | text-align: center; | ||
| 159 | } | ||
| 160 | </style> |
| ... | @@ -2,67 +2,60 @@ | ... | @@ -2,67 +2,60 @@ |
| 2 | <div class="app-container"> | 2 | <div class="app-container"> |
| 3 | 3 | ||
| 4 | <div class="box ph-30"> | 4 | <div class="box ph-30"> |
| 5 | <div class="panel"> | 5 | <el-card> |
| 6 | <div class="panel-header"> | 6 | <el-steps active="1" align-center> |
| 7 | <h3 class="panel-title">填写报名信息</h3> | 7 | <el-step title="团队信息" /> |
| 8 | <el-step title="教练/领队/其他" /> | ||
| 9 | <el-step title="选手报名" /> | ||
| 10 | <el-step title="提交审核" /> | ||
| 11 | </el-steps> | ||
| 12 | </el-card> | ||
| 13 | <div class="h20"></div> | ||
| 14 | <div class="panel" style="box-shadow: var(--el-box-shadow)"> | ||
| 15 | <div class="border-info" style="margin: 20px"> | ||
| 16 | <el-row> | ||
| 17 | <el-col :lg="8"> | ||
| 18 | <div class="item"><label>赛事名称</label>{{matchInfo.name}}</div></el-col> | ||
| 19 | <el-col :lg="8"><div class="item"><label>赛事类型</label>{{matchInfo.name}}</div></el-col> | ||
| 20 | <el-col :lg="8"><div class="item"><label>赛事时间</label>{{matchInfo.beginTime?.slice(0,10)}} 至 {{ matchInfo.endTime?.slice(0,10) }}</div></el-col> | ||
| 21 | <el-col :lg="8"><div class="item"><label>报名时间</label>{{ matchInfo.signBeginTime?.slice(0,10) }} 至{{ matchInfo.signEndTime?.slice(0,10) }}</div></el-col> | ||
| 22 | <el-col :lg="16"><div class="item"><label>比赛地址</label>{{matchInfo.address}}</div></el-col> | ||
| 23 | </el-row> | ||
| 24 | |||
| 8 | </div> | 25 | </div> |
| 9 | <div class="panel-body"> | 26 | <div class="h20"></div> |
| 10 | <el-form ref="ruleFormRef" label-width="120px" class="signForm" :model="form" :rules="rules"> | 27 | <el-form ref="ruleFormRef" label-width="120px" class="signForm" :model="form" :rules="rules"> |
| 11 | <el-row> | 28 | <el-row> |
| 12 | <el-col :span="8" :offset="2"> | 29 | <el-col :lg="8" :offset="2"> |
| 13 | <el-form-item label="参赛队logo" prop="imgUrl"> | 30 | <el-form-item label="团体Logo" prop="imgUrl"> |
| 14 | <ImageUpload2 v-model="form.imgUrl" class="bili43" :crop-width="400" :crop-height="300" :limit="1" /> | 31 | <ImageUpload2 v-model="form.imgUrl" :crop-width="200" :crop-height="200" :limit="1"/> |
| 15 | <!-- <span class="tip"><i>*</i>请上传近期 彩色免冠照片</span> --> | 32 | <span class="tip">请上传不超过 <i>5M</i> 的文件 格式为 <i>png/jpg/jpeg</i> 的文件</span> |
| 16 | </el-form-item> | 33 | </el-form-item> |
| 17 | </el-col> | 34 | </el-col> |
| 18 | <el-col :span="10"> | 35 | <el-col :lg="10"> |
| 19 | <el-form-item label="参赛队名称" prop="name"> | 36 | <el-form-item label="团体名称" prop="name"> |
| 20 | <el-input v-model="form.name" placeholder="请输入参赛队名称" /> | 37 | <el-input v-model="form.name" placeholder="请输入团体名称" /> |
| 21 | </el-form-item> | 38 | </el-form-item> |
| 22 | <el-form-item label="参赛队简称" prop="abreviations"> | 39 | <el-form-item label="负责人姓名" prop="contactPerson"> |
| 23 | <el-input v-model="form.abreviations" /> | ||
| 24 | </el-form-item> | ||
| 25 | <el-form-item label="参赛队类型" prop="type"> | ||
| 26 | <el-select v-model="form.type" placeholder="请选择参赛队类型" style="width: 100%;"> | ||
| 27 | <el-option label="俱乐部" value="0" /> | ||
| 28 | <el-option label="事业单位" value="1" /> | ||
| 29 | <el-option label="道馆" value="2" /> | ||
| 30 | <el-option label="企业" value="3" /> | ||
| 31 | <el-option label="机关" value="4" /> | ||
| 32 | <el-option label="其他" value="5" /> | ||
| 33 | </el-select> | ||
| 34 | </el-form-item> | ||
| 35 | <!-- <el-form-item v-if="form.type==3" label="企业性质" prop="ctype">--> | ||
| 36 | <!-- <el-select v-model="form.ctype" placeholder="请选择企业性质" style="width: 100%;">--> | ||
| 37 | <!-- <el-option label="国资企业(含央企和本地)" value="0" />--> | ||
| 38 | <!-- <el-option label="外商投资企业" value="1" />--> | ||
| 39 | <!-- <el-option label="港澳台企业" value="2" />--> | ||
| 40 | <!-- <el-option label="民营企业" value="3" />--> | ||
| 41 | <!-- <el-option label="商会组织" value="4" />--> | ||
| 42 | <!-- <el-option label="其他" value="5" />--> | ||
| 43 | <!-- </el-select>--> | ||
| 44 | <!-- </el-form-item>--> | ||
| 45 | |||
| 46 | <el-form-item label="联系人" prop="contactPerson"> | ||
| 47 | <el-input v-model="form.contactPerson" placeholder="请输入联系人" /> | 40 | <el-input v-model="form.contactPerson" placeholder="请输入联系人" /> |
| 48 | </el-form-item> | 41 | </el-form-item> |
| 49 | <el-form-item label="联系电话" prop="contactTelno"> | 42 | <el-form-item label="邮箱" required prop="contactEmail"> |
| 50 | <el-input v-model="form.contactTelno" placeholder="请输入联系电话" /> | 43 | <el-input v-model="form.contactEmail" type="email" placeholder="请输入内容"/> |
| 51 | </el-form-item> | 44 | </el-form-item> |
| 52 | <el-form-item label="所在地区" prop="regionId"> | 45 | <el-form-item label="详细地址" required prop="address"> |
| 53 | <el-cascader | 46 | <el-input type="textarea" v-model="form.address" class="mt10" placeholder="请输入详细地址"/> |
| 54 | v-model="form.regionId" | 47 | </el-form-item> |
| 55 | style="width: 100%;" | 48 | <el-form-item label="团体类型" prop="type"> |
| 56 | :options="regionsList" | 49 | <el-select v-model="form.type" placeholder="请选择团体类型" style="width: 100%;"> |
| 57 | :props="{ label:'text' }" | 50 | <el-option label="普通院校" value="0" /> |
| 58 | /> | 51 | <el-option label="专业舞蹈学校" value="1" /> |
| 52 | <el-option label="培训机构/俱乐部" value="2" /> | ||
| 53 | <el-option label="地方协会" value="3" /> | ||
| 54 | <el-option label="国家协会" value="4" /> | ||
| 55 | </el-select> | ||
| 59 | </el-form-item> | 56 | </el-form-item> |
| 60 | <el-form-item label="详细地址" prop="address"> | 57 | <el-form-item label="参赛队名称" required prop="abreviations"> |
| 61 | <el-input | 58 | <el-input type="text" v-model="form.abreviations" placeholder="请输入内容"/> |
| 62 | v-model="form.address" placeholder="请输入详细地址" | ||
| 63 | :rows="2" | ||
| 64 | type="textarea" | ||
| 65 | /> | ||
| 66 | </el-form-item> | 59 | </el-form-item> |
| 67 | 60 | ||
| 68 | </el-col> | 61 | </el-col> |
| ... | @@ -86,16 +79,11 @@ | ... | @@ -86,16 +79,11 @@ |
| 86 | </el-form-item> | 79 | </el-form-item> |
| 87 | </el-col> | 80 | </el-col> |
| 88 | </el-row> | 81 | </el-row> |
| 89 | |||
| 90 | <!-- 队伍 --> | ||
| 91 | <Ranks v-if="isRanks" :coach-or-leader-flag="coachOrLeaderFlag" /> | ||
| 92 | </el-form> | 82 | </el-form> |
| 93 | 83 | ||
| 94 | </div> | ||
| 95 | <div class="panel-footer text-center"> | ||
| 96 | <el-button type="success" plain round @click="goPrev()">上一步</el-button> | ||
| 97 | 84 | ||
| 98 | <el-button type="success" round @click="submitForm()">下一步</el-button> | 85 | <div class="panel-footer text-center"> |
| 86 | <el-button type="primary" class="btn-lineG w200px" round @click="submitForm()">下一步</el-button> | ||
| 99 | </div> | 87 | </div> |
| 100 | </div> | 88 | </div> |
| 101 | </div> | 89 | </div> |
| ... | @@ -108,7 +96,6 @@ import { reactive, ref } from 'vue' | ... | @@ -108,7 +96,6 @@ import { reactive, ref } from 'vue' |
| 108 | import { getCurrentInstance, onMounted } from '@vue/runtime-core' | 96 | import { getCurrentInstance, onMounted } from '@vue/runtime-core' |
| 109 | import { useRoute, useRouter } from 'vue-router' | 97 | import { useRoute, useRouter } from 'vue-router' |
| 110 | import { toRefs } from '@vueuse/shared' | 98 | import { toRefs } from '@vueuse/shared' |
| 111 | import Ranks from './components/isRanks' | ||
| 112 | 99 | ||
| 113 | const { proxy } = getCurrentInstance() | 100 | const { proxy } = getCurrentInstance() |
| 114 | const router = useRouter() | 101 | const router = useRouter() |
| ... | @@ -116,9 +103,11 @@ const route = useRoute() | ... | @@ -116,9 +103,11 @@ const route = useRoute() |
| 116 | import * as match from '@/apiPc/match' | 103 | import * as match from '@/apiPc/match' |
| 117 | import { ElMessage } from 'element-plus' | 104 | import { ElMessage } from 'element-plus' |
| 118 | import _ from 'lodash' | 105 | import _ from 'lodash' |
| 106 | import {saveMyGroupForCpt} from "@/apiPc/match"; | ||
| 119 | 107 | ||
| 120 | const data = reactive({ | 108 | const data = reactive({ |
| 121 | isRanks: false, | 109 | isRanks: false, |
| 110 | matchData:{}, | ||
| 122 | form: {}, | 111 | form: {}, |
| 123 | groupId: 0, | 112 | groupId: 0, |
| 124 | cptId: 0, | 113 | cptId: 0, |
| ... | @@ -128,20 +117,19 @@ const data = reactive({ | ... | @@ -128,20 +117,19 @@ const data = reactive({ |
| 128 | rankList: [], | 117 | rankList: [], |
| 129 | accept: '.doc, .pdf, .docx, .zip', | 118 | accept: '.doc, .pdf, .docx, .zip', |
| 130 | rules: { | 119 | rules: { |
| 131 | imgUrl: { required: true, message: '请上传参赛队图标', trigger: 'blur' }, | 120 | imgUrl: { required: true, message: '请上传', trigger: 'blur' }, |
| 132 | name: { required: true, message: '请填写参赛队名称', trigger: 'blur' }, | 121 | name: { required: true, message: '请填写', trigger: 'blur' }, |
| 133 | type: { required: true, message: '请选择参赛队类型', trigger: 'change' }, | 122 | type: { required: true, message: '请选择', trigger: 'change' }, |
| 134 | // ctype: { required: true, message: '请选择企业性质', trigger: 'change' }, | 123 | contactPerson: { required: true, message: '请填写内容', trigger: 'blur' }, |
| 135 | regionId: { required: true, message: '请选择所在地区', trigger: 'change' }, | 124 | contactEmail: { required: true, message: '请填写内容', trigger: 'blur' }, |
| 136 | contactPerson: { required: true, message: '请填写联系人', trigger: 'blur' }, | 125 | abreviations: { required: true, message: '请填写内容', trigger: 'blur' }, |
| 137 | contactTelno: { required: true, message: '请填写联系方式', trigger: 'blur' }, | 126 | address: { required: true, message: '请填写内容', trigger: 'blur' } |
| 138 | abreviations: { required: true, message: '请填写参赛队简称', trigger: 'blur' }, | ||
| 139 | address: { required: true, message: '请填写详细地址', trigger: 'blur' } | ||
| 140 | }, | 127 | }, |
| 141 | coachOrLeaderFlag: '' | 128 | coachOrLeaderFlag: '', |
| 129 | matchInfo:{} | ||
| 142 | }) | 130 | }) |
| 143 | const { | 131 | const { |
| 144 | isRanks, | 132 | isRanks,matchData, |
| 145 | rankList, | 133 | rankList, |
| 146 | form, | 134 | form, |
| 147 | groupId, | 135 | groupId, |
| ... | @@ -149,23 +137,22 @@ const { | ... | @@ -149,23 +137,22 @@ const { |
| 149 | participantsInfoArr, | 137 | participantsInfoArr, |
| 150 | cptId, | 138 | cptId, |
| 151 | rules, | 139 | rules, |
| 152 | regionsList, | 140 | regionsList,matchInfo, |
| 153 | coachOrLeaderFlag, accept | 141 | coachOrLeaderFlag, accept |
| 154 | } = toRefs(data) | 142 | } = toRefs(data) |
| 155 | const uploadUrl = ref('/upload/upLoadToFileServer') | 143 | const uploadUrl = ref('/upload/upLoadToFileServer') |
| 156 | 144 | ||
| 157 | onMounted(() => { | 145 | onMounted(() => { |
| 158 | // 获取参赛队信息 | 146 | // 获取团体信息 |
| 159 | groupId.value = route.query.groupId | 147 | groupId.value = route.query.groupId |
| 160 | getGroupInfo() | 148 | getGroupInfo() |
| 161 | cptId.value = route.query.matchId | 149 | cptId.value = route.query.matchId |
| 162 | signType.value = route.query.signType | 150 | signType.value = route.query.signType |
| 163 | if (signType.value == 2) { | 151 | |
| 164 | isRanks.value = true | ||
| 165 | } | ||
| 166 | getRegionsList() | 152 | getRegionsList() |
| 167 | match.getMatchById({ id: cptId.value }).then(res => { | 153 | match.getMatchById({ id: cptId.value }).then(res => { |
| 168 | coachOrLeaderFlag.value = res.data.coachOrLeaderFlag | 154 | coachOrLeaderFlag.value = res.data.coachOrLeaderFlag |
| 155 | matchInfo.value = res.data | ||
| 169 | if (res.data.groupInfo) { | 156 | if (res.data.groupInfo) { |
| 170 | participantsInfoArr.value = JSON.parse(res.data.groupInfo) | 157 | participantsInfoArr.value = JSON.parse(res.data.groupInfo) |
| 171 | } | 158 | } |
| ... | @@ -204,11 +191,7 @@ function getRegionsList() { | ... | @@ -204,11 +191,7 @@ function getRegionsList() { |
| 204 | } | 191 | } |
| 205 | 192 | ||
| 206 | function getGroupInfo() { | 193 | function getGroupInfo() { |
| 207 | if (groupId.value == 0) { | 194 | match.getGroupInfo().then(res => { |
| 208 | // 新参赛队 | ||
| 209 | return | ||
| 210 | } | ||
| 211 | match.getGroupById(groupId.value).then(res => { | ||
| 212 | form.value = res.data | 195 | form.value = res.data |
| 213 | }) | 196 | }) |
| 214 | } | 197 | } |
| ... | @@ -227,10 +210,6 @@ function submitForm() { | ... | @@ -227,10 +210,6 @@ function submitForm() { |
| 227 | proxy.$refs['ruleFormRef'].validate((valid, fields) => { | 210 | proxy.$refs['ruleFormRef'].validate((valid, fields) => { |
| 228 | if (valid) { | 211 | if (valid) { |
| 229 | console.log(form.value) | 212 | console.log(form.value) |
| 230 | if (typeof (form.value.regionId) === 'object') { | ||
| 231 | form.value.regionId = _.last(form.value.regionId) | ||
| 232 | } | ||
| 233 | |||
| 234 | for (const n of participantsInfoArr.value) { | 213 | for (const n of participantsInfoArr.value) { |
| 235 | if (n.status == 0 && (!n.value && !n.fixWxFile)) { | 214 | if (n.status == 0 && (!n.value && !n.fixWxFile)) { |
| 236 | ElMessage.error(`请完善${n.name}信息`) | 215 | ElMessage.error(`请完善${n.name}信息`) |
| ... | @@ -238,7 +217,7 @@ function submitForm() { | ... | @@ -238,7 +217,7 @@ function submitForm() { |
| 238 | } | 217 | } |
| 239 | } | 218 | } |
| 240 | 219 | ||
| 241 | if (participantsInfoArr.value) { | 220 | if (participantsInfoArr.value.length>0) { |
| 242 | // 保存补充信息 | 221 | // 保存补充信息 |
| 243 | let fileInfo = {} | 222 | let fileInfo = {} |
| 244 | for (var p of participantsInfoArr.value) { | 223 | for (var p of participantsInfoArr.value) { |
| ... | @@ -261,17 +240,12 @@ function submitForm() { | ... | @@ -261,17 +240,12 @@ function submitForm() { |
| 261 | 240 | ||
| 262 | }) | 241 | }) |
| 263 | } | 242 | } |
| 264 | // 保存参赛队信息 | 243 | // 保存团体信息 |
| 265 | match.saveMyGroup(form.value).then(res => { | 244 | form.value.cptId = cptId.value |
| 266 | groupId.value = res.data | 245 | form.value.groupId = groupId.value |
| 267 | getTeamList().then(res => { | 246 | match.saveMyGroupForCpt(form.value).then(res => { |
| 268 | if (isRanks.value && rankList.value.length == 0) { | ||
| 269 | ElMessage.error('至少有一个队伍') | ||
| 270 | return | ||
| 271 | } | ||
| 272 | goNext() | 247 | goNext() |
| 273 | }) | 248 | }) |
| 274 | }) | ||
| 275 | } else { | 249 | } else { |
| 276 | console.log(form.value, fields) | 250 | console.log(form.value, fields) |
| 277 | } | 251 | } |
| ... | @@ -279,7 +253,6 @@ function submitForm() { | ... | @@ -279,7 +253,6 @@ function submitForm() { |
| 279 | } | 253 | } |
| 280 | 254 | ||
| 281 | function goNext() { | 255 | function goNext() { |
| 282 | if (coachOrLeaderFlag.value == '1' && !isRanks.value) { | ||
| 283 | // 选教练 | 256 | // 选教练 |
| 284 | router.push({ | 257 | router.push({ |
| 285 | name: `chooseCoach`, | 258 | name: `chooseCoach`, |
| ... | @@ -289,17 +262,6 @@ function goNext() { | ... | @@ -289,17 +262,6 @@ function goNext() { |
| 289 | signType: signType.value | 262 | signType: signType.value |
| 290 | } | 263 | } |
| 291 | }) | 264 | }) |
| 292 | } else { | ||
| 293 | // 选运动员 | ||
| 294 | router.push({ | ||
| 295 | name: `chooseSportsman`, | ||
| 296 | query: { | ||
| 297 | matchId: cptId.value, | ||
| 298 | groupId: groupId.value, | ||
| 299 | signType: signType.value | ||
| 300 | } | ||
| 301 | }) | ||
| 302 | } | ||
| 303 | } | 265 | } |
| 304 | </script> | 266 | </script> |
| 305 | 267 | ||
| ... | @@ -308,7 +270,11 @@ function goNext() { | ... | @@ -308,7 +270,11 @@ function goNext() { |
| 308 | padding: 0; | 270 | padding: 0; |
| 309 | background: #F5F7F9; | 271 | background: #F5F7F9; |
| 310 | } | 272 | } |
| 311 | 273 | .border-info{ | |
| 274 | .item{margin: 5px 0;color: #4C5359; font-size: 14px; | ||
| 275 | label{font-size: 14px;margin-right: 14px} | ||
| 276 | } | ||
| 277 | } | ||
| 312 | .panel-footer .el-button--success { | 278 | .panel-footer .el-button--success { |
| 313 | padding: 0 40px; | 279 | padding: 0 40px; |
| 314 | } | 280 | } |
| ... | @@ -335,7 +301,7 @@ function goNext() { | ... | @@ -335,7 +301,7 @@ function goNext() { |
| 335 | margin: 10px 0; | 301 | margin: 10px 0; |
| 336 | 302 | ||
| 337 | i { | 303 | i { |
| 338 | color: red; | 304 | color: red;font-style: normal; |
| 339 | margin: 0 4px 0 0; | 305 | margin: 0 4px 0 0; |
| 340 | } | 306 | } |
| 341 | } | 307 | } | ... | ... |
| ... | @@ -6,15 +6,48 @@ | ... | @@ -6,15 +6,48 @@ |
| 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="创建账号" /> |
| 9 | <el-step title="账号信息" /> | ||
| 10 | <el-step title="注册完成" /> | 9 | <el-step title="注册完成" /> |
| 11 | </el-steps> | 10 | </el-steps> |
| 12 | </el-card> | 11 | </el-card> |
| 13 | 12 | ||
| 14 | <div class="mt20"></div> | 13 | <div class="mt20"></div> |
| 15 | <Step1 v-if="activeStep==0" @submit="toStep2" @userName="getUserName" /> | 14 | <div v-if="activeStep==0"> |
| 16 | <Step2 v-if="activeStep==1" @submit="toStep3" @prev="toStep1"/> | 15 | <el-card style="min-height: 50vh"> |
| 17 | 16 | <div class="pt30"> | |
| 17 | <el-form class="d-form" size="large" label-width="120" style="max-width: 500px;margin: auto"> | ||
| 18 | <el-form-item label="WDSF卡号" required> | ||
| 19 | <el-input type="text" v-model="form.WDSF" @change="resetCode" @blur="verifyCode"/> | ||
| 20 | </el-form-item> | ||
| 21 | <el-form-item label="手机/邮箱" required> | ||
| 22 | <el-input type="text" v-model="form.account" @change="resetCode" @blur="verifyCode"/> | ||
| 23 | </el-form-item> | ||
| 24 | <el-form-item label="验证码" required> | ||
| 25 | <el-input v-model="form.code"> | ||
| 26 | <template #append> | ||
| 27 | <el-button type="primary" plain style="width: 110px" @click="sendsmsMsg"> | ||
| 28 | <count-down v-if="counting" v-slot="{ totalSeconds }" :time="60000" @end="counting=false"> | ||
| 29 | {{ totalSeconds }} 秒 | ||
| 30 | </count-down> | ||
| 31 | <span v-else> | ||
| 32 | 发送验证码 | ||
| 33 | </span> | ||
| 34 | </el-button> | ||
| 35 | </template> | ||
| 36 | </el-input> | ||
| 37 | <div class="vcodeBox" :style="isShow?'height:240px':'height:0'"> | ||
| 38 | <Vcode :show="isShow" type="inside" @success="codeSuccess" @close="codeClose" @fail='codeFail'></Vcode> | ||
| 39 | </div> | ||
| 40 | </el-form-item> | ||
| 41 | </el-form> | ||
| 42 | </div> | ||
| 43 | <div class="text-center"> | ||
| 44 | <!-- <el-button class="primary-kx" round @click="goBack">取消</el-button>--> | ||
| 45 | <el-button type="primary" class="btn-lineG w200px" round @click="next">下一步</el-button> | ||
| 46 | </div> | ||
| 47 | </el-card> | ||
| 48 | </div> | ||
| 49 | <div v-if="activeStep==1"> | ||
| 50 | </div> | ||
| 18 | 51 | ||
| 19 | 52 | ||
| 20 | </div> | 53 | </div> |
| ... | @@ -22,10 +55,9 @@ | ... | @@ -22,10 +55,9 @@ |
| 22 | </div> | 55 | </div> |
| 23 | </template> | 56 | </template> |
| 24 | 57 | ||
| 25 | <script> | 58 | <script setup> |
| 26 | export default { | 59 | import {ref} from "vue" |
| 27 | name: "peraonal" | 60 | const activeStep = ref(0) |
| 28 | } | ||
| 29 | </script> | 61 | </script> |
| 30 | 62 | ||
| 31 | <style scoped> | 63 | <style scoped> | ... | ... |
| ... | @@ -4,10 +4,10 @@ | ... | @@ -4,10 +4,10 @@ |
| 4 | <img src="@/assets/dance/ok.png"/> | 4 | <img src="@/assets/dance/ok.png"/> |
| 5 | <h3>注册成功</h3> | 5 | <h3>注册成功</h3> |
| 6 | </div> | 6 | </div> |
| 7 | <div class="border-info text-center"> | 7 | <div> |
| 8 | 8 | <div class="border-info text-center inline"> | |
| 9 | <label>登录账号</label> 321 | 9 | <label>登录账号</label> 321 |
| 10 | 10 | </div> | |
| 11 | </div> | 11 | </div> |
| 12 | <div class="text-center"> | 12 | <div class="text-center"> |
| 13 | <el-button class="primary-kx" @click="goHome">返回首页</el-button> | 13 | <el-button class="primary-kx" @click="goHome">返回首页</el-button> |
| ... | @@ -20,24 +20,26 @@ | ... | @@ -20,24 +20,26 @@ |
| 20 | import {reactive} from "@vue/runtime-core"; | 20 | import {reactive} from "@vue/runtime-core"; |
| 21 | import {toRefs} from "@vueuse/shared/index"; | 21 | import {toRefs} from "@vueuse/shared/index"; |
| 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 | |||
| 26 | const data = reactive({ | 27 | const data = reactive({ |
| 27 | isShow:false, | 28 | isShow: false, |
| 28 | isCodeTrue:false, | 29 | isCodeTrue: false, |
| 29 | counting:false, | 30 | counting: false, |
| 30 | form:{}, | 31 | form: {}, |
| 31 | activeStep: 0 | 32 | activeStep: 0 |
| 32 | }) | 33 | }) |
| 33 | const {isShow,isCodeTrue,counting,form,activeStep} = toRefs(data) | 34 | const {isShow, isCodeTrue, counting, form, activeStep} = toRefs(data) |
| 34 | const emit = defineEmits(['submit','userName']) | 35 | const emit = defineEmits(['submit', 'userName']) |
| 36 | |||
| 35 | function sendsmsMsg() { | 37 | function sendsmsMsg() { |
| 36 | if(!form.value.account){ | 38 | if (!form.value.account) { |
| 37 | ElMessage.error('请填写手机/邮箱') | 39 | ElMessage.error('请填写手机/邮箱') |
| 38 | return | 40 | return |
| 39 | } | 41 | } |
| 40 | if(counting.value){ | 42 | if (counting.value) { |
| 41 | return | 43 | return |
| 42 | } else { | 44 | } else { |
| 43 | isShow.value = true | 45 | isShow.value = true |
| ... | @@ -55,7 +57,7 @@ const goSign = () => { | ... | @@ -55,7 +57,7 @@ const goSign = () => { |
| 55 | </script> | 57 | </script> |
| 56 | 58 | ||
| 57 | <style scoped lang="scss"> | 59 | <style scoped lang="scss"> |
| 58 | .el-input-group__append button.el-button, .el-input-group__append button.el-button:hover{ | 60 | .el-input-group__append button.el-button, .el-input-group__append button.el-button:hover { |
| 59 | color: var(--el-color-primary); | 61 | color: var(--el-color-primary); |
| 60 | background: #efefff; | 62 | background: #efefff; |
| 61 | border: var(--el-color-primary) solid 1px; | 63 | border: var(--el-color-primary) solid 1px; | ... | ... |
| ... | @@ -77,12 +77,12 @@ export default defineConfig(({ mode, command }) => { | ... | @@ -77,12 +77,12 @@ export default defineConfig(({ mode, command }) => { |
| 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.132:8083/', | 80 | target: 'http://192.168.1.130: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.132:8083', | 85 | target: 'http://192.168.1.130: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/, '') | ... | ... |
-
Please register or sign in to post a comment