8f61ec56 by 杨炀

no message

1 parent 6be47212
...@@ -105,6 +105,13 @@ export function registerSingle(data) { ...@@ -105,6 +105,13 @@ export function registerSingle(data) {
105 data:data 105 data:data
106 }) 106 })
107 } 107 }
108 export function loginSingle(data) {
109 return request({
110 url: `/userLoginAboard`,
111 method: 'post',
112 data:data
113 })
114 }
108 115
109 // 根据Id获取我的团队 116 // 根据Id获取我的团队
110 export function getGroupInfo() { 117 export function getGroupInfo() {
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
8 <router-link to="/about">亚洲体育舞蹈节版权所有</router-link> 8 <router-link to="/about">亚洲体育舞蹈节版权所有</router-link>
9 </li> 9 </li>
10 <li> 10 <li>
11 <a target="_blank" href="https://beian.miit.gov.cn/">ICP备案号:苏ICP备17015770号-3</a> 11 <a target="_blank" href="https://beian.miit.gov.cn/">ICP备案号:苏ICP备2023054420号-2</a>
12 <!-- <a class="ffoot" target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010102004192">--> 12 <!-- <a class="ffoot" target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010102004192">-->
13 <!-- <img src="@/assets/v1/beian.png">--> 13 <!-- <img src="@/assets/v1/beian.png">-->
14 <!-- 京公网安备 11010102004192号</a>--> 14 <!-- 京公网安备 11010102004192号</a>-->
......
...@@ -176,7 +176,7 @@ function handleSelect(key, keyPath) { ...@@ -176,7 +176,7 @@ function handleSelect(key, keyPath) {
176 } 176 }
177 177
178 const logout = () => { 178 const logout = () => {
179 proxy.$modal.confirm('确定退出?').then(function() { 179 proxy.$modal.confirm(language.value==0?'确定退出?':'Are you sure to exit?').then(function() {
180 return useUserStore().logOut() 180 return useUserStore().logOut()
181 }).then(() => { 181 }).then(() => {
182 isLogin.value = true 182 isLogin.value = true
......
...@@ -147,7 +147,7 @@ function handleSelect(key, keyPath) { ...@@ -147,7 +147,7 @@ function handleSelect(key, keyPath) {
147 } 147 }
148 148
149 const logout = () => { 149 const logout = () => {
150 proxy.$modal.confirm('确定退出?').then(function() { 150 proxy.$modal.confirm(language.value==0?'确定退出?':'Are you sure to exit?').then(function() {
151 return useUserStore().logOut() 151 return useUserStore().logOut()
152 }).then(() => { 152 }).then(() => {
153 isLogin.value = true 153 isLogin.value = true
......
...@@ -20,26 +20,51 @@ ...@@ -20,26 +20,51 @@
20 <el-form-item :label="language==0?'姓名':'Real Name'" required prop="realName"> 20 <el-form-item :label="language==0?'姓名':'Real Name'" required prop="realName">
21 <el-input v-model="myform.realName"/> 21 <el-input v-model="myform.realName"/>
22 </el-form-item> 22 </el-form-item>
23 <el-form-item :label="language==0?'性别':'Sex'" required prop="sex"> 23 <el-form-item :label="language==0?'性别':'Sex'" required >
24 <el-radio-group v-model="myform.sex"> 24 <el-radio-group v-model="myform.sex">
25 <el-radio label="0">{{ language == 0 ? '女' : 'female' }}</el-radio> 25 <el-radio label="0">{{ language == 0 ? '女' : 'female' }}</el-radio>
26 <el-radio label="1">{{ language == 0 ? '男' : 'male' }}</el-radio> 26 <el-radio label="1">{{ language == 0 ? '男' : 'male' }}</el-radio>
27 </el-radio-group> 27 </el-radio-group>
28 </el-form-item> 28 </el-form-item>
29 <el-form-item :label="language==0?'证件类型':'ID type'" required prop="idcType"> 29 <el-form-item :label="language==0?'出生日期':'Birthday'" required>
30 <el-select v-model="myform.idcType" style="width: 100%"> 30 <el-date-picker
31 <el-option 31 v-model="myform.birth"
32 v-for="item in certificates" 32 style="width: 100%;"
33 :key="item.value" 33 type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
34 :label="item.label"
35 :value="item.value"
36 /> 34 />
37 </el-select>
38 </el-form-item> 35 </el-form-item>
39 <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode"> 36 <el-form-item label="Representing">
40 <el-input v-model="myform.idcCode" @blur="checkCode"/> 37 <el-input v-model="myform.representing" disabled/>
38 </el-form-item>
39 <el-form-item label="Age group">
40 <el-input v-model="myform.ageGroup" disabled/>
41 </el-form-item>
42 <el-form-item label="Division">
43 <el-input v-model="myform.division" disabled/>
44 </el-form-item>
45 <el-form-item label="Status">
46 <el-input v-model="myform.status" disabled/>
41 </el-form-item> 47 </el-form-item>
42 <el-form-item :label="language==0?'类型':'Type'" prop="type"> 48 <el-form-item label="Passport" required>
49 <el-input v-model="myform.passportNumber"/>
50 </el-form-item>
51 <el-form-item label="Passport File">
52 <file-upload v-model="myform.passportUrl" :limit="1" :is-show-tip="false" :button-text="'Upload'"/>
53 </el-form-item>
54 <!-- <el-form-item :label="language==0?'证件类型':'ID type'" required prop="idcType">-->
55 <!-- <el-select v-model="myform.idcType" style="width: 100%">-->
56 <!-- <el-option-->
57 <!-- v-for="item in certificates"-->
58 <!-- :key="item.value"-->
59 <!-- :label="item.label"-->
60 <!-- :value="item.value"-->
61 <!-- />-->
62 <!-- </el-select>-->
63 <!-- </el-form-item>-->
64 <!-- <el-form-item :label="language==0?'证件号码':'ID NO'" prop="idcCode">-->
65 <!-- <el-input v-model="myform.idcCode" @blur="checkCode"/>-->
66 <!-- </el-form-item>-->
67 <el-form-item :label="language==0?'类型':'Type'" required>
43 <el-select v-model="myform.type" style="width: 100%;"> 68 <el-select v-model="myform.type" style="width: 100%;">
44 <el-option :label="language==0?'业余':'amateur'" value="0"/> 69 <el-option :label="language==0?'业余':'amateur'" value="0"/>
45 <el-option :label="language==0?'专业':'Professional'" value="1"/> 70 <el-option :label="language==0?'专业':'Professional'" value="1"/>
...@@ -47,9 +72,9 @@ ...@@ -47,9 +72,9 @@
47 <el-option :label="language==0?'其他':'Other'" value="3"/> 72 <el-option :label="language==0?'其他':'Other'" value="3"/>
48 </el-select> 73 </el-select>
49 </el-form-item> 74 </el-form-item>
50 <el-form-item :label="language==0?'邮箱':'Email'" required prop="email"> 75 <!-- <el-form-item :label="language==0?'邮箱':'Email'" required prop="email">-->
51 <el-input v-model="myform.email" type="email" :placeholder="language==0?'请输入内容':''"/> 76 <!-- <el-input v-model="myform.email" type="email" :placeholder="language==0?'请输入内容':''"/>-->
52 </el-form-item> 77 <!-- </el-form-item>-->
53 </el-form> 78 </el-form>
54 <div class="text-center"> 79 <div class="text-center">
55 <el-button type="primary" class="btn-lineG" round @click="save"> 80 <el-button type="primary" class="btn-lineG" round @click="save">
......
1 <template>
2 <el-dialog
3 v-model="show" :title="title" width="800px" append-to-body close-icon="CircleClose" center
4 :close-on-click-modal="false" class="pcloginpop"
5 destroy-on-close
6 >
7 <el-form ref="dialogRef" :model="form" :rules="language==0?rules:rules_cn" label-width="160px" inline>
8 <el-row :gutter="30">
9 <el-col :lg="24">
10
11 <el-form-item :label="language==0?'姓氏':'surname'" prop="xing" required>
12 <el-input v-model="form.xing"/>
13 </el-form-item>
14 <el-form-item :label="language==0?'名':'name'" prop="ming" required>
15 <el-input v-model="form.ming"/>
16 </el-form-item>
17 <!-- <el-form-item :label="language==0?'证件类型':'ID type'" prop="idcType" required>-->
18 <!-- <el-select v-model="form.idcType" style="width: 100%;">-->
19 <!-- <el-option-->
20 <!-- v-for="item in certificates"-->
21 <!-- :key="item.value"-->
22 <!-- :label="item.label"-->
23 <!-- :value="item.value"-->
24 <!-- />-->
25 <!-- </el-select>-->
26 <!-- </el-form-item>-->
27 <el-form-item :label="language==0?'护照号':'PassPort Number'" prop="idcCode" required>
28 <el-input v-model="form.idcCode"/>
29 </el-form-item>
30
31 <el-form-item :label="language==0?'出生日期':'birth'" prop="birth" required>
32 <el-date-picker
33 v-model="form.birth"
34 style="width: 100%;"
35 type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
36 />
37 </el-form-item>
38 <el-form-item :label="language==0?'性别':'sex'" prop="sex">
39 <el-radio-group v-model="form.sex">
40 <el-radio label="0">{{ language == 0 ? '女' : 'female' }}</el-radio>
41 <el-radio label="1">{{ language == 0 ? '男' : 'male' }}</el-radio>
42 </el-radio-group>
43 </el-form-item>
44
45 <el-form-item :label="language==0?'主要会员角色':'roles'" prop="labelArr">
46 <el-select v-model="form.labelArr" multiple>
47 <el-option v-for="l in labels" :key="l.value" :value="l.value" :label="language==0?l.label:l.enlabel"/>
48 </el-select>
49 </el-form-item>
50
51
52 </el-col>
53 </el-row>
54 </el-form>
55 <template #footer>
56 <div class="dialog-footer text-center">
57 <el-button type="primary" class="btn-lineG w200px" round @click="submitForm">{{
58 language == 0 ? '确定' : 'Save'
59 }}
60 </el-button>
61 </div>
62 </template>
63 </el-dialog>
64 </template>
65
66 <script setup>
67 import {reactive, ref, toRefs, watch} from 'vue'
68 import {getCurrentInstance, nextTick, onMounted} from '@vue/runtime-core'
69 import * as match from '@/apiPc/match'
70 import {ElMessage} from 'element-plus'
71 import {nationList} from '@/assets/js/data'
72 import _ from 'lodash'
73 import cache from "@/plugins/cache";
74
75 const language = ref(cache.local.get('language') || 0)
76 const certificates = ref([
77 {
78 value: '0',
79 label: language.value == 0 ? '居民身份证' : 'Resident ID card'
80 },
81 {
82 value: '1',
83 label: language.value == 0 ? '护照' : 'Passport'
84 },
85 {
86 value: '2',
87 label: language.value == 0 ? '其他' : 'Other'
88 }
89 ])
90 const {proxy} = getCurrentInstance()
91 const emit = defineEmits(['submitForm'])
92 const data = reactive({
93 form: {
94 idcType: '1',
95 sex:'0'
96 },
97 rules: {
98 xing: [{required: true, message: '必填', trigger: 'blur'}],
99 ming: [{required: true, message: '必填', trigger: 'blur'}],
100 idcCode: [{required: true, message: '必填', trigger: 'blur'}],
101 birth: [{required: true, message: '必填', trigger: 'change'}],
102 sex: [{required: true, message: '必填', trigger: 'change'}],
103 labelArr: [{required: true, message: '必填', trigger: 'blur'}]
104 },
105 rules_cn: {
106 xing: [{required: true, message: 'required', trigger: 'blur'}],
107 ming: [{required: true, message: 'required', trigger: 'blur'}],
108 idcCode: [{required: true, message: 'required', trigger: 'blur'}],
109 birth: [{required: true, message: 'required', trigger: 'change'}],
110 address: [{required: true, message: 'required', trigger: 'blur'}],
111 sex: [{required: true, message: 'required', trigger: 'change'}],
112 labelArr: [{required: true, message: 'required', trigger: 'blur'}]
113 },
114 show: false,
115 labels: [
116 // {value: '0', label: '运动员', enlabel: 'Sportsman'},
117 {value: '1', label: '教练', enlabel: 'Coach'},
118 {value: '2', label: '领队', enlabel: 'Leader'},
119 {value: '4', label: '队医', enlabel: 'Nurse'},
120 {value: '5', label: '翻译', enlabel: 'Translator'},
121 {value: '6', label: '官员', enlabel: 'Official'},
122 {value: '3', label: '其他', enlabel: 'Other'}
123 ],
124 title: 'Add accompanying personnel',
125 cptId:''
126 })
127 const {
128 form,
129 rules,
130 rules_cn,
131 show,
132 title,
133 cptId,
134 labels,
135 uType
136 } = toRefs(data)
137 let editgay = false
138 const open = (params) => {
139 console.log(params)
140 show.value = true
141 cptId.value = params.cptId
142 title.value = params.title
143 if (params.id != 0) { // 编辑
144 editgay = true
145 match.getPersonInfoById(params.id).then(res => {
146 form.value = res.data
147 form.value.id = params.id
148 if (form.value.label) {
149 // {0:0,1:1,2:3}
150 form.value.labelArr = form.value.label.split(',')
151 }
152 })
153 }
154 }
155 defineExpose({open})
156 watch(show, (value) => {
157 if (!value) {
158 form.value = {}
159 }
160 nextTick(() => {
161 proxy.$refs['dialogRef'].clearValidate()
162 })
163 })
164
165 function submitForm() {
166 proxy.$refs['dialogRef'].validate((valid) => {
167 if (valid) {
168 form.value.label = form.value.labelArr.toString()
169 if (editgay) {
170 // id不是0
171 match.editPersonInfo(form.value).then(res => {
172 ElMessage.success('保存成功')
173 show.value = false
174 emit('submitForm')
175 })
176 } else {
177 form.value.cptId = cptId.value
178 match.savePersonForMyPerson(form.value).then(res => {
179 ElMessage.success('保存成功')
180 show.value = false
181 emit('submitForm')
182 })
183 }
184 }
185 })
186 }
187
188 function cancel() {
189 show.value = false
190 }
191 </script>
192
193 <style lang="scss">
194 .threeFour {
195 width: 100%;
196
197 .el-upload--picture-card {
198 width: 120px;
199 height: 160px;
200 }
201
202 .el-upload-list--picture-card .el-upload-list__item {
203 width: 120px;
204 height: 160px;
205 }
206 }
207
208 .tip {
209 font-size: 13px;
210 color: #999;
211 margin: 10px 0;
212
213 i {
214 color: red;
215 margin: 0 4px 0 0;
216 }
217 }
218
219 .shenfen {
220 .el-upload--picture-card {
221 width: 320px;
222 height: 200px;
223 }
224
225 .el-upload-list--picture-card .el-upload-list__item {
226 width: 320px;
227 height: 200px;
228 }
229 }
230
231 .touxiang {
232 :deep(.el-upload--picture-card ) {
233 width: 140px;
234 height: 200px;
235 }
236 }
237
238 .touxiang {
239 :deep(.el-upload-list__item ) {
240 width: 140px;
241 height: 200px;
242 }
243
244 }
245
246 .el-form--inline .el-form-item {
247 width: 100%
248 }
249
250
251 .boxDialog {
252 .el-dialog__header {
253 background: linear-gradient(#ed2c22, #fe6d45);
254 margin-right: 0;
255 height: 52px;
256
257 span {
258 color: #fff;
259 }
260 }
261 }
262
263 </style>
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
42 /> 42 />
43 </el-form-item> 43 </el-form-item>
44 <el-form-item :label="language==0?'主要会员角色':'roles'" prop="labelArr"> 44 <el-form-item :label="language==0?'主要会员角色':'roles'" prop="labelArr">
45 <el-select v-model="form.labelArr" multiple @change="labelvalue"> 45 <el-select v-model="form.labelArr" multiple>
46 <el-option v-for="l in labels" :key="l.value" :value="l.value" :label="language==0?l.label:l.enlabel"/> 46 <el-option v-for="l in labels" :key="l.value" :value="l.value" :label="language==0?l.label:l.enlabel"/>
47 </el-select> 47 </el-select>
48 </el-form-item> 48 </el-form-item>
...@@ -63,6 +63,7 @@ ...@@ -63,6 +63,7 @@
63 <el-option v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName" :value="item.id"/> 63 <el-option v-for="item in countryList" :key="item.id" :label="language==0?item.name:item.enName" :value="item.id"/>
64 </el-select> 64 </el-select>
65 </el-form-item> 65 </el-form-item>
66
66 <el-form-item :label="language==0?'详细地址':'Address'" prop="address" required> 67 <el-form-item :label="language==0?'详细地址':'Address'" prop="address" required>
67 <el-cascader v-if="form.countryId == 240" 68 <el-cascader v-if="form.countryId == 240"
68 v-model="form.regionId" 69 v-model="form.regionId"
...@@ -201,7 +202,8 @@ const open = (params) => { ...@@ -201,7 +202,8 @@ const open = (params) => {
201 if (form.value.label) { 202 if (form.value.label) {
202 // {0:0,1:1,2:3} 203 // {0:0,1:1,2:3}
203 form.value.labelArr = form.value.label.split(',') 204 form.value.labelArr = form.value.label.split(',')
204 labelvalue(form.value.labelArr) 205 } else {
206 form.value.labelArr = ['0']
205 } 207 }
206 }) 208 })
207 } else { 209 } else {
...@@ -213,7 +215,6 @@ const open = (params) => { ...@@ -213,7 +215,6 @@ const open = (params) => {
213 if (form.value.label) { 215 if (form.value.label) {
214 // {0:0,1:1,2:3} 216 // {0:0,1:1,2:3}
215 form.value.labelArr = form.value.label.split(',') 217 form.value.labelArr = form.value.label.split(',')
216 labelvalue(form.value.labelArr)
217 } 218 }
218 }) 219 })
219 } 220 }
...@@ -259,7 +260,6 @@ function checkCode() { ...@@ -259,7 +260,6 @@ function checkCode() {
259 form.value = res.data 260 form.value = res.data
260 if (form.value.label != null) { 261 if (form.value.label != null) {
261 form.value.labelArr = form.value.label.split(',') 262 form.value.labelArr = form.value.label.split(',')
262 labelvalue(form.value.labelArr)
263 } 263 }
264 form.value.groupId = groupId.value 264 form.value.groupId = groupId.value
265 } 265 }
...@@ -297,16 +297,6 @@ function giveBirthDay() { ...@@ -297,16 +297,6 @@ function giveBirthDay() {
297 } 297 }
298 } 298 }
299 299
300 function labelvalue(e) {
301 if (e.indexOf('1') > -1 || e.indexOf('2') > -1) {
302 // 联系方式必填
303 showRequire.value = true
304 } else {
305 showRequire.value = false
306 }
307 console.log(showRequire.value)
308 }
309
310 function submitForm() { 300 function submitForm() {
311 proxy.$refs['dialogRef'].validate((valid) => { 301 proxy.$refs['dialogRef'].validate((valid) => {
312 if (valid) { 302 if (valid) {
......
1 <template>
2 <el-dialog
3 v-model="show" :title="title" width="800px" append-to-body close-icon="CircleClose" center
4 :close-on-click-modal="false" class="pcloginpop" @close="cancel"
5 destroy-on-close
6 >
7 <el-form ref="dialogRef" :model="form" :label-width="language==0?120:180" inline>
8 <el-form-item :label="language==0?'WDSF卡号':'WDSF ID'" v-if="form.id">
9 {{ form.wdsfMin }}
10 </el-form-item>
11 <el-form-item :label="language==0?'WDSF卡号':'WDSF ID'" required v-else>
12 <el-input type="text" v-model="card" @change="resetCode" >
13 <template #append>
14 <el-button type="primary" plain style="width: 110px" @click="checkCard">
15 <el-icon v-if="isCodeTrue" size="16" color="#67C23A">
16 <CircleCheckFilled/>
17 </el-icon>
18 <span v-else>{{ language == 0 ? '校验卡号' : 'Check Code' }}</span>
19 </el-button>
20 </template>
21 </el-input>
22 <Vcode :show="showVcode" :z-index="2999" @success="codeSuccess()"></Vcode>
23 </el-form-item>
24 <div class="h30"></div>
25 <div class="leftboderTT">{{ language == 0 ? '个人信息' : 'Personal information' }}
26 <span v-if="language==0">(登录时需要验证,保护账户信息)</span>
27 <span v-else>(Obtain automatically according to the WDSF number)</span>
28 </div>
29 <div class="h20"></div>
30 <el-form-item :label="language==0?'名':'name'">
31 <el-input v-model="form.ming" disabled/>
32 </el-form-item>
33 <el-form-item :label="language==0?'姓氏':'surname'">
34 <el-input v-model="form.xing" disabled/>
35 </el-form-item>
36 <el-form-item label="Representing">
37 <el-input v-model="form.representing" disabled/>
38 </el-form-item>
39 <el-form-item label="Age group">
40 <el-input v-model="form.ageGroup" disabled/>
41 </el-form-item>
42 <el-form-item label="Division">
43 <el-input v-model="form.division" disabled/>
44 </el-form-item>
45 <el-form-item label="Status">
46 <el-input v-model="form.wdsfStatus" disabled/>
47 </el-form-item>
48 <div class="h30"></div>
49 <div class="leftboderTT">
50 {{ language == 0 ? '补充信息' : 'Supplementary Information' }}
51 </div>
52 <div class="h20"></div>
53 <el-form-item :label="language==0?'性别':'Sex'" required>
54 <el-radio-group v-model="form.sex">
55 <el-radio label="0">{{ language == 0 ? '女' : 'female' }}</el-radio>
56 <el-radio label="1">{{ language == 0 ? '男' : 'male' }}</el-radio>
57 </el-radio-group>
58 </el-form-item>
59
60 <el-form-item :label="language==0?'出生日期':'Birthday'" required>
61 <el-date-picker
62 v-model="form.birth"
63 style="width: 100%;"
64 type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
65 />
66 </el-form-item>
67 <el-form-item label="Passport number" required>
68 <el-input v-model="form.passportNumber"/>
69 </el-form-item>
70 <el-form-item label="Passport File">
71 <file-upload v-model="form.passportUrl" :limit="1" :is-show-tip="false" :button-text="'Upload'"/>
72 </el-form-item>
73 </el-form>
74 <template #footer>
75 <div class="dialog-footer text-center">
76 <el-button type="primary" class="btn-lineG w200px" round @click="submitForm">{{
77 language == 0 ? '确定' : 'Save'
78 }}
79 </el-button>
80 </div>
81 </template>
82 </el-dialog>
83 </template>
84
85 <script setup>
86 import {reactive, ref, toRefs, watch} from 'vue'
87 import {getCurrentInstance, nextTick, onMounted} from '@vue/runtime-core'
88 import * as match from '@/apiPc/match'
89 import {ElMessage} from 'element-plus'
90 import _ from 'lodash'
91 import cache from "@/plugins/cache";
92 import Vcode from "vue3-puzzle-vcode"
93 import {checkWdsf} from "@/apiPc/match";
94 const language = ref(cache.local.get('language') || 0)
95 const certificates = ref([
96 {
97 value: '0',
98 label: language.value == 0 ? '居民身份证' : 'Resident ID card'
99 },
100 {
101 value: '1',
102 label: language.value == 0 ? '护照' : 'Passport'
103 },
104 {
105 value: '2',
106 label: language.value == 0 ? '其他' : 'Other'
107 }
108 ])
109 const {proxy} = getCurrentInstance()
110 const emit = defineEmits(['submitForm'])
111 const data = reactive({
112 form: {
113 // countryId: 240
114 sex:'0'
115 },
116 card:'',
117 show: false,
118 showVcode: false,
119 labels: [
120 {value: '0', label: '运动员', enlabel: 'Sportsman'},
121 {value: '1', label: '教练', enlabel: 'Coach'},
122 {value: '2', label: '领队', enlabel: 'Leader'},
123 {value: '4', label: '队医', enlabel: 'Nurse'},
124 {value: '5', label: '翻译', enlabel: 'Translator'},
125 {value: '6', label: '官员', enlabel: 'Official'},
126 {value: '3', label: '其他', enlabel: 'Other'}
127 ],
128 title: '添加选手信息',
129 isMe: false,
130 isCodeTrue: false,
131 cptId:''
132 })
133 const {form, show,showVcode, title, labels, uType, isMe,isCodeTrue,card,cptId} = toRefs(data)
134
135 let editgay = false
136 const open = (params) => {
137 console.log(params)
138 show.value = true
139 title.value = params.title
140 isMe.value = params.isMe
141 cptId.value = params.cptId
142 if (language.value == 0) {
143 form.value.countryId = 240
144 }
145 if (isMe.value) {
146 //个人
147 match.getMyPersonInfo().then(res => {
148 form.value = res.data
149 form.value.id = res.data.id
150 if (form.value.label) {
151 // {0:0,1:1,2:3}
152 form.value.labelArr = form.value.label.split(',')
153 } else {
154 form.value.labelArr = ['0']
155 }
156 })
157 } else {
158 if (params.id != 0) { // 编辑舞伴
159 editgay = true
160 form.value = params.form
161 }
162 }
163 }
164 defineExpose({open})
165 watch(show, (value) => {
166 if (!value) {
167 form.value = {
168 sex:'0'
169 }
170 }
171 nextTick(() => {
172 proxy.$refs['dialogRef'].clearValidate()
173 })
174 })
175
176 function submitForm() {
177 if (editgay) {
178 // id不是0
179 form.value.cptId = cptId.value
180 match.editPersonInfo(form.value).then(res => {
181 ElMessage.success('保存成功')
182 show.value = false
183 emit('submitForm')
184 })
185 } else {
186 if (!form.value.passportNumber) {
187 ElMessage.error('Please fill in your passport number')
188 return
189 }
190 if (!form.value.birth) {
191 ElMessage.error('Please fill in your birthday')
192 return
193 }
194 if(Array.isArray(form.value.passportUrl)){
195 form.value.passportUrl = form.value.passportUrl[0].url
196 }
197 if (isMe.value) {
198 match.saveMyBaseInfo(form.value).then(res => {
199 ElMessage.success('保存成功')
200 show.value = false
201 emit('submitForm')
202 })
203 } else {
204 delete form.value.status
205 delete form.value.id
206 form.value.label = '0'
207 form.value.cptId = cptId.value
208 form.value.wdsfMin = form.value.min
209 form.value.idcCode = form.value.passportNumber
210 form.value.idcType = '1'
211 match.savePersonForMyPerson(form.value).then(res => {
212 ElMessage.success('保存成功')
213 show.value = false
214 emit('submitForm', res.data)
215 })
216 }
217 }
218 }
219
220 function cancel() {
221 show.value = false
222 showVcode.value = false
223 }
224 function resetCode() {
225 isCodeTrue.value = false
226 }
227 function checkCard() {
228 if(isCodeTrue.value){
229 return
230 }
231 if (!card.value) {
232 if (language.value == 0) {
233 ElMessage.error('请填写WDSF卡号')
234 } else {
235 ElMessage.error('Please fill in your WDSF code')
236 }
237 return
238 }
239 showVcode.value = true
240 }
241 function codeSuccess(msg) {
242 console.log('验证通过' + msg);
243 showVcode.value = false
244 isCodeTrue.value = true
245 checkWdsf({card: card.value}).then(res => {
246 form.value = res.data
247 form.value.xing = form.value.surname
248 form.value.ming = form.value.name
249 form.value.wdsfStatus = form.value.status
250 if (!form.value.sex) {
251 form.value.sex = '0'
252 }
253 if (form.value.wdsfFlag == '0') {
254 isCodeTrue.value = false
255 if (language.value == 0) {
256 ElMessage.error('WDSF卡号错误')
257 } else {
258 ElMessage.error('WDSF ID is Error')
259 }
260 }
261 })
262 }
263 </script>
264
265 <style lang="scss">
266 .el-input-group__append button.el-button, .el-input-group__append button.el-button:hover {
267 color: var(--el-color-primary);
268 background: #efefff;
269 border: var(--el-color-primary) solid 1px;
270 border-radius: 0;
271 }
272
273 .leftboderTT {
274 color: var(--el-color-primary);
275 font-size: 16px;
276 font-weight: 600;
277
278 span {
279 color: #929AA0;
280 font-size: 14px;
281 }
282 }
283
284 .threeFour {
285 width: 100%;
286
287 .el-upload--picture-card {
288 width: 120px;
289 height: 160px;
290 }
291
292 .el-upload-list--picture-card .el-upload-list__item {
293 width: 120px;
294 height: 160px;
295 }
296 }
297
298 .tip {
299 font-size: 13px;
300 color: #999;
301 margin: 10px 0;
302
303 i {
304 color: red;
305 margin: 0 4px 0 0;
306 }
307 }
308
309 .shenfen {
310 .el-upload--picture-card {
311 width: 320px;
312 height: 200px;
313 }
314
315 .el-upload-list--picture-card .el-upload-list__item {
316 width: 320px;
317 height: 200px;
318 }
319 }
320
321 .touxiang {
322 :deep(.el-upload--picture-card ) {
323 width: 140px;
324 height: 200px;
325 }
326 }
327
328 .touxiang {
329 :deep(.el-upload-list__item ) {
330 width: 140px;
331 height: 200px;
332 }
333
334 }
335
336 .el-form--inline .el-form-item {
337 width: 100%
338 }
339
340
341 .boxDialog {
342 .el-dialog__header {
343 background: linear-gradient(#ed2c22, #fe6d45);
344 margin-right: 0;
345 height: 52px;
346
347 span {
348 color: #fff;
349 }
350 }
351 }
352
353 </style>
...@@ -7,10 +7,10 @@ ...@@ -7,10 +7,10 @@
7 <el-descriptions-item v-if="form.picUrl" :label="language==0?'个人照片':'photo'"> 7 <el-descriptions-item v-if="form.picUrl" :label="language==0?'个人照片':'photo'">
8 <img style="width: 60px" :src="fillImgUrl(form.picUrl)"> 8 <img style="width: 60px" :src="fillImgUrl(form.picUrl)">
9 </el-descriptions-item> 9 </el-descriptions-item>
10 <el-descriptions-item :label="language==0?'姓氏':'surname'">{{ form.xing }}</el-descriptions-item> 10 <el-descriptions-item v-if="form.xing" :label="language==0?'姓氏':'surname'">{{ form.xing }}</el-descriptions-item>
11 <el-descriptions-item :label="language==0?'名':'name'">{{ form.ming }}</el-descriptions-item> 11 <el-descriptions-item :label="language==0?'名':'name'">{{ form.ming }}</el-descriptions-item>
12 <el-descriptions-item :label="language==0?'性别':'sex'">{{ form.sexStr }}</el-descriptions-item> 12 <el-descriptions-item :label="language==0?'性别':'sex'">{{ form.sexStr }}</el-descriptions-item>
13 <el-descriptions-item :label="language==0?'所属国家':'Nationality'">{{ form.countryName }}</el-descriptions-item> 13 <el-descriptions-item v-if="form.countryName" :label="language==0?'所属国家':'Nationality'">{{ form.countryName }}</el-descriptions-item>
14 <el-descriptions-item :label="language==0?'证件类型':'ID type'">{{ form.idcTypeStr }}</el-descriptions-item> 14 <el-descriptions-item :label="language==0?'证件类型':'ID type'">{{ form.idcTypeStr }}</el-descriptions-item>
15 <el-descriptions-item :label="language==0?'证件号码':'ID NO'">{{ form.idcCode }}</el-descriptions-item> 15 <el-descriptions-item :label="language==0?'证件号码':'ID NO'">{{ form.idcCode }}</el-descriptions-item>
16 <el-descriptions-item :label="language==0?'出生日期':'birth'">{{ form.birth }}</el-descriptions-item> 16 <el-descriptions-item :label="language==0?'出生日期':'birth'">{{ form.birth }}</el-descriptions-item>
......
...@@ -2,9 +2,14 @@ ...@@ -2,9 +2,14 @@
2 <div class="mt20"></div> 2 <div class="mt20"></div>
3 <el-table :data="list" :sum-text="sumText" border style="width: 100%" v-loading="loading"> 3 <el-table :data="list" :sum-text="sumText" border style="width: 100%" v-loading="loading">
4 <el-table-column :label="language==0?'序号':'Index'" type="index" width="70" align="center"/> 4 <el-table-column :label="language==0?'序号':'Index'" type="index" width="70" align="center"/>
5 <el-table-column :label="language==0?'姓氏':'Last Name'" prop="personInfo.xing" min-width="100"/> 5 <el-table-column :label="language==0?'姓氏':'Surname'" prop="personInfo.xing" min-width="100"/>
6 <el-table-column :label="language==0?'名':'First Name'" prop="personInfo.ming" min-width="100"/> 6 <el-table-column :label="language==0?'名':'Name'" prop="personInfo.ming" min-width="100"/>
7 <el-table-column :label="language==0?'所属国家':'Nationality'" prop="personInfo.countryName" :min-width="language==0?'100':'120'"/> 7 <el-table-column :label="language==0?'所属国家':'Nationality'" prop="" :min-width="language==0?'100':'120'">
8 <template #default="scope">
9 <span v-if="scope.row.personInfo.countryName">{{scope.row.personInfo.countryName}}</span>
10 <span v-if="scope.row.personInfo.Representing">{{scope.row.personInfo.Representing}}</span>
11 </template>
12 </el-table-column>
8 <!-- <el-table-column :label="language==0?'短名':'Nick Name'" prop="personInfo.shortName" min-width="110"/>--> 13 <!-- <el-table-column :label="language==0?'短名':'Nick Name'" prop="personInfo.shortName" min-width="110"/>-->
9 <el-table-column :label="language==0?'性别':'Gender'" prop="personInfo.sexStr"/> 14 <el-table-column :label="language==0?'性别':'Gender'" prop="personInfo.sexStr"/>
10 <!-- <el-table-column :label="language==0?'年龄':'Age'" prop="personInfo.age"/>--> 15 <!-- <el-table-column :label="language==0?'年龄':'Age'" prop="personInfo.age"/>-->
......
...@@ -355,10 +355,9 @@ function goTeamSign() { ...@@ -355,10 +355,9 @@ function goTeamSign() {
355 function goPersonalSign() { 355 function goPersonalSign() {
356 // 选项目 356 // 选项目
357 router.push({ 357 router.push({
358 name: `chooseCoach`, 358 name: 'chooseProject',
359 query: { 359 query: {
360 matchId: matchId.value, 360 matchId: matchId.value
361 signType: matchData.value.signType
362 } 361 }
363 }) 362 })
364 } 363 }
......
...@@ -5,6 +5,10 @@ ...@@ -5,6 +5,10 @@
5 <el-form-item :label="language==0?'邮箱':'E-mail'" required> 5 <el-form-item :label="language==0?'邮箱':'E-mail'" required>
6 <el-input type="text" v-model="form.account" @change="resetCode" @blur="verifyCode" 6 <el-input type="text" v-model="form.account" @change="resetCode" @blur="verifyCode"
7 /> 7 />
8 <div class="tip">
9 (请填写正确的邮箱信息,邮箱信息在注册完成后无法修改。
10 该邮箱后续会会作为您登录的账户,并接收您报名审核、支付账单、比赛邀请函等。)
11 </div>
8 </el-form-item> 12 </el-form-item>
9 <el-form-item :label="language==0?'验证码':'Code'" required> 13 <el-form-item :label="language==0?'验证码':'Code'" required>
10 <el-input v-model="form.code"> 14 <el-input v-model="form.code">
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!