5f4bdea4 by zhangmeng

添加姓名

1 parent 4852d228
...@@ -282,6 +282,7 @@ const form = ref({}) ...@@ -282,6 +282,7 @@ const form = ref({})
282 const showPersonList = ref(false) 282 const showPersonList = ref(false)
283 const signEndTime = ref('') 283 const signEndTime = ref('')
284 const userId = ref('') 284 const userId = ref('')
285
285 onMounted(() => { 286 onMounted(() => {
286 if (useUserStore().user) { 287 if (useUserStore().user) {
287 userId.value = useUserStore().user.userId 288 userId.value = useUserStore().user.userId
......
1 <template> 1 <template>
2 <el-dialog 2 <el-dialog
3 v-model="show" :title="title" width="1100px" 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="1100px"
6 > 7 >
7 <el-form ref="dialogRef" :model="form" :rules="language==0?rules:rules_cn" label-width="150px" inline> 8 <el-form ref="dialogRef" :model="form" :rules="language==0?rules:rules_cn" inline label-width="150px">
8 <el-row :gutter="30" class="mt30"> 9 <el-row :gutter="30" class="mt30">
9 <el-col :lg="12" class="touxiang"> 10 <el-col :lg="12" class="touxiang">
10 11
11 <el-form-item prop="picUrl" :label="language==0?'个人照片':'photo'"> 12 <el-form-item :label="language==0?'个人照片':'photo'" prop="picUrl">
12 <ImageUpload2 13 <ImageUpload2
13 v-model="form.picUrl" :crop-height="280" :crop-width="200" class="threeFour" :limit="1" 14 v-model="form.picUrl" :crop-height="280" :crop-width="200" :is-show-tip="false" :limit="1"
14 :is-show-tip="false" 15 class="threeFour"
15 /> 16 />
16 </el-form-item> 17 </el-form-item>
17 <el-form-item v-if="language!=0" label="WDSF code" prop="wdsfMin"> 18 <el-form-item v-if="language!=0" label="WDSF code" prop="wdsfMin">
18 <span v-if="form.wdsfMin">{{form.wdsfMin}}</span> 19 <span v-if="form.wdsfMin">{{ form.wdsfMin }}</span>
19 <el-input v-else v-model="form.wdsfMin" type="text"/> 20 <el-input v-else v-model="form.wdsfMin" type="text" />
20 </el-form-item> 21 </el-form-item>
21 <el-form-item :label="language==0?'姓名':'Name'" prop="realName" required> 22 <el-form-item :label="language==0?'姓名':'Name'" prop="realName" required>
22 <el-input v-model="form.realName" :disabled="editgay&&form.labelArr.indexOf('0')>-1"/> 23 <el-input v-model="form.realName" :disabled="editgay&&form.labelArr.indexOf('0')>-1" />
23 </el-form-item> 24 </el-form-item>
24 <el-form-item :label="language==0?'证件类型':'ID type'" prop="idcType" required> 25 <el-form-item :label="language==0?'证件类型':'ID type'" prop="idcType" required>
25 <el-select v-model="form.idcType" style="width: 100%;" :disabled="editgay"> 26 <el-select v-model="form.idcType" :disabled="editgay" style="width: 100%;">
26 <el-option 27 <el-option
27 v-for="item in certificates" 28 v-for="item in certificates"
28 :key="item.value" 29 :key="item.value"
...@@ -32,16 +33,16 @@ ...@@ -32,16 +33,16 @@
32 </el-select> 33 </el-select>
33 </el-form-item> 34 </el-form-item>
34 <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode" required> 35 <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode" required>
35 <el-input v-model="form.idcCode" @blur="giveBirthDay" :disabled="editgay"/> 36 <el-input v-model="form.idcCode" :disabled="editgay" @blur="giveBirthDay" />
36 </el-form-item> 37 </el-form-item>
37 <el-form-item :label="language==0?'有效证件':'Valid Passport'" :required="form.idcType!='0'"> 38 <el-form-item :label="language==0?'有效证件':'Valid Passport'" :required="form.idcType!='0'">
38 <image-upload v-model="form.passportUrl" :limit="1" :is-show-tip="false" /> 39 <image-upload v-model="form.passportUrl" :is-show-tip="false" :limit="1" />
39 <span class="tip">*请上传有效证件扫描件</span> 40 <span class="tip">*请上传有效证件扫描件</span>
40 </el-form-item> 41 </el-form-item>
41 <el-form-item :label="language==0?'性别':'Gender'" prop="sex"> 42 <el-form-item :label="language==0?'性别':'Gender'" prop="sex">
42 <el-radio-group v-model="form.sex" :disabled="editgay&&form.labelArr.indexOf('0')>-1"> 43 <el-radio-group v-model="form.sex" :disabled="editgay&&form.labelArr.indexOf('0')>-1">
43 <el-radio value="0">{{ language==0?'女':'female' }}</el-radio> 44 <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio>
44 <el-radio value="1">{{ language==0?'男':'male' }}</el-radio> 45 <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio>
45 </el-radio-group> 46 </el-radio-group>
46 </el-form-item> 47 </el-form-item>
47 </el-col> 48 </el-col>
...@@ -49,47 +50,51 @@ ...@@ -49,47 +50,51 @@
49 <el-form-item :label="language==0?'出生日期':'Date of Birth'" prop="birth" required> 50 <el-form-item :label="language==0?'出生日期':'Date of Birth'" prop="birth" required>
50 <el-date-picker 51 <el-date-picker
51 v-model="form.birth" :disabled="editgay&&form.labelArr.indexOf('0')>-1" 52 v-model="form.birth" :disabled="editgay&&form.labelArr.indexOf('0')>-1"
52 style="width: 100%;"
53 type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
54 :disabled-date="disabledBirth" 53 :disabled-date="disabledBirth"
54 format="YYYY-MM-DD" style="width: 100%;" type="date"
55 value-format="YYYY-MM-DD"
55 /> 56 />
56 </el-form-item> 57 </el-form-item>
57 <el-form-item :label="language==0?'主要会员角色':'roles'" prop="labelArr"> 58 <el-form-item :label="language==0?'主要会员角色':'roles'" prop="labelArr">
58 <el-select v-model="form.labelArr" multiple> 59 <el-select v-model="form.labelArr" multiple>
59 <el-option v-for="l in labels" :key="l.value" :value="l.value" :label="language==0?l.label:l.enlabel"/> 60 <el-option v-for="l in labels" :key="l.value" :label="language==0?l.label:l.enlabel" :value="l.value" />
60 </el-select> 61 </el-select>
61 </el-form-item> 62 </el-form-item>
62 <el-form-item :label="language==0?'手机号码':'Phone'" prop="phone" required> 63 <el-form-item :label="language==0?'手机号码':'Phone'" prop="phone" required>
63 <el-input v-model="form.phone" type="text"/> 64 <el-input v-model="form.phone" type="text" />
64 <span class="tip">*若未成年人没有手机号,请填写家长号码</span> 65 <span class="tip">*若未成年人没有手机号,请填写家长号码</span>
65 </el-form-item> 66 </el-form-item>
66 67
67 68
68 <el-form-item :label="language==0?'所属国家/地区':'Country'" prop="countryId" required> 69 <el-form-item :label="language==0?'所属国家/地区':'Country'" prop="countryId" required>
69 <el-select filterable v-model="form.countryId" style="width: 100%;" @change="changeCountryId"> 70 <el-select v-model="form.countryId" filterable style="width: 100%;" @change="changeCountryId">
70 <el-option v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName" :value="item.id"/> 71 <el-option
72 v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName"
73 :value="item.id"
74 />
71 </el-select> 75 </el-select>
72 </el-form-item> 76 </el-form-item>
73 77
74 <el-form-item :label="language==0?'详细地址':'Address'" prop="address"> 78 <el-form-item :label="language==0?'详细地址':'Address'" prop="address">
75 <el-cascader v-if="form.countryId == 240" 79 <el-cascader
80 v-if="form.countryId == 240"
76 v-model="form.regionId" 81 v-model="form.regionId"
77 style="width: 100%;margin-bottom: 15px"
78 :options="regionsList" 82 :options="regionsList"
79 :props="{ label:'text' }" 83 :props="{ label:'text' }"
84 style="width: 100%;margin-bottom: 15px"
80 /> 85 />
81 <el-input v-model="form.address" type="textarea" :rows="4"/> 86 <el-input v-model="form.address" :rows="4" type="textarea" />
82 87
83 </el-form-item> 88 </el-form-item>
84 <!-- <el-form-item v-if="language=='0'" :label="language==0?'WDSF会员号':'WDSF code'">--> 89 <!-- <el-form-item v-if="language=='0'" :label="language==0?'WDSF会员号':'WDSF code'">-->
85 <!-- <span v-if="editgay&&form.wdsfMin">{{form.wdsfMin}}</span>--> 90 <!-- <span v-if="editgay&&form.wdsfMin">{{form.wdsfMin}}</span>-->
86 <!-- <el-input v-else v-model="wdsfMin" type="text"/>--> 91 <!-- <el-input v-else v-model="wdsfMin" type="text"/>-->
87 <!-- </el-form-item>--> 92 <!-- </el-form-item>-->
88 93
89 94
90 <!-- <el-form-item :label="language==0?'邮箱':'Email'" prop="email" required>--> 95 <!-- <el-form-item :label="language==0?'邮箱':'Email'" prop="email" required>-->
91 <!-- <el-input v-model="form.email"/>--> 96 <!-- <el-input v-model="form.email"/>-->
92 <!-- </el-form-item>--> 97 <!-- </el-form-item>-->
93 98
94 99
95 </el-col> 100 </el-col>
...@@ -97,20 +102,24 @@ ...@@ -97,20 +102,24 @@
97 </el-form> 102 </el-form>
98 <template #footer> 103 <template #footer>
99 <div class="dialog-footer text-center"> 104 <div class="dialog-footer text-center">
100 <el-button type="primary" class="btn-lineG w200px" round @click="submitForm">{{ language==0?'确定':'Save' }}</el-button> 105 <el-button class="btn-lineG w200px" round type="primary" @click="submitForm">{{
106 language == 0 ? '确定' : 'Save'
107 }}
108 </el-button>
101 </div> 109 </div>
102 </template> 110 </template>
103 </el-dialog> 111 </el-dialog>
104 </template> 112 </template>
105 113
106 <script setup> 114 <script setup>
107 import {reactive, ref, toRefs, watch} from 'vue' 115 import { reactive, ref, toRefs, watch } from 'vue'
108 import {getCurrentInstance, nextTick, onMounted} from '@vue/runtime-core' 116 import { getCurrentInstance, nextTick, onMounted } from '@vue/runtime-core'
109 import * as match from '@/apiPc/match' 117 import * as match from '@/apiPc/match'
110 import {dayjs, ElMessage} from 'element-plus' 118 import { dayjs, ElMessage } from 'element-plus'
111 import _ from 'lodash' 119 import _ from 'lodash'
112 import {useStorage} from "@vueuse/core/index"; 120 import { useStorage } from '@vueuse/core/index'
113 const language= useStorage('language',0) 121
122 const language = useStorage('language', 0)
114 const certificates = ref([ 123 const certificates = ref([
115 { 124 {
116 value: '0', 125 value: '0',
...@@ -125,61 +134,73 @@ const certificates = ref([ ...@@ -125,61 +134,73 @@ const certificates = ref([
125 label: language.value == 0 ? '其他' : 'Other' 134 label: language.value == 0 ? '其他' : 'Other'
126 } 135 }
127 ]) 136 ])
128 const {proxy} = getCurrentInstance() 137 const { proxy } = getCurrentInstance()
129 const emit = defineEmits(['submitForm']) 138 const emit = defineEmits(['submitForm'])
130 const data = reactive({ 139 const data = reactive({
131 form: { 140 form: {
132 // countryId: 240 141 // countryId: 240
133 sex:'0' 142 sex: '0'
134 }, 143 },
135 wdsfMin:'', 144 wdsfMin: '',
136 rules: { 145 rules: {
137 realName: [{required: true, message: '必填', trigger: 'blur'}], 146 realName: [{ required: true, message: '必填', trigger: 'blur' }],
138 // countryId: [{required: true, message: '必填', trigger: 'change'}], 147 // countryId: [{required: true, message: '必填', trigger: 'change'}],
139 idcType: [{required: true, message: '必填', trigger: 'change'}], 148 idcType: [{ required: true, message: '必填', trigger: 'change' }],
140 idcCode: [{required: true, message: '必填', trigger: 'blur'}], 149 idcCode: [{ required: true, message: '必填', trigger: 'blur' }],
141 phone: [{required: true, message: '必填', trigger: 'blur'}], 150 phone: [{ required: true, message: '必填', trigger: 'blur' }],
142 // regionId: [{ required: true, message: '必填', trigger: 'change' }], 151 // regionId: [{ required: true, message: '必填', trigger: 'change' }],
143 birth: [{required: true, message: '必填', trigger: 'change'}], 152 birth: [{ required: true, message: '必填', trigger: 'change' }],
144 // address: [{ required: true, message: '必填', trigger: 'blur' }], 153 // address: [{ required: true, message: '必填', trigger: 'blur' }],
145 // picUrl: [{required: true, message: '必填', trigger: 'blur'}], 154 // picUrl: [{required: true, message: '必填', trigger: 'blur'}],
146 sex: [{required: true, message: '必填', trigger: 'change'}], 155 sex: [{ required: true, message: '必填', trigger: 'change' }],
147 labelArr: [{required: true, message: '必填', trigger: 'change'}] 156 labelArr: [{ required: true, message: '必填', trigger: 'change' }]
148 }, 157 },
149 rules_cn:{ 158 rules_cn: {
150 realName: [{required: true, message: 'required', trigger: 'blur'}], 159 realName: [{ required: true, message: 'required', trigger: 'blur' }],
151 // countryId: [{required: true, message: 'required', trigger: 'change'}], 160 // countryId: [{required: true, message: 'required', trigger: 'change'}],
152 idcType: [{required: true, message: 'required', trigger: 'change'}], 161 idcType: [{ required: true, message: 'required', trigger: 'change' }],
153 idcCode: [{required: true, message: 'required', trigger: 'blur'}], 162 idcCode: [{ required: true, message: 'required', trigger: 'blur' }],
154 phone: [{required: true, message: 'required', trigger: 'blur'}], 163 phone: [{ required: true, message: 'required', trigger: 'blur' }],
155 // regionId: [{ required: true, message: 'required', trigger: 'change' }], 164 // regionId: [{ required: true, message: 'required', trigger: 'change' }],
156 birth: [{required: true, message: 'required', trigger: 'change'}], 165 birth: [{ required: true, message: 'required', trigger: 'change' }],
157 // address: [{ required: true, message: 'required', trigger: 'blur' }], 166 // address: [{ required: true, message: 'required', trigger: 'blur' }],
158 // picUrl: [{required: true, message: 'required', trigger: 'blur'}], 167 // picUrl: [{required: true, message: 'required', trigger: 'blur'}],
159 sex: [{required: true, message: 'required', trigger: 'change'}], 168 sex: [{ required: true, message: 'required', trigger: 'change' }],
160 labelArr: [{required: true, message: 'required', trigger: 'change'}] 169 labelArr: [{ required: true, message: 'required', trigger: 'change' }]
161 }, 170 },
162 show: false, 171 show: false,
163 countryList: [], 172 countryList: [],
164 regionsList: [], 173 regionsList: [],
165 labels: [ 174 labels: [
166 {value: '0', label: '运动员', enlabel: 'Sportsman'}, 175 { value: '0', label: '运动员', enlabel: 'Sportsman' },
167 {value: '1', label: '教练', enlabel: 'Coach'}, 176 { value: '1', label: '教练', enlabel: 'Coach' },
168 {value: '2', label: '领队', enlabel: 'Head Of Team'}, 177 { value: '2', label: '领队', enlabel: 'Head Of Team' },
169 {value: '4', label: '管理', enlabel: 'Team doctor'}, 178 { value: '4', label: '管理', enlabel: 'Team doctor' },
170 {value: '5', label: '翻译', enlabel: 'Interpreter'}, 179 { value: '5', label: '翻译', enlabel: 'Interpreter' },
171 {value: '6', label: '官员', enlabel: 'Official'}, 180 { value: '6', label: '官员', enlabel: 'Official' },
172 {value: '3', label: '其他', enlabel: 'Other'} 181 { value: '3', label: '其他', enlabel: 'Other' }
173 ], 182 ],
174 title: '添加选手信息', 183 title: '添加选手信息',
175 groupId: '0', 184 groupId: '0',
176 isMe:false 185 isMe: false
177 }) 186 })
178 const {wdsfMin, form, rules,rules_cn, show, countryList, regionsList, title, groupId, labels,uType,isMe} = toRefs(data) 187 const {
188 wdsfMin,
189 form,
190 rules,
191 rules_cn,
192 show,
193 countryList,
194 regionsList,
195 title,
196 groupId,
197 labels,
198 uType,
199 isMe
200 } = toRefs(data)
179 onMounted(() => { 201 onMounted(() => {
180 getCountryList() 202 getCountryList()
181 getRegionsList() 203 getRegionsList()
182
183 }) 204 })
184 const editgay = ref(false) 205 const editgay = ref(false)
185 const open = (params) => { 206 const open = (params) => {
...@@ -188,17 +209,17 @@ const open = (params) => { ...@@ -188,17 +209,17 @@ const open = (params) => {
188 groupId.value = params.groupId || '0' 209 groupId.value = params.groupId || '0'
189 isMe.value = params.isMe 210 isMe.value = params.isMe
190 wdsfMin.value = '' 211 wdsfMin.value = ''
191 if(params.label){ 212 if (params.label) {
192 form.value.labelArr= [params.label] 213 form.value.labelArr = [params.label]
193 } else { 214 } else {
194 form.value.labelArr = [] 215 form.value.labelArr = []
195 } 216 }
196 if(language.value == 0){ 217 if (language.value == 0) {
197 form.value.countryId = 240 218 form.value.countryId = 240
198 form.value.idcType = '0' 219 form.value.idcType = '0'
199 } 220 }
200 if(isMe.value){ 221 if (isMe.value) {
201 //个人 222 // 个人
202 match.getMyPersonInfo().then(res => { 223 match.getMyPersonInfo().then(res => {
203 form.value = res.data 224 form.value = res.data
204 form.value.id = res.data.id 225 form.value.id = res.data.id
...@@ -225,13 +246,13 @@ const open = (params) => { ...@@ -225,13 +246,13 @@ const open = (params) => {
225 } 246 }
226 } 247 }
227 } 248 }
228 defineExpose({open}) 249 defineExpose({ open })
229 watch(show, (value) => { 250 watch(show, (value) => {
230 if (!value) { 251 if (!value) {
231 form.value = { 252 form.value = {
232 sex:'0' 253 sex: '0'
233 } 254 }
234 if(language.value == 0){ 255 if (language.value == 0) {
235 form.value.countryId = 240 256 form.value.countryId = 240
236 } 257 }
237 } 258 }
...@@ -239,8 +260,9 @@ watch(show, (value) => { ...@@ -239,8 +260,9 @@ watch(show, (value) => {
239 // proxy.$refs['dialogRef'].clearValidate() 260 // proxy.$refs['dialogRef'].clearValidate()
240 }) 261 })
241 }) 262 })
242 function reset(){ 263
243 if( editgay.value ){ 264 function reset() {
265 if (editgay.value) {
244 match.getPersonInfoById(form.value.id).then(res => { 266 match.getPersonInfoById(form.value.id).then(res => {
245 form.value = res.data 267 form.value = res.data
246 if (form.value.label) { 268 if (form.value.label) {
...@@ -250,9 +272,11 @@ function reset(){ ...@@ -250,9 +272,11 @@ function reset(){
250 }) 272 })
251 } 273 }
252 } 274 }
275
253 function disabledBirth(time) { 276 function disabledBirth(time) {
254 return time.getTime() > new Date().getTime() 277 return time.getTime() > new Date().getTime()
255 } 278 }
279
256 function getCountryList() { 280 function getCountryList() {
257 match.countryList().then(res => { 281 match.countryList().then(res => {
258 countryList.value = res.data 282 countryList.value = res.data
...@@ -272,7 +296,7 @@ function getRegionsList() { ...@@ -272,7 +296,7 @@ function getRegionsList() {
272 } 296 }
273 297
274 function checkCode() { 298 function checkCode() {
275 if (form.value.idcType=='0' && form.value.idcCode) { 299 if (form.value.idcType == '0' && form.value.idcCode) {
276 var obj = { 300 var obj = {
277 idcCode: form.value.idcCode, 301 idcCode: form.value.idcCode,
278 name: form.value.realName 302 name: form.value.realName
...@@ -329,31 +353,31 @@ function submitForm() { ...@@ -329,31 +353,31 @@ function submitForm() {
329 return 353 return
330 } 354 }
331 // 验证手机号 355 // 验证手机号
332 if (form.value.idcType == 0&&form.value.phone) { 356 if (form.value.idcType == 0 && form.value.phone) {
333 var pattern = /^1[3456789]\d{9}$/ 357 var pattern = /^1[3456789]\d{9}$/
334 if (!pattern.test(form.value.phone)) { 358 if (!pattern.test(form.value.phone)) {
335 ElMessage.warning(language.value == 0 ?'请输入正确的手机号':'Please enter the correct mobile phone number') 359 ElMessage.warning(language.value == 0 ? '请输入正确的手机号' : 'Please enter the correct mobile phone number')
336 return 360 return
337 } 361 }
338 } 362 }
339 if(form.value.idcType != 0&&!form.value.passportUrl){ 363 if (form.value.idcType != 0 && !form.value.passportUrl) {
340 ElMessage.warning(language.value == 0 ? '请上传有效证件' :'Please upload your passport file') 364 ElMessage.warning(language.value == 0 ? '请上传有效证件' : 'Please upload your passport file')
341 return 365 return
342 } 366 }
343 if (typeof (form.value.regionId) === 'object') { 367 if (typeof (form.value.regionId) === 'object') {
344 form.value.regionId = _.last(form.value.regionId) 368 form.value.regionId = _.last(form.value.regionId)
345 } 369 }
346 form.value.label = form.value.labelArr.toString() 370 form.value.label = form.value.labelArr.toString()
347 if(Array.isArray(form.value.passportUrl)){ 371 if (Array.isArray(form.value.passportUrl)) {
348 form.value.passportUrl = form.value.passportUrl[0].url 372 form.value.passportUrl = form.value.passportUrl[0].url
349 } 373 }
350 if(wdsfMin.value){ 374 if (wdsfMin.value) {
351 form.value.wdsfMin = wdsfMin.value 375 form.value.wdsfMin = wdsfMin.value
352 } 376 }
353 if (groupId.value != 0) { 377 if (groupId.value != 0) {
354 // 团队 378 // 团队
355 form.value.groupId = groupId.value 379 form.value.groupId = groupId.value
356 if (form.value.idcType=='0' && form.value.idcCode) { 380 if (form.value.idcType == '0' && form.value.idcCode) {
357 var obj = { 381 var obj = {
358 idcCode: form.value.idcCode, 382 idcCode: form.value.idcCode,
359 name: form.value.realName 383 name: form.value.realName
...@@ -371,20 +395,20 @@ function submitForm() { ...@@ -371,20 +395,20 @@ function submitForm() {
371 if (editgay.value) { 395 if (editgay.value) {
372 // id不是0 396 // id不是0
373 match.editPersonInfo(form.value).then(res => { 397 match.editPersonInfo(form.value).then(res => {
374 ElMessage.success(language.value == 0 ?'保存成功':'Save successful') 398 ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful')
375 show.value = false 399 show.value = false
376 emit('submitForm') 400 emit('submitForm')
377 }) 401 })
378 } else { 402 } else {
379 if(isMe.value){ 403 if (isMe.value) {
380 match.saveMyBaseInfo(form.value).then(res => { 404 match.saveMyBaseInfo(form.value).then(res => {
381 ElMessage.success(language.value == 0 ?'保存成功':'Save successful') 405 ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful')
382 show.value = false 406 show.value = false
383 emit('submitForm') 407 emit('submitForm')
384 }) 408 })
385 } else { 409 } else {
386 match.savePersonForMyPerson(form.value).then(res => { 410 match.savePersonForMyPerson(form.value).then(res => {
387 ElMessage.success(language.value == 0 ?'保存成功':'Save successful') 411 ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful')
388 show.value = false 412 show.value = false
389 emit('submitForm') 413 emit('submitForm')
390 }) 414 })
...@@ -394,15 +418,17 @@ function submitForm() { ...@@ -394,15 +418,17 @@ function submitForm() {
394 } 418 }
395 }) 419 })
396 } 420 }
421
397 function saveGroupMember() { 422 function saveGroupMember() {
398 match.savePersonForMyGroup(form.value).then(res => { 423 match.savePersonForMyGroup(form.value).then(res => {
399 ElMessage.success(language.value == 0 ?'保存成功':'Save successful') 424 ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful')
400 show.value = false 425 show.value = false
401 emit('submitForm') 426 emit('submitForm')
402 }).catch(err => { 427 }).catch(err => {
403 reset() 428 reset()
404 }) 429 })
405 } 430 }
431
406 function cancel() { 432 function cancel() {
407 show.value = false 433 show.value = false
408 delete wdsfMin.value 434 delete wdsfMin.value
......
1 <template> 1 <template>
2 <el-dialog 2 <el-dialog
3 v-model="show" :title="title" width="1100px" 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 > 6 width="1100px"
7 <!-- 国际赛事随行人员-->
8 <el-form ref="dialogRef" :model="form" :rules="language==0?rules_cn:rules" label-width="140px"
9 > 7 >
8 <!-- 国际赛事随行人员-->
9 <el-form ref="dialogRef" :model="form" :rules="language==0?rules_cn:rules" label-width="140px">
10 <el-row :gutter="30" class="mt30"> 10 <el-row :gutter="30" class="mt30">
11 <el-col :lg="12" class="touxiang"> 11 <el-col :lg="12" class="touxiang">
12 12
13 <el-form-item :label="language==0?'WDSF会员号':'WDSF MIN'" v-if="form.wdsfMin"> 13 <el-form-item v-if="form.wdsfMin" :label="language==0?'WDSF会员号':'WDSF MIN'">
14 {{ form.wdsfMin }} 14 {{ form.wdsfMin }}
15 </el-form-item> 15 </el-form-item>
16 <el-form-item :label="language==0?'WDSF会员号':'WDSF MIN'" v-else> 16 <el-form-item v-else :label="language==0?'WDSF会员号':'WDSF MIN'">
17 <el-input type="number" v-model="card" @change="resetCode" > 17 <el-input v-model="card" type="number" @change="resetCode">
18 <template #append> 18 <template #append>
19 <el-button type="primary" plain style="width: 110px" @click="checkCard"> 19 <el-button plain style="width: 110px" type="primary" @click="checkCard">
20 <el-icon v-if="isCodeTrue" size="16" color="#67C23A"> 20 <el-icon v-if="isCodeTrue" color="#67C23A" size="16">
21 <CircleCheckFilled/> 21 <CircleCheckFilled />
22 </el-icon> 22 </el-icon>
23 <span v-else>{{ language == 0 ? '校验卡号' : 'Check Code' }}</span> 23 <span v-else>{{ language == 0 ? '校验卡号' : 'Check Code' }}</span>
24 </el-button> 24 </el-button>
25 </template> 25 </template>
26 </el-input> 26 </el-input>
27 <a class="text-primary text-sm mt10" href="https://www.worlddancesport.org/Athlete/List" target="_blank"> 27 <a class="text-primary text-sm mt10" href="https://www.worlddancesport.org/Athlete/List" target="_blank">
28 <el-icon><Link /></el-icon> 28 <el-icon>
29 {{language==0?'去WDSF官网查询我的会员号':'Search my WSDF MIN on the WDSF official website'}} 29 <Link />
30 </el-icon>
31 {{ language == 0 ? '去WDSF官网查询我的会员号' : 'Search my WSDF MIN on the WDSF official website' }}
30 </a> 32 </a>
31 </el-form-item> 33 </el-form-item>
32 <el-form-item :label="language==0?'姓氏':'Surname'" prop="xing" :required="!editDis"> 34 <el-form-item :label="language==0?'姓氏':'Surname'" :required="!editDis" prop="xing">
33 <el-input v-model="form.xing" :disabled="editDis"/> 35 <el-input v-model="form.xing" :disabled="editDis" />
34 </el-form-item> 36 </el-form-item>
35 <el-form-item :label="language==0?'名':'Name'" prop="ming" required> 37 <el-form-item :label="language==0?'名':'Name'" prop="ming" required>
36 <el-input v-model="form.ming" :disabled="editDis"/> 38 <el-input v-model="form.ming" :disabled="editDis" />
37 </el-form-item> 39 </el-form-item>
38 <el-form-item :label="language==0?'性别':'Gender'" prop="sex"> 40 <el-form-item :label="language==0?'性别':'Gender'" prop="sex">
39 <el-radio-group v-model="form.sex"> 41 <el-radio-group v-model="form.sex">
...@@ -42,22 +44,26 @@ ...@@ -42,22 +44,26 @@
42 </el-radio-group> 44 </el-radio-group>
43 </el-form-item> 45 </el-form-item>
44 <el-form-item v-if="form.wdsfMin" :label="language==0?'代表':'Representing'" required> 46 <el-form-item v-if="form.wdsfMin" :label="language==0?'代表':'Representing'" required>
45 <el-input v-model="form.representing" disabled/> 47 <el-input v-model="form.representing" disabled />
46 </el-form-item> 48 </el-form-item>
47 <el-form-item v-else :label="language==0?'所属国家/地区':'Nationality'" prop="countryId" required> 49 <el-form-item v-else :label="language==0?'所属国家/地区':'Nationality'" prop="countryId" required>
48 <el-select filterable v-model="form.countryId" style="width: 100%;" @change="changeCountry"> 50 <el-select v-model="form.countryId" filterable style="width: 100%;" @change="changeCountry">
49 <el-option v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName" 51 <el-option
50 :value="item.id"/> 52 v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName"
53 :value="item.id"
54 />
51 </el-select> 55 </el-select>
52 </el-form-item> 56 </el-form-item>
53 <el-form-item :label="language==0?'主要会员角色':'Roles'" prop="labelArr"> 57 <el-form-item :label="language==0?'主要会员角色':'Roles'" prop="labelArr">
54 <el-select v-model="form.labelArr" multiple> 58 <el-select v-model="form.labelArr" multiple>
55 <el-option v-for="l in labels" :key="l.value" :value="l.value" :label="language==0?l.label:l.enlabel"/> 59 <el-option v-for="l in labels" :key="l.value" :label="language==0?l.label:l.enlabel" :value="l.value" />
56 </el-select> 60 </el-select>
57 </el-form-item> 61 </el-form-item>
58 <el-form-item :label="language==0?'有效证件':'Valid Passport'" required> 62 <el-form-item :label="language==0?'有效证件':'Valid Passport'" required>
59 <image-upload v-model="form.passportUrl" :limit="1" :is-show-tip="false" 63 <image-upload
60 :button-text="language==0?'上传':'Upload'"/> 64 v-model="form.passportUrl" :button-text="language==0?'上传':'Upload'" :is-show-tip="false"
65 :limit="1"
66 />
61 <div class="tip"> 67 <div class="tip">
62 <span v-if="language==0">请上传有效身份证件扫描件,用于核实身份信息、申请签证邀请函及购买保险等</span> 68 <span v-if="language==0">请上传有效身份证件扫描件,用于核实身份信息、申请签证邀请函及购买保险等</span>
63 <span v-else>Please upload a scanned copy of your valid passport for verification of identity information, 69 <span v-else>Please upload a scanned copy of your valid passport for verification of identity information,
...@@ -68,16 +74,18 @@ ...@@ -68,16 +74,18 @@
68 74
69 </el-col> 75 </el-col>
70 <el-col :lg="12" class="touxiang"> 76 <el-col :lg="12" class="touxiang">
71 <el-form-item prop="picUrl" :label="language==0?'个人照片':'Photo'"> 77 <el-form-item :label="language==0?'个人照片':'Photo'" prop="picUrl">
72 <ImageUpload2 78 <ImageUpload2
73 v-model="form.picUrl" :crop-height="280" :crop-width="200" class="threeFour" :limit="1" 79 v-model="form.picUrl" :crop-height="280" :crop-width="200" :is-show-tip="false" :limit="1"
74 :is-show-tip="false" 80 class="threeFour"
75 /> 81 />
76 </el-form-item> 82 </el-form-item>
77 83
78 <el-form-item :label="language==0?'证件类型':'ID Type'" prop="idcType" 84 <el-form-item
79 :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1"> 85 :label="language==0?'证件类型':'ID Type'" :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1"
80 <el-select v-model="form.idcType" style="width: 100%;" :disabled="editgay"> 86 prop="idcType"
87 >
88 <el-select v-model="form.idcType" :disabled="editgay" style="width: 100%;">
81 <el-option 89 <el-option
82 v-for="item in certificates" 90 v-for="item in certificates"
83 :key="item.value" 91 :key="item.value"
...@@ -86,32 +94,36 @@ ...@@ -86,32 +94,36 @@
86 /> 94 />
87 </el-select> 95 </el-select>
88 </el-form-item> 96 </el-form-item>
89 <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode" 97 <el-form-item
90 :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1"> 98 :label="language==0?'证件号码':'ID NO'" :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1"
91 <el-input v-model="form.idcCode" :disabled="editgay" @blur="giveBirthDay"/> 99 prop="idcCode"
100 >
101 <el-input v-model="form.idcCode" :disabled="editgay" @blur="giveBirthDay" />
92 </el-form-item> 102 </el-form-item>
93 <el-form-item :label="language==0?'出生日期':'Date of Birth'" prop="birth" 103 <el-form-item
94 :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1" 104 :label="language==0?'出生日期':'Date of Birth'" :required="!form.wdsfMin&&form.labelArr.indexOf('0')>-1"
105 prop="birth"
95 > 106 >
96 <el-date-picker 107 <el-date-picker
97 v-model="form.birth" :disabled="form.idcType=='0'" 108 v-model="form.birth" :disabled="form.idcType=='0'"
98 style="width: 100%;" :disabled-date="disabledBirth" 109 :disabled-date="disabledBirth" format="YYYY-MM-DD"
99 type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" 110 style="width: 100%;" type="date" value-format="YYYY-MM-DD"
100 /> 111 />
101 </el-form-item> 112 </el-form-item>
102 113
103 <el-form-item :label="language==0?'手机号码':'Phone'" prop="phone"> 114 <el-form-item :label="language==0?'手机号码':'Phone'" prop="phone">
104 <el-input v-model="form.phone" type="text"/> 115 <el-input v-model="form.phone" type="text" />
105 </el-form-item> 116 </el-form-item>
106 117
107 <el-form-item :label="language==0?'详细地址':'Address'" prop="address"> 118 <el-form-item :label="language==0?'详细地址':'Address'" prop="address">
108 <el-cascader v-if="form.countryId == 240" 119 <el-cascader
120 v-if="form.countryId == 240"
109 v-model="form.regionId" 121 v-model="form.regionId"
110 style="width: 100%;margin-bottom: 15px"
111 :options="regionsList" 122 :options="regionsList"
112 :props="{ label:'text' }" 123 :props="{ label:'text' }"
124 style="width: 100%;margin-bottom: 15px"
113 /> 125 />
114 <el-input v-model="form.address" type="textarea" :rows="4"/> 126 <el-input v-model="form.address" :rows="4" type="textarea" />
115 127
116 </el-form-item> 128 </el-form-item>
117 129
...@@ -126,8 +138,8 @@ ...@@ -126,8 +138,8 @@
126 138
127 <template #footer> 139 <template #footer>
128 <div class="dialog-footer text-center"> 140 <div class="dialog-footer text-center">
129 <el-button type="primary" class="btn-lineG w200px" round @click="submitForm"> 141 <el-button class="btn-lineG w200px" round type="primary" @click="submitForm">
130 {{language == 0 ? '确定' : 'Save'}} 142 {{ language == 0 ? '确定' : 'Save' }}
131 </el-button> 143 </el-button>
132 </div> 144 </div>
133 </template> 145 </template>
...@@ -135,19 +147,19 @@ ...@@ -135,19 +147,19 @@
135 </template> 147 </template>
136 148
137 <script setup> 149 <script setup>
138 import {reactive, ref, toRefs, watch} from 'vue' 150 import { reactive, ref, toRefs, watch } from 'vue'
139 import {getCurrentInstance, nextTick, onMounted} from '@vue/runtime-core' 151 import { getCurrentInstance, nextTick, onMounted } from '@vue/runtime-core'
140 import * as match from '@/apiPc/match' 152 import * as match from '@/apiPc/match'
141 import {dayjs, ElMessage} from 'element-plus' 153 import { dayjs, ElMessage } from 'element-plus'
142 import _ from 'lodash' 154 import _ from 'lodash'
143 import {useStorage} from "@vueuse/core/index"; 155 import { useStorage } from '@vueuse/core/index'
144 import {checkWdsf, getCaptchaSms} from "@/apiPc/match"; 156 import { checkWdsf, getCaptchaSms } from '@/apiPc/match'
145 157
146 const language = useStorage('language', 0) 158 const language = useStorage('language', 0)
147 const certificates = ref([ 159 const certificates = ref([
148 { 160 {
149 value: '0', 161 value: '0',
150 disabled: language.value == 0 ? false : true, 162 disabled: language.value != 0,
151 label: language.value == 0 ? '居民身份证' : 'Resident ID card' 163 label: language.value == 0 ? '居民身份证' : 'Resident ID card'
152 }, 164 },
153 { 165 {
...@@ -159,7 +171,7 @@ const certificates = ref([ ...@@ -159,7 +171,7 @@ const certificates = ref([
159 label: language.value == 0 ? '其他' : 'Other' 171 label: language.value == 0 ? '其他' : 'Other'
160 } 172 }
161 ]) 173 ])
162 const {proxy} = getCurrentInstance() 174 const { proxy } = getCurrentInstance()
163 const emit = defineEmits(['submitForm']) 175 const emit = defineEmits(['submitForm'])
164 const data = reactive({ 176 const data = reactive({
165 form: { 177 form: {
...@@ -167,9 +179,9 @@ const data = reactive({ ...@@ -167,9 +179,9 @@ const data = reactive({
167 // sex: '0' 179 // sex: '0'
168 }, 180 },
169 rules_cn: { 181 rules_cn: {
170 xing: [{required: true, message: '必填', trigger: 'blur'}], 182 xing: [{ required: true, message: '必填', trigger: 'blur' }],
171 ming: [{required: true, message: '必填', trigger: 'blur'}], 183 ming: [{ required: true, message: '必填', trigger: 'blur' }],
172 countryId: [{required: true, message: '必填', trigger: 'change'}], 184 countryId: [{ required: true, message: '必填', trigger: 'change' }],
173 // idcType: [{required: true, message: '必填', trigger: 'change'}], 185 // idcType: [{required: true, message: '必填', trigger: 'change'}],
174 // idcCode: [{required: true, message: '必填', trigger: 'blur'}], 186 // idcCode: [{required: true, message: '必填', trigger: 'blur'}],
175 // phone: [{required: true, message: '必填', trigger: 'blur'}], 187 // phone: [{required: true, message: '必填', trigger: 'blur'}],
...@@ -177,13 +189,13 @@ const data = reactive({ ...@@ -177,13 +189,13 @@ const data = reactive({
177 // birth: [{required: true, message: '必填', trigger: 'change'}], 189 // birth: [{required: true, message: '必填', trigger: 'change'}],
178 // address: [{ required: true, message: '必填', trigger: 'blur' }], 190 // address: [{ required: true, message: '必填', trigger: 'blur' }],
179 // picUrl: [{required: true, message: '必填', trigger: 'blur'}], 191 // picUrl: [{required: true, message: '必填', trigger: 'blur'}],
180 sex: [{required: true, message: '必填', trigger: 'change'}], 192 sex: [{ required: true, message: '必填', trigger: 'change' }],
181 labelArr: [{required: true, message: '必填', trigger: 'change'}] 193 labelArr: [{ required: true, message: '必填', trigger: 'change' }]
182 }, 194 },
183 rules: { 195 rules: {
184 xing: [{required: true, message: 'required', trigger: 'blur'}], 196 xing: [{ required: true, message: 'required', trigger: 'blur' }],
185 ming: [{required: true, message: 'required', trigger: 'blur'}], 197 ming: [{ required: true, message: 'required', trigger: 'blur' }],
186 countryId: [{required: true, message: 'required', trigger: 'change'}], 198 countryId: [{ required: true, message: 'required', trigger: 'change' }],
187 // idcType: [{required: true, message: 'required', trigger: 'change'}], 199 // idcType: [{required: true, message: 'required', trigger: 'change'}],
188 // idcCode: [{required: true, message: 'required', trigger: 'blur'}], 200 // idcCode: [{required: true, message: 'required', trigger: 'blur'}],
189 // phone: [{required: true, message: 'required', trigger: 'blur'}], 201 // phone: [{required: true, message: 'required', trigger: 'blur'}],
...@@ -191,20 +203,20 @@ const data = reactive({ ...@@ -191,20 +203,20 @@ const data = reactive({
191 // birth: [{required: true, message: 'required', trigger: 'change'}], 203 // birth: [{required: true, message: 'required', trigger: 'change'}],
192 // address: [{ required: true, message: 'required', trigger: 'blur' }], 204 // address: [{ required: true, message: 'required', trigger: 'blur' }],
193 // picUrl: [{required: true, message: 'required', trigger: 'blur'}], 205 // picUrl: [{required: true, message: 'required', trigger: 'blur'}],
194 sex: [{required: true, message: 'required', trigger: 'change'}], 206 sex: [{ required: true, message: 'required', trigger: 'change' }],
195 labelArr: [{required: true, message: 'required', trigger: 'change'}] 207 labelArr: [{ required: true, message: 'required', trigger: 'change' }]
196 }, 208 },
197 show: false, 209 show: false,
198 countryList: [], 210 countryList: [],
199 regionsList: [], 211 regionsList: [],
200 labels: [ 212 labels: [
201 {value: '0', label: '运动员', enlabel: 'Athletes'}, 213 { value: '0', label: '运动员', enlabel: 'Athletes' },
202 {value: '1', label: '教练', enlabel: 'Coach'}, 214 { value: '1', label: '教练', enlabel: 'Coach' },
203 {value: '2', label: '领队', enlabel: 'Head of team'}, 215 { value: '2', label: '领队', enlabel: 'Head of team' },
204 {value: '4', label: '队医', enlabel: 'Team doctor'}, 216 { value: '4', label: '队医', enlabel: 'Team doctor' },
205 {value: '5', label: '翻译', enlabel: 'Interpreter'}, 217 { value: '5', label: '翻译', enlabel: 'Interpreter' },
206 {value: '6', label: '官员', enlabel: 'Official'}, 218 { value: '6', label: '官员', enlabel: 'Official' },
207 {value: '3', label: '其他', enlabel: 'Other'} 219 { value: '3', label: '其他', enlabel: 'Other' }
208 ], 220 ],
209 title: '添加选手信息', 221 title: '添加选手信息',
210 groupId: '0', 222 groupId: '0',
...@@ -224,13 +236,12 @@ const { ...@@ -224,13 +236,12 @@ const {
224 groupId, 236 groupId,
225 labels, 237 labels,
226 uType, 238 uType,
227 isMe,isCodeTrue 239 isMe, isCodeTrue
228 } = toRefs(data) 240 } = toRefs(data)
229 const card = ref('') 241 const card = ref('')
230 onMounted(() => { 242 onMounted(() => {
231 getCountryList() 243 getCountryList()
232 getRegionsList() 244 getRegionsList()
233
234 }) 245 })
235 const editgay = ref(false) 246 const editgay = ref(false)
236 const editDis = ref(false) 247 const editDis = ref(false)
...@@ -252,10 +263,10 @@ const open = (params) => { ...@@ -252,10 +263,10 @@ const open = (params) => {
252 match.getPersonInfoById(params.id).then(res => { 263 match.getPersonInfoById(params.id).then(res => {
253 form.value = res.data 264 form.value = res.data
254 form.value.id = params.id 265 form.value.id = params.id
255 if(form.value.wdsfMin){ 266 if (form.value.wdsfMin) {
256 editDis.value = true 267 editDis.value = true
257 } 268 }
258 if(form.value.idcType=='3'){ 269 if (form.value.idcType == '3') {
259 form.value.idcType = '' 270 form.value.idcType = ''
260 form.value.idcCode = '' 271 form.value.idcCode = ''
261 } 272 }
...@@ -267,9 +278,8 @@ const open = (params) => { ...@@ -267,9 +278,8 @@ const open = (params) => {
267 } else { 278 } else {
268 editgay.value = false 279 editgay.value = false
269 } 280 }
270
271 } 281 }
272 defineExpose({open}) 282 defineExpose({ open })
273 watch(show, (value) => { 283 watch(show, (value) => {
274 if (!value) { 284 if (!value) {
275 form.value = { 285 form.value = {
...@@ -285,17 +295,21 @@ watch(show, (value) => { ...@@ -285,17 +295,21 @@ watch(show, (value) => {
285 // proxy.$refs['dialogRef'].clearValidate() 295 // proxy.$refs['dialogRef'].clearValidate()
286 }) 296 })
287 }) 297 })
298
288 function disabledBirth(time) { 299 function disabledBirth(time) {
289 return time.getTime() > new Date().getTime() 300 return time.getTime() > new Date().getTime()
290 } 301 }
302
291 function resetCode() { 303 function resetCode() {
292 isCodeTrue.value = false 304 isCodeTrue.value = false
293 } 305 }
306
294 function getCountryList() { 307 function getCountryList() {
295 match.countryList().then(res => { 308 match.countryList().then(res => {
296 countryList.value = res.data 309 countryList.value = res.data
297 }) 310 })
298 } 311 }
312
299 function checkCard() { 313 function checkCard() {
300 if (!card.value) { 314 if (!card.value) {
301 if (language.value == 0) { 315 if (language.value == 0) {
...@@ -306,7 +320,7 @@ function checkCard() { ...@@ -306,7 +320,7 @@ function checkCard() {
306 return 320 return
307 } 321 }
308 // isShow.value = true 322 // isShow.value = true
309 checkWdsf({card: card.value}).then(res => { 323 checkWdsf({ card: card.value }).then(res => {
310 if (res.data.wdsfFlag == '0') { 324 if (res.data.wdsfFlag == '0') {
311 if (language.value == 0) { 325 if (language.value == 0) {
312 ElMessage.warning('WDSF会员号错误') 326 ElMessage.warning('WDSF会员号错误')
...@@ -323,7 +337,7 @@ function checkCard() { ...@@ -323,7 +337,7 @@ function checkCard() {
323 } 337 }
324 return 338 return
325 } 339 }
326 if(res.data.min){ 340 if (res.data.min) {
327 editDis.value = true 341 editDis.value = true
328 form.value.wdsfMin = res.data.min 342 form.value.wdsfMin = res.data.min
329 form.value.xing = res.data.surname 343 form.value.xing = res.data.surname
...@@ -338,6 +352,7 @@ function checkCard() { ...@@ -338,6 +352,7 @@ function checkCard() {
338 } 352 }
339 }) 353 })
340 } 354 }
355
341 function getRegionsList() { 356 function getRegionsList() {
342 match.regionsList().then(res => { 357 match.regionsList().then(res => {
343 regionsList.value = res.data 358 regionsList.value = res.data
...@@ -364,15 +379,16 @@ function checkCode() { ...@@ -364,15 +379,16 @@ function checkCode() {
364 } 379 }
365 380
366 function changeCountry() { 381 function changeCountry() {
367 if( form.value.countryId == 240 ){ 382 if (form.value.countryId == 240) {
368 form.value.idcType = '0' 383 form.value.idcType = '0'
369 } 384 }
370 } 385 }
386
371 function giveBirthDay() { 387 function giveBirthDay() {
372 // 判断身份证正确性/赋值生日 388 // 判断身份证正确性/赋值生日
373 if (form.value.idcType == '0') { 389 if (form.value.idcType == '0') {
374 if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(form.value.idcCode))) { 390 if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(form.value.idcCode))) {
375 ElMessage.warning(language.value == 0 ? '请输入正确的身份证号码' :'Please enter the correct Resident ID card') 391 ElMessage.warning(language.value == 0 ? '请输入正确的身份证号码' : 'Please enter the correct Resident ID card')
376 } else { 392 } else {
377 let tmpStr = '' 393 let tmpStr = ''
378 if (form.value.idcCode.length == 15) { 394 if (form.value.idcCode.length == 15) {
...@@ -397,6 +413,7 @@ function giveBirthDay() { ...@@ -397,6 +413,7 @@ function giveBirthDay() {
397 } 413 }
398 } 414 }
399 } 415 }
416
400 function submitForm() { 417 function submitForm() {
401 proxy.$refs['dialogRef'].validate((valid) => { 418 proxy.$refs['dialogRef'].validate((valid) => {
402 if (valid) { 419 if (valid) {
...@@ -413,20 +430,20 @@ function submitForm() { ...@@ -413,20 +430,20 @@ function submitForm() {
413 // return 430 // return
414 // } 431 // }
415 // } 432 // }
416 if(!editDis.value){ 433 if (!editDis.value) {
417 if(!form.value.xing){ 434 if (!form.value.xing) {
418 ElMessage.warning(language.value == 0 ? '请填写姓' :'Please fill in surname') 435 ElMessage.warning(language.value == 0 ? '请填写姓' : 'Please fill in surname')
419 return 436 return
420 } 437 }
421 } 438 }
422 if(!form.value.passportUrl){ 439 if (!form.value.passportUrl) {
423 ElMessage.warning(language.value == 0 ? '请上传护照文件' :'Please upload your passport file') 440 ElMessage.warning(language.value == 0 ? '请上传护照文件' : 'Please upload your passport file')
424 return 441 return
425 } 442 }
426 if (typeof (form.value.regionId) === 'object') { 443 if (typeof (form.value.regionId) === 'object') {
427 form.value.regionId = _.last(form.value.regionId) 444 form.value.regionId = _.last(form.value.regionId)
428 } 445 }
429 if(Array.isArray(form.value.passportUrl)){ 446 if (Array.isArray(form.value.passportUrl)) {
430 form.value.passportUrl = form.value.passportUrl[0].url 447 form.value.passportUrl = form.value.passportUrl[0].url
431 } 448 }
432 form.value.label = form.value.labelArr.toString() 449 form.value.label = form.value.labelArr.toString()
...@@ -542,6 +559,7 @@ function cancel() { ...@@ -542,6 +559,7 @@ function cancel() {
542 } 559 }
543 } 560 }
544 } 561 }
562
545 .el-input-group__append button.el-button, .el-input-group__append button.el-button:hover { 563 .el-input-group__append button.el-button, .el-input-group__append button.el-button:hover {
546 color: var(--el-color-primary); 564 color: var(--el-color-primary);
547 background: #efefff; 565 background: #efefff;
......
1 <template> 1 <template>
2 <el-dialog 2 <el-dialog
3 v-model="show" :title="title" width="1100px" 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="1100px"
6 > 7 >
7 <!-- 国际赛事--> 8 <!-- 国际赛事-->
8 <el-form ref="dialogRef" :model="form" :rules="language==0?rules:rules_cn" label-width="120px" inline> 9 <el-form ref="dialogRef" :model="form" :rules="language==0?rules:rules_cn" inline label-width="120px">
9 <el-row :gutter="30" class="mt30"> 10 <el-row :gutter="30" class="mt30">
10 <el-col :lg="12" class="touxiang"> 11 <el-col :lg="12" class="touxiang">
11 12
12 <el-form-item prop="picUrl" :label="language==0?'个人照片':'Photo'"> 13 <el-form-item :label="language==0?'个人照片':'Photo'" prop="picUrl">
13 <ImageUpload2 14 <ImageUpload2
14 v-model="form.picUrl" :crop-height="280" :crop-width="200" class="threeFour" :limit="1" 15 v-model="form.picUrl" :crop-height="280" :crop-width="200" :is-show-tip="false" :limit="1"
15 :is-show-tip="false" 16 class="threeFour"
16 /> 17 />
17 </el-form-item> 18 </el-form-item>
18 <el-form-item :label="language==0?'WDSF会员号':'WDSF MIN'" v-if="form.id"> 19 <el-form-item v-if="form.id" :label="language==0?'WDSF会员号':'WDSF MIN'">
19 {{ form.wdsfMin }} 20 {{ form.wdsfMin }}
20 </el-form-item> 21 </el-form-item>
21 <el-form-item :label="language==0?'WDSF会员号':'WDSF MIN'" required v-else> 22 <el-form-item v-else :label="language==0?'WDSF会员号':'WDSF MIN'" required>
22 <el-input type="text" v-model="form.wdsfMin" @change="resetCode" > 23 <el-input v-model="form.wdsfMin" type="text" @change="resetCode">
23 <template #append> 24 <template #append>
24 <el-button type="primary" plain style="width: 110px" @click="checkCard"> 25 <el-button plain style="width: 110px" type="primary" @click="checkCard">
25 <el-icon v-if="isCodeTrue" size="16" color="#67C23A"> 26 <el-icon v-if="isCodeTrue" color="#67C23A" size="16">
26 <CircleCheckFilled/> 27 <CircleCheckFilled />
27 </el-icon> 28 </el-icon>
28 <span v-else>{{ language == 0 ? '校验卡号' : 'Check Code' }}</span> 29 <span v-else>{{ language == 0 ? '校验卡号' : 'Check Code' }}</span>
29 </el-button> 30 </el-button>
...@@ -31,13 +32,13 @@ ...@@ -31,13 +32,13 @@
31 </el-input> 32 </el-input>
32 </el-form-item> 33 </el-form-item>
33 <el-form-item :label="language==0?'姓氏':'Surname'" prop="xing"> 34 <el-form-item :label="language==0?'姓氏':'Surname'" prop="xing">
34 <el-input v-model="form.xing" disabled/> 35 <el-input v-model="form.xing" disabled />
35 </el-form-item> 36 </el-form-item>
36 <el-form-item :label="language==0?'名':'Name'" prop="ming" required> 37 <el-form-item :label="language==0?'名':'Name'" prop="ming" required>
37 <el-input v-model="form.ming" disabled/> 38 <el-input v-model="form.ming" disabled />
38 </el-form-item> 39 </el-form-item>
39 <el-form-item :label="language==0?'证件类型':'ID Type'" prop="idcType" required> 40 <el-form-item :label="language==0?'证件类型':'ID Type'" prop="idcType" required>
40 <el-select v-model="form.idcType" style="width: 100%;" :disabled="editgay"> 41 <el-select v-model="form.idcType" :disabled="editgay" style="width: 100%;">
41 <el-option 42 <el-option
42 v-for="item in certificates" 43 v-for="item in certificates"
43 :key="item.value" 44 :key="item.value"
...@@ -47,12 +48,12 @@ ...@@ -47,12 +48,12 @@
47 </el-select> 48 </el-select>
48 </el-form-item> 49 </el-form-item>
49 <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode" required> 50 <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode" required>
50 <el-input v-model="form.idcCode" @blur="checkCode" :disabled="editgay"/> 51 <el-input v-model="form.idcCode" :disabled="editgay" @blur="checkCode" />
51 </el-form-item> 52 </el-form-item>
52 <el-form-item :label="language==0?'性别':'Gender'" prop="sex"> 53 <el-form-item :label="language==0?'性别':'Gender'" prop="sex">
53 <el-radio-group v-model="form.sex" :disabled="form.idcType=='0'"> 54 <el-radio-group v-model="form.sex" :disabled="form.idcType=='0'">
54 <el-radio value="0">{{ language==0?'女':'female' }}</el-radio> 55 <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio>
55 <el-radio value="1">{{ language==0?'男':'male' }}</el-radio> 56 <el-radio value="1">{{ language == 0 ? '男' : 'male' }}</el-radio>
56 </el-radio-group> 57 </el-radio-group>
57 </el-form-item> 58 </el-form-item>
58 </el-col> 59 </el-col>
...@@ -60,59 +61,65 @@ ...@@ -60,59 +61,65 @@
60 <el-form-item :label="language==0?'出生日期':'Date of Birth'" prop="birth"> 61 <el-form-item :label="language==0?'出生日期':'Date of Birth'" prop="birth">
61 <el-date-picker 62 <el-date-picker
62 v-model="form.birth" :disabled="form.idcType=='0'" 63 v-model="form.birth" :disabled="form.idcType=='0'"
63 style="width: 100%;" :disabled-date="disabledBirth" 64 :disabled-date="disabledBirth" format="YYYY-MM-DD"
64 type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" 65 style="width: 100%;" type="date" value-format="YYYY-MM-DD"
65 /> 66 />
66 </el-form-item> 67 </el-form-item>
67 <el-form-item :label="language==0?'主要会员角色':'Roles'" prop="labelArr"> 68 <el-form-item :label="language==0?'主要会员角色':'Roles'" prop="labelArr">
68 <el-select v-model="form.labelArr" multiple> 69 <el-select v-model="form.labelArr" multiple>
69 <el-option v-for="l in labels" :key="l.value" :value="l.value" :label="language==0?l.label:l.enlabel"/> 70 <el-option v-for="l in labels" :key="l.value" :label="language==0?l.label:l.enlabel" :value="l.value" />
70 </el-select> 71 </el-select>
71 </el-form-item> 72 </el-form-item>
72 <el-form-item :label="language==0?'手机号码':'Phone'" prop="phone"> 73 <el-form-item :label="language==0?'手机号码':'Phone'" prop="phone">
73 <el-input v-model="form.phone" type="number"/> 74 <el-input v-model="form.phone" type="number" />
74 </el-form-item> 75 </el-form-item>
75 76
76 77
77 <el-form-item :label="language==0?'所属国家/地区':'Country'" prop="countryId" required> 78 <el-form-item :label="language==0?'所属国家/地区':'Country'" prop="countryId" required>
78 <el-select disabled filterable v-model="form.countryId" style="width: 100%;" @change="changeCountryId"> 79 <el-select v-model="form.countryId" disabled filterable style="width: 100%;" @change="changeCountryId">
79 <el-option v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName" :value="item.id"/> 80 <el-option
81 v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName"
82 :value="item.id"
83 />
80 </el-select> 84 </el-select>
81 </el-form-item> 85 </el-form-item>
82 86
83 <el-form-item :label="language==0?'详细地址':'Address'" prop="address"> 87 <el-form-item :label="language==0?'详细地址':'Address'" prop="address">
84 <el-cascader v-if="form.countryId == 240" 88 <el-cascader
89 v-if="form.countryId == 240"
85 v-model="form.regionId" 90 v-model="form.regionId"
86 style="width: 100%;margin-bottom: 15px"
87 :options="regionsList" 91 :options="regionsList"
88 :props="{ label:'text' }" 92 :props="{ label:'text' }"
93 style="width: 100%;margin-bottom: 15px"
89 /> 94 />
90 <el-input v-model="form.address" type="textarea" :rows="4"/> 95 <el-input v-model="form.address" :rows="4" type="textarea" />
91
92 </el-form-item> 96 </el-form-item>
93
94 </el-col> 97 </el-col>
95 </el-row> 98 </el-row>
96 </el-form> 99 </el-form>
97 <Vcode :show="isShow" :z-index="3000" @success="codeSuccess()"></Vcode> 100 <Vcode :show="isShow" :z-index="3000" @success="codeSuccess()" />
98 101
99 <template #footer> 102 <template #footer>
100 <div class="dialog-footer text-center"> 103 <div class="dialog-footer text-center">
101 <el-button type="primary" class="btn-lineG w200px" round @click="submitForm">{{ language==0?'确定':'Save' }}</el-button> 104 <el-button class="btn-lineG w200px" round type="primary" @click="submitForm">{{
105 language == 0 ? '确定' : 'Save'
106 }}
107 </el-button>
102 </div> 108 </div>
103 </template> 109 </template>
104 </el-dialog> 110 </el-dialog>
105 </template> 111 </template>
106 112
107 <script setup> 113 <script setup>
108 import {reactive, ref, toRefs, watch} from 'vue' 114 import { reactive, ref, toRefs, watch } from 'vue'
109 import {getCurrentInstance, nextTick, onMounted} from '@vue/runtime-core' 115 import { getCurrentInstance, nextTick, onMounted } from '@vue/runtime-core'
110 import * as match from '@/apiPc/match' 116 import * as match from '@/apiPc/match'
111 import {ElMessage} from 'element-plus' 117 import { ElMessage } from 'element-plus'
112 import _ from 'lodash' 118 import _ from 'lodash'
113 import {useStorage} from "@vueuse/core/index"; 119 import { useStorage } from '@vueuse/core/index'
114 import {checkWdsf, getCaptchaSms} from "@/apiPc/match"; 120 import { checkWdsf, getCaptchaSms } from '@/apiPc/match'
115 const language= useStorage('language',0) 121
122 const language = useStorage('language', 0)
116 const certificates = ref([ 123 const certificates = ref([
117 { 124 {
118 value: '0', 125 value: '0',
...@@ -127,50 +134,62 @@ const certificates = ref([ ...@@ -127,50 +134,62 @@ const certificates = ref([
127 label: language.value == 0 ? '其他' : 'Other' 134 label: language.value == 0 ? '其他' : 'Other'
128 } 135 }
129 ]) 136 ])
130 const {proxy} = getCurrentInstance() 137 const { proxy } = getCurrentInstance()
131 const emit = defineEmits(['submitForm']) 138 const emit = defineEmits(['submitForm'])
132 const data = reactive({ 139 const data = reactive({
133 form: { 140 form: {
134 // countryId: 240 141 // countryId: 240
135 sex:'0' 142 sex: '0'
136 }, 143 },
137 rules_cn:{ 144 rules_cn: {
138 // xing: [{required: true, message: 'required', trigger: 'blur'}], 145 // xing: [{required: true, message: 'required', trigger: 'blur'}],
139 ming: [{required: true, message: 'required', trigger: 'blur'}], 146 ming: [{ required: true, message: 'required', trigger: 'blur' }],
140 // countryId: [{required: true, message: 'required', trigger: 'change'}], 147 // countryId: [{required: true, message: 'required', trigger: 'change'}],
141 idcType: [{required: true, message: 'required', trigger: 'change'}], 148 idcType: [{ required: true, message: 'required', trigger: 'change' }],
142 idcCode: [{required: true, message: 'required', trigger: 'blur'}], 149 idcCode: [{ required: true, message: 'required', trigger: 'blur' }],
143 // phone: [{required: true, message: 'required', trigger: 'blur'}], 150 // phone: [{required: true, message: 'required', trigger: 'blur'}],
144 // regionId: [{ required: true, message: 'required', trigger: 'change' }], 151 // regionId: [{ required: true, message: 'required', trigger: 'change' }],
145 // birth: [{required: true, message: 'required', trigger: 'change'}], 152 // birth: [{required: true, message: 'required', trigger: 'change'}],
146 // address: [{ required: true, message: 'required', trigger: 'blur' }], 153 // address: [{ required: true, message: 'required', trigger: 'blur' }],
147 // picUrl: [{required: true, message: 'required', trigger: 'blur'}], 154 // picUrl: [{required: true, message: 'required', trigger: 'blur'}],
148 sex: [{required: true, message: 'required', trigger: 'change'}], 155 sex: [{ required: true, message: 'required', trigger: 'change' }],
149 labelArr: [{required: true, message: 'required', trigger: 'change'}] 156 labelArr: [{ required: true, message: 'required', trigger: 'change' }]
150 }, 157 },
151 show: false, 158 show: false,
152 countryList: [], 159 countryList: [],
153 regionsList: [], 160 regionsList: [],
154 labels: [ 161 labels: [
155 {value: '0', label: '运动员', enlabel: 'Sportsman'}, 162 { value: '0', label: '运动员', enlabel: 'Sportsman' },
156 {value: '1', label: '教练', enlabel: 'Coach'}, 163 { value: '1', label: '教练', enlabel: 'Coach' },
157 {value: '2', label: '领队', enlabel: 'Head Of Team'}, 164 { value: '2', label: '领队', enlabel: 'Head Of Team' },
158 {value: '4', label: '队医', enlabel: 'Team Doctor'}, 165 { value: '4', label: '队医', enlabel: 'Team Doctor' },
159 {value: '5', label: '翻译', enlabel: 'Interpreter'}, 166 { value: '5', label: '翻译', enlabel: 'Interpreter' },
160 {value: '6', label: '官员', enlabel: 'Official'}, 167 { value: '6', label: '官员', enlabel: 'Official' },
161 {value: '3', label: '其他', enlabel: 'Other'} 168 { value: '3', label: '其他', enlabel: 'Other' }
162 ], 169 ],
163 title: '添加选手信息', 170 title: '添加选手信息',
164 groupId: '0', 171 groupId: '0',
165 showRequire: false, 172 showRequire: false,
166 isMe:false 173 isMe: false
167 }) 174 })
168 const {showRequire, form, rules,rules_cn, show, countryList, regionsList, title, groupId, labels,uType,isMe} = toRefs(data) 175 const {
176 showRequire,
177 form,
178 rules,
179 rules_cn,
180 show,
181 countryList,
182 regionsList,
183 title,
184 groupId,
185 labels,
186 uType,
187 isMe
188 } = toRefs(data)
169 const isShow = ref(false) 189 const isShow = ref(false)
170 onMounted(() => { 190 onMounted(() => {
171 getCountryList() 191 getCountryList()
172 getRegionsList() 192 getRegionsList()
173
174 }) 193 })
175 const editgay = ref(false) 194 const editgay = ref(false)
176 const open = (params) => { 195 const open = (params) => {
...@@ -179,15 +198,15 @@ const open = (params) => { ...@@ -179,15 +198,15 @@ const open = (params) => {
179 title.value = params.title 198 title.value = params.title
180 groupId.value = params.groupId || '0' 199 groupId.value = params.groupId || '0'
181 isMe.value = params.isMe 200 isMe.value = params.isMe
182 if(params.label){ 201 if (params.label) {
183 form.value.labelArr= [params.label] 202 form.value.labelArr = [params.label]
184 } 203 }
185 if(language.value == 0){ 204 if (language.value == 0) {
186 form.value.countryId = 240 205 form.value.countryId = 240
187 form.value.idcType = '0' 206 form.value.idcType = '0'
188 } 207 }
189 if(isMe.value){ 208 if (isMe.value) {
190 //个人 209 // 个人
191 match.getMyPersonInfo().then(res => { 210 match.getMyPersonInfo().then(res => {
192 form.value = res.data 211 form.value = res.data
193 form.value.id = res.data.id 212 form.value.id = res.data.id
...@@ -214,13 +233,13 @@ const open = (params) => { ...@@ -214,13 +233,13 @@ const open = (params) => {
214 } 233 }
215 } 234 }
216 } 235 }
217 defineExpose({open}) 236 defineExpose({ open })
218 watch(show, (value) => { 237 watch(show, (value) => {
219 if (!value) { 238 if (!value) {
220 form.value = { 239 form.value = {
221 sex:'0' 240 sex: '0'
222 } 241 }
223 if(language.value == 0){ 242 if (language.value == 0) {
224 form.value.countryId = 240 243 form.value.countryId = 240
225 } 244 }
226 } 245 }
...@@ -228,6 +247,7 @@ watch(show, (value) => { ...@@ -228,6 +247,7 @@ watch(show, (value) => {
228 // proxy.$refs['dialogRef'].clearValidate() 247 // proxy.$refs['dialogRef'].clearValidate()
229 }) 248 })
230 }) 249 })
250
231 function checkCard() { 251 function checkCard() {
232 if (!form.value.card) { 252 if (!form.value.card) {
233 if (language.value == 0) { 253 if (language.value == 0) {
...@@ -239,12 +259,13 @@ function checkCard() { ...@@ -239,12 +259,13 @@ function checkCard() {
239 } 259 }
240 isShow.value = true 260 isShow.value = true
241 } 261 }
262
242 function codeSuccess(msg) { 263 function codeSuccess(msg) {
243 console.log('验证通过' + msg); 264 console.log('验证通过' + msg)
244 isShow.value = false 265 isShow.value = false
245 checkWdsf({card: form.value.wdsfMin}).then(res => { 266 checkWdsf({ card: form.value.wdsfMin }).then(res => {
246 form.value = res.data 267 form.value = res.data
247 if(form.value.passportUrl){ 268 if (form.value.passportUrl) {
248 269
249 } 270 }
250 if (!form.value.sex) { 271 if (!form.value.sex) {
...@@ -281,7 +302,7 @@ function getRegionsList() { ...@@ -281,7 +302,7 @@ function getRegionsList() {
281 } 302 }
282 303
283 function checkCode() { 304 function checkCode() {
284 if (form.value.idcType=='0' && form.value.idcCode) { 305 if (form.value.idcType == '0' && form.value.idcCode) {
285 giveBirthDay() 306 giveBirthDay()
286 var obj = { 307 var obj = {
287 idcType: form.value.idcType, 308 idcType: form.value.idcType,
...@@ -341,7 +362,7 @@ function submitForm() { ...@@ -341,7 +362,7 @@ function submitForm() {
341 if (showRequire.value) { 362 if (showRequire.value) {
342 var pattern = /^1[3456789]\d{9}$/ 363 var pattern = /^1[3456789]\d{9}$/
343 if (!pattern.test(form.value.phone)) { 364 if (!pattern.test(form.value.phone)) {
344 ElMessage.warning(language.value == 0 ?'请输入正确的手机号':'Please enter the correct mobile phone number') 365 ElMessage.warning(language.value == 0 ? '请输入正确的手机号' : 'Please enter the correct mobile phone number')
345 return 366 return
346 } 367 }
347 } 368 }
...@@ -355,7 +376,7 @@ function submitForm() { ...@@ -355,7 +376,7 @@ function submitForm() {
355 // 团队 376 // 团队
356 form.value.groupId = groupId.value 377 form.value.groupId = groupId.value
357 match.savePersonForMyGroup(form.value).then(res => { 378 match.savePersonForMyGroup(form.value).then(res => {
358 ElMessage.success(language.value == 0 ?'保存成功':'Save successful') 379 ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful')
359 show.value = false 380 show.value = false
360 emit('submitForm') 381 emit('submitForm')
361 }) 382 })
...@@ -363,20 +384,20 @@ function submitForm() { ...@@ -363,20 +384,20 @@ function submitForm() {
363 if (editgay.value) { 384 if (editgay.value) {
364 // id不是0 385 // id不是0
365 match.editPersonInfo(form.value).then(res => { 386 match.editPersonInfo(form.value).then(res => {
366 ElMessage.success(language.value == 0 ?'保存成功':'Save successful') 387 ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful')
367 show.value = false 388 show.value = false
368 emit('submitForm') 389 emit('submitForm')
369 }) 390 })
370 } else { 391 } else {
371 if(isMe.value){ 392 if (isMe.value) {
372 match.saveMyBaseInfo(form.value).then(res => { 393 match.saveMyBaseInfo(form.value).then(res => {
373 ElMessage.success(language.value == 0 ?'保存成功':'Save successful') 394 ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful')
374 show.value = false 395 show.value = false
375 emit('submitForm') 396 emit('submitForm')
376 }) 397 })
377 } else { 398 } else {
378 match.savePersonForMyPerson(form.value).then(res => { 399 match.savePersonForMyPerson(form.value).then(res => {
379 ElMessage.success(language.value == 0 ?'保存成功':'Save successful') 400 ElMessage.success(language.value == 0 ? '保存成功' : 'Save successful')
380 show.value = false 401 show.value = false
381 emit('submitForm') 402 emit('submitForm')
382 }) 403 })
...@@ -390,6 +411,7 @@ function submitForm() { ...@@ -390,6 +411,7 @@ function submitForm() {
390 function cancel() { 411 function cancel() {
391 show.value = false 412 show.value = false
392 } 413 }
414
393 function disabledBirth(time) { 415 function disabledBirth(time) {
394 return time.getTime() > new Date().getTime() 416 return time.getTime() > new Date().getTime()
395 } 417 }
...@@ -464,6 +486,7 @@ function disabledBirth(time) { ...@@ -464,6 +486,7 @@ function disabledBirth(time) {
464 } 486 }
465 } 487 }
466 } 488 }
489
467 .el-input-group__append button.el-button, .el-input-group__append button.el-button:hover { 490 .el-input-group__append button.el-button, .el-input-group__append button.el-button:hover {
468 color: var(--el-color-primary); 491 color: var(--el-color-primary);
469 background: #efefff; 492 background: #efefff;
......
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
72 72
73 <el-form-item :label="language==0?'有效证件':'Valid Passport'" required> 73 <el-form-item :label="language==0?'有效证件':'Valid Passport'" required>
74 <image-upload 74 <image-upload
75 ref="uploadPassportRef" v-model="form.passportUrl" :action="'/common/getPersonInfoFromCert/3'" 75 ref="uploadPassportRef" v-model="form.passportUrl" :action="'/common/getPersonInfoFromCert/6'"
76 :button-text="language==0?'上传':'Upload'" 76 :button-text="language==0?'上传':'Upload'"
77 :is-show-tip="false" 77 :is-show-tip="false"
78 :limit="1" 78 :limit="1"
...@@ -87,6 +87,10 @@ ...@@ -87,6 +87,10 @@
87 </div> 87 </div>
88 88
89 </el-form-item> 89 </el-form-item>
90 <el-form-item :label="language==0?'姓名':'Name'" required>
91 <el-input v-model="form.certName" />
92 </el-form-item>
93
90 <el-form-item :label="language==0?'性别':'Gender'" required> 94 <el-form-item :label="language==0?'性别':'Gender'" required>
91 <el-radio-group v-model="form.sex"> 95 <el-radio-group v-model="form.sex">
92 <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> 96 <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio>
...@@ -275,6 +279,10 @@ function submitForm() { ...@@ -275,6 +279,10 @@ function submitForm() {
275 ElMessage.warning(language.value == 0 ? '请选择性别' : 'Please select your gender') 279 ElMessage.warning(language.value == 0 ? '请选择性别' : 'Please select your gender')
276 return 280 return
277 } 281 }
282 if (!form.value.certName) {
283 ElMessage.warning(language.value == 0 ? '请输入姓名' : 'Please enter your name')
284 return
285 }
278 if (!form.value.passportUrl || form.value.passportUrl == '' || form.value.passportUrl.length == 0) { 286 if (!form.value.passportUrl || form.value.passportUrl == '' || form.value.passportUrl.length == 0) {
279 ElMessage.warning(language.value == 0 ? '请上传证件' : 'Please upload passport file') 287 ElMessage.warning(language.value == 0 ? '请上传证件' : 'Please upload passport file')
280 return 288 return
......
1 <template> 1 <template>
2 <el-dialog v-model="show" :title="title" width="1000px" append-to-body @close="close"> 2 <el-dialog v-model="show" :title="title" append-to-body width="1000px" @close="close">
3 <div class="funcBtns"> 3 <div class="funcBtns">
4 <el-button type="primary" @click="addMember"> 4 <el-button type="primary" @click="addMember">
5 {{ language == 0 ? '添加选手' : 'Add Player' }} 5 {{ language == 0 ? '添加选手' : 'Add Player' }}
6 </el-button> 6 </el-button>
7 <!-- <el-button type="primary" plain @click="importSportman" v-if="!isNational">--> 7 <!-- <el-button type="primary" plain @click="importSportman" v-if="!isNational">-->
8 <!-- {{language == 0 ? '导入选手' : 'Import Player'}}--> 8 <!-- {{language == 0 ? '导入选手' : 'Import Player'}}-->
9 <!-- </el-button>--> 9 <!-- </el-button>-->
10 </div> 10 </div>
11 <div class="from-Card"> 11 <div class="from-Card">
12 <el-form :inline="true" :model="query" class="mt20" label-width="60" size="small"> 12 <el-form :inline="true" :model="query" class="mt20" label-width="60" size="small">
13 <el-form-item :label="language==0?'姓名':'Name'"> 13 <el-form-item :label="language==0?'姓名':'Name'">
14 <el-input v-model="query.realName" style="width: 120px;" clearable/> 14 <el-input v-model="query.realName" clearable style="width: 120px;" />
15 </el-form-item> 15 </el-form-item>
16 <el-form-item :label="language==0?'证件类型':'ID Type'" v-if="!isNational"> 16 <el-form-item v-if="!isNational" :label="language==0?'证件类型':'ID Type'">
17 <el-select v-model="query.idcType" style="width: 100px;" clearable @change="getList"> 17 <el-select v-model="query.idcType" clearable style="width: 100px;" @change="getList">
18 <el-option 18 <el-option
19 v-for="item in certificates" 19 v-for="item in certificates"
20 :key="item.value" 20 :key="item.value"
...@@ -23,36 +23,60 @@ ...@@ -23,36 +23,60 @@
23 /> 23 />
24 </el-select> 24 </el-select>
25 </el-form-item> 25 </el-form-item>
26 <el-form-item :label="language==0?'证件号码':'ID NO.'" v-if="!isNational"> 26 <el-form-item v-if="!isNational" :label="language==0?'证件号码':'ID NO.'">
27 <el-input v-model="query.idcCode" style="width: 120px;" clearable/> 27 <el-input v-model="query.idcCode" clearable style="width: 120px;" />
28 </el-form-item> 28 </el-form-item>
29 <!-- <el-form-item label="角色">--> 29 <!-- <el-form-item label="角色">-->
30 <!-- <el-input v-model="query.label" style="width: 120px;" clearable/>--> 30 <!-- <el-input v-model="query.label" style="width: 120px;" clearable/>-->
31 <!-- </el-form-item>--> 31 <!-- </el-form-item>-->
32 <el-form-item> 32 <el-form-item>
33 <el-button type="primary" @click="getList">{{language==0?'查询':'Search'}}</el-button> 33 <el-button type="primary" @click="getList">{{ language == 0 ? '查询' : 'Search' }}</el-button>
34 </el-form-item> 34 </el-form-item>
35 </el-form> 35 </el-form>
36 </div> 36 </div>
37 <p v-if="noPhotoCanSign == 0" class="text-danger">{{ language==0?'*需上传照片才可报名':'*Please upload photo before sign up' }}</p> 37 <p v-if="noPhotoCanSign == 0" class="text-danger">
38 <el-table ref="allSportmenTable" v-loading="loading" :data="tableData" height="60vh" 38 {{ language == 0 ? '*需上传照片才可报名' : '*Please upload photo before sign up' }}</p>
39 @selection-change="handleSelectionChange"> 39 <el-table
40 <!-- <el-table-column type="selection" :label="language==0?'选择':'Selection'" :selectable="selectable"/>--> 40 ref="allSportmenTable" v-loading="loading" :data="tableData" height="60vh"
41 <el-table-column align="center" type="index" :label="language==0?'序号':'Index'" width="70" :selectable="selectable"/> 41 @selection-change="handleSelectionChange"
42 <el-table-column v-if="isNational" :label="language==0?'WDSF 会员号':'WDSF MIN'" prop="wdsfMin" width="100"/> 42 >
43 <el-table-column align="center" v-if="!isNational" :label="language==0?'姓名':'Real Name'" prop="realName" min-width="100"/> 43 <!-- <el-table-column type="selection" :label="language==0?'选择':'Selection'" :selectable="selectable"/>-->
44 <el-table-column align="center" v-if="isNational" :label="language==0?'姓氏':'Surname'" prop="xing" min-width="100"/> 44 <el-table-column
45 <el-table-column align="center" v-if="isNational" :label="language==0?'名':'Name'" prop="ming" min-width="100"/> 45 :label="language==0?'序号':'Index'" :selectable="selectable" align="center" type="index"
46 <el-table-column align="center" v-if="isNational" :label="language==0?'代表':'Representing'" prop="representing" min-width="120"/> 46 width="70"
47 <el-table-column align="center" v-if="!isNational" :label="language==0?'所属国家/地区':'Nationality'" prop="countryName" min-width="110"/> 47 />
48 <el-table-column :label="language==0?'性别':'Gender'" prop="sexStr"/> 48 <el-table-column v-if="isNational" :label="language==0?'WDSF 会员号':'WDSF MIN'" prop="wdsfMin" width="100" />
49 <el-table-column align="center" v-if="isNational" :label="language==0?'年龄组':'Age group'" prop="ageGroup" min-width="100"/> 49 <el-table-column
50 <el-table-column align="center" v-if="isNational" :label="language==0?'舞种':'Division'" prop="division" min-width="100"/> 50 v-if="!isNational" :label="language==0?'姓名':'Real Name'" align="center" min-width="100"
51 prop="realName"
52 />
53 <el-table-column
54 v-if="isNational" :label="language==0?'姓氏':'Surname'" align="center" min-width="100"
55 prop="xing"
56 />
57 <el-table-column v-if="isNational" :label="language==0?'名':'Name'" align="center" min-width="100" prop="ming" />
58 <el-table-column
59 v-if="isNational" :label="language==0?'代表':'Representing'" align="center" min-width="120"
60 prop="representing"
61 />
62 <el-table-column
63 v-if="!isNational" :label="language==0?'所属国家/地区':'Nationality'" align="center"
64 min-width="110" prop="countryName"
65 />
66 <el-table-column :label="language==0?'性别':'Gender'" prop="sexStr" />
67 <el-table-column
68 v-if="isNational" :label="language==0?'年龄组':'Age group'" align="center" min-width="100"
69 prop="ageGroup"
70 />
71 <el-table-column
72 v-if="isNational" :label="language==0?'舞种':'Division'" align="center" min-width="100"
73 prop="division"
74 />
51 75
52 <el-table-column v-if="!isNational" :label="language==0?'年龄':'Age'" prop="age"/> 76 <el-table-column v-if="!isNational" :label="language==0?'年龄':'Age'" prop="age" />
53 <el-table-column v-if="!isNational" :label="language==0?'出生日期':'Date of Birth'" prop="birth" width="130"/> 77 <el-table-column v-if="!isNational" :label="language==0?'出生日期':'Date of Birth'" prop="birth" width="130" />
54 <el-table-column v-if="!isNational" :label="language==0?'证件类型':'ID Type'" prop="idcTypeStr" width="120"/> 78 <el-table-column v-if="!isNational" :label="language==0?'证件类型':'ID Type'" prop="idcTypeStr" width="120" />
55 <el-table-column v-if="!isNational" :label="language==0?'证件号码':'ID NO.'" prop="idcCode" width="200"/> 79 <el-table-column v-if="!isNational" :label="language==0?'证件号码':'ID NO.'" prop="idcCode" width="200" />
56 <!-- <el-table-column label="会员角色" width="200">--> 80 <!-- <el-table-column label="会员角色" width="200">-->
57 <!-- <template #default="scope">--> 81 <!-- <template #default="scope">-->
58 <!-- <div>--> 82 <!-- <div>-->
...@@ -70,60 +94,61 @@ ...@@ -70,60 +94,61 @@
70 <!-- </div>--> 94 <!-- </div>-->
71 <!-- </template>--> 95 <!-- </template>-->
72 <!-- </el-table-column>--> 96 <!-- </el-table-column>-->
73 <el-table-column :label="language==0?'操作':'Actions'" width="180" fixed="right" align="center"> 97 <el-table-column :label="language==0?'操作':'Actions'" align="center" fixed="right" width="180">
74 <template #default="scope"> 98 <template #default="scope">
75 <el-button link v-if="!isNational&&(!scope.row.phone)" type="danger" @click="editPerson(scope.row)"> 99 <el-button v-if="!isNational&&(!scope.row.phone)" link type="danger" @click="editPerson(scope.row)">
76 {{language==0?'完善信息':'Complete'}} 100 {{ language == 0 ? '完善信息' : 'Complete' }}
77 </el-button> 101 </el-button>
78 <el-button link v-else type="primary" @click="editPerson(scope.row)"> 102 <el-button v-else link type="primary" @click="editPerson(scope.row)">
79 {{language==0?'编辑':'Edit'}} 103 {{ language == 0 ? '编辑' : 'Edit' }}
80 </el-button> 104 </el-button>
81 <el-button link type="primary" @click="delperson(scope.row)"> 105 <el-button link type="primary" @click="delperson(scope.row)">
82 {{language==0?'删除':'Delete'}} 106 {{ language == 0 ? '删除' : 'Delete' }}
83 </el-button> 107 </el-button>
84 </template> 108 </template>
85 </el-table-column> 109 </el-table-column>
86 </el-table> 110 </el-table>
87 <paginationPc 111 <paginationPc
88 v-show="total>0" 112 v-show="total>0"
89 v-model:page="query.pageNum"
90 v-model:limit="query.pageSize" 113 v-model:limit="query.pageSize"
114 v-model:page="query.pageNum"
91 :total="total" 115 :total="total"
92 @pagination="getList" 116 @pagination="getList"
93 /> 117 />
94 <!-- <template #footer>--> 118 <!-- <template #footer>-->
95 <!-- <div class="dialog-footer text-center">--> 119 <!-- <div class="dialog-footer text-center">-->
96 <!-- <el-button type="primary" @click="submit">{{language==0?'确定':'Confirm'}}</el-button>--> 120 <!-- <el-button type="primary" @click="submit">{{language==0?'确定':'Confirm'}}</el-button>-->
97 <!-- <el-button @click="cancel">{{language==0?'取消':'Cancel'}}</el-button>--> 121 <!-- <el-button @click="cancel">{{language==0?'取消':'Cancel'}}</el-button>-->
98 <!-- </div>--> 122 <!-- </div>-->
99 <!-- </template>--> 123 <!-- </template>-->
100 </el-dialog> 124 </el-dialog>
101 125
102 <!-- 国内赛运动员--> 126 <!-- 国内赛运动员-->
103 <add-coach ref="dialogAddCoach" @submitForm="getList"/> 127 <add-coach ref="dialogAddCoach" @submitForm="getList" />
104 <!-- 国际赛运动员--> 128 <!-- 国际赛运动员-->
105 <add-wdsf ref="dialogAddWdsf" @submitForm="getList"/> 129 <add-wdsf ref="dialogAddWdsf" @submitForm="getList" />
106 <Import ref="dialogImportProps" @submitForm="getList"/> 130 <Import ref="dialogImportProps" @submitForm="getList" />
107 </template> 131 </template>
108 132
109 <script setup> 133 <script setup>
110 import {reactive, ref, toRefs, watch} from 'vue' 134 import { reactive, ref, toRefs, watch } from 'vue'
111 import {getCurrentInstance, nextTick, onMounted} from '@vue/runtime-core' 135 import { getCurrentInstance, nextTick, onMounted } from '@vue/runtime-core'
112 import * as match from '@/apiPc/match' 136 import * as match from '@/apiPc/match'
113 import AddCoach from '../components/addCoach' 137 import AddCoach from '../components/addCoach'
114 import AddWdsf from '../components/addWdsf' 138 import AddWdsf from '../components/addWdsf'
115 import Import from '../components/import' 139 import Import from '../components/import'
116 import {useStorage} from "@vueuse/core/index"; 140 import { useStorage } from '@vueuse/core/index'
117 import {ElMessage, ElMessageBox} from "element-plus"; 141 import { ElMessage, ElMessageBox } from 'element-plus'
118 const language= useStorage('language',0) 142
143 const language = useStorage('language', 0)
119 144
120 const {proxy} = getCurrentInstance() 145 const { proxy } = getCurrentInstance()
121 const emit = defineEmits([ 'transfer']) 146 const emit = defineEmits(['transfer'])
122 const data = reactive({ 147 const data = reactive({
123 query: { 148 query: {
124 label:'0', 149 label: '0',
125 pageSize: 10, 150 pageSize: 10,
126 pageNum:1 151 pageNum: 1
127 }, 152 },
128 tableData: [], 153 tableData: [],
129 show: false, 154 show: false,
...@@ -131,9 +156,9 @@ const data = reactive({ ...@@ -131,9 +156,9 @@ const data = reactive({
131 title: '选择运动员', 156 title: '选择运动员',
132 noPhotoCanSign: 0, 157 noPhotoCanSign: 0,
133 total: 0, 158 total: 0,
134 isNational:false 159 isNational: false
135 }) 160 })
136 const {query, tableData, show, title, loading, noPhotoCanSign,total,isNational} = toRefs(data) 161 const { query, tableData, show, title, loading, noPhotoCanSign, total, isNational } = toRefs(data)
137 const certificates = ref([ 162 const certificates = ref([
138 { 163 {
139 value: '0', 164 value: '0',
...@@ -201,9 +226,11 @@ function submit() { ...@@ -201,9 +226,11 @@ function submit() {
201 // emit('submitForm', choosedList) 226 // emit('submitForm', choosedList)
202 show.value = false 227 show.value = false
203 } 228 }
229
204 function close() { 230 function close() {
205 emit('submitForm') 231 emit('submitForm')
206 } 232 }
233
207 function cancel() { 234 function cancel() {
208 show.value = false 235 show.value = false
209 } 236 }
...@@ -212,24 +239,25 @@ function editPerson(row) { ...@@ -212,24 +239,25 @@ function editPerson(row) {
212 console.log(isNational.value) 239 console.log(isNational.value)
213 const params = { 240 const params = {
214 id: row.id, 241 id: row.id,
215 title: language.value == 0 ?'编辑人员':'Edit Person', 242 title: language.value == 0 ? '编辑人员' : 'Edit Person',
216 groupId: groupId, 243 groupId: groupId,
217 label: '0' 244 label: '0'
218 } 245 }
219 if (isNational.value){ 246 if (isNational.value) {
220 proxy.$refs['dialogAddWdsf'].open(params) 247 proxy.$refs['dialogAddWdsf'].open(params)
221 } else { 248 } else {
222 proxy.$refs['dialogAddCoach'].open(params) 249 proxy.$refs['dialogAddCoach'].open(params)
223 } 250 }
224 } 251 }
252
225 function delperson(p) { 253 function delperson(p) {
226 //删除团队下的人 254 // 删除团队下的人
227 let text = '' 255 let text = ''
228 let t = '提示' 256 let t = '提示'
229 let s = '确定' 257 let s = '确定'
230 let c = '取消' 258 let c = '取消'
231 let msg = '操作成功' 259 let msg = '操作成功'
232 if (language.value==0){ 260 if (language.value == 0) {
233 text = `确定删除${p.realName}吗?` 261 text = `确定删除${p.realName}吗?`
234 } else { 262 } else {
235 text = `Delete ${p.realName}?` 263 text = `Delete ${p.realName}?`
...@@ -249,15 +277,16 @@ function delperson(p) { ...@@ -249,15 +277,16 @@ function delperson(p) {
249 }) 277 })
250 }) 278 })
251 } 279 }
280
252 function addMember() { 281 function addMember() {
253 console.log(isNational.value) 282 console.log(isNational.value)
254 const params = { 283 const params = {
255 title: language.value == 0 ?'添加人员':'Add', 284 title: language.value == 0 ? '添加人员' : 'Add',
256 id: 0, 285 id: 0,
257 groupId: groupId, 286 groupId: groupId,
258 label: '0' 287 label: '0'
259 } 288 }
260 if (isNational.value){ 289 if (isNational.value) {
261 proxy.$refs['dialogAddWdsf'].open(params) 290 proxy.$refs['dialogAddWdsf'].open(params)
262 } else { 291 } else {
263 proxy.$refs['dialogAddCoach'].open(params) 292 proxy.$refs['dialogAddCoach'].open(params)
...@@ -272,7 +301,7 @@ function importSportman() { ...@@ -272,7 +301,7 @@ function importSportman() {
272 proxy.$refs['dialogImportProps'].open(params) 301 proxy.$refs['dialogImportProps'].open(params)
273 } 302 }
274 </script> 303 </script>
275 <style scoped lang="scss"> 304 <style lang="scss" scoped>
276 .el-form--inline .el-form-item { 305 .el-form--inline .el-form-item {
277 width: auto; 306 width: auto;
278 } 307 }
......
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
71 71
72 <el-form-item :label="language==0?'有效证件':'Valid Passport'" required> 72 <el-form-item :label="language==0?'有效证件':'Valid Passport'" required>
73 <image-upload 73 <image-upload
74 v-model="wdsfData.passportUrl" :action="'/common/getPersonInfoFromCert/3'" 74 v-model="wdsfData.passportUrl" :action="'/common/getPersonInfoFromCert/6'"
75 :button-text="language==0?'上传':'Upload'" 75 :button-text="language==0?'上传':'Upload'"
76 :is-show-tip="false" 76 :is-show-tip="false"
77 :limit="1" 77 :limit="1"
...@@ -87,6 +87,9 @@ ...@@ -87,6 +87,9 @@
87 <el-form-item :label="language==0?'证件号':'Passport number'" required> 87 <el-form-item :label="language==0?'证件号':'Passport number'" required>
88 <el-input v-model="wdsfData.passportNumber" /> 88 <el-input v-model="wdsfData.passportNumber" />
89 </el-form-item> 89 </el-form-item>
90 <el-form-item :label="language==0?'姓名':'Name'" required>
91 <el-input v-model.trim="wdsfData.certName" />
92 </el-form-item>
90 <el-form-item :label="language==0?'性别':'Gender'" required> 93 <el-form-item :label="language==0?'性别':'Gender'" required>
91 <el-radio-group v-model="wdsfData.sex"> 94 <el-radio-group v-model="wdsfData.sex">
92 <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio> 95 <el-radio value="0">{{ language == 0 ? '女' : 'female' }}</el-radio>
...@@ -177,7 +180,8 @@ ...@@ -177,7 +180,8 @@
177 </el-form> 180 </el-form>
178 </div> 181 </div>
179 <div class="text-center"> 182 <div class="text-center">
180 <el-button class="primary-kx" round @click="goBack"> {{ language == 0 ? '取消' : 'Cancel' }}</el-button> 183 <el-button class="primary-kx" round @click="goBack"> {{ language == 0 ? '取消' : 'Cancel' }}
184 </el-button>
181 <el-button v-if="wdsfData.wdsfFlag=='1'" class="btn-lineG w200px" round type="primary" @click="bigNext"> 185 <el-button v-if="wdsfData.wdsfFlag=='1'" class="btn-lineG w200px" round type="primary" @click="bigNext">
182 <span v-if="matchId=='0'">{{ language == 0 ? '立即注册' : 'Register Now' }}</span> 186 <span v-if="matchId=='0'">{{ language == 0 ? '立即注册' : 'Register Now' }}</span>
183 <span v-else>{{ language == 0 ? '下一步' : 'Next' }}</span> 187 <span v-else>{{ language == 0 ? '下一步' : 'Next' }}</span>
...@@ -361,14 +365,18 @@ function bigNext() { ...@@ -361,14 +365,18 @@ function bigNext() {
361 ElMessage.warning(language.value == 0 ? '请选择性别' : 'Please select your gender') 365 ElMessage.warning(language.value == 0 ? '请选择性别' : 'Please select your gender')
362 return 366 return
363 } 367 }
368 if (!wdsfData.value.certName) {
369 ElMessage.warning(language.value == 0 ? '请输入姓名' : 'Please enter your name')
370 return
371 }
364 if (user && user.utype == '3') { 372 if (user && user.utype == '3') {
365 const obj = { 373 const obj = {
366 card: form.value.card, 374 card: form.value.card,
367 userId: user.userId, 375 userId: user.userId,
368 picUrl: wdsfData.value.picUrl, 376 picUrl: wdsfData.value.picUrl,
369 code: form.value.code,
370 sex: wdsfData.value.sex, 377 sex: wdsfData.value.sex,
371 birth: wdsfData.value.birthday, 378 birth: wdsfData.value.birthday,
379 certName: wdsfData.value.certName,
372 passportNumber: wdsfData.value.passportNumber 380 passportNumber: wdsfData.value.passportNumber
373 } 381 }
374 if (Array.isArray(wdsfData.value.passportUrl)) { 382 if (Array.isArray(wdsfData.value.passportUrl)) {
...@@ -409,6 +417,7 @@ function next() { ...@@ -409,6 +417,7 @@ function next() {
409 code: form.value.code, 417 code: form.value.code,
410 password: form.value.password, 418 password: form.value.password,
411 sex: wdsfData.value.sex, 419 sex: wdsfData.value.sex,
420 certName: wdsfData.value.certName,
412 birth: wdsfData.value.birthday, 421 birth: wdsfData.value.birthday,
413 passportNumber: wdsfData.value.passportNumber 422 passportNumber: wdsfData.value.passportNumber
414 } 423 }
...@@ -485,6 +494,7 @@ const ocrSuccess = (res) => { ...@@ -485,6 +494,7 @@ const ocrSuccess = (res) => {
485 wdsfData.value.passportNumber = res.data.code 494 wdsfData.value.passportNumber = res.data.code
486 wdsfData.value.birthday = res.data.birth?.slice(0, 10) 495 wdsfData.value.birthday = res.data.birth?.slice(0, 10)
487 wdsfData.value.sex = res.data.sex 496 wdsfData.value.sex = res.data.sex
497 wdsfData.value.certName = res.data.name
488 } else if (res.code == 500) { 498 } else if (res.code == 500) {
489 ElMessage.warning(res.msg) 499 ElMessage.warning(res.msg)
490 } 500 }
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!