Merge branch 'dev' of https://code.itechtop.cn/yangyang/dance-pc into dev
Showing
4 changed files
with
298 additions
and
193 deletions
| ... | @@ -2,11 +2,12 @@ | ... | @@ -2,11 +2,12 @@ |
| 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 :lg="5" :md="5" :xl="6" :sm="8" :xs="8"> | 5 | <el-col :lg="5" :md="5" :sm="8" :xl="6" :xs="8"> |
| 6 | <el-card class="mb20"> | 6 | <el-card class="mb20"> |
| 7 | <div :class="language==0?'center-menu':'center-menu en-menu'"> | 7 | <div :class="language==0?'center-menu':'center-menu en-menu'"> |
| 8 | <ul v-if="user.utype=='2'&&language==0"> | 8 | <ul v-if="user.utype=='2'&&language==0"> |
| 9 | <li v-for="(m, i) in menus" | 9 | <li |
| 10 | v-for="(m, i) in menus" | ||
| 10 | :key="i" | 11 | :key="i" |
| 11 | :class="{ active: m.isActive }" | 12 | :class="{ active: m.isActive }" |
| 12 | > | 13 | > |
| ... | @@ -17,7 +18,8 @@ | ... | @@ -17,7 +18,8 @@ |
| 17 | </li> | 18 | </li> |
| 18 | </ul> | 19 | </ul> |
| 19 | <ul v-if="user.utype=='2'&&language==1"> | 20 | <ul v-if="user.utype=='2'&&language==1"> |
| 20 | <li v-for="(m, i) in menusEn" | 21 | <li |
| 22 | v-for="(m, i) in menusEn" | ||
| 21 | :key="i" | 23 | :key="i" |
| 22 | :class="{ active: m.isActive }" | 24 | :class="{ active: m.isActive }" |
| 23 | > | 25 | > |
| ... | @@ -78,8 +80,8 @@ | ... | @@ -78,8 +80,8 @@ |
| 78 | </div> | 80 | </div> |
| 79 | </el-card> | 81 | </el-card> |
| 80 | </el-col> | 82 | </el-col> |
| 81 | <el-col :lg="19" :md="19" :xl="18" :sm="16" :xs="16"> | 83 | <el-col :lg="19" :md="19" :sm="16" :xl="18" :xs="16"> |
| 82 | <router-view :user="user" class="rightPart"/> | 84 | <router-view :user="user" class="rightPart" /> |
| 83 | </el-col> | 85 | </el-col> |
| 84 | </el-row> | 86 | </el-row> |
| 85 | </div> | 87 | </div> |
| ... | @@ -87,12 +89,12 @@ | ... | @@ -87,12 +89,12 @@ |
| 87 | </template> | 89 | </template> |
| 88 | 90 | ||
| 89 | <script setup> | 91 | <script setup> |
| 90 | import {ref} from 'vue' | 92 | import { ref } from 'vue' |
| 91 | import {useRoute, useRouter} from 'vue-router' | 93 | import { useRoute, useRouter } from 'vue-router' |
| 92 | import {onMounted} from '@vue/runtime-core' | 94 | import { onMounted } from '@vue/runtime-core' |
| 93 | import useUserStore from '@/store/modules/user' | 95 | import useUserStore from '@/store/modules/user' |
| 94 | import _ from 'lodash' | 96 | import _ from 'lodash' |
| 95 | import {useStorage} from "@vueuse/core/index"; | 97 | import { useStorage } from '@vueuse/core/index' |
| 96 | 98 | ||
| 97 | const language = useStorage('language', 0) | 99 | const language = useStorage('language', 0) |
| 98 | 100 | ||
| ... | @@ -245,13 +247,13 @@ const menus3 = ref([ | ... | @@ -245,13 +247,13 @@ const menus3 = ref([ |
| 245 | picUrl2: '/img/nav_29_dwn.png', | 247 | picUrl2: '/img/nav_29_dwn.png', |
| 246 | isActive: false | 248 | isActive: false |
| 247 | }, | 249 | }, |
| 248 | { | 250 | // { |
| 249 | name: language.value == 0 ? '票务预订' : 'Ticket Reservation', | 251 | // name: language.value == 0 ? '票务预订' : 'Ticket Reservation', |
| 250 | routeName: 'seat_order', | 252 | // routeName: 'seat_order', |
| 251 | picUrl1: '/img/c7.png', | 253 | // picUrl1: '/img/c7.png', |
| 252 | picUrl2: '/img/c7.png', | 254 | // picUrl2: '/img/c7.png', |
| 253 | isActive: false | 255 | // isActive: false |
| 254 | }, | 256 | // }, |
| 255 | { | 257 | { |
| 256 | name: language.value == 0 ? '发票申请' : 'Electronic invoice', | 258 | name: language.value == 0 ? '发票申请' : 'Electronic invoice', |
| 257 | routeName: 'myKP', | 259 | routeName: 'myKP', |
| ... | @@ -281,14 +283,14 @@ const menus3En = ref([ | ... | @@ -281,14 +283,14 @@ const menus3En = ref([ |
| 281 | picUrl1: '/img/nav_29.png', | 283 | picUrl1: '/img/nav_29.png', |
| 282 | picUrl2: '/img/nav_29_dwn.png', | 284 | picUrl2: '/img/nav_29_dwn.png', |
| 283 | isActive: false | 285 | isActive: false |
| 284 | }, | ||
| 285 | { | ||
| 286 | name: language.value == 0 ? '票务预订' : 'Ticket Reservation', | ||
| 287 | routeName: 'seat_order', | ||
| 288 | picUrl1: '/img/c7.png', | ||
| 289 | picUrl2: '/img/c7.png', | ||
| 290 | isActive: false | ||
| 291 | } | 286 | } |
| 287 | // { | ||
| 288 | // name: language.value == 0 ? '票务预订' : 'Ticket Reservation', | ||
| 289 | // routeName: 'seat_order', | ||
| 290 | // picUrl1: '/img/c7.png', | ||
| 291 | // picUrl2: '/img/c7.png', | ||
| 292 | // isActive: false | ||
| 293 | // } | ||
| 292 | ]) | 294 | ]) |
| 293 | const menusPersonal = ref([ | 295 | const menusPersonal = ref([ |
| 294 | { | 296 | { |
| ... | @@ -319,13 +321,13 @@ const menusPersonal = ref([ | ... | @@ -319,13 +321,13 @@ const menusPersonal = ref([ |
| 319 | picUrl2: '/img/nav_29_dwn.png', | 321 | picUrl2: '/img/nav_29_dwn.png', |
| 320 | isActive: false | 322 | isActive: false |
| 321 | }, | 323 | }, |
| 322 | { | 324 | // { |
| 323 | name: language.value == 0 ? '票务预订' : 'Ticket Reservation', | 325 | // name: language.value == 0 ? '票务预订' : 'Ticket Reservation', |
| 324 | routeName: 'seat_order', | 326 | // routeName: 'seat_order', |
| 325 | picUrl1: '/img/c7.png', | 327 | // picUrl1: '/img/c7.png', |
| 326 | picUrl2: '/img/c7.png', | 328 | // picUrl2: '/img/c7.png', |
| 327 | isActive: false | 329 | // isActive: false |
| 328 | }, | 330 | // }, |
| 329 | { | 331 | { |
| 330 | name: language.value == 0 ? '系统消息' : 'System messages', | 332 | name: language.value == 0 ? '系统消息' : 'System messages', |
| 331 | routeName: 'mySms', | 333 | routeName: 'mySms', |
| ... | @@ -370,13 +372,13 @@ const menusPersonalEn = ref([ | ... | @@ -370,13 +372,13 @@ const menusPersonalEn = ref([ |
| 370 | picUrl2: '/img/nav_29_dwn.png', | 372 | picUrl2: '/img/nav_29_dwn.png', |
| 371 | isActive: false | 373 | isActive: false |
| 372 | }, | 374 | }, |
| 373 | { | 375 | // { |
| 374 | name: language.value == 0 ? '票务预订' : 'Ticket Reservation', | 376 | // name: language.value == 0 ? '票务预订' : 'Ticket Reservation', |
| 375 | routeName: 'seat_order', | 377 | // routeName: 'seat_order', |
| 376 | picUrl1: '/img/c7.png', | 378 | // picUrl1: '/img/c7.png', |
| 377 | picUrl2: '/img/c7.png', | 379 | // picUrl2: '/img/c7.png', |
| 378 | isActive: false | 380 | // isActive: false |
| 379 | }, | 381 | // }, |
| 380 | { | 382 | { |
| 381 | name: language.value == 0 ? '系统消息' : 'System messages', | 383 | name: language.value == 0 ? '系统消息' : 'System messages', |
| 382 | routeName: 'mySms', | 384 | routeName: 'mySms', |
| ... | @@ -389,7 +391,7 @@ let currMenu | ... | @@ -389,7 +391,7 @@ let currMenu |
| 389 | onMounted(() => { | 391 | onMounted(() => { |
| 390 | console.log(route.query) | 392 | console.log(route.query) |
| 391 | if (!user.utype) { | 393 | if (!user.utype) { |
| 392 | router.push({name: 'home'}) | 394 | router.push({ name: 'home' }) |
| 393 | return | 395 | return |
| 394 | } | 396 | } |
| 395 | if (user.utype == '1') { | 397 | if (user.utype == '1') { |
| ... | @@ -412,7 +414,6 @@ onMounted(() => { | ... | @@ -412,7 +414,6 @@ onMounted(() => { |
| 412 | }) | 414 | }) |
| 413 | currMenu.isActive = true | 415 | currMenu.isActive = true |
| 414 | } | 416 | } |
| 415 | |||
| 416 | }) | 417 | }) |
| 417 | 418 | ||
| 418 | const toInfo = (item, list) => { | 419 | const toInfo = (item, list) => { |
| ... | @@ -427,7 +428,7 @@ const toInfo = (item, list) => { | ... | @@ -427,7 +428,7 @@ const toInfo = (item, list) => { |
| 427 | } | 428 | } |
| 428 | </script> | 429 | </script> |
| 429 | 430 | ||
| 430 | <style scoped lang="scss"> | 431 | <style lang="scss" scoped> |
| 431 | :deep(.el-tabs__nav-wrap) { | 432 | :deep(.el-tabs__nav-wrap) { |
| 432 | padding: 0 15px; | 433 | padding: 0 15px; |
| 433 | } | 434 | } | ... | ... |
| ... | @@ -2,26 +2,29 @@ | ... | @@ -2,26 +2,29 @@ |
| 2 | <div class="mb20"> | 2 | <div class="mb20"> |
| 3 | <el-card :body-style="{'padding':'0'}"> | 3 | <el-card :body-style="{'padding':'0'}"> |
| 4 | <div class="indexTitle"> | 4 | <div class="indexTitle"> |
| 5 | <h3 class="leftboderTT" v-if="user.utype=='2'"> | 5 | <h3 v-if="user.utype=='2'" class="leftboderTT"> |
| 6 | {{ language == 0 ? '机构基础信息' : 'ORGANIZATION BASIC INFORMATION' }}</h3> | 6 | {{ language == 0 ? '机构基础信息' : 'ORGANIZATION BASIC INFORMATION' }} |
| 7 | <h3 class="leftboderTT" v-if="user.utype=='1'">{{ | 7 | </h3> |
| 8 | language == 0 ? '个人基础信息' : 'Personal Basic Information' | 8 | <h3 v-if="user.utype=='1'" class="leftboderTT"> |
| 9 | }}</h3> | 9 | {{ language == 0 ? '个人基础信息' : 'Personal Basic Information' }} |
| 10 | </h3> | ||
| 10 | </div> | 11 | </div> |
| 11 | <!-- uType字段 1 是个人 2是团体--> | 12 | <!-- uType字段 1 是个人 2是团体--> |
| 12 | <!-- {{user}}--> | 13 | <!-- {{user}}--> |
| 13 | <team-info :form="myform" v-if="user.utype=='2'"/> | 14 | <team-info v-if="user.utype=='2'" :form="myform" /> |
| 14 | <div class="pd20" v-else> | 15 | <div v-else class="pd20"> |
| 15 | <div class="d-form-border" style="margin-top: 0"> | 16 | <div class="d-form-border" style="margin-top: 0"> |
| 16 | <el-form class="d-form" label-width="120" :rules="rules" ref="formref" | 17 | <el-form |
| 17 | :label-position="language==0?'left':'top'" style="max-width: 500px;margin: auto"> | 18 | ref="formref" :label-position="language==0?'left':'top'" :rules="rules" class="d-form" |
| 19 | label-width="120" style="max-width: 500px;margin: auto" | ||
| 20 | > | ||
| 18 | <el-form-item :label="language==0?'用户名':'Account'"> | 21 | <el-form-item :label="language==0?'用户名':'Account'"> |
| 19 | {{ user.userName }} | 22 | {{ user.userName }} |
| 20 | </el-form-item> | 23 | </el-form-item> |
| 21 | <el-form-item :label="language==0?'姓名':'Real Name'" required prop="realName" v-if="user.utype=='1'"> | 24 | <el-form-item v-if="user.utype=='1'" :label="language==0?'姓名':'Real Name'" prop="realName" required> |
| 22 | <el-input v-model="myform.realName" disabled/> | 25 | <el-input v-model="myform.realName" disabled /> |
| 23 | </el-form-item> | 26 | </el-form-item> |
| 24 | <el-form-item :label="language==0?'性别':'Gender'" required > | 27 | <el-form-item :label="language==0?'性别':'Gender'" required> |
| 25 | <el-radio-group v-model="myform.sex"> | 28 | <el-radio-group v-model="myform.sex"> |
| 26 | <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> | 29 | <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> |
| 27 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> | 30 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> |
| ... | @@ -30,60 +33,65 @@ | ... | @@ -30,60 +33,65 @@ |
| 30 | <el-form-item :label="language==0?'出生日期':'Date of Birth'"> | 33 | <el-form-item :label="language==0?'出生日期':'Date of Birth'"> |
| 31 | <el-date-picker | 34 | <el-date-picker |
| 32 | v-model="myform.birth" | 35 | v-model="myform.birth" |
| 33 | style="width: 100%;" | 36 | format="YYYY-MM-DD" |
| 34 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | 37 | style="width: 100%;" type="date" value-format="YYYY-MM-DD" |
| 35 | /> | 38 | /> |
| 36 | </el-form-item> | 39 | </el-form-item> |
| 37 | <el-form-item :label="language==0?'代表':'Representing'" required v-if="user.utype=='1'"> | 40 | <el-form-item v-if="user.utype=='1'" :label="language==0?'代表':'Representing'" required> |
| 38 | <el-input v-model="myform.representing" disabled/> | 41 | <el-input v-model="myform.representing" disabled /> |
| 39 | </el-form-item> | 42 | </el-form-item> |
| 40 | <el-form-item :label="language==1?'Age group':'年龄组'" required v-if="user.utype=='1'"> | 43 | <el-form-item v-if="user.utype=='1'" :label="language==1?'Age group':'年龄组'" required> |
| 41 | <el-input v-model="myform.ageGroup" disabled/> | 44 | <el-input v-model="myform.ageGroup" disabled /> |
| 42 | </el-form-item> | 45 | </el-form-item> |
| 43 | <el-form-item :label="language==0?'舞种':'Division'" required v-if="user.utype=='1'"> | 46 | <el-form-item v-if="user.utype=='1'" :label="language==0?'舞种':'Division'" required> |
| 44 | <el-input v-model="myform.division" disabled/> | 47 | <el-input v-model="myform.division" disabled /> |
| 45 | </el-form-item> | 48 | </el-form-item> |
| 46 | <el-form-item :label="language==0?'状态':'Status'" required v-if="user.utype=='1'"> | 49 | <el-form-item v-if="user.utype=='1'" :label="language==0?'状态':'Status'" required> |
| 47 | <el-input v-model="myform.wdsfStatus" disabled/> | 50 | <el-input v-model="myform.wdsfStatus" disabled /> |
| 48 | </el-form-item> | 51 | </el-form-item> |
| 49 | <el-form-item :label="language==0?'证件号':'Passport number'" required v-if="user.utype=='1'"> | 52 | <el-form-item v-if="user.utype=='1'" :label="language==0?'证件号':'Passport number'" required> |
| 50 | <el-input v-model="myform.passportNumber" disabled/> | 53 | <el-input v-model="myform.passportNumber" disabled /> |
| 51 | </el-form-item> | 54 | </el-form-item> |
| 52 | <el-form-item :label="language==0?'有效证件':'Valid Passport'" required v-if="user.utype=='1'"> | 55 | <el-form-item v-if="user.utype=='1'" :label="language==0?'证件姓名':'Name on Document'" required> |
| 53 | <image-upload v-model="myform.passportUrl" :limit="1" :is-show-tip="false" | 56 | <el-input v-model="myform.certName" disabled /> |
| 54 | :button-text="language==0?'上传':'Upload'"/> | ||
| 55 | </el-form-item> | 57 | </el-form-item> |
| 56 | <el-form-item :label="language==0?'WDSF会员号':'WDSF MIN'" prop="wdsfMin" v-if="user.utype=='1'"> | 58 | <el-form-item v-if="user.utype=='1'" :label="language==0?'有效证件':'Valid Passport'" required> |
| 57 | {{myform.wdsfMin}} | 59 | <image-upload |
| 60 | v-model="myform.passportUrl" :button-text="language==0?'上传':'Upload'" :is-show-tip="false" | ||
| 61 | :limit="1" | ||
| 62 | /> | ||
| 63 | </el-form-item> | ||
| 64 | <el-form-item v-if="user.utype=='1'" :label="language==0?'WDSF会员号':'WDSF MIN'" prop="wdsfMin"> | ||
| 65 | {{ myform.wdsfMin }} | ||
| 58 | </el-form-item> | 66 | </el-form-item> |
| 59 | <!-- <el-form-item :label="language==0?'证件类型':'ID type'" required prop="idcType">--> | 67 | <!-- <el-form-item :label="language==0?'证件类型':'ID type'" required prop="idcType">--> |
| 60 | <!-- <el-select v-model="myform.idcType" style="width: 100%">--> | 68 | <!-- <el-select v-model="myform.idcType" style="width: 100%">--> |
| 61 | <!-- <el-option--> | 69 | <!-- <el-option--> |
| 62 | <!-- v-for="item in certificates"--> | 70 | <!-- v-for="item in certificates"--> |
| 63 | <!-- :key="item.value"--> | 71 | <!-- :key="item.value"--> |
| 64 | <!-- :label="item.label"--> | 72 | <!-- :label="item.label"--> |
| 65 | <!-- :value="item.value"--> | 73 | <!-- :value="item.value"--> |
| 66 | <!-- />--> | 74 | <!-- />--> |
| 67 | <!-- </el-select>--> | 75 | <!-- </el-select>--> |
| 68 | <!-- </el-form-item>--> | 76 | <!-- </el-form-item>--> |
| 69 | <!-- <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode">--> | 77 | <!-- <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode">--> |
| 70 | <!-- <el-input v-model="myform.idcCode" @blur="checkCode"/>--> | 78 | <!-- <el-input v-model="myform.idcCode" @blur="checkCode"/>--> |
| 71 | <!-- </el-form-item>--> | 79 | <!-- </el-form-item>--> |
| 72 | <!-- <el-form-item :label="language==0?'类型':'Type'" required>--> | 80 | <!-- <el-form-item :label="language==0?'类型':'Type'" required>--> |
| 73 | <!-- <el-select v-model="myform.type" style="width: 100%;">--> | 81 | <!-- <el-select v-model="myform.type" style="width: 100%;">--> |
| 74 | <!-- <el-option :label="language==0?'业余':'amateur'" value="0"/>--> | 82 | <!-- <el-option :label="language==0?'业余':'amateur'" value="0"/>--> |
| 75 | <!-- <el-option :label="language==0?'专业':'Professional'" value="1"/>--> | 83 | <!-- <el-option :label="language==0?'专业':'Professional'" value="1"/>--> |
| 76 | <!-- <el-option :label="language==0?'大专院校':'Colleges and universities'" value="2"/>--> | 84 | <!-- <el-option :label="language==0?'大专院校':'Colleges and universities'" value="2"/>--> |
| 77 | <!-- <el-option :label="language==0?'其他':'Other'" value="3"/>--> | 85 | <!-- <el-option :label="language==0?'其他':'Other'" value="3"/>--> |
| 78 | <!-- </el-select>--> | 86 | <!-- </el-select>--> |
| 79 | <!-- </el-form-item>--> | 87 | <!-- </el-form-item>--> |
| 80 | <!-- <el-form-item :label="language==0?'邮箱':'Email'" required prop="email">--> | 88 | <!-- <el-form-item :label="language==0?'邮箱':'Email'" required prop="email">--> |
| 81 | <!-- <el-input v-model="myform.email" type="email" :placeholder="language==0?'请输入内容':''"/>--> | 89 | <!-- <el-input v-model="myform.email" type="email" :placeholder="language==0?'请输入内容':''"/>--> |
| 82 | <!-- </el-form-item>--> | 90 | <!-- </el-form-item>--> |
| 83 | </el-form> | 91 | </el-form> |
| 84 | <div class="text-center" v-if="user.utype=='1'||user.utype=='2'"> | 92 | <div v-if="user.utype=='1'||user.utype=='2'" class="text-center"> |
| 85 | <el-button type="primary" class="btn-lineG" round @click="save"> | 93 | <el-button class="btn-lineG" round type="primary" @click="save"> |
| 86 | {{language == 0 ? '确定修改' : 'Save'}} | 94 | {{ language == 0 ? '确定修改' : 'Save' }} |
| 87 | </el-button> | 95 | </el-button> |
| 88 | </div> | 96 | </div> |
| 89 | 97 | ||
| ... | @@ -95,20 +103,20 @@ | ... | @@ -95,20 +103,20 @@ |
| 95 | </template> | 103 | </template> |
| 96 | 104 | ||
| 97 | <script setup> | 105 | <script setup> |
| 98 | import {ref} from 'vue' | 106 | import { ref } from 'vue' |
| 99 | import {useRouter} from 'vue-router' | 107 | import { useRouter } from 'vue-router' |
| 100 | import {getCurrentInstance, onMounted} from '@vue/runtime-core' | 108 | import { getCurrentInstance, onMounted } from '@vue/runtime-core' |
| 101 | import * as match from '@/apiPc/match' | 109 | import * as match from '@/apiPc/match' |
| 102 | import {ElMessage, ElMessageBox} from 'element-plus' | 110 | import { ElMessage, ElMessageBox } from 'element-plus' |
| 103 | import {nationList} from '@/assets/js/data' | 111 | import { nationList } from '@/assets/js/data' |
| 104 | import {getGroupInfo} from "@/apiPc/match"; | 112 | import { getGroupInfo } from '@/apiPc/match' |
| 105 | import TeamInfo from "@/viewsPc/center/teamInfo"; | 113 | import TeamInfo from '@/viewsPc/center/teamInfo' |
| 106 | import useUserStore from "@/store/modules/user"; | 114 | import useUserStore from '@/store/modules/user' |
| 107 | import {useStorage} from "@vueuse/core/index"; | 115 | import { useStorage } from '@vueuse/core/index' |
| 108 | 116 | ||
| 109 | const language= useStorage('language',0) | 117 | const language = useStorage('language', 0) |
| 110 | const router = useRouter() | 118 | const router = useRouter() |
| 111 | const {proxy} = getCurrentInstance() | 119 | const { proxy } = getCurrentInstance() |
| 112 | const props = defineProps({ | 120 | const props = defineProps({ |
| 113 | user: { | 121 | user: { |
| 114 | type: Object, | 122 | type: Object, |
| ... | @@ -116,12 +124,13 @@ const props = defineProps({ | ... | @@ -116,12 +124,13 @@ const props = defineProps({ |
| 116 | } | 124 | } |
| 117 | }) | 125 | }) |
| 118 | const rules = ref({ | 126 | const rules = ref({ |
| 119 | realName: [{required: true, message: '必填', trigger: 'blur'}], | 127 | realName: [{ required: true, message: '必填', trigger: 'blur' }], |
| 120 | sex: [{required: true, message: '必填', trigger: 'change'}], | 128 | certName: [{ required: true, message: '必填', trigger: 'blur' }], |
| 121 | idcType: [{required: true, message: '必填', trigger: 'change'}], | 129 | sex: [{ required: true, message: '必填', trigger: 'change' }], |
| 122 | type: [{required: true, message: '必填', trigger: 'change'}], | 130 | idcType: [{ required: true, message: '必填', trigger: 'change' }], |
| 123 | idcCode: [{required: true, message: '必填', trigger: 'blur'}], | 131 | type: [{ required: true, message: '必填', trigger: 'change' }], |
| 124 | email: [{required: true, message: '必填', trigger: 'blur'}], | 132 | idcCode: [{ required: true, message: '必填', trigger: 'blur' }], |
| 133 | email: [{ required: true, message: '必填', trigger: 'blur' }] | ||
| 125 | 134 | ||
| 126 | }) | 135 | }) |
| 127 | const activeName = ref('first') | 136 | const activeName = ref('first') |
| ... | @@ -158,17 +167,16 @@ function getData() { | ... | @@ -158,17 +167,16 @@ function getData() { |
| 158 | if (user.utype == '1') { | 167 | if (user.utype == '1') { |
| 159 | match.getMyPersonInfo().then(res => { | 168 | match.getMyPersonInfo().then(res => { |
| 160 | myform.value = res.data | 169 | myform.value = res.data |
| 161 | if(language.value=='1'){ | 170 | if (language.value == '1') { |
| 162 | myform.value.type = '1' | 171 | myform.value.type = '1' |
| 163 | } | 172 | } |
| 164 | }) | 173 | }) |
| 165 | } | 174 | } |
| 166 | |||
| 167 | } | 175 | } |
| 168 | 176 | ||
| 169 | function save() { | 177 | function save() { |
| 170 | match.saveMyBaseInfo(myform.value).then(res => { | 178 | match.saveMyBaseInfo(myform.value).then(res => { |
| 171 | ElMessage.success(language.value==0?'保存成功':'Save successfully') | 179 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successfully') |
| 172 | }) | 180 | }) |
| 173 | } | 181 | } |
| 174 | 182 | ||
| ... | @@ -204,7 +212,7 @@ function checkCode() { | ... | @@ -204,7 +212,7 @@ function checkCode() { |
| 204 | 212 | ||
| 205 | </script> | 213 | </script> |
| 206 | 214 | ||
| 207 | <style scoped lang="scss"> | 215 | <style lang="scss" scoped> |
| 208 | .indexTitle { | 216 | .indexTitle { |
| 209 | margin: 20px 0 12px; | 217 | margin: 20px 0 12px; |
| 210 | padding: 0 20px 15px; | 218 | padding: 0 20px 15px; | ... | ... |
| ... | @@ -59,19 +59,36 @@ | ... | @@ -59,19 +59,36 @@ |
| 59 | <el-option v-for="l in labels" :key="l.value" :label="language==0?l.label:l.enlabel" :value="l.value" /> | 59 | <el-option v-for="l in labels" :key="l.value" :label="language==0?l.label:l.enlabel" :value="l.value" /> |
| 60 | </el-select> | 60 | </el-select> |
| 61 | </el-form-item> | 61 | </el-form-item> |
| 62 | <el-form-item :label="language==0?'有效证件':'Valid Passport'" required> | 62 | <!-- <el-form-item :label="language==0?'有效证件':'Valid Passport'" required>--> |
| 63 | <!-- <image-upload--> | ||
| 64 | <!-- v-model="form.passportUrl" :button-text="language==0?'上传':'Upload'" :is-show-tip="false"--> | ||
| 65 | <!-- :limit="1"--> | ||
| 66 | <!-- />--> | ||
| 67 | <!-- <div class="tip">--> | ||
| 68 | <!-- <span v-if="language==0">请上传有效身份证件扫描件,用于核实身份信息、申请签证邀请函及购买保险等</span>--> | ||
| 69 | <!-- <span v-else>Please upload a scanned copy of your valid passport for verification of identity information,application of visa invitation letter and purchasing insurance etc.</span>--> | ||
| 70 | <!-- </div>--> | ||
| 71 | <!-- </el-form-item>--> | ||
| 72 | |||
| 73 | <el-form-item :label="language==0?'有效证件':'Valid Passport'" prop="" required> | ||
| 63 | <image-upload | 74 | <image-upload |
| 64 | v-model="form.passportUrl" :button-text="language==0?'上传':'Upload'" :is-show-tip="false" | 75 | ref="uploadPassportRef" |
| 76 | v-model="form.passportUrl" | ||
| 77 | :action="'/common/getPersonInfoFromCert/6'" | ||
| 78 | :button-text="language==0?'上传':'Upload'" | ||
| 79 | :is-show-tip="false" | ||
| 65 | :limit="1" | 80 | :limit="1" |
| 81 | param-name="pic" | ||
| 82 | @response="ocrSuccess" | ||
| 66 | /> | 83 | /> |
| 67 | <div class="tip"> | 84 | <div class="tip"> |
| 68 | <span v-if="language==0">请上传有效身份证件扫描件,用于核实身份信息、申请签证邀请函及购买保险等</span> | 85 | <span v-if="language==0">请上传有效身份证件扫描件,用于核实身份信息、申请签证邀请函及购买保险等 </span> |
| 69 | <span v-else>Please upload a scanned copy of your valid passport for verification of identity information, | 86 | <span v-else> |
| 87 | Please upload a scanned copy of your valid passport for verification of identity information, | ||
| 70 | application of visa invitation letter and purchasing insurance etc.</span> | 88 | application of visa invitation letter and purchasing insurance etc.</span> |
| 71 | </div> | 89 | </div> |
| 72 | </el-form-item> | ||
| 73 | |||
| 74 | 90 | ||
| 91 | </el-form-item> | ||
| 75 | </el-col> | 92 | </el-col> |
| 76 | <el-col :lg="12" class="touxiang"> | 93 | <el-col :lg="12" class="touxiang"> |
| 77 | <el-form-item :label="language==0?'个人照片':'Photo'" prop="picUrl"> | 94 | <el-form-item :label="language==0?'个人照片':'Photo'" prop="picUrl"> |
| ... | @@ -80,7 +97,9 @@ | ... | @@ -80,7 +97,9 @@ |
| 80 | class="threeFour" | 97 | class="threeFour" |
| 81 | /> | 98 | /> |
| 82 | </el-form-item> | 99 | </el-form-item> |
| 83 | 100 | <el-form-item :label="language==0?'证件姓名':'Name'" prop="certName"> | |
| 101 | <el-input v-model="form.certName" :disabled="editgay" /> | ||
| 102 | </el-form-item> | ||
| 84 | <el-form-item | 103 | <el-form-item |
| 85 | :label="language==0?'证件类型':'ID Type'" :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1" | 104 | :label="language==0?'证件类型':'ID Type'" :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1" |
| 86 | prop="idcType" | 105 | prop="idcType" |
| ... | @@ -154,6 +173,7 @@ import { dayjs, ElMessage } from 'element-plus' | ... | @@ -154,6 +173,7 @@ import { dayjs, ElMessage } from 'element-plus' |
| 154 | import _ from 'lodash' | 173 | import _ from 'lodash' |
| 155 | import { useStorage } from '@vueuse/core/index' | 174 | import { useStorage } from '@vueuse/core/index' |
| 156 | import { checkWdsf, getCaptchaSms } from '@/apiPc/match' | 175 | import { checkWdsf, getCaptchaSms } from '@/apiPc/match' |
| 176 | import ImageUpload from '/@/components/ImageUpload/index.vue' | ||
| 157 | 177 | ||
| 158 | const language = useStorage('language', 0) | 178 | const language = useStorage('language', 0) |
| 159 | const certificates = ref([ | 179 | const certificates = ref([ |
| ... | @@ -414,6 +434,23 @@ function giveBirthDay() { | ... | @@ -414,6 +434,23 @@ function giveBirthDay() { |
| 414 | } | 434 | } |
| 415 | } | 435 | } |
| 416 | 436 | ||
| 437 | // 有效证件 | ||
| 438 | const ocrSuccess = (res) => { | ||
| 439 | // form.value.passportUrl = res.data.url | ||
| 440 | console.log(form.value.passportUrl) | ||
| 441 | if (res.code == 200) { | ||
| 442 | form.value.passportUrl = res.data.url | ||
| 443 | form.value.idcCode = res.data.code | ||
| 444 | form.value.birth = res.data.birth?.slice(0, 10) | ||
| 445 | form.value.sex = res.data.sex | ||
| 446 | form.value.certName = res.data.name | ||
| 447 | form.value.idcType = res.data.type == '3' ? '1' : '0' | ||
| 448 | } else if (res.code == 500) { | ||
| 449 | ElMessage.warning(res.msg) | ||
| 450 | form.value.passportCopy = '' | ||
| 451 | } | ||
| 452 | } | ||
| 453 | |||
| 417 | function submitForm() { | 454 | function submitForm() { |
| 418 | proxy.$refs['dialogRef'].validate((valid) => { | 455 | proxy.$refs['dialogRef'].validate((valid) => { |
| 419 | if (valid) { | 456 | if (valid) { |
| ... | @@ -451,6 +488,7 @@ function submitForm() { | ... | @@ -451,6 +488,7 @@ function submitForm() { |
| 451 | if (groupId.value != 0) { | 488 | if (groupId.value != 0) { |
| 452 | // 团队 | 489 | // 团队 |
| 453 | form.value.groupId = groupId.value | 490 | form.value.groupId = groupId.value |
| 491 | form.value.ocrFlag = '1' | ||
| 454 | match.savePersonForMyGroup(form.value).then(res => { | 492 | match.savePersonForMyGroup(form.value).then(res => { |
| 455 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful') | 493 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful') |
| 456 | show.value = false | 494 | show.value = false |
| ... | @@ -466,6 +504,7 @@ function submitForm() { | ... | @@ -466,6 +504,7 @@ function submitForm() { |
| 466 | }) | 504 | }) |
| 467 | } else { | 505 | } else { |
| 468 | if (isMe.value) { | 506 | if (isMe.value) { |
| 507 | form.value.ocrFlag = '1' | ||
| 469 | match.saveMyBaseInfo(form.value).then(res => { | 508 | match.saveMyBaseInfo(form.value).then(res => { |
| 470 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful') | 509 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful') |
| 471 | show.value = false | 510 | show.value = false |
| ... | @@ -473,6 +512,7 @@ function submitForm() { | ... | @@ -473,6 +512,7 @@ function submitForm() { |
| 473 | }) | 512 | }) |
| 474 | } else { | 513 | } else { |
| 475 | form.value.cptId = cptId.value | 514 | form.value.cptId = cptId.value |
| 515 | form.value.ocrFlag = '1' | ||
| 476 | match.savePersonForMyPerson(form.value).then(res => { | 516 | match.savePersonForMyPerson(form.value).then(res => { |
| 477 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful') | 517 | ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful') |
| 478 | show.value = false | 518 | show.value = false | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <el-dialog | 2 | <el-dialog |
| 3 | v-model="show" :title="title" width="600px" 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="600px" | ||
| 6 | > | 7 | > |
| 7 | <div class="boxInvitation pd20"> | ||
| 8 | 8 | ||
| 9 | <div class="text-center pd20" v-if="showR"> | 9 | <div class="boxInvitation pd20"> |
| 10 | <img class="mauto" src="@/assets/dance/ok.png"/> | 10 | <div v-if="showR" class="text-center pd20"> |
| 11 | <!-- <h2 class="text-center">{{ language == 0 ? '申请已提交' : 'Submitted successfully' }}</h2>--> | 11 | <img class="mauto" src="@/assets/dance/ok.png"> |
| 12 | <h4 class="text-center" v-if="language == 0"> | 12 | <!-- <h2 class="text-center">{{ language == 0 ? '申请已提交' : 'Submitted successfully' }}</h2>--> |
| 13 | <h4 v-if="language == 0" class="text-center"> | ||
| 13 | 我们已收到您的邀请函申请,并将尽快处理。请耐心等待。 | 14 | 我们已收到您的邀请函申请,并将尽快处理。请耐心等待。 |
| 14 | </h4> | 15 | </h4> |
| 15 | <h4 v-else> | 16 | <h4 v-else> |
| 16 | Your invitation letter application has been received,<br/> | 17 | Your invitation letter application has been received,<br> |
| 17 | and we will process it as soon as possible. | 18 | and we will process it as soon as possible. |
| 18 | <br/> | 19 | <br> |
| 19 | Please be patient while waiting. | 20 | Please be patient while waiting. |
| 20 | </h4> | 21 | </h4> |
| 21 | <el-button size="large" type="primary" @click="conti" round class="btn-lineG"> | 22 | <el-button class="btn-lineG" round size="large" type="primary" @click="conti"> |
| 22 | {{ language == 0 ? '继续提交' : 'Continue To Submit' }} | 23 | {{ language == 0 ? '继续提交' : 'Continue To Submit' }} |
| 23 | </el-button> | 24 | </el-button> |
| 24 | </div> | 25 | </div> |
| 25 | 26 | ||
| 26 | <el-form :model="form" :rules="rules" ref="iformRef" label-position="right" label-width="150px" v-else> | 27 | <el-form |
| 27 | <el-form-item :label="language==0?'姓名':'Name'" required prop="name"> | 28 | v-else ref="iformRef" :model="form" :rules="rules" label-position="right" |
| 28 | <el-input v-model="form.name" @input="handleInput"/> | 29 | label-width="150px" |
| 30 | > | ||
| 31 | <!-- <el-form-item :label="language==0?'有效证件':'Passport Copy'" prop="passportCopy" required>--> | ||
| 32 | <!-- <image-upload--> | ||
| 33 | <!-- v-model="form.passportCopy" :button-text="language==0?'上传':'Upload'" :is-show-tip="false"--> | ||
| 34 | <!-- :limit="1"--> | ||
| 35 | <!-- />--> | ||
| 36 | <!-- </el-form-item>--> | ||
| 37 | |||
| 38 | <el-form-item :label="language==0?'有效证件':'Valid Passport'" prop="passportCopy" required> | ||
| 39 | <image-upload | ||
| 40 | ref="uploadPassportRef" | ||
| 41 | v-model="form.passportCopy" | ||
| 42 | :action="'/common/getPersonInfoFromCert/6'" | ||
| 43 | :button-text="language==0?'上传':'Upload'" | ||
| 44 | :is-show-tip="false" | ||
| 45 | :limit="1" | ||
| 46 | param-name="pic" | ||
| 47 | @response="ocrSuccess" | ||
| 48 | /> | ||
| 49 | <div class="tip"> | ||
| 50 | <span v-if="language==0">请上传有效身份证件扫描件,用于核实身份信息、申请签证邀请函及购买保险等 </span> | ||
| 51 | <span v-else> | ||
| 52 | Please upload a scanned copy of your valid passport for verification of identity information, | ||
| 53 | application of visa invitation letter and purchasing insurance etc.</span> | ||
| 54 | </div> | ||
| 55 | |||
| 29 | </el-form-item> | 56 | </el-form-item> |
| 30 | <el-form-item :label="language==0?'性别':'Gender'" required prop="gender"> | 57 | <el-form-item :label="language==0?'姓名':'Name'" prop="name" required> |
| 58 | <el-input v-model="form.name" @input="handleInput" /> | ||
| 59 | </el-form-item> | ||
| 60 | <el-form-item :label="language==0?'护照号':'Passport No.'" prop="passportNo" required> | ||
| 61 | <el-input v-model="form.passportNo" /> | ||
| 62 | </el-form-item> | ||
| 63 | <el-form-item :label="language==0?'性别':'Gender'" prop="gender" required> | ||
| 31 | <el-radio-group v-model="form.gender"> | 64 | <el-radio-group v-model="form.gender"> |
| 32 | <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> | 65 | <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> |
| 33 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> | 66 | <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio> |
| 34 | </el-radio-group> | 67 | </el-radio-group> |
| 35 | </el-form-item> | 68 | </el-form-item> |
| 36 | <el-form-item :label="language==0?'国籍':'Nationality'" required prop="nationality"> | 69 | <el-form-item :label="language==0?'国籍':'Nationality'" prop="nationality" required> |
| 37 | <el-select filterable v-model="form.nationality" style="width: 100%;"> | 70 | <el-select v-model="form.nationality" filterable style="width: 100%;"> |
| 38 | <el-option v-for="item in countrys" :key="item.id" :label="language==0?item.name:item.enName" | 71 | <el-option |
| 39 | :value="item.id"/> | 72 | v-for="item in countrys" :key="item.id" :label="language==0?item.name:item.enName" |
| 73 | :value="item.id" | ||
| 74 | /> | ||
| 40 | </el-select> | 75 | </el-select> |
| 41 | </el-form-item> | 76 | </el-form-item> |
| 42 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" required prop="birth"> | 77 | <el-form-item :label="language==0?'出生日期':'Date of Birth'" prop="birth" required> |
| 43 | <el-date-picker | 78 | <el-date-picker |
| 44 | v-model="form.birth" | 79 | v-model="form.birth" |
| 45 | style="width: 100%;" placeholder="YYYY-MM-DD" | 80 | format="YYYY-MM-DD" placeholder="YYYY-MM-DD" |
| 46 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | 81 | style="width: 100%;" type="date" value-format="YYYY-MM-DD" |
| 47 | /> | 82 | /> |
| 48 | </el-form-item> | 83 | </el-form-item> |
| 49 | <el-form-item :label="language==0?'邮箱':'Email'" required prop="email"> | 84 | <el-form-item :label="language==0?'邮箱':'Email'" prop="email" required> |
| 50 | <el-input v-model="form.email" type="email"/> | 85 | <el-input v-model="form.email" type="email" /> |
| 51 | <div class="tip" v-if="language == 0">如以团队名义申请邀请函,建议统一填写领队邮箱。</div> | 86 | <div v-if="language == 0" class="tip">如以团队名义申请邀请函,建议统一填写领队邮箱。</div> |
| 52 | <div class="tip" v-else> | 87 | <div v-else class="tip"> |
| 53 | If a visa invitation letter is applied by the organization, it is recommended to fill in the email of the head of team. | 88 | If a visa invitation letter is applied by the organization, it is recommended to fill in the email of the |
| 89 | head of team. | ||
| 54 | </div> | 90 | </div> |
| 55 | </el-form-item> | 91 | </el-form-item> |
| 56 | <el-form-item :label="language==0?'护照号':'Passport No.'" required prop="passportNo"> | 92 | |
| 57 | <el-input v-model="form.passportNo"/> | 93 | <el-form-item :label="language==0?'抵达日期':'Date of Arrival'" prop="arrival" required> |
| 58 | </el-form-item> | ||
| 59 | <el-form-item :label="language==0?'有效证件':'Passport Copy'" required prop="passportCopy"> | ||
| 60 | <image-upload v-model="form.passportCopy" :limit="1" :is-show-tip="false" | ||
| 61 | :button-text="language==0?'上传':'Upload'"/> | ||
| 62 | </el-form-item> | ||
| 63 | <el-form-item :label="language==0?'抵达日期':'Date of Arrival'" required prop="arrival"> | ||
| 64 | <el-date-picker | 94 | <el-date-picker |
| 65 | v-model="form.arrival" placeholder="YYYY-MM-DD" | 95 | v-model="form.arrival" format="YYYY-MM-DD" |
| 66 | style="width: 100%;" | 96 | placeholder="YYYY-MM-DD" |
| 67 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | 97 | style="width: 100%;" type="date" value-format="YYYY-MM-DD" |
| 68 | /> | 98 | /> |
| 69 | </el-form-item> | 99 | </el-form-item> |
| 70 | <el-form-item :label="language==0?'出发日期':'Date of Departure'" required prop="departure"> | 100 | <el-form-item :label="language==0?'出发日期':'Date of Departure'" prop="departure" required> |
| 71 | <el-date-picker | 101 | <el-date-picker |
| 72 | v-model="form.departure" | 102 | v-model="form.departure" |
| 73 | style="width: 100%;" placeholder="YYYY-MM-DD" | 103 | format="YYYY-MM-DD" placeholder="YYYY-MM-DD" |
| 74 | type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" | 104 | style="width: 100%;" type="date" value-format="YYYY-MM-DD" |
| 75 | /> | 105 | /> |
| 76 | </el-form-item> | 106 | </el-form-item> |
| 77 | <el-form-item :label="language==0?'备注':'Remark '"> | 107 | <el-form-item :label="language==0?'备注':'Remark '"> |
| 78 | <el-input type="textarea" v-model="form.remark" rows="3"/> | 108 | <el-input v-model="form.remark" rows="3" type="textarea" /> |
| 79 | </el-form-item> | 109 | </el-form-item> |
| 80 | 110 | ||
| 81 | <div class="text-center"> | 111 | <div class="text-center"> |
| 82 | <el-button type="primary" size="large" @click="submit" round class="btn-lineG"> | 112 | <el-button class="btn-lineG" round size="large" type="primary" @click="submit"> |
| 83 | {{ language == 0 ? '提交' : 'SUBMIT' }} | 113 | {{ language == 0 ? '提交' : 'SUBMIT' }} |
| 84 | </el-button> | 114 | </el-button> |
| 85 | </div> | 115 | </div> |
| ... | @@ -90,17 +120,17 @@ | ... | @@ -90,17 +120,17 @@ |
| 90 | </template> | 120 | </template> |
| 91 | 121 | ||
| 92 | <script setup> | 122 | <script setup> |
| 93 | import {useStorage} from "@vueuse/core/index"; | 123 | import { useStorage } from '@vueuse/core/index' |
| 94 | import {getCurrentInstance, watch} from "vue"; | 124 | import { getCurrentInstance, watch, ref } from 'vue' |
| 95 | import {nextTick} from "@vue/runtime-core"; | 125 | import { nextTick } from '@vue/runtime-core' |
| 96 | import {ElMessage, ElMessageBox} from "element-plus"; | 126 | import { ElMessage, ElMessageBox } from 'element-plus' |
| 97 | import {addInvitation, countryList} from "@/apiPc/match"; | 127 | import { addInvitation, countryList } from '@/apiPc/match' |
| 98 | import ImageUpload from "@/components/ImageUpload"; | 128 | import ImageUpload from '@/components/ImageUpload' |
| 99 | 129 | ||
| 100 | const {proxy} = getCurrentInstance() | 130 | const { proxy } = getCurrentInstance() |
| 101 | const language = useStorage('language', 0) | 131 | const language = useStorage('language', 0) |
| 102 | const form = ref({ | 132 | const form = ref({ |
| 103 | gender:'0' | 133 | gender: '0' |
| 104 | }) | 134 | }) |
| 105 | const show = ref(false) | 135 | const show = ref(false) |
| 106 | const showR = ref(false) | 136 | const showR = ref(false) |
| ... | @@ -109,14 +139,14 @@ const countrys = ref([]) | ... | @@ -109,14 +139,14 @@ const countrys = ref([]) |
| 109 | const cptId = ref('') | 139 | const cptId = ref('') |
| 110 | const rules = ref( | 140 | const rules = ref( |
| 111 | { | 141 | { |
| 112 | nationality: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},], | 142 | nationality: [{ required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose' }], |
| 113 | name: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入' : 'Please enter'},], | 143 | name: [{ required: true, trigger: 'blur', message: language.value == 0 ? '请输入' : 'Please enter' }], |
| 114 | email: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入' : 'Please enter'},], | 144 | email: [{ required: true, trigger: 'blur', message: language.value == 0 ? '请输入' : 'Please enter' }], |
| 115 | birth: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},], | 145 | birth: [{ required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose' }], |
| 116 | passportNo: [{required: true, trigger: 'blur', message: language.value == 0 ? '请输入' : 'Please enter'},], | 146 | passportNo: [{ required: true, trigger: 'blur', message: language.value == 0 ? '请输入' : 'Please enter' }], |
| 117 | passportCopy: [{required: true, trigger: 'blur', message: language.value == 0 ? '请上传' : 'Please Upload'},], | 147 | passportCopy: [{ required: true, trigger: 'blur', message: language.value == 0 ? '请上传' : 'Please Upload' }], |
| 118 | arrival: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},], | 148 | arrival: [{ required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose' }], |
| 119 | departure: [{required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose'},], | 149 | departure: [{ required: true, trigger: 'change', message: language.value == 0 ? '请选择' : 'Please choose' }] |
| 120 | }) | 150 | }) |
| 121 | const open = (params) => { | 151 | const open = (params) => { |
| 122 | console.log(params) | 152 | console.log(params) |
| ... | @@ -124,7 +154,8 @@ const open = (params) => { | ... | @@ -124,7 +154,8 @@ const open = (params) => { |
| 124 | title.value = params.title | 154 | title.value = params.title |
| 125 | cptId.value = params.cptId | 155 | cptId.value = params.cptId |
| 126 | } | 156 | } |
| 127 | defineExpose({open}) | 157 | defineExpose({ open }) |
| 158 | |||
| 128 | watch(show, (value) => { | 159 | watch(show, (value) => { |
| 129 | if (!value) { | 160 | if (!value) { |
| 130 | form.value = { | 161 | form.value = { |
| ... | @@ -145,10 +176,11 @@ function getCountryList() { | ... | @@ -145,10 +176,11 @@ function getCountryList() { |
| 145 | countrys.value = res.data | 176 | countrys.value = res.data |
| 146 | }) | 177 | }) |
| 147 | } | 178 | } |
| 179 | |||
| 148 | const handleInput = (value) => { | 180 | const handleInput = (value) => { |
| 149 | const regex = /^[a-zA-Z]*$/; | 181 | const regex = /^[a-zA-Z]*$/ |
| 150 | const regexCh = /^[\u4e00-\u9fa5]+$/; | 182 | const regexCh = /^[\u4e00-\u9fa5]+$/ |
| 151 | if(language.value==0){ | 183 | if (language.value == 0) { |
| 152 | if (!regexCh.test(value)) { | 184 | if (!regexCh.test(value)) { |
| 153 | form.value.name = '' | 185 | form.value.name = '' |
| 154 | ElMessage.warning('请输入中文') | 186 | ElMessage.warning('请输入中文') |
| ... | @@ -182,14 +214,31 @@ const submit = () => { | ... | @@ -182,14 +214,31 @@ const submit = () => { |
| 182 | if (Array.isArray(form.value.passportCopy)) { | 214 | if (Array.isArray(form.value.passportCopy)) { |
| 183 | form.value.passportCopy = form.value.passportCopy[0].url | 215 | form.value.passportCopy = form.value.passportCopy[0].url |
| 184 | } | 216 | } |
| 217 | form.value.ocrFlag = '1' | ||
| 185 | addInvitation(form.value).then((res) => { | 218 | addInvitation(form.value).then((res) => { |
| 186 | ElMessage.success(language.value == 0 ?'提交成功':'Successfully!') | 219 | ElMessage.success(language.value == 0 ? '提交成功' : 'Successfully!') |
| 187 | showR.value = true | 220 | showR.value = true |
| 188 | }) | 221 | }) |
| 189 | }) | 222 | }) |
| 190 | } | 223 | } |
| 191 | }) | 224 | }) |
| 192 | } | 225 | } |
| 226 | |||
| 227 | const ocrSuccess = (res) => { | ||
| 228 | // form.value.passportUrl = res.data.url | ||
| 229 | console.log(form.value.passportUrl) | ||
| 230 | if (res.code == 200) { | ||
| 231 | form.value.passportCopy = res.data.url | ||
| 232 | form.value.passportNo = res.data.code | ||
| 233 | form.value.birth = res.data.birth?.slice(0, 10) | ||
| 234 | form.value.gender = res.data.sex | ||
| 235 | form.value.name = res.data.name | ||
| 236 | } else if (res.code == 500) { | ||
| 237 | ElMessage.warning(res.msg) | ||
| 238 | form.value.passportCopy = '' | ||
| 239 | } | ||
| 240 | } | ||
| 241 | |||
| 193 | const conti = () => { | 242 | const conti = () => { |
| 194 | showR.value = false | 243 | showR.value = false |
| 195 | form.value = { | 244 | form.value = { |
| ... | @@ -198,11 +247,18 @@ const conti = () => { | ... | @@ -198,11 +247,18 @@ const conti = () => { |
| 198 | } | 247 | } |
| 199 | </script> | 248 | </script> |
| 200 | 249 | ||
| 201 | <style scoped lang="scss"> | 250 | <style lang="scss" scoped> |
| 202 | .tip{font-size: 12px;} | 251 | .tip { |
| 252 | font-size: 12px; | ||
| 253 | } | ||
| 254 | |||
| 203 | .boxInvitation { | 255 | .boxInvitation { |
| 204 | width: 90%; | 256 | width: 90%; |
| 205 | margin: auto | 257 | margin: auto |
| 206 | } | 258 | } |
| 207 | h4{font-size: 15px;line-height: 1.6;} | 259 | |
| 260 | h4 { | ||
| 261 | font-size: 15px; | ||
| 262 | line-height: 1.6; | ||
| 263 | } | ||
| 208 | </style> | 264 | </style> | ... | ... |
-
Please register or sign in to post a comment