加人
Showing
7 changed files
with
68 additions
and
61 deletions
| 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 | ... | ... |
| ... | @@ -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 | ... | ... |
| ... | @@ -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> |
| ... | @@ -430,7 +432,6 @@ function next() { | ... | @@ -430,7 +432,6 @@ function next() { |
| 430 | obj.passportUrl = wdsfData.value.passportUrl || '' | 432 | obj.passportUrl = wdsfData.value.passportUrl || '' |
| 431 | } | 433 | } |
| 432 | registerSingle(obj).then(res => { | 434 | registerSingle(obj).then(res => { |
| 433 | debugger | ||
| 434 | setToken(res.data.token) | 435 | setToken(res.data.token) |
| 435 | afterR() | 436 | afterR() |
| 436 | }) | 437 | }) | ... | ... |
-
Please register or sign in to post a comment