Merge branch 'dev' of https://code.itechtop.cn/yangyang/dance-pc into dev
# Conflicts: # vite.config.js
Showing
16 changed files
with
172 additions
and
123 deletions
| ... | @@ -174,9 +174,11 @@ import { useRouter, useRoute } from 'vue-router' | ... | @@ -174,9 +174,11 @@ import { useRouter, useRoute } from 'vue-router' |
| 174 | import { useStorage } from '@vueuse/core/index' | 174 | import { useStorage } from '@vueuse/core/index' |
| 175 | import useUserStore from '@/store/modules/user' | 175 | import useUserStore from '@/store/modules/user' |
| 176 | import { getVehicleByCheckIn } from '@/apiPc/booking' | 176 | import { getVehicleByCheckIn } from '@/apiPc/booking' |
| 177 | import { computed } from 'vue' | ||
| 177 | 178 | ||
| 179 | const useStore = useUserStore() | ||
| 180 | const user = computed(() => useUserStore().user) | ||
| 178 | const { proxy } = getCurrentInstance() | 181 | const { proxy } = getCurrentInstance() |
| 179 | const user = useUserStore().user | ||
| 180 | const router = useRouter() | 182 | const router = useRouter() |
| 181 | const route = useRoute() | 183 | const route = useRoute() |
| 182 | const language = useStorage('language', 0) | 184 | const language = useStorage('language', 0) |
| ... | @@ -245,6 +247,11 @@ async function changeSelectOut() { | ... | @@ -245,6 +247,11 @@ async function changeSelectOut() { |
| 245 | } | 247 | } |
| 246 | 248 | ||
| 247 | async function handleSubmit(v) { | 249 | async function handleSubmit(v) { |
| 250 | if (!user.value) { | ||
| 251 | useStore.setVisitor() | ||
| 252 | return | ||
| 253 | } | ||
| 254 | |||
| 248 | let checkOut = {} | 255 | let checkOut = {} |
| 249 | let obj = {} | 256 | let obj = {} |
| 250 | if (v == 0) { | 257 | if (v == 0) { |
| ... | @@ -275,7 +282,7 @@ async function handleSubmit(v) { | ... | @@ -275,7 +282,7 @@ async function handleSubmit(v) { |
| 275 | } | 282 | } |
| 276 | const res = await booking.checkOrderPay('1') | 283 | const res = await booking.checkOrderPay('1') |
| 277 | if (!res.data) { | 284 | if (!res.data) { |
| 278 | await proxy.$modal.confirm(language == 0 ? '您有未支付的订单,请前往支付!' : 'You have unpaid orders, please proceed to payment!') | 285 | await proxy.$modal.confirm(language.value == 0 ? '您有未支付的订单,请前往支付!' : 'You have unpaid orders, please proceed to payment!') |
| 279 | await router.push({ | 286 | await router.push({ |
| 280 | path: '/center/myReservation' | 287 | path: '/center/myReservation' |
| 281 | }) | 288 | }) |
| ... | @@ -292,7 +299,7 @@ async function handleSubmit(v) { | ... | @@ -292,7 +299,7 @@ async function handleSubmit(v) { |
| 292 | 299 | ||
| 293 | 300 | ||
| 294 | function goOrder(item, car) { | 301 | function goOrder(item, car) { |
| 295 | if (!user) { | 302 | if (!user.value) { |
| 296 | useUserStore().setReLogin() | 303 | useUserStore().setReLogin() |
| 297 | return | 304 | return |
| 298 | } | 305 | } | ... | ... |
This diff is collapsed.
Click to expand it.
| ... | @@ -13,20 +13,6 @@ | ... | @@ -13,20 +13,6 @@ |
| 13 | <div class="address">{{ TickForm.address }}</div> | 13 | <div class="address">{{ TickForm.address }}</div> |
| 14 | </div> | 14 | </div> |
| 15 | 15 | ||
| 16 | <div class="info"> | ||
| 17 | <div class="name">{{ TickForm2.ticketTypeName }}</div> | ||
| 18 | <div class="address"> | ||
| 19 | {{ TickForm2.stadiumName }} | | ||
| 20 | <span v-if="TickForm2.sessionType=='1000'">{{ language == 0 ? '日间场' : 'Day' }}</span> | ||
| 21 | <span v-else>{{ language == 0 ? '夜间场' : 'Night' }}</span> | ||
| 22 | | {{ TickForm2.ticketName }} | ||
| 23 | </div> | ||
| 24 | |||
| 25 | <div v-if="TickForm2.ticketType=='0'" class="address">{{ | ||
| 26 | language == 0 ? '剩余数量' : 'Remaining Quantity' | ||
| 27 | }}: {{ leftCount }} | ||
| 28 | </div> | ||
| 29 | </div> | ||
| 30 | 16 | ||
| 31 | <div class="ticket_info mb20"> | 17 | <div class="ticket_info mb20"> |
| 32 | <div class="tit_box"> | 18 | <div class="tit_box"> |
| ... | @@ -153,9 +139,25 @@ | ... | @@ -153,9 +139,25 @@ |
| 153 | </div> | 139 | </div> |
| 154 | </div> | 140 | </div> |
| 155 | </div> | 141 | </div> |
| 156 | <!-- 场馆布局图--> | 142 | <div class="rightBox"> |
| 143 | <div class="info"> | ||
| 144 | <div class="name">{{ TickForm2.ticketTypeName }}</div> | ||
| 145 | <div class="address"> | ||
| 146 | {{ TickForm2.stadiumName }} | | ||
| 147 | <span v-if="TickForm2.sessionType=='1000'">{{ language == 0 ? '日间场' : 'Day' }}</span> | ||
| 148 | <span v-else>{{ language == 0 ? '夜间场' : 'Night' }}</span> | ||
| 149 | | {{ TickForm2.ticketName }} | ||
| 150 | </div> | ||
| 151 | |||
| 152 | <div v-if="TickForm2.ticketType=='0'" class="address">{{ | ||
| 153 | language == 0 ? '剩余数量' : 'Remaining Quantity' | ||
| 154 | }}: {{ leftCount }} | ||
| 155 | </div> | ||
| 156 | </div> | ||
| 157 | </div> | ||
| 157 | 158 | ||
| 158 | <div style="margin-top: 95px"> | 159 | <!-- 场馆布局图--> |
| 160 | <div style="margin-top: 30px"> | ||
| 159 | <el-image | 161 | <el-image |
| 160 | :preview-src-list="[fillImgUrl(tickImg)]" | 162 | :preview-src-list="[fillImgUrl(tickImg)]" |
| 161 | :src="fillImgUrl(tickImg)" | 163 | :src="fillImgUrl(tickImg)" |
| ... | @@ -709,4 +711,15 @@ div { | ... | @@ -709,4 +711,15 @@ div { |
| 709 | width: 100%; | 711 | width: 100%; |
| 710 | } | 712 | } |
| 711 | } | 713 | } |
| 714 | |||
| 715 | .rightBox { | ||
| 716 | .info { | ||
| 717 | background: rgba(69, 61, 234, 0.04); | ||
| 718 | border-radius: 8px; | ||
| 719 | border: 1px solid #d3d1f6; | ||
| 720 | padding: 20px 0 28px 33px; | ||
| 721 | margin-bottom: 20px; | ||
| 722 | margin-top: 30px; | ||
| 723 | } | ||
| 724 | } | ||
| 712 | </style> | 725 | </style> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | <!-- top --> | 3 | <!-- top --> |
| 4 | <div class="container top father"> | 4 | <div class="container top "> |
| 5 | <img :src="fillImgUrl(matchForm.ticketImg)" alt="" class="cover_img"> | 5 | <img :src="fillImgUrl(matchForm.ticketImg)" alt="" class="cover_img"> |
| 6 | <div class="info"> | 6 | <div class="info"> |
| 7 | <div class="title">{{ matchForm.name }}</div> | 7 | <div class="title">{{ matchForm.name }}</div> |
| ... | @@ -176,7 +176,18 @@ | ... | @@ -176,7 +176,18 @@ |
| 176 | > | 176 | > |
| 177 | {{ it.name }} | 177 | {{ it.name }} |
| 178 | </div> | 178 | </div> |
| 179 | <div class="father"> | ||
| 180 | <el-image | ||
| 181 | v-if="currTick?.images" | ||
| 182 | :src="fillImgUrl(currTick?.images) " | ||
| 183 | class="son" | ||
| 184 | fit="cover" | ||
| 185 | preview-teleported | ||
| 186 | style="width:190px;height: 135px" | ||
| 187 | /> | ||
| 188 | </div> | ||
| 179 | </div> | 189 | </div> |
| 190 | |||
| 180 | </div> | 191 | </div> |
| 181 | 192 | ||
| 182 | 193 | ||
| ... | @@ -222,15 +233,7 @@ | ... | @@ -222,15 +233,7 @@ |
| 222 | </div> | 233 | </div> |
| 223 | 234 | ||
| 224 | </div> | 235 | </div> |
| 225 | <el-image | 236 | |
| 226 | v-if="currTick?.images" | ||
| 227 | :preview-src-list="[fillImgUrl(currTick?.images)]" | ||
| 228 | :src="fillImgUrl(currTick?.images) " | ||
| 229 | class="son" | ||
| 230 | fit="cover" | ||
| 231 | preview-teleported | ||
| 232 | style="width:200px" | ||
| 233 | /> | ||
| 234 | </div> | 237 | </div> |
| 235 | </div> | 238 | </div> |
| 236 | 239 | ||
| ... | @@ -245,10 +248,14 @@ | ... | @@ -245,10 +248,14 @@ |
| 245 | <div v-show="active==1" class="rich_content" v-html="matchForm.ticketDes" /> | 248 | <div v-show="active==1" class="rich_content" v-html="matchForm.ticketDes" /> |
| 246 | <div v-show="active==2" class="rich_content" v-html="matchForm.ticketNotice" /> | 249 | <div v-show="active==2" class="rich_content" v-html="matchForm.ticketNotice" /> |
| 247 | 250 | ||
| 248 | <el-dialog v-model="show" title="" width="1000px"> | 251 | <el-dialog v-model="show" align-center title="" width="1000px"> |
| 249 | <div> | 252 | <div style="padding: 20px"> |
| 250 | <img :src="fillImgUrl(showUrl)" alt="" style="width: 100%"> | 253 | <img :src="fillImgUrl(showUrl)" alt="" style="width: 100%"> |
| 251 | </div> | 254 | </div> |
| 255 | <br> | ||
| 256 | <div style="text-align: center;"> | ||
| 257 | <el-button size="large" type="primary" @click="show=false">{{ language == 0 ? '关 闭' : 'close' }}</el-button> | ||
| 258 | </div> | ||
| 252 | </el-dialog> | 259 | </el-dialog> |
| 253 | </div> | 260 | </div> |
| 254 | </div> | 261 | </div> |
| ... | @@ -401,6 +408,9 @@ function selectTick(v) { | ... | @@ -401,6 +408,9 @@ function selectTick(v) { |
| 401 | selectForm.value.latstId = v.id | 408 | selectForm.value.latstId = v.id |
| 402 | selectForm.value.price = v.price | 409 | selectForm.value.price = v.price |
| 403 | selectForm.value.priceEn = v.priceEn | 410 | selectForm.value.priceEn = v.priceEn |
| 411 | // console.log(v) | ||
| 412 | showUrl.value = v.images | ||
| 413 | show.value = true | ||
| 404 | } | 414 | } |
| 405 | 415 | ||
| 406 | function toSelectSeat() { | 416 | function toSelectSeat() { |
| ... | @@ -778,8 +788,8 @@ getmatchData() | ... | @@ -778,8 +788,8 @@ getmatchData() |
| 778 | 788 | ||
| 779 | .son { | 789 | .son { |
| 780 | position: absolute; | 790 | position: absolute; |
| 781 | bottom: 30px; | 791 | top: 0; |
| 782 | right: 50px; | 792 | left: 50px; |
| 783 | } | 793 | } |
| 784 | 794 | ||
| 785 | .remarks { | 795 | .remarks { | ... | ... |
| ... | @@ -133,7 +133,7 @@ | ... | @@ -133,7 +133,7 @@ |
| 133 | </div> | 133 | </div> |
| 134 | <div class="text-right"> | 134 | <div class="text-right"> |
| 135 | <el-button | 135 | <el-button |
| 136 | v-if="(b.orderType == 0||b.orderType == 5)&&b.viewStatus!=0" class="mb10" plain round | 136 | v-if="(b.orderType == 0||b.orderType == 5||b.orderType==1)&&b.viewStatus!=0" class="mb10" plain round |
| 137 | size="small" type="success" | 137 | size="small" type="success" |
| 138 | @click="Rebook(b)" | 138 | @click="Rebook(b)" |
| 139 | > | 139 | > |
| ... | @@ -234,6 +234,12 @@ function goDetail(b) { | ... | @@ -234,6 +234,12 @@ function goDetail(b) { |
| 234 | 234 | ||
| 235 | function Rebook(row) { | 235 | function Rebook(row) { |
| 236 | console.log(row) | 236 | console.log(row) |
| 237 | if (row.orderType == 1) { | ||
| 238 | return router.push({ | ||
| 239 | path: `/booking/car/${row.activeId}` | ||
| 240 | }) | ||
| 241 | } | ||
| 242 | |||
| 237 | if (row.orderType == 0) { | 243 | if (row.orderType == 0) { |
| 238 | router.push({ | 244 | router.push({ |
| 239 | name: 'hotelDetail', | 245 | name: 'hotelDetail', | ... | ... |
| ... | @@ -296,7 +296,7 @@ const data = reactive({ | ... | @@ -296,7 +296,7 @@ const data = reactive({ |
| 296 | projectQuery: {}, tableType: 1, | 296 | projectQuery: {}, tableType: 1, |
| 297 | currProjectId: '', | 297 | currProjectId: '', |
| 298 | openTour: false, | 298 | openTour: false, |
| 299 | isNational: false, | 299 | isNational: false, // 是否为国际赛 |
| 300 | languageSource: '', singlePersonEntryLimit: '', doublePersonEntryLimit: '' | 300 | languageSource: '', singlePersonEntryLimit: '', doublePersonEntryLimit: '' |
| 301 | }) | 301 | }) |
| 302 | const { | 302 | const { |
| ... | @@ -349,15 +349,16 @@ function getAthletesList() { | ... | @@ -349,15 +349,16 @@ function getAthletesList() { |
| 349 | match.getGroupPersonList({ label: '0' }, groupId.value).then(res => { | 349 | match.getGroupPersonList({ label: '0' }, groupId.value).then(res => { |
| 350 | athletesList.value = res.rows | 350 | athletesList.value = res.rows |
| 351 | 351 | ||
| 352 | if (!isNational.value) { | 352 | for (const ath of athletesList.value) { |
| 353 | for (const ath of athletesList.value) { | 353 | if (!isNational.value) { |
| 354 | if (isNational.value && !ath.phone) { | 354 | ath.disabled = false |
| 355 | ath.disabled = true | 355 | ath.ocrFlag = 1 |
| 356 | } else { | ||
| 357 | ath.disabled = false | ||
| 358 | } | ||
| 359 | } | 356 | } |
| 360 | console.log(athletesList.value) | 357 | // if (isNational.value && !ath.phone) { |
| 358 | // ath.disabled = true | ||
| 359 | // } else { | ||
| 360 | // ath.disabled = false | ||
| 361 | // } | ||
| 361 | } | 362 | } |
| 362 | }) | 363 | }) |
| 363 | } | 364 | } |
| ... | @@ -525,18 +526,19 @@ function chooseSportman() { | ... | @@ -525,18 +526,19 @@ function chooseSportman() { |
| 525 | } | 526 | } |
| 526 | 527 | ||
| 527 | function handelOption(id) { | 528 | function handelOption(id) { |
| 528 | const flag = choosedchoosed.value.some(v => v == id) | 529 | if (isNational.value) { |
| 529 | if (flag) { | 530 | const flag = choosedchoosed.value.some(v => v == id) |
| 530 | const ocr = athletesList.value.find(v => v.id === id) || {} | 531 | if (flag) { |
| 531 | if (ocr.disabled || ocr.ocrFlag == 0) { | 532 | const ocr = athletesList.value.find(v => v.id === id) || {} |
| 532 | choosedchoosed.value = choosedchoosed.value.filter(v => v != id) | 533 | if (ocr.disabled || ocr.ocrFlag == 0) { |
| 533 | return proxy.$modal.confirm( | 534 | choosedchoosed.value = choosedchoosed.value.filter(v => v != id) |
| 534 | language.value == 0 | 535 | return proxy.$modal.confirm( |
| 535 | ? '请到选手管理完善信息' | 536 | language.value == 0 |
| 536 | : 'You can complete athletes details through [Athlete Manage') | 537 | ? '请到选手管理完善信息' |
| 538 | : 'You can complete athletes details through [Athlete Manage') | ||
| 539 | } | ||
| 537 | } | 540 | } |
| 538 | } | 541 | } |
| 539 | |||
| 540 | getProjectList() | 542 | getProjectList() |
| 541 | } | 543 | } |
| 542 | 544 | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <el-dialog | 2 | <el-dialog |
| 3 | v-model="show" :title="title" width="800px" append-to-body close-icon="CircleClose" center | 3 | v-model="show" :close-on-click-modal="false" :title="title" append-to-body center |
| 4 | :close-on-click-modal="false" class="pcloginpop" | 4 | class="pcloginpop" |
| 5 | destroy-on-close | 5 | close-icon="CircleClose" destroy-on-close |
| 6 | width="800px" | ||
| 6 | > | 7 | > |
| 7 | <!-- 随性人员--> | 8 | |
| 8 | <div class="pd10"></div> | 9 | <!-- 随性人员--> |
| 9 | <el-form ref="dialogRef" :model="form" :rules="language==0?rules:rules_cn" label-width="160px" inline> | 10 | <div class="pd10" /> |
| 11 | <el-form ref="dialogRef" :model="form" :rules="language==0?rules:rules_cn" inline label-width="160px"> | ||
| 10 | <el-row :gutter="30"> | 12 | <el-row :gutter="30"> |
| 11 | <el-col :lg="24"> | 13 | <el-col :lg="24"> |
| 12 | 14 | ||
| 13 | <el-form-item :label="language==0?'姓氏':'surname'" prop="xing" required> | 15 | <el-form-item :label="language==0?'姓氏':'surname'" prop="xing" required> |
| 14 | <el-input v-model="form.xing"/> | 16 | <el-input v-model="form.xing" /> |
| 15 | </el-form-item> | 17 | </el-form-item> |
| 16 | <el-form-item :label="language==0?'名':'name'" prop="ming" required> | 18 | <el-form-item :label="language==0?'名':'name'" prop="ming" required> |
| 17 | <el-input v-model="form.ming"/> | 19 | <el-input v-model="form.ming" /> |
| 18 | </el-form-item> | 20 | </el-form-item> |
| 19 | <!-- <el-form-item :label="language==0?'证件类型':'ID type'" prop="idcType" required>--> | 21 | <!-- <el-form-item :label="language==0?'证件类型':'ID type'" prop="idcType" required>--> |
| 20 | <!-- <el-select v-model="form.idcType" style="width: 100%;">--> | 22 | <!-- <el-select v-model="form.idcType" style="width: 100%;">--> |
| ... | @@ -27,16 +29,16 @@ | ... | @@ -27,16 +29,16 @@ |
| 27 | <!-- </el-select>--> | 29 | <!-- </el-select>--> |
| 28 | <!-- </el-form-item>--> | 30 | <!-- </el-form-item>--> |
| 29 | <el-form-item :label="language==0?'护照号':'PassPort Number'" prop="idcCode" required> | 31 | <el-form-item :label="language==0?'护照号':'PassPort Number'" prop="idcCode" required> |
| 30 | <el-input v-model="form.idcCode"/> | 32 | <el-input v-model="form.idcCode" /> |
| 31 | </el-form-item> | 33 | </el-form-item> |
| 32 | <el-form-item :label="language==0?'护照文件':'Passport File'" required> | 34 | <el-form-item :label="language==0?'护照文件':'Passport File'" required> |
| 33 | <file-upload v-model="form.passportUrl" :limit="1" :is-show-tip="false" :button-text="'Upload'"/> | 35 | <file-upload v-model="form.passportUrl" :button-text="'Upload'" :is-show-tip="false" :limit="1" /> |
| 34 | </el-form-item> | 36 | </el-form-item> |
| 35 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" prop="birth" required> | 37 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" prop="birth" required> |
| 36 | <el-date-picker | 38 | <el-date-picker |
| 37 | v-model="form.birth" | 39 | v-model="form.birth" |
| 38 | style="width: 100%;" | 40 | format="YYYY-MM-DD" |
| 39 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | 41 | style="width: 100%;" type="date" value-format="YYYY-MM-DD" |
| 40 | /> | 42 | /> |
| 41 | </el-form-item> | 43 | </el-form-item> |
| 42 | <el-form-item :label="language==0?'性别':'sex'" prop="sex"> | 44 | <el-form-item :label="language==0?'性别':'sex'" prop="sex"> |
| ... | @@ -45,22 +47,22 @@ | ... | @@ -45,22 +47,22 @@ |
| 45 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> | 47 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> |
| 46 | </el-radio-group> | 48 | </el-radio-group> |
| 47 | </el-form-item> | 49 | </el-form-item> |
| 48 | 50 | ||
| 49 | <el-form-item :label="language==0?'主要会员角色':'roles'" prop="labelArr"> | 51 | <el-form-item :label="language==0?'主要会员角色':'roles'" prop="labelArr"> |
| 50 | <el-select v-model="form.labelArr" multiple> | 52 | <el-select v-model="form.labelArr" multiple> |
| 51 | <el-option v-for="l in labels" :key="l.value" :value="l.value" :label="language==0?l.label:l.enlabel"/> | 53 | <el-option v-for="l in labels" :key="l.value" :label="language==0?l.label:l.enlabel" :value="l.value" /> |
| 52 | </el-select> | 54 | </el-select> |
| 53 | </el-form-item> | 55 | </el-form-item> |
| 54 | 56 | ||
| 55 | 57 | ||
| 56 | </el-col> | 58 | </el-col> |
| 57 | </el-row> | 59 | </el-row> |
| 58 | </el-form> | 60 | </el-form> |
| 59 | <template #footer> | 61 | <template #footer> |
| 60 | <div class="dialog-footer text-center"> | 62 | <div class="dialog-footer text-center"> |
| 61 | <el-button type="primary" class="btn-lineG w200px" round @click="submitForm">{{ | 63 | <el-button class="btn-lineG w200px" round type="primary" @click="submitForm">{{ |
| 62 | language == 0 ? '确定' : 'Save' | 64 | language == 0 ? '确定' : 'Save' |
| 63 | }} | 65 | }} |
| 64 | </el-button> | 66 | </el-button> |
| 65 | </div> | 67 | </div> |
| 66 | </template> | 68 | </template> |
| ... | @@ -68,16 +70,16 @@ | ... | @@ -68,16 +70,16 @@ |
| 68 | </template> | 70 | </template> |
| 69 | 71 | ||
| 70 | <script setup> | 72 | <script setup> |
| 71 | import {reactive, ref, toRefs, watch} from 'vue' | 73 | import { reactive, ref, toRefs, watch } from 'vue' |
| 72 | import {getCurrentInstance, nextTick, onMounted} from '@vue/runtime-core' | 74 | import { getCurrentInstance, nextTick, onMounted } from '@vue/runtime-core' |
| 73 | import * as match from '@/apiPc/match' | 75 | import * as match from '@/apiPc/match' |
| 74 | import {ElMessage} from 'element-plus' | 76 | import { ElMessage } from 'element-plus' |
| 75 | import {nationList} from '@/assets/js/data' | 77 | import { nationList } from '@/assets/js/data' |
| 76 | import _ from 'lodash' | 78 | import _ from 'lodash' |
| 77 | import cache from "@/plugins/cache"; | 79 | import cache from '@/plugins/cache' |
| 78 | import {useStorage} from "@vueuse/core/index"; | 80 | import { useStorage } from '@vueuse/core/index' |
| 79 | 81 | ||
| 80 | const language= useStorage('language',0) | 82 | const language = useStorage('language', 0) |
| 81 | const certificates = ref([ | 83 | const certificates = ref([ |
| 82 | { | 84 | { |
| 83 | value: '0', | 85 | value: '0', |
| ... | @@ -92,42 +94,42 @@ const certificates = ref([ | ... | @@ -92,42 +94,42 @@ const certificates = ref([ |
| 92 | label: language.value == 0 ? '其他' : 'Other' | 94 | label: language.value == 0 ? '其他' : 'Other' |
| 93 | } | 95 | } |
| 94 | ]) | 96 | ]) |
| 95 | const {proxy} = getCurrentInstance() | 97 | const { proxy } = getCurrentInstance() |
| 96 | const emit = defineEmits(['submitForm']) | 98 | const emit = defineEmits(['submitForm']) |
| 97 | const data = reactive({ | 99 | const data = reactive({ |
| 98 | form: { | 100 | form: { |
| 99 | idcType: '1', | 101 | idcType: '1', |
| 100 | sex:'0' | 102 | sex: '0' |
| 101 | }, | 103 | }, |
| 102 | rules: { | 104 | rules: { |
| 103 | xing: [{required: true, message: '必填', trigger: 'blur'}], | 105 | xing: [{ required: true, message: '必填', trigger: 'blur' }], |
| 104 | ming: [{required: true, message: '必填', trigger: 'blur'}], | 106 | ming: [{ required: true, message: '必填', trigger: 'blur' }], |
| 105 | idcCode: [{required: true, message: '必填', trigger: 'blur'}], | 107 | idcCode: [{ required: true, message: '必填', trigger: 'blur' }], |
| 106 | birth: [{required: true, message: '必填', trigger: 'change'}], | 108 | birth: [{ required: true, message: '必填', trigger: 'change' }], |
| 107 | sex: [{required: true, message: '必填', trigger: 'change'}], | 109 | sex: [{ required: true, message: '必填', trigger: 'change' }], |
| 108 | labelArr: [{required: true, message: '必填', trigger: 'blur'}] | 110 | labelArr: [{ required: true, message: '必填', trigger: 'blur' }] |
| 109 | }, | 111 | }, |
| 110 | rules_cn: { | 112 | rules_cn: { |
| 111 | xing: [{required: true, message: 'required', trigger: 'blur'}], | 113 | xing: [{ required: true, message: 'required', trigger: 'blur' }], |
| 112 | ming: [{required: true, message: 'required', trigger: 'blur'}], | 114 | ming: [{ required: true, message: 'required', trigger: 'blur' }], |
| 113 | idcCode: [{required: true, message: 'required', trigger: 'blur'}], | 115 | idcCode: [{ required: true, message: 'required', trigger: 'blur' }], |
| 114 | birth: [{required: true, message: 'required', trigger: 'change'}], | 116 | birth: [{ required: true, message: 'required', trigger: 'change' }], |
| 115 | address: [{required: true, message: 'required', trigger: 'blur'}], | 117 | address: [{ required: true, message: 'required', trigger: 'blur' }], |
| 116 | sex: [{required: true, message: 'required', trigger: 'change'}], | 118 | sex: [{ required: true, message: 'required', trigger: 'change' }], |
| 117 | labelArr: [{required: true, message: 'required', trigger: 'blur'}] | 119 | labelArr: [{ required: true, message: 'required', trigger: 'blur' }] |
| 118 | }, | 120 | }, |
| 119 | show: false, | 121 | show: false, |
| 120 | labels: [ | 122 | labels: [ |
| 121 | // {value: '0', label: '运动员', enlabel: 'Athletes'}, | 123 | // {value: '0', label: '运动员', enlabel: 'Athletes'}, |
| 122 | {value: '1', label: '教练', enlabel: 'Coach'}, | 124 | { value: '1', label: '教练', enlabel: 'Coach' }, |
| 123 | {value: '2', label: '领队', enlabel: 'Head of team'}, | 125 | { value: '2', label: '领队', enlabel: 'Head of team' }, |
| 124 | {value: '4', label: '队医', enlabel: 'Team doctor'}, | 126 | { value: '4', label: '队医', enlabel: 'Team doctor' }, |
| 125 | {value: '5', label: '翻译', enlabel: 'Interpreter'}, | 127 | { value: '5', label: '翻译', enlabel: 'Interpreter' }, |
| 126 | {value: '6', label: '官员', enlabel: 'Official'}, | 128 | { value: '6', label: '官员', enlabel: 'Official' }, |
| 127 | {value: '3', label: '其他', enlabel: 'Other'} | 129 | { value: '3', label: '其他', enlabel: 'Other' } |
| 128 | ], | 130 | ], |
| 129 | title: 'Add accompanying personnel', | 131 | title: 'Add accompanying personnel', |
| 130 | cptId:'' | 132 | cptId: '' |
| 131 | }) | 133 | }) |
| 132 | const { | 134 | const { |
| 133 | form, | 135 | form, |
| ... | @@ -157,7 +159,7 @@ const open = (params) => { | ... | @@ -157,7 +159,7 @@ const open = (params) => { |
| 157 | }) | 159 | }) |
| 158 | } | 160 | } |
| 159 | } | 161 | } |
| 160 | defineExpose({open}) | 162 | defineExpose({ open }) |
| 161 | watch(show, (value) => { | 163 | watch(show, (value) => { |
| 162 | if (!value) { | 164 | if (!value) { |
| 163 | form.value = {} | 165 | form.value = {} |
| ... | @@ -172,7 +174,7 @@ function submitForm() { | ... | @@ -172,7 +174,7 @@ function submitForm() { |
| 172 | ElMessage.warning('Please upload your passport file') | 174 | ElMessage.warning('Please upload your passport file') |
| 173 | return | 175 | return |
| 174 | } | 176 | } |
| 175 | if(Array.isArray(form.value.passportUrl)){ | 177 | if (Array.isArray(form.value.passportUrl)) { |
| 176 | form.value.passportUrl = form.value.passportUrl[0].url | 178 | form.value.passportUrl = form.value.passportUrl[0].url |
| 177 | } | 179 | } |
| 178 | proxy.$refs['dialogRef'].validate((valid) => { | 180 | proxy.$refs['dialogRef'].validate((valid) => { |
| ... | @@ -205,12 +207,12 @@ function cancel() { | ... | @@ -205,12 +207,12 @@ function cancel() { |
| 205 | <style lang="scss"> | 207 | <style lang="scss"> |
| 206 | .threeFour { | 208 | .threeFour { |
| 207 | width: 100%; | 209 | width: 100%; |
| 208 | 210 | ||
| 209 | .el-upload--picture-card { | 211 | .el-upload--picture-card { |
| 210 | width: 120px; | 212 | width: 120px; |
| 211 | height: 160px; | 213 | height: 160px; |
| 212 | } | 214 | } |
| 213 | 215 | ||
| 214 | .el-upload-list--picture-card .el-upload-list__item { | 216 | .el-upload-list--picture-card .el-upload-list__item { |
| 215 | width: 120px; | 217 | width: 120px; |
| 216 | height: 160px; | 218 | height: 160px; |
| ... | @@ -221,7 +223,7 @@ function cancel() { | ... | @@ -221,7 +223,7 @@ function cancel() { |
| 221 | font-size: 13px; | 223 | font-size: 13px; |
| 222 | color: #999; | 224 | color: #999; |
| 223 | margin: 10px 0; | 225 | margin: 10px 0; |
| 224 | 226 | ||
| 225 | i { | 227 | i { |
| 226 | color: red; | 228 | color: red; |
| 227 | margin: 0 4px 0 0; | 229 | margin: 0 4px 0 0; |
| ... | @@ -233,7 +235,7 @@ function cancel() { | ... | @@ -233,7 +235,7 @@ function cancel() { |
| 233 | width: 320px; | 235 | width: 320px; |
| 234 | height: 200px; | 236 | height: 200px; |
| 235 | } | 237 | } |
| 236 | 238 | ||
| 237 | .el-upload-list--picture-card .el-upload-list__item { | 239 | .el-upload-list--picture-card .el-upload-list__item { |
| 238 | width: 320px; | 240 | width: 320px; |
| 239 | height: 200px; | 241 | height: 200px; |
| ... | @@ -252,7 +254,7 @@ function cancel() { | ... | @@ -252,7 +254,7 @@ function cancel() { |
| 252 | width: 140px; | 254 | width: 140px; |
| 253 | height: 200px; | 255 | height: 200px; |
| 254 | } | 256 | } |
| 255 | 257 | ||
| 256 | } | 258 | } |
| 257 | 259 | ||
| 258 | .el-form--inline .el-form-item { | 260 | .el-form--inline .el-form-item { |
| ... | @@ -265,7 +267,7 @@ function cancel() { | ... | @@ -265,7 +267,7 @@ function cancel() { |
| 265 | background: linear-gradient(#ed2c22, #fe6d45); | 267 | background: linear-gradient(#ed2c22, #fe6d45); |
| 266 | margin-right: 0; | 268 | margin-right: 0; |
| 267 | height: 52px; | 269 | height: 52px; |
| 268 | 270 | ||
| 269 | span { | 271 | span { |
| 270 | color: #fff; | 272 | color: #fff; |
| 271 | } | 273 | } | ... | ... |
| ... | @@ -420,6 +420,7 @@ function submitForm() { | ... | @@ -420,6 +420,7 @@ function submitForm() { |
| 420 | } | 420 | } |
| 421 | 421 | ||
| 422 | function saveGroupMember() { | 422 | function saveGroupMember() { |
| 423 | form.value.personId = null | ||
| 423 | match.savePersonForMyGroup(form.value).then(res => { | 424 | match.savePersonForMyGroup(form.value).then(res => { |
| 424 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful') | 425 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful') |
| 425 | show.value = false | 426 | show.value = false | ... | ... |
| ... | @@ -493,6 +493,7 @@ function submitForm() { | ... | @@ -493,6 +493,7 @@ function submitForm() { |
| 493 | // 团队 | 493 | // 团队 |
| 494 | form.value.groupId = groupId.value | 494 | form.value.groupId = groupId.value |
| 495 | form.value.ocrFlag = '1' | 495 | form.value.ocrFlag = '1' |
| 496 | form.value.personId = null | ||
| 496 | match.savePersonForMyGroup(form.value).then(res => { | 497 | match.savePersonForMyGroup(form.value).then(res => { |
| 497 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful') | 498 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful') |
| 498 | show.value = false | 499 | show.value = false | ... | ... |
| ... | @@ -375,6 +375,7 @@ function submitForm() { | ... | @@ -375,6 +375,7 @@ function submitForm() { |
| 375 | if (groupId.value != 0) { | 375 | if (groupId.value != 0) { |
| 376 | // 团队 | 376 | // 团队 |
| 377 | form.value.groupId = groupId.value | 377 | form.value.groupId = groupId.value |
| 378 | form.value.personId = null | ||
| 378 | match.savePersonForMyGroup(form.value).then(res => { | 379 | match.savePersonForMyGroup(form.value).then(res => { |
| 379 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful') | 380 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful') |
| 380 | show.value = false | 381 | show.value = false | ... | ... |
| ... | @@ -346,6 +346,7 @@ function addPersonal() { | ... | @@ -346,6 +346,7 @@ function addPersonal() { |
| 346 | 346 | ||
| 347 | function addGroupMember() { | 347 | function addGroupMember() { |
| 348 | form.value.groupId = groupId | 348 | form.value.groupId = groupId |
| 349 | form.value.personId = null | ||
| 349 | match.savePersonForMyGroup(form.value).then(res => { | 350 | match.savePersonForMyGroup(form.value).then(res => { |
| 350 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful') | 351 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful') |
| 351 | show.value = false | 352 | show.value = false | ... | ... |
| ... | @@ -97,7 +97,7 @@ | ... | @@ -97,7 +97,7 @@ |
| 97 | <el-table-column :label="language==0?'操作':'Actions'" align="center" fixed="right" width="180"> | 97 | <el-table-column :label="language==0?'操作':'Actions'" align="center" fixed="right" width="180"> |
| 98 | <template #default="scope"> | 98 | <template #default="scope"> |
| 99 | <el-button | 99 | <el-button |
| 100 | v-if="(!isNational&&(!scope.row.phone))||scope.row.ocrFlag=='0'" link type="danger" | 100 | v-if="isNational&&scope.row.ocrFlag=='0'" link type="danger" |
| 101 | @click="editPerson(scope.row)" | 101 | @click="editPerson(scope.row)" |
| 102 | > | 102 | > |
| 103 | {{ language == 0 ? '完善信息' : 'Complete' }} | 103 | {{ language == 0 ? '完善信息' : 'Complete' }} |
| ... | @@ -159,7 +159,7 @@ const data = reactive({ | ... | @@ -159,7 +159,7 @@ const data = reactive({ |
| 159 | title: '选择运动员', | 159 | title: '选择运动员', |
| 160 | noPhotoCanSign: 0, | 160 | noPhotoCanSign: 0, |
| 161 | total: 0, | 161 | total: 0, |
| 162 | isNational: false | 162 | isNational: false// 是否国际赛 |
| 163 | }) | 163 | }) |
| 164 | const { query, tableData, show, title, loading, noPhotoCanSign, total, isNational } = toRefs(data) | 164 | const { query, tableData, show, title, loading, noPhotoCanSign, total, isNational } = toRefs(data) |
| 165 | const certificates = ref([ | 165 | const certificates = ref([ | ... | ... |
| ... | @@ -162,7 +162,7 @@ const ocrSuccess = (res) => { | ... | @@ -162,7 +162,7 @@ const ocrSuccess = (res) => { |
| 162 | 162 | ||
| 163 | if (res.data.msg) { | 163 | if (res.data.msg) { |
| 164 | return proxy.$modal.msgWarning(res.data.msg | 164 | return proxy.$modal.msgWarning(res.data.msg |
| 165 | ) | 165 | ) |
| 166 | } | 166 | } |
| 167 | } | 167 | } |
| 168 | 168 | ... | ... |
| ... | @@ -889,8 +889,8 @@ async function handelGeRenNext() { | ... | @@ -889,8 +889,8 @@ async function handelGeRenNext() { |
| 889 | if (res.data == 2) { | 889 | if (res.data == 2) { |
| 890 | await proxy.$modal.confirm( | 890 | await proxy.$modal.confirm( |
| 891 | language.value == 0 | 891 | language.value == 0 |
| 892 | ? '运动员的WDSF会员号已变更,是否更新?' | 892 | ? '动员的wdsf信息已发生变更,是否更新?' |
| 893 | : 'The athlete`s WDSF membership number has been changed. Should it be updated?' | 893 | : 'The athlete`s WDSF details have changed. Update now?' |
| 894 | ) | 894 | ) |
| 895 | // 删除 | 895 | // 删除 |
| 896 | await match.preCheckForPerson({ type: '2' }) | 896 | await match.preCheckForPerson({ type: '2' }) |
| ... | @@ -933,8 +933,8 @@ async function handelPreCheckForGroup(fn) { | ... | @@ -933,8 +933,8 @@ async function handelPreCheckForGroup(fn) { |
| 933 | if (res.data == 2) { | 933 | if (res.data == 2) { |
| 934 | await proxy.$modal.confirm( | 934 | await proxy.$modal.confirm( |
| 935 | language.value == 0 | 935 | language.value == 0 |
| 936 | ? '运动员的WDSF会员号已变更,是否更新?' | 936 | ? '动员的wdsf信息已发生变更,是否更新?' |
| 937 | : 'The athlete`s WDSF membership number has been changed. Should it be updated?') | 937 | : 'The athlete`s WDSF details have changed. Update now?') |
| 938 | await match.preCheckForGroup(groupId.value, '2') | 938 | await match.preCheckForGroup(groupId.value, '2') |
| 939 | // const flag = await getCheckOcr({ type: '2', groupId: groupId.value }) | 939 | // const flag = await getCheckOcr({ type: '2', groupId: groupId.value }) |
| 940 | // if (flag) await fn() | 940 | // if (flag) await fn() | ... | ... |
| ... | @@ -79,7 +79,9 @@ | ... | @@ -79,7 +79,9 @@ |
| 79 | @response="ocrSuccess" | 79 | @response="ocrSuccess" |
| 80 | /> | 80 | /> |
| 81 | <div class="tip"> | 81 | <div class="tip"> |
| 82 | <span v-if="language==0">请上传有效身份证件扫描件,用于核实身份信息、申请签证邀请函及购买保险等</span> | 82 | <span |
| 83 | v-if="language==0" | ||
| 84 | >请上传有效身份证件扫描件,用于核实身份信息、申请签证邀请函及购买保险等</span> | ||
| 83 | <span v-else>Please upload a scanned copy of your valid passport for verification of identity information, | 85 | <span v-else>Please upload a scanned copy of your valid passport for verification of identity information, |
| 84 | application of visa invitation letter and purchasing insurance etc.</span> | 86 | application of visa invitation letter and purchasing insurance etc.</span> |
| 85 | </div> | 87 | </div> | ... | ... |
| ... | @@ -64,23 +64,26 @@ export default defineConfig(({ mode, command }) => { | ... | @@ -64,23 +64,26 @@ export default defineConfig(({ mode, command }) => { |
| 64 | proxy: { | 64 | proxy: { |
| 65 | // https://cn.vitejs.dev/config/#server-proxy | 65 | // https://cn.vitejs.dev/config/#server-proxy |
| 66 | '/dev-api/ztx-train': { | 66 | '/dev-api/ztx-train': { |
| 67 | target: 'http://192.168.1.118:1896/stage-api', | 67 | // target: 'http://192.168.1.118:1896/stage-api', |
| 68 | // target: 'https://jijin.wtwuxicenter.com/stage-api', | 68 | target: 'https://jijin.wtwuxicenter.com/stage-api', |
| 69 | changeOrigin: true, | 69 | changeOrigin: true, |
| 70 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '') | 70 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-train/, '') |
| 71 | }, | 71 | }, |
| 72 | '/dev-api/ztx-match': { | 72 | '/dev-api/ztx-match': { |
| 73 | target: 'http://192.168.1.118:8081', | 73 | // target: 'http://192.168.1.118:8081', |
| 74 | target: 'https://jijin.wtwuxicenter.com/stage-api', | ||
| 74 | // target: 'https://wdsfwuxicenter.com/stage-api/', | 75 | // target: 'https://wdsfwuxicenter.com/stage-api/', |
| 75 | changeOrigin: true, | 76 | changeOrigin: true, |
| 76 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '') | 77 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-match/, '') |
| 77 | }, | 78 | }, |
| 78 | '/dev-api/ztx-webSite': { | 79 | '/dev-api/ztx-webSite': { |
| 79 | target: 'http://192.168.1.118:8081', | 80 | // target: 'http://192.168.1.118:8081', |
| 81 | target: 'https://jijin.wtwuxicenter.com/stage-api', | ||
| 80 | changeOrigin: true, | 82 | changeOrigin: true, |
| 81 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') | 83 | rewrite: (p) => p.replace(/^\/dev-api\/ztx-webSite/, '') |
| 82 | }, | 84 | }, |
| 83 | '/dev-api': { | 85 | '/dev-api': { |
| 86 | // target: 'http://192.168.1.118:8081/', | ||
| 84 | // target: 'http://192.168.1.118:8081', | 87 | // target: 'http://192.168.1.118:8081', |
| 85 | target: 'https://jijin.wtwuxicenter.com/stage-api', | 88 | target: 'https://jijin.wtwuxicenter.com/stage-api', |
| 86 | // target: 'https://wdsfwuxicenter.com/stage-api/', | 89 | // target: 'https://wdsfwuxicenter.com/stage-api/', | ... | ... |
-
Please register or sign in to post a comment