Commit a5bf384394745c47aac4a17e8f471be66ecbc170

Authored by 夏洋涛
1 parent 4cbdac62
Exists in master

feat: 身份证认证

src/common/area.json 0 → 100644
@@ -0,0 +1,613 @@ @@ -0,0 +1,613 @@
  1 +[{
  2 + "area_code": "3301",
  3 + "area_name": "杭州市",
  4 + "areaList": [{
  5 + "area_code": "330102",
  6 + "area_name": "上城区",
  7 + "areaList": null,
  8 + "is_check": null
  9 + },
  10 + {
  11 + "area_code": "330103",
  12 + "area_name": "下城区",
  13 + "areaList": null,
  14 + "is_check": null
  15 + },
  16 + {
  17 + "area_code": "330104",
  18 + "area_name": "江干区",
  19 + "areaList": null,
  20 + "is_check": null
  21 + },
  22 + {
  23 + "area_code": "330105",
  24 + "area_name": "拱墅区",
  25 + "areaList": null,
  26 + "is_check": null
  27 + },
  28 + {
  29 + "area_code": "330106",
  30 + "area_name": "西湖区",
  31 + "areaList": null,
  32 + "is_check": null
  33 + },
  34 + {
  35 + "area_code": "330108",
  36 + "area_name": "滨江区",
  37 + "areaList": null,
  38 + "is_check": null
  39 + },
  40 + {
  41 + "area_code": "330109",
  42 + "area_name": "萧山区",
  43 + "areaList": null,
  44 + "is_check": null
  45 + },
  46 + {
  47 + "area_code": "330110",
  48 + "area_name": "余杭区",
  49 + "areaList": null,
  50 + "is_check": null
  51 + },
  52 + {
  53 + "area_code": "330122",
  54 + "area_name": "桐庐县",
  55 + "areaList": null,
  56 + "is_check": null
  57 + },
  58 + {
  59 + "area_code": "330127",
  60 + "area_name": "淳安县",
  61 + "areaList": null,
  62 + "is_check": null
  63 + },
  64 + {
  65 + "area_code": "330182",
  66 + "area_name": "建德市",
  67 + "areaList": null,
  68 + "is_check": null
  69 + },
  70 + {
  71 + "area_code": "330183",
  72 + "area_name": "富阳市",
  73 + "areaList": null,
  74 + "is_check": null
  75 + },
  76 + {
  77 + "area_code": "330185",
  78 + "area_name": "临安市",
  79 + "areaList": null,
  80 + "is_check": null
  81 + }
  82 + ],
  83 + "is_check": null
  84 + },
  85 + {
  86 + "area_code": "3302",
  87 + "area_name": "宁波市",
  88 + "areaList": [{
  89 + "area_code": "330203",
  90 + "area_name": "海曙区",
  91 + "areaList": null,
  92 + "is_check": null
  93 + },
  94 + {
  95 + "area_code": "330204",
  96 + "area_name": "江东区",
  97 + "areaList": null,
  98 + "is_check": null
  99 + },
  100 + {
  101 + "area_code": "330205",
  102 + "area_name": "江北区",
  103 + "areaList": null,
  104 + "is_check": null
  105 + },
  106 + {
  107 + "area_code": "330206",
  108 + "area_name": "北仑区",
  109 + "areaList": null,
  110 + "is_check": null
  111 + },
  112 + {
  113 + "area_code": "330211",
  114 + "area_name": "镇海区",
  115 + "areaList": null,
  116 + "is_check": null
  117 + },
  118 + {
  119 + "area_code": "330212",
  120 + "area_name": "鄞州区",
  121 + "areaList": null,
  122 + "is_check": null
  123 + },
  124 + {
  125 + "area_code": "330225",
  126 + "area_name": "象山县",
  127 + "areaList": null,
  128 + "is_check": null
  129 + },
  130 + {
  131 + "area_code": "330226",
  132 + "area_name": "宁海县",
  133 + "areaList": null,
  134 + "is_check": null
  135 + },
  136 + {
  137 + "area_code": "330281",
  138 + "area_name": "余姚市",
  139 + "areaList": null,
  140 + "is_check": null
  141 + },
  142 + {
  143 + "area_code": "330282",
  144 + "area_name": "慈溪市",
  145 + "areaList": null,
  146 + "is_check": null
  147 + },
  148 + {
  149 + "area_code": "330283",
  150 + "area_name": "奉化市",
  151 + "areaList": null,
  152 + "is_check": null
  153 + }
  154 + ],
  155 + "is_check": null
  156 + },
  157 + {
  158 + "area_code": "3303",
  159 + "area_name": "温州市",
  160 + "areaList": [{
  161 + "area_code": "330302",
  162 + "area_name": "鹿城区",
  163 + "areaList": null,
  164 + "is_check": null
  165 + },
  166 + {
  167 + "area_code": "330303",
  168 + "area_name": "龙湾区",
  169 + "areaList": null,
  170 + "is_check": null
  171 + },
  172 + {
  173 + "area_code": "330304",
  174 + "area_name": "瓯海区",
  175 + "areaList": null,
  176 + "is_check": null
  177 + },
  178 + {
  179 + "area_code": "330322",
  180 + "area_name": "洞头县",
  181 + "areaList": null,
  182 + "is_check": null
  183 + },
  184 + {
  185 + "area_code": "330324",
  186 + "area_name": "永嘉县",
  187 + "areaList": null,
  188 + "is_check": null
  189 + },
  190 + {
  191 + "area_code": "330326",
  192 + "area_name": "平阳县",
  193 + "areaList": null,
  194 + "is_check": null
  195 + },
  196 + {
  197 + "area_code": "330327",
  198 + "area_name": "苍南县",
  199 + "areaList": null,
  200 + "is_check": null
  201 + },
  202 + {
  203 + "area_code": "330328",
  204 + "area_name": "文成县",
  205 + "areaList": null,
  206 + "is_check": null
  207 + },
  208 + {
  209 + "area_code": "330329",
  210 + "area_name": "泰顺县",
  211 + "areaList": null,
  212 + "is_check": null
  213 + },
  214 + {
  215 + "area_code": "330381",
  216 + "area_name": "瑞安市",
  217 + "areaList": null,
  218 + "is_check": null
  219 + },
  220 + {
  221 + "area_code": "330382",
  222 + "area_name": "乐清市",
  223 + "areaList": null,
  224 + "is_check": null
  225 + },
  226 + {
  227 + "area_code": "330305",
  228 + "area_name": "龙港区",
  229 + "areaList": null,
  230 + "is_check": null
  231 + }
  232 + ],
  233 + "is_check": null
  234 + },
  235 + {
  236 + "area_code": "3304",
  237 + "area_name": "嘉兴市",
  238 + "areaList": [{
  239 + "area_code": "330402",
  240 + "area_name": "南湖区",
  241 + "areaList": null,
  242 + "is_check": null
  243 + },
  244 + {
  245 + "area_code": "330411",
  246 + "area_name": "秀洲区",
  247 + "areaList": null,
  248 + "is_check": null
  249 + },
  250 + {
  251 + "area_code": "330421",
  252 + "area_name": "嘉善县",
  253 + "areaList": null,
  254 + "is_check": null
  255 + },
  256 + {
  257 + "area_code": "330424",
  258 + "area_name": "海盐县",
  259 + "areaList": null,
  260 + "is_check": null
  261 + },
  262 + {
  263 + "area_code": "330481",
  264 + "area_name": "海宁市",
  265 + "areaList": null,
  266 + "is_check": null
  267 + },
  268 + {
  269 + "area_code": "330482",
  270 + "area_name": "平湖市",
  271 + "areaList": null,
  272 + "is_check": null
  273 + },
  274 + {
  275 + "area_code": "330483",
  276 + "area_name": "桐乡市",
  277 + "areaList": null,
  278 + "is_check": null
  279 + }
  280 + ],
  281 + "is_check": null
  282 + },
  283 + {
  284 + "area_code": "3305",
  285 + "area_name": "湖州市",
  286 + "areaList": [{
  287 + "area_code": "330502",
  288 + "area_name": "吴兴区",
  289 + "areaList": null,
  290 + "is_check": null
  291 + },
  292 + {
  293 + "area_code": "330503",
  294 + "area_name": "南浔区",
  295 + "areaList": null,
  296 + "is_check": null
  297 + },
  298 + {
  299 + "area_code": "330521",
  300 + "area_name": "德清县",
  301 + "areaList": null,
  302 + "is_check": null
  303 + },
  304 + {
  305 + "area_code": "330522",
  306 + "area_name": "长兴县",
  307 + "areaList": null,
  308 + "is_check": null
  309 + },
  310 + {
  311 + "area_code": "330523",
  312 + "area_name": "安吉县",
  313 + "areaList": null,
  314 + "is_check": null
  315 + }
  316 + ],
  317 + "is_check": null
  318 + },
  319 + {
  320 + "area_code": "3306",
  321 + "area_name": "绍兴市",
  322 + "areaList": [{
  323 + "area_code": "330602",
  324 + "area_name": "越城区",
  325 + "areaList": null,
  326 + "is_check": null
  327 + },
  328 + {
  329 + "area_code": "330621",
  330 + "area_name": "柯桥区",
  331 + "areaList": null,
  332 + "is_check": null
  333 + },
  334 + {
  335 + "area_code": "330624",
  336 + "area_name": "新昌县",
  337 + "areaList": null,
  338 + "is_check": null
  339 + },
  340 + {
  341 + "area_code": "330681",
  342 + "area_name": "诸暨市",
  343 + "areaList": null,
  344 + "is_check": null
  345 + },
  346 + {
  347 + "area_code": "330682",
  348 + "area_name": "上虞市",
  349 + "areaList": null,
  350 + "is_check": null
  351 + },
  352 + {
  353 + "area_code": "330683",
  354 + "area_name": "嵊州市",
  355 + "areaList": null,
  356 + "is_check": null
  357 + }
  358 + ],
  359 + "is_check": null
  360 + },
  361 + {
  362 + "area_code": "3307",
  363 + "area_name": "金华市",
  364 + "areaList": [{
  365 + "area_code": "330702",
  366 + "area_name": "婺城区",
  367 + "areaList": null,
  368 + "is_check": null
  369 + },
  370 + {
  371 + "area_code": "330703",
  372 + "area_name": "金东区",
  373 + "areaList": null,
  374 + "is_check": null
  375 + },
  376 + {
  377 + "area_code": "330723",
  378 + "area_name": "武义县",
  379 + "areaList": null,
  380 + "is_check": null
  381 + },
  382 + {
  383 + "area_code": "330726",
  384 + "area_name": "浦江县",
  385 + "areaList": null,
  386 + "is_check": null
  387 + },
  388 + {
  389 + "area_code": "330727",
  390 + "area_name": "磐安县",
  391 + "areaList": null,
  392 + "is_check": null
  393 + },
  394 + {
  395 + "area_code": "330781",
  396 + "area_name": "兰溪市",
  397 + "areaList": null,
  398 + "is_check": null
  399 + },
  400 + {
  401 + "area_code": "330782",
  402 + "area_name": "义乌市",
  403 + "areaList": null,
  404 + "is_check": null
  405 + },
  406 + {
  407 + "area_code": "330783",
  408 + "area_name": "东阳市",
  409 + "areaList": null,
  410 + "is_check": null
  411 + },
  412 + {
  413 + "area_code": "330784",
  414 + "area_name": "永康市",
  415 + "areaList": null,
  416 + "is_check": null
  417 + }
  418 + ],
  419 + "is_check": null
  420 + },
  421 + {
  422 + "area_code": "3308",
  423 + "area_name": "衢州市",
  424 + "areaList": [{
  425 + "area_code": "330802",
  426 + "area_name": "柯城区",
  427 + "areaList": null,
  428 + "is_check": null
  429 + },
  430 + {
  431 + "area_code": "330803",
  432 + "area_name": "衢江区",
  433 + "areaList": null,
  434 + "is_check": null
  435 + },
  436 + {
  437 + "area_code": "330822",
  438 + "area_name": "常山县",
  439 + "areaList": null,
  440 + "is_check": null
  441 + },
  442 + {
  443 + "area_code": "330824",
  444 + "area_name": "开化县",
  445 + "areaList": null,
  446 + "is_check": null
  447 + },
  448 + {
  449 + "area_code": "330825",
  450 + "area_name": "龙游县",
  451 + "areaList": null,
  452 + "is_check": null
  453 + },
  454 + {
  455 + "area_code": "330881",
  456 + "area_name": "江山市",
  457 + "areaList": null,
  458 + "is_check": null
  459 + }
  460 + ],
  461 + "is_check": null
  462 + },
  463 + {
  464 + "area_code": "3309",
  465 + "area_name": "舟山市",
  466 + "areaList": [{
  467 + "area_code": "330902",
  468 + "area_name": "定海区",
  469 + "areaList": null,
  470 + "is_check": null
  471 + },
  472 + {
  473 + "area_code": "330903",
  474 + "area_name": "普陀区",
  475 + "areaList": null,
  476 + "is_check": null
  477 + },
  478 + {
  479 + "area_code": "330921",
  480 + "area_name": "岱山县",
  481 + "areaList": null,
  482 + "is_check": null
  483 + },
  484 + {
  485 + "area_code": "330922",
  486 + "area_name": "嵊泗县",
  487 + "areaList": null,
  488 + "is_check": null
  489 + }
  490 + ],
  491 + "is_check": null
  492 + },
  493 + {
  494 + "area_code": "3310",
  495 + "area_name": "台州市",
  496 + "areaList": [{
  497 + "area_code": "331002",
  498 + "area_name": "椒江区",
  499 + "areaList": null,
  500 + "is_check": null
  501 + },
  502 + {
  503 + "area_code": "331003",
  504 + "area_name": "黄岩区",
  505 + "areaList": null,
  506 + "is_check": null
  507 + },
  508 + {
  509 + "area_code": "331004",
  510 + "area_name": "路桥区",
  511 + "areaList": null,
  512 + "is_check": null
  513 + },
  514 + {
  515 + "area_code": "331021",
  516 + "area_name": "玉环县",
  517 + "areaList": null,
  518 + "is_check": null
  519 + },
  520 + {
  521 + "area_code": "331022",
  522 + "area_name": "三门县",
  523 + "areaList": null,
  524 + "is_check": null
  525 + },
  526 + {
  527 + "area_code": "331023",
  528 + "area_name": "天台县",
  529 + "areaList": null,
  530 + "is_check": null
  531 + },
  532 + {
  533 + "area_code": "331024",
  534 + "area_name": "仙居县",
  535 + "areaList": null,
  536 + "is_check": null
  537 + },
  538 + {
  539 + "area_code": "331081",
  540 + "area_name": "温岭市",
  541 + "areaList": null,
  542 + "is_check": null
  543 + },
  544 + {
  545 + "area_code": "331082",
  546 + "area_name": "临海市",
  547 + "areaList": null,
  548 + "is_check": null
  549 + }
  550 + ],
  551 + "is_check": null
  552 + },
  553 + {
  554 + "area_code": "3311",
  555 + "area_name": "丽水市",
  556 + "areaList": [{
  557 + "area_code": "331102",
  558 + "area_name": "莲都区",
  559 + "areaList": null,
  560 + "is_check": null
  561 + },
  562 + {
  563 + "area_code": "331121",
  564 + "area_name": "青田县",
  565 + "areaList": null,
  566 + "is_check": null
  567 + },
  568 + {
  569 + "area_code": "331122",
  570 + "area_name": "缙云县",
  571 + "areaList": null,
  572 + "is_check": null
  573 + },
  574 + {
  575 + "area_code": "331123",
  576 + "area_name": "遂昌县",
  577 + "areaList": null,
  578 + "is_check": null
  579 + },
  580 + {
  581 + "area_code": "331124",
  582 + "area_name": "松阳县",
  583 + "areaList": null,
  584 + "is_check": null
  585 + },
  586 + {
  587 + "area_code": "331125",
  588 + "area_name": "云和县",
  589 + "areaList": null,
  590 + "is_check": null
  591 + },
  592 + {
  593 + "area_code": "331126",
  594 + "area_name": "庆元县",
  595 + "areaList": null,
  596 + "is_check": null
  597 + },
  598 + {
  599 + "area_code": "331127",
  600 + "area_name": "景宁畲族自治县",
  601 + "areaList": null,
  602 + "is_check": null
  603 + },
  604 + {
  605 + "area_code": "331181",
  606 + "area_name": "龙泉市",
  607 + "areaList": null,
  608 + "is_check": null
  609 + }
  610 + ],
  611 + "is_check": null
  612 + }
  613 +]
0 \ No newline at end of file 614 \ No newline at end of file
src/views/Home/component/AddChildPopupGroup.vue
1 <template> 1 <template>
2 <div> 2 <div>
3 - <div class="addchild_group" v-if="step==2">  
4 - <img class="bg" src="@/assets/home/bg2.png" alt=""> 3 + <div class="addchild_group" v-if="step == 2">
  4 + <img class="bg" src="@/assets/home/bg2.png" alt="" />
5 <p class="title">学校激活认证</p> 5 <p class="title">学校激活认证</p>
6 <p class="des">认证通过后,学生研学记录可同步到学校!</p> 6 <p class="des">认证通过后,学生研学记录可同步到学校!</p>
7 <div class="phone_content"> 7 <div class="phone_content">
8 - <div class="item">  
9 - <p class="phone_title">手机号</p>  
10 - <div class="flex">  
11 - <input class="code phone" type="tel" maxlength="11" v-model="phone" placeholder="请输入家校联系预留手机号">  
12 - <span class="getcode" @click="getCode">{{codeText}}</span> 8 + <template v-if="cardAuth">
  9 + <div class="item">
  10 + <p class="phone_title">姓名</p>
  11 + <input class="code" type="text" v-model="cardName" placeholder="请输入证件姓名" />
13 </div> 12 </div>
14 - </div>  
15 - <div class="item">  
16 - <p class="phone_title">验证码</p>  
17 - <input class="code" type="text" v-model="code" placeholder="请输入验证码">  
18 - </div>  
19 - <button class="submit" @click="checkPhoneAndCode">完成</button> 13 + <div class="item">
  14 + <p class="phone_title">身份证号码</p>
  15 + <input class="code" type="text" v-model="cardId" placeholder="请输入身份证号码" />
  16 + </div>
  17 + <button class="submit" @click="checkCard">完成</button>
  18 + <p class="change-btn" @click="cardAuth = false">使用手机号码认证</p>
  19 + </template>
  20 + <template v-else>
  21 + <div class="item">
  22 + <p class="phone_title">手机号</p>
  23 + <div class="flex">
  24 + <input class="code phone" type="tel" maxlength="11" v-model="phone" placeholder="请输入家校联系预留手机号" />
  25 + <span class="getcode" @click="getCode">{{ codeText }}</span>
  26 + </div>
  27 + </div>
  28 + <div class="item">
  29 + <p class="phone_title">验证码</p>
  30 + <input class="code" type="text" v-model="code" placeholder="请输入验证码" />
  31 + </div>
  32 + <button class="submit" @click="checkPhoneAndCode">完成</button>
  33 + <p class="change-btn" @click="cardAuth = true">使用身份证件认证</p>
  34 + </template>
20 </div> 35 </div>
21 </div> 36 </div>
22 - <div class="addchild_group" v-if="step==1">  
23 - <img class="bg" src="@/assets/home/bg2.png" alt=""> 37 + <div class="addchild_group" v-if="step == 1">
  38 + <img class="bg" src="@/assets/home/bg2.png" alt="" />
24 <p class="title">添加学生信息</p> 39 <p class="title">添加学生信息</p>
25 <p class="des">完善相关信息可帮助获得最佳使用体验</p> 40 <p class="des">完善相关信息可帮助获得最佳使用体验</p>
26 <div class="content"> 41 <div class="content">
27 <div class="name">学生信息</div> 42 <div class="name">学生信息</div>
28 <div class="item" style="width:48%;display:inline-flex;margin-right:4%;"> 43 <div class="item" style="width:48%;display:inline-flex;margin-right:4%;">
29 - <input type="text" placeholder="请输入学生姓名" v-model="studentName"> 44 + <input type="text" placeholder="请输入学生姓名" v-model="studentName" />
30 </div> 45 </div>
31 <div class="item" @click="handleYear" style="width:48%;display:inline-flex;"> 46 <div class="item" @click="handleYear" style="width:48%;display:inline-flex;">
32 - <p :class="!year||yearDisable?'nodata':''">{{year?year:'入学年份'}}</p>  
33 - <img src="@/assets/more.png" alt=""> 47 + <p :class="!year || yearDisable ? 'nodata' : ''">{{ year ? year : '入学年份' }}</p>
  48 + <img src="@/assets/more.png" alt="" />
34 </div> 49 </div>
35 - <div class="item" @click="showUserTypeSelect=true" style="width:48%;display:inline-flex;margin-right:4%;">  
36 - <p :class="!userType?'nodata':''">{{userType?userType:'当前阶段'}}</p>  
37 - <img src="@/assets/more.png" alt=""> 50 + <div class="item" @click="showUserTypeSelect = true" style="width:48%;display:inline-flex;margin-right:4%;">
  51 + <p :class="!userType ? 'nodata' : ''">{{ userType ? userType : '当前阶段' }}</p>
  52 + <img src="@/assets/more.png" alt="" />
38 </div> 53 </div>
39 - <div class="item" @click="showUserClassSelect=true" style="width:48%;display:inline-flex;">  
40 - <p :class="!classType?'nodata':''">{{classType?classType:'班级'}}</p>  
41 - <img src="@/assets/more.png" alt=""> 54 + <div class="item" @click="showUserClassSelect = true" style="width:48%;display:inline-flex;">
  55 + <p :class="!classType ? 'nodata' : ''">{{ classType ? classType : '班级' }}</p>
  56 + <img src="@/assets/more.png" alt="" />
42 </div> 57 </div>
43 58
44 - <div class="item" @click="showAreaSelect=true">  
45 - <p :class="!area?'nodata':''">{{area?area:'请选择地区'}}</p>  
46 - <img src="@/assets/more.png" alt=""> 59 + <div class="item" @click="handleSelectArea">
  60 + <p :class="!area ? 'nodata' : ''">{{ area ? area : '请选择地区' }}</p>
  61 + <img src="@/assets/more.png" alt="" />
47 </div> 62 </div>
48 <div class="item"> 63 <div class="item">
49 - <input type="text" placeholder="请选择学校" readonly v-model="school"> 64 + <input type="text" placeholder="请选择学校" readonly v-model="school" />
50 <button type="info" class="btn" @click="chooseSchool">选择学校</button> 65 <button type="info" class="btn" @click="chooseSchool">选择学校</button>
51 </div> 66 </div>
52 <button class="submit" @click="submit">完成</button> 67 <button class="submit" @click="submit">完成</button>
53 </div> 68 </div>
54 </div> 69 </div>
55 <van-popup v-model="showUserTypeSelect" round position="bottom" get-container="body" :safe-area-inset-bottom="true"> 70 <van-popup v-model="showUserTypeSelect" round position="bottom" get-container="body" :safe-area-inset-bottom="true">
56 - <van-picker title="当前阶段" show-toolbar :columns="userTypeArr" value-key="label" @cancel="showUserTypeSelect = false" @confirm="selectUserTypeOver" /> 71 + <van-picker
  72 + title="当前阶段"
  73 + show-toolbar
  74 + :columns="userTypeArr"
  75 + value-key="label"
  76 + @cancel="showUserTypeSelect = false"
  77 + @confirm="selectUserTypeOver"
  78 + />
57 </van-popup> 79 </van-popup>
58 <van-popup v-model="showYearSelect" round position="bottom" get-container="body" :safe-area-inset-bottom="true"> 80 <van-popup v-model="showYearSelect" round position="bottom" get-container="body" :safe-area-inset-bottom="true">
59 - <van-picker title="入学年份" show-toolbar :columns="yearArr" value-key="label" @cancel="showYearSelect = false" @confirm="selectYearOver" /> 81 + <van-picker
  82 + title="入学年份"
  83 + show-toolbar
  84 + :columns="yearArr"
  85 + value-key="label"
  86 + @cancel="showYearSelect = false"
  87 + @confirm="selectYearOver"
  88 + />
60 </van-popup> 89 </van-popup>
61 <van-popup v-model="showAreaSelect" round position="bottom" get-container="body" :safe-area-inset-bottom="true"> 90 <van-popup v-model="showAreaSelect" round position="bottom" get-container="body" :safe-area-inset-bottom="true">
62 - <van-area title="地区" :area-list="areaList" @cancel="showAreaSelect = false" @confirm="selectAreaOver" /> 91 + <van-cascader
  92 + v-model="area"
  93 + title="请选择所在地区"
  94 + :options="areaList"
  95 + :field-names="fieldNames"
  96 + @close="showAreaSelect = false"
  97 + @finish="selectAreaOver"
  98 + />
63 </van-popup> 99 </van-popup>
64 <van-popup v-model="showUserClassSelect" round position="bottom" get-container="body" :safe-area-inset-bottom="true"> 100 <van-popup v-model="showUserClassSelect" round position="bottom" get-container="body" :safe-area-inset-bottom="true">
65 - <van-picker title="班级" show-toolbar :columns="classTypeArr" value-key="label" @cancel="showUserClassSelect = false" @confirm="selectClassTypeOver" /> 101 + <van-picker
  102 + title="班级"
  103 + show-toolbar
  104 + :columns="classTypeArr"
  105 + value-key="label"
  106 + @cancel="showUserClassSelect = false"
  107 + @confirm="selectClassTypeOver"
  108 + />
66 </van-popup> 109 </van-popup>
67 110
68 <van-popup v-model="chooseSchoolisShow" round get-container="body" :safe-area-inset-bottom="true"> 111 <van-popup v-model="chooseSchoolisShow" round get-container="body" :safe-area-inset-bottom="true">
69 <div v-if="chooseSchoolisShow"> 112 <div v-if="chooseSchoolisShow">
70 - <chooseSchool v-model="chooseSchoolisShow" @schoolData='schoolData'></chooseSchool> 113 + <chooseSchool v-model="chooseSchoolisShow" @schoolData="schoolData"></chooseSchool>
71 </div> 114 </div>
72 </van-popup> 115 </van-popup>
73 </div> 116 </div>
74 </template> 117 </template>
75 118
76 <script> 119 <script>
77 -  
78 import chooseSchool from '@/views/Service/component/chooseSchool' 120 import chooseSchool from '@/views/Service/component/chooseSchool'
79 -var codeInterval; 121 +import areaList from '@/common/area.json'
  122 +var codeInterval
80 export default { 123 export default {
81 components: { chooseSchool }, 124 components: { chooseSchool },
82 props: ['step', 'travelerNum'], 125 props: ['step', 'travelerNum'],
83 - data () { 126 + data() {
84 return { 127 return {
85 phone: '', 128 phone: '',
86 - codeText: '获取验证码',//获取验证码按钮文字  
87 - code: '',//验证码 129 + codeText: '获取验证码', //获取验证码按钮文字
  130 + code: '', //验证码
88 studentName: '', 131 studentName: '',
89 showDialog: true, 132 showDialog: true,
90 133
91 - year: '',//入学年份 134 + year: '', //入学年份
92 yearDisable: false, 135 yearDisable: false,
93 showYearSelect: false, 136 showYearSelect: false,
94 yearArr: [], 137 yearArr: [],
95 138
96 userType: '', 139 userType: '',
97 - userTypeVal: '',//所处阶段1-小学 2-初中 3-高中 140 + userTypeVal: '', //所处阶段1-小学 2-初中 3-高中
98 showUserTypeSelect: false, 141 showUserTypeSelect: false,
99 userTypeArr: [ 142 userTypeArr: [
100 { 143 {
101 label: '幼儿园', 144 label: '幼儿园',
102 - value: 0  
103 - }, { 145 + value: 0,
  146 + },
  147 + {
104 label: '小学', 148 label: '小学',
105 - value: 1  
106 - }, { 149 + value: 1,
  150 + },
  151 + {
107 label: '初中', 152 label: '初中',
108 - value: 2  
109 - }, { 153 + value: 2,
  154 + },
  155 + {
110 label: '高中', 156 label: '高中',
111 - value: 3  
112 - }], 157 + value: 3,
  158 + },
  159 + ],
113 160
114 classType: '', 161 classType: '',
115 - classTypeVal: '',//班级 162 + classTypeVal: '', //班级
116 showUserClassSelect: false, 163 showUserClassSelect: false,
117 - classTypeArr: [{  
118 - label: '1班',  
119 - value: '1班'  
120 - }, {  
121 - label: '2班',  
122 - value: '2班'  
123 - }, {  
124 - label: '3班',  
125 - value: '3班'  
126 - }, {  
127 - label: '4班',  
128 - value: '4班'  
129 - }, {  
130 - label: '5班',  
131 - value: '5班'  
132 - }, {  
133 - label: '6班',  
134 - value: '6班'  
135 - }, {  
136 - label: '7班',  
137 - value: '7班'  
138 - }, {  
139 - label: '8班',  
140 - value: '8班'  
141 - }, {  
142 - label: '9班',  
143 - value: '9班'  
144 - }, {  
145 - label: '10班',  
146 - value: '10班'  
147 - }, {  
148 - label: '11班',  
149 - value: '11班'  
150 - }, {  
151 - label: '12班',  
152 - value: '12班'  
153 - }, {  
154 - label: '13班',  
155 - value: '13班'  
156 - }, {  
157 - label: '14班',  
158 - value: '14班'  
159 - }, {  
160 - label: '15班',  
161 - value: '15班'  
162 - }, {  
163 - label: '16班',  
164 - value: '16班'  
165 - }, {  
166 - label: '17班',  
167 - value: '17班'  
168 - }, {  
169 - label: '18班',  
170 - value: '18班'  
171 - }, {  
172 - label: '19班',  
173 - value: '19班'  
174 - }, {  
175 - label: '20班',  
176 - value: '20班'  
177 - }, {  
178 - label: '21班',  
179 - value: '21班'  
180 - }, {  
181 - label: '22班',  
182 - value: '22班'  
183 - }, {  
184 - label: '23班',  
185 - value: '23班'  
186 - }, {  
187 - label: '24班',  
188 - value: '24班'  
189 - }, {  
190 - label: '25班',  
191 - value: '25班'  
192 - }, {  
193 - label: '26班',  
194 - value: '26班'  
195 - }, {  
196 - label: '27班',  
197 - value: '27班'  
198 - }, {  
199 - label: '28班',  
200 - value: '28班'  
201 - }, {  
202 - label: '29班',  
203 - value: '29班'  
204 - }, {  
205 - label: '30班',  
206 - value: '30班'  
207 - }, {  
208 - label: '31班',  
209 - value: '31班'  
210 - }, {  
211 - label: '32班',  
212 - value: '32班'  
213 - }, {  
214 - label: '33班',  
215 - value: '33班'  
216 - }, {  
217 - label: '34班',  
218 - value: '34班'  
219 - }, {  
220 - label: '35班',  
221 - value: '35班'  
222 - }, {  
223 - label: '36班',  
224 - value: '36班'  
225 - }, {  
226 - label: '37班',  
227 - value: '37班'  
228 - }, {  
229 - label: '38班',  
230 - value: '38班'  
231 - }, {  
232 - label: '39班',  
233 - value: '39班'  
234 - }, {  
235 - label: '40班',  
236 - value: '40班'  
237 - }, {  
238 - label: '41班',  
239 - value: '41班'  
240 - }, {  
241 - label: '42班',  
242 - value: '42班'  
243 - }, {  
244 - label: '43班',  
245 - value: '43班'  
246 - }, {  
247 - label: '44班',  
248 - value: '44班'  
249 - }, {  
250 - label: '45班',  
251 - value: '45班'  
252 - }, {  
253 - label: '46班',  
254 - value: '46班'  
255 - }, {  
256 - label: '47班',  
257 - value: '47班'  
258 - }, {  
259 - label: '48班',  
260 - value: '48班'  
261 - }, {  
262 - label: '49班',  
263 - value: '49班'  
264 - }, {  
265 - label: '50班',  
266 - value: '50班'  
267 - } 164 + classTypeArr: [
  165 + {
  166 + label: '1班',
  167 + value: '1班',
  168 + },
  169 + {
  170 + label: '2班',
  171 + value: '2班',
  172 + },
  173 + {
  174 + label: '3班',
  175 + value: '3班',
  176 + },
  177 + {
  178 + label: '4班',
  179 + value: '4班',
  180 + },
  181 + {
  182 + label: '5班',
  183 + value: '5班',
  184 + },
  185 + {
  186 + label: '6班',
  187 + value: '6班',
  188 + },
  189 + {
  190 + label: '7班',
  191 + value: '7班',
  192 + },
  193 + {
  194 + label: '8班',
  195 + value: '8班',
  196 + },
  197 + {
  198 + label: '9班',
  199 + value: '9班',
  200 + },
  201 + {
  202 + label: '10班',
  203 + value: '10班',
  204 + },
  205 + {
  206 + label: '11班',
  207 + value: '11班',
  208 + },
  209 + {
  210 + label: '12班',
  211 + value: '12班',
  212 + },
  213 + {
  214 + label: '13班',
  215 + value: '13班',
  216 + },
  217 + {
  218 + label: '14班',
  219 + value: '14班',
  220 + },
  221 + {
  222 + label: '15班',
  223 + value: '15班',
  224 + },
  225 + {
  226 + label: '16班',
  227 + value: '16班',
  228 + },
  229 + {
  230 + label: '17班',
  231 + value: '17班',
  232 + },
  233 + {
  234 + label: '18班',
  235 + value: '18班',
  236 + },
  237 + {
  238 + label: '19班',
  239 + value: '19班',
  240 + },
  241 + {
  242 + label: '20班',
  243 + value: '20班',
  244 + },
  245 + {
  246 + label: '21班',
  247 + value: '21班',
  248 + },
  249 + {
  250 + label: '22班',
  251 + value: '22班',
  252 + },
  253 + {
  254 + label: '23班',
  255 + value: '23班',
  256 + },
  257 + {
  258 + label: '24班',
  259 + value: '24班',
  260 + },
  261 + {
  262 + label: '25班',
  263 + value: '25班',
  264 + },
  265 + {
  266 + label: '26班',
  267 + value: '26班',
  268 + },
  269 + {
  270 + label: '27班',
  271 + value: '27班',
  272 + },
  273 + {
  274 + label: '28班',
  275 + value: '28班',
  276 + },
  277 + {
  278 + label: '29班',
  279 + value: '29班',
  280 + },
  281 + {
  282 + label: '30班',
  283 + value: '30班',
  284 + },
  285 + {
  286 + label: '31班',
  287 + value: '31班',
  288 + },
  289 + {
  290 + label: '32班',
  291 + value: '32班',
  292 + },
  293 + {
  294 + label: '33班',
  295 + value: '33班',
  296 + },
  297 + {
  298 + label: '34班',
  299 + value: '34班',
  300 + },
  301 + {
  302 + label: '35班',
  303 + value: '35班',
  304 + },
  305 + {
  306 + label: '36班',
  307 + value: '36班',
  308 + },
  309 + {
  310 + label: '37班',
  311 + value: '37班',
  312 + },
  313 + {
  314 + label: '38班',
  315 + value: '38班',
  316 + },
  317 + {
  318 + label: '39班',
  319 + value: '39班',
  320 + },
  321 + {
  322 + label: '40班',
  323 + value: '40班',
  324 + },
  325 + {
  326 + label: '41班',
  327 + value: '41班',
  328 + },
  329 + {
  330 + label: '42班',
  331 + value: '42班',
  332 + },
  333 + {
  334 + label: '43班',
  335 + value: '43班',
  336 + },
  337 + {
  338 + label: '44班',
  339 + value: '44班',
  340 + },
  341 + {
  342 + label: '45班',
  343 + value: '45班',
  344 + },
  345 + {
  346 + label: '46班',
  347 + value: '46班',
  348 + },
  349 + {
  350 + label: '47班',
  351 + value: '47班',
  352 + },
  353 + {
  354 + label: '48班',
  355 + value: '48班',
  356 + },
  357 + {
  358 + label: '49班',
  359 + value: '49班',
  360 + },
  361 + {
  362 + label: '50班',
  363 + value: '50班',
  364 + },
268 ], 365 ],
269 366
270 area: '', 367 area: '',
271 areaCode: '', 368 areaCode: '',
272 showAreaSelect: false, 369 showAreaSelect: false,
273 - areaList: [], 370 + areaList: areaList,
  371 + fieldNames: {
  372 + text: 'area_name',
  373 + value: 'area_name',
  374 + children: 'areaList',
  375 + },
274 376
275 searchSchool: '', 377 searchSchool: '',
276 school: '', 378 school: '',
277 schoolId: '', 379 schoolId: '',
278 380
279 - chooseSchoolisShow: false 381 + chooseSchoolisShow: false,
  382 + cardAuth: false, //是否身份证认证
  383 + cardName: '',
  384 + cardId: '',
280 } 385 }
281 }, 386 },
282 387
283 - mounted () { 388 + mounted() {
284 let userInfo = localStorage.getItem('userInfo') 389 let userInfo = localStorage.getItem('userInfo')
285 - this.userInfo = JSON.parse(userInfo); 390 + this.userInfo = JSON.parse(userInfo)
286 this.initYearArr() 391 this.initYearArr()
287 - this.GetSysAreaList()  
288 }, 392 },
289 methods: { 393 methods: {
290 // 获取验证码 394 // 获取验证码
291 - getCode () {  
292 - if (this.codeText != '获取验证码') return; 395 + getCode() {
  396 + if (this.codeText != '获取验证码') return
293 if (!this.phone) { 397 if (!this.phone) {
294 this.$toast('请输入手机号') 398 this.$toast('请输入手机号')
295 - return; 399 + return
296 } 400 }
297 if (!this.checkPhone(this.phone)) { 401 if (!this.checkPhone(this.phone)) {
298 this.$toast('请输入正确的手机号') 402 this.$toast('请输入正确的手机号')
299 - return; 403 + return
300 } 404 }
301 this.$toast.loading({ 405 this.$toast.loading({
302 message: '加载中', 406 message: '加载中',
303 duration: 0, 407 duration: 0,
304 - forbidClick: true 408 + forbidClick: true,
305 }) 409 })
306 this.mgop({ 410 this.mgop({
307 api: 'mgop.sz.hswsy.getMsg', // 必须 411 api: 'mgop.sz.hswsy.getMsg', // 必须
@@ -313,48 +417,48 @@ export default { @@ -313,48 +417,48 @@ export default {
313 // 'isTestUrl': '1' 417 // 'isTestUrl': '1'
314 }, 418 },
315 data: { 419 data: {
316 - "phone": this.phone 420 + phone: this.phone,
317 }, 421 },
318 - onSuccess: res => { 422 + onSuccess: (res) => {
319 this.$toast.clear() 423 this.$toast.clear()
320 - if (res.data.code == 200||res.data.success) {  
321 - let i = 60; 424 + if (res.data.code == 200 || res.data.success) {
  425 + let i = 60
322 codeInterval = setInterval(() => { 426 codeInterval = setInterval(() => {
323 if (i == 0) { 427 if (i == 0) {
324 - this.codeText = `获取验证码`;  
325 - clearInterval(codeInterval);  
326 - return; 428 + this.codeText = `获取验证码`
  429 + clearInterval(codeInterval)
  430 + return
327 } 431 }
328 - this.codeText = `重试(${i})`; 432 + this.codeText = `重试(${i})`
329 i-- 433 i--
330 }, 1000) 434 }, 1000)
331 } else { 435 } else {
332 this.$toast.fail(res.data?.message) 436 this.$toast.fail(res.data?.message)
333 } 437 }
334 }, 438 },
335 - onFail: err => { 439 + onFail: (err) => {
336 console.log('err', err) 440 console.log('err', err)
337 - }  
338 - }); 441 + },
  442 + })
339 }, 443 },
340 - // 获取手机号白名单信息  
341 - checkPhoneAndCode () { 444 + // 获取手机号白名单信息,激活认证
  445 + checkPhoneAndCode() {
342 if (!this.phone) { 446 if (!this.phone) {
343 this.$toast('请输入手机号') 447 this.$toast('请输入手机号')
344 - return; 448 + return
345 } 449 }
346 if (!this.checkPhone(this.phone)) { 450 if (!this.checkPhone(this.phone)) {
347 this.$toast('请输入正确的手机号') 451 this.$toast('请输入正确的手机号')
348 - return; 452 + return
349 } 453 }
350 if (!this.code) { 454 if (!this.code) {
351 this.$toast('请输入验证码') 455 this.$toast('请输入验证码')
352 - return; 456 + return
353 } 457 }
354 this.$toast.loading({ 458 this.$toast.loading({
355 message: '加载中', 459 message: '加载中',
356 duration: 0, 460 duration: 0,
357 - forbidClick: true 461 + forbidClick: true,
358 }) 462 })
359 this.mgop({ 463 this.mgop({
360 api: 'mgop.sz.hswsy.checkPhone', // 必须 464 api: 'mgop.sz.hswsy.checkPhone', // 必须
@@ -366,11 +470,11 @@ export default { @@ -366,11 +470,11 @@ export default {
366 // 'isTestUrl': '1' 470 // 'isTestUrl': '1'
367 }, 471 },
368 data: { 472 data: {
369 - "code": this.code,  
370 - "phone": this.phone,  
371 - "travelerNum": this.travelerNum 473 + code: this.code,
  474 + phone: this.phone,
  475 + travelerNum: this.travelerNum,
372 }, 476 },
373 - onSuccess: res => { 477 + onSuccess: (res) => {
374 this.$toast.clear() 478 this.$toast.clear()
375 if (res.data.code == 200) { 479 if (res.data.code == 200) {
376 this.$toast.success('认证成功') 480 this.$toast.success('认证成功')
@@ -379,18 +483,59 @@ export default { @@ -379,18 +483,59 @@ export default {
379 this.$toast.fail(res.data?.message) 483 this.$toast.fail(res.data?.message)
380 } 484 }
381 }, 485 },
382 - onFail: err => { 486 + onFail: (err) => {
383 console.log('err', err) 487 console.log('err', err)
384 - }  
385 - }); 488 + },
  489 + })
  490 + },
  491 + // 获取身份证认证
  492 + checkCard() {
  493 + if (!this.cardName) {
  494 + this.$toast('请输入证件姓名')
  495 + return
  496 + }
  497 + if (!this.cardId) {
  498 + this.$toast('请输入身份证号')
  499 + return
  500 + }
  501 + this.$toast.loading({
  502 + message: '加载中',
  503 + duration: 0,
  504 + forbidClick: true,
  505 + })
  506 + this.mgop({
  507 + api: 'mgop.sz.hswsy.checkIdCard', // 必须
  508 + host: 'https://mapi.zjzwfw.gov.cn/',
  509 + dataType: 'JSON',
  510 + type: 'POST',
  511 + appKey: 'fuxgnukl+2001895516+edccpx', // 必须
  512 + headers: {
  513 + // 'isTestUrl': '1'
  514 + },
  515 + data: {
  516 + idCard: this.cardId,
  517 + travelerNum: this.travelerNum,
  518 + },
  519 + onSuccess: (res) => {
  520 + this.$toast.clear()
  521 + if (res.data.code == 200) {
  522 + this.$toast.success('认证成功')
  523 + this.$emit('complete')
  524 + } else {
  525 + this.$toast.fail(res.data?.message)
  526 + }
  527 + },
  528 + onFail: (err) => {
  529 + console.log('err', err)
  530 + },
  531 + })
386 }, 532 },
387 -  
388 // 初始化入学年份选项 533 // 初始化入学年份选项
389 - initYearArr () { 534 + initYearArr() {
390 // 页面创建时执行 535 // 页面创建时执行
391 let year = new Date().getFullYear(), 536 let year = new Date().getFullYear(),
392 Month = new Date().getMonth() + 1, 537 Month = new Date().getMonth() + 1,
393 - yearArr = []; 538 + yearArr = []
394 if (Month > 8) { 539 if (Month > 8) {
395 // 如果月份大于8,那么当年的学年的高考年份要+1,如果月份小于7,那么当前的年份就是今年高考的年份 540 // 如果月份大于8,那么当年的学年的高考年份要+1,如果月份小于7,那么当前的年份就是今年高考的年份
396 year = year 541 year = year
@@ -400,120 +545,62 @@ export default { @@ -400,120 +545,62 @@ export default {
400 } 545 }
401 this.yearArr = yearArr 546 this.yearArr = yearArr
402 }, 547 },
403 - selectYearOver (value) {  
404 - this.year = value.label;  
405 - this.showYearSelect = false; 548 + selectYearOver(value) {
  549 + this.year = value.label
  550 + this.showYearSelect = false
406 }, 551 },
407 - handleYear () { 552 + handleYear() {
408 if (!this.yearDisable) { 553 if (!this.yearDisable) {
409 - this.showYearSelect = true; 554 + this.showYearSelect = true
410 } 555 }
411 }, 556 },
412 - selectUserTypeOver (value) {  
413 - this.userType = value.label;  
414 - this.userTypeVal = value.value;  
415 - this.showUserTypeSelect = false; 557 + selectUserTypeOver(value) {
  558 + this.userType = value.label
  559 + this.userTypeVal = value.value
  560 + this.showUserTypeSelect = false
416 }, 561 },
417 //班级选择 562 //班级选择
418 - selectClassTypeOver (value) {  
419 - this.classType = value.label;  
420 - this.classTypeVal = value.value;  
421 - this.showUserClassSelect = false;  
422 - },  
423 - // 获取地区列表  
424 - GetSysAreaList () {  
425 - this.mgop({  
426 - api: 'mgop.sz.hswsy.GetSysAreaList', // 必须  
427 - host: 'https://mapi.zjzwfw.gov.cn/',  
428 - dataType: 'JSON',  
429 - type: 'GET',  
430 - appKey: 'fuxgnukl+2001895516+edccpx', // 必须  
431 - headers: {  
432 - // 'isTestUrl': '1'  
433 - },  
434 - data: {  
435 - "areaCode": 33  
436 - },  
437 - onSuccess: res => {  
438 - console.log('获取地区列表', res)  
439 - if (res.data.success) {  
440 - let data = res.data.data;  
441 - let obj = {  
442 - province_list: {  
443 - 330000: '浙江省'  
444 - },  
445 - city_list: {},  
446 - county_list: {}  
447 - };  
448 - if (data) {  
449 - data.forEach((n, i) => {  
450 - obj.city_list[n.area_code + '00'] = n.area_name;  
451 - if (n.areaList.length > 0) {  
452 - n.areaList.forEach((k, j) => {  
453 - obj.county_list[k.area_code] = k.area_name;  
454 - })  
455 - }  
456 - });  
457 - this.areaList = obj;  
458 - }  
459 - } else {  
460 - this.$toast.fail(res.message)  
461 - }  
462 - },  
463 - onFail: err => {  
464 - console.log('err', err)  
465 - }  
466 - }); 563 + selectClassTypeOver(value) {
  564 + this.classType = value.label
  565 + this.classTypeVal = value.value
  566 + this.showUserClassSelect = false
467 }, 567 },
468 - selectAreaOver (value) {  
469 - let data = value;  
470 - var city = data[1].code;  
471 - city = city.substring(0, city.length - 2);  
472 - // console.log(city)  
473 - this.area = data[0].name + ',' + data[1].name + ',' + data[2].name;  
474 - this.areaCode = [data[0].code, city, data[2].code];  
475 - this.quCode = data[2].code;  
476 - this.school = '',  
477 - this.schoolId = '',  
478 - this.showAreaSelect = false 568 + selectAreaOver(value) {
  569 + this.area = '浙江省,' + value.selectedOptions[0].area_name + ',' + value.selectedOptions[1].area_name
  570 + this.showAreaSelect = false
479 }, 571 },
480 572
481 - submit () { 573 + submit() {
482 if (!this.studentName) { 574 if (!this.studentName) {
483 - this.$toast('请输入姓名');  
484 - }  
485 - else if (!this.userType) {  
486 - this.$toast('请选择阶段');  
487 - }  
488 - else if (!this.classType) {  
489 - this.$toast('请选择班级');  
490 - }  
491 - else if (!this.year) {  
492 - this.$toast('请选择入学年份');  
493 - }  
494 - else if (!this.area) {  
495 - this.$toast('请选择地区');  
496 - }  
497 - else if (!this.school) {  
498 - this.$toast('请选择学校'); 575 + this.$toast('请输入姓名')
  576 + } else if (!this.userType) {
  577 + this.$toast('请选择阶段')
  578 + } else if (!this.classType) {
  579 + this.$toast('请选择班级')
  580 + } else if (!this.year) {
  581 + this.$toast('请选择入学年份')
  582 + } else if (!this.area) {
  583 + this.$toast('请选择地区')
  584 + } else if (!this.school) {
  585 + this.$toast('请选择学校')
499 } else { 586 } else {
500 let postData = { 587 let postData = {
501 contactsName: this.studentName, 588 contactsName: this.studentName,
502 contactsMobile: this.userInfo?.phone, 589 contactsMobile: this.userInfo?.phone,
503 contactsType: 1, 590 contactsType: 1,
504 - province: this.area.split(',')[0],//省份  
505 - city: this.area.split(',')[1],//城市  
506 - area: this.area.split(',')[2],//地区  
507 - schoolName: this.school,//学校名称  
508 - enrollYear: this.year,//入学年份  
509 - travelerType: this.userTypeVal,//1-小学 2-初中 3-高中 591 + province: this.area.split(',')[0], //省份
  592 + city: this.area.split(',')[1], //城市
  593 + area: this.area.split(',')[2], //地区
  594 + schoolName: this.school, //学校名称
  595 + enrollYear: this.year, //入学年份
  596 + travelerType: this.userTypeVal, //0 幼儿园 1-小学 2-初中 3-高中
510 loginMobile: this.userInfo?.phone, 597 loginMobile: this.userInfo?.phone,
511 - className: this.classType //班级 598 + className: this.classType, //班级
512 } 599 }
513 this.$toast.loading({ 600 this.$toast.loading({
514 message: '加载中', 601 message: '加载中',
515 duration: 0, 602 duration: 0,
516 - forbidClick: true 603 + forbidClick: true,
517 }) 604 })
518 this.mgop({ 605 this.mgop({
519 api: 'mgop.sz.hswsy.addStudent', // 必须 606 api: 'mgop.sz.hswsy.addStudent', // 必须
@@ -525,7 +612,7 @@ export default { @@ -525,7 +612,7 @@ export default {
525 // 'isTestUrl': '1' 612 // 'isTestUrl': '1'
526 }, 613 },
527 data: postData, 614 data: postData,
528 - onSuccess: res => { 615 + onSuccess: (res) => {
529 console.log('添加学生:', res) 616 console.log('添加学生:', res)
530 this.$toast.clear() 617 this.$toast.clear()
531 if (res.data.code == 200) { 618 if (res.data.code == 200) {
@@ -535,31 +622,31 @@ export default { @@ -535,31 +622,31 @@ export default {
535 this.$toast.fail(res.data?.message) 622 this.$toast.fail(res.data?.message)
536 } 623 }
537 }, 624 },
538 - onFail: err => { 625 + onFail: (err) => {
539 console.log('err', err) 626 console.log('err', err)
540 - }  
541 - }); 627 + },
  628 + })
542 } 629 }
543 }, 630 },
544 //选择学校 631 //选择学校
545 - chooseSchool () { 632 + chooseSchool() {
546 // this.$router.push({name: 'chooseSchool'}) 633 // this.$router.push({name: 'chooseSchool'})
547 this.chooseSchoolisShow = true 634 this.chooseSchoolisShow = true
548 }, 635 },
549 - schoolData (val) {  
550 - this.school = val.text;  
551 - this.schoolId = val.id; 636 + schoolData(val) {
  637 + this.school = val.text
  638 + this.schoolId = val.id
552 }, 639 },
553 - checkPhone (phone) {  
554 - if ((/^1[3456789]\d{9}$/.test(phone))) { 640 + checkPhone(phone) {
  641 + if (/^1[3456789]\d{9}$/.test(phone)) {
555 return true 642 return true
556 } else { 643 } else {
557 return false 644 return false
558 } 645 }
559 }, 646 },
560 }, 647 },
561 - destroyed () {  
562 - clearInterval(codeInterval); 648 + destroyed() {
  649 + clearInterval(codeInterval)
563 }, 650 },
564 } 651 }
565 </script> 652 </script>
@@ -646,8 +733,7 @@ export default { @@ -646,8 +733,7 @@ export default {
646 float: right; 733 float: right;
647 font-size: 28px; 734 font-size: 28px;
648 background: linear-gradient(135deg, #cdf8cf 0%, #8af36f 100%); 735 background: linear-gradient(135deg, #cdf8cf 0%, #8af36f 100%);
649 - box-shadow: 0px 4px 8px 0px rgba(189, 189, 189, 0.5),  
650 - 0px 8px 12px 0px rgba(89, 199, 171, 0.5); 736 + box-shadow: 0px 4px 8px 0px rgba(189, 189, 189, 0.5), 0px 8px 12px 0px rgba(89, 199, 171, 0.5);
651 border-radius: 34px; 737 border-radius: 34px;
652 border: transparent; 738 border: transparent;
653 color: #333333; 739 color: #333333;
@@ -663,8 +749,7 @@ export default { @@ -663,8 +749,7 @@ export default {
663 height: 72px; 749 height: 72px;
664 border: 0; 750 border: 0;
665 background: linear-gradient(135deg, #99c2ff 0%, #1f59ff 100%); 751 background: linear-gradient(135deg, #99c2ff 0%, #1f59ff 100%);
666 - box-shadow: 0px 4px 8px 0px rgba(189, 189, 189, 0.5),  
667 - 0px 8px 12px 0px rgba(87, 137, 255, 0.5); 752 + box-shadow: 0px 4px 8px 0px rgba(189, 189, 189, 0.5), 0px 8px 12px 0px rgba(87, 137, 255, 0.5);
668 border-radius: 34px; 753 border-radius: 34px;
669 font-size: 34px; 754 font-size: 34px;
670 color: #ffffff; 755 color: #ffffff;
@@ -760,10 +845,17 @@ export default { @@ -760,10 +845,17 @@ export default {
760 font-size: 34px; 845 font-size: 34px;
761 color: #ffffff; 846 color: #ffffff;
762 margin: 0 auto; 847 margin: 0 auto;
763 - margin-top: 120px; 848 + margin-top: 80px;
764 display: block; 849 display: block;
765 } 850 }
766 } 851 }
  852 + .change-btn {
  853 + color: #5789ff;
  854 + font-size: 28px;
  855 + text-align: center;
  856 + text-decoration: underline;
  857 + margin-top: 40px;
  858 + }
767 } 859 }
768 ::v-deep .van-search { 860 ::v-deep .van-search {
769 background: transparent; 861 background: transparent;