Commit 3de035c75f20f1a332cad5815a5c39bfa015c9af

Authored by weixin_45529955
1 parent 3ac666f7

店铺电话输入的时候自动加入横杠

  1 +[
  2 + {
  3 + "代码": "010",
  4 + "城市": "北京",
  5 + "拼音":"北京"
  6 + },
  7 + {
  8 + "代码": "021",
  9 + "城市":"上海",
  10 + "拼音":"上海"
  11 + },
  12 + {
  13 + "代码": "022",
  14 + "城市": "天津",
  15 + "拼音":"天津"
  16 + },
  17 + {
  18 + "代码": "023",
  19 + "city": "重庆",
  20 + "拼音":"重庆"
  21 + },
  22 + {
  23 + "代码": "0551",
  24 + "city": "合肥",
  25 + "拼音": "合肥",
  26 + "省份": "安徽"
  27 + },
  28 + {
  29 + "代码": "0553",
  30 + "city": "芜湖",
  31 + "拼音": "芜湖",
  32 + "省份": "安徽"
  33 + },
  34 + {
  35 + "代码": "0556",
  36 + "city": "安庆",
  37 + "拼音": "安庆",
  38 + "省份": "安徽"
  39 + },
  40 + {
  41 + "代码": "0552",
  42 + "city": "蚌埠",
  43 + "拼音": "蚌埠",
  44 + "省份": "安徽"
  45 + },
  46 + {
  47 + "代码": "0558",
  48 + "city": "亳州",
  49 + "拼音": "濠州",
  50 + "省份": "安徽"
  51 + },
  52 + {
  53 + "代码": "0565",
  54 + "city": "巢湖",
  55 + "拼音": "巢湖",
  56 + "省份": "安徽"
  57 + },
  58 + {
  59 + "代码": "0566",
  60 + "city": "池州",
  61 + "拼音": "池州",
  62 + "省份": "安徽"
  63 + },
  64 + {
  65 + "代码": "0550",
  66 + "city": "滁州",
  67 + "拼音": "滁州",
  68 + "省份": "安徽"
  69 + },
  70 + {
  71 + "代码": "1558",
  72 + "city": "阜阳",
  73 + "拼音": "富阳",
  74 + "省份": "安徽"
  75 + },
  76 + {
  77 + "代码": "0559",
  78 + "city": "黄山",
  79 + "拼音": "黄山",
  80 + "省份": "安徽"
  81 + },
  82 + {
  83 + "代码": "0561",
  84 + "city": "淮北",
  85 + "拼音": "淮北",
  86 + "省份": "安徽"
  87 + },
  88 + {
  89 + "代码": "0554",
  90 + "city": "淮南",
  91 + "拼音": "淮南",
  92 + "省份": "安徽"
  93 + },
  94 + {
  95 + "代码": "0564",
  96 + "city": "六安",
  97 + "拼音": "六安",
  98 + "省份": "安徽"
  99 + },
  100 + {
  101 + "代码": "0555",
  102 + "city": "马鞍山",
  103 + "拼音": "马鞍山",
  104 + "省份": "安徽"
  105 + },
  106 + {
  107 + "代码": "0557",
  108 + "city": "州宿",
  109 + "拼音": "苏州",
  110 + "省份": "安徽"
  111 + },
  112 + {
  113 + "代码": "0562",
  114 + "city": "铜陵",
  115 + "拼音": "铜陵",
  116 + "省份": "安徽"
  117 + },
  118 + {
  119 + "代码": "0563",
  120 + "city": "宣城",
  121 + "拼音": "宣城",
  122 + "省份": "安徽"
  123 + },
  124 + {
  125 + "代码": "0591",
  126 + "city": "福州",
  127 + "拼音": "福州",
  128 + "省": "福建"
  129 + },
  130 + {
  131 + "代码": "0592",
  132 + "城市": "厦门",
  133 + "拼音": "厦门",
  134 + "省": "福建"
  135 + },
  136 + {
  137 + "代码": "0595",
  138 + "city": "泉州",
  139 + "拼音": "泉州",
  140 + "省": "福建"
  141 + },
  142 + {
  143 + "代码": "0597",
  144 + "city": "龙岩",
  145 + "拼音": "龙岩",
  146 + "省": "福建"
  147 + },
  148 + {
  149 + "代码": "0593",
  150 + "city": "宁德",
  151 + "拼音": "宁德",
  152 + "省": "福建"
  153 + },
  154 + {
  155 + "代码": "0599",
  156 + "city": "南平",
  157 + "拼音": "南平",
  158 + "省": "福建"
  159 + },
  160 + {
  161 + "代码": "0594",
  162 + "city": "莆田",
  163 + "拼音": "福田",
  164 + "省": "福建"
  165 + },
  166 + {
  167 + "代码": "0598",
  168 + "city": "三明",
  169 + "拼音": "三明",
  170 + "省": "福建"
  171 + },
  172 + {
  173 + "代码": "0596",
  174 + "city": "漳州",
  175 + "拼音": "漳州",
  176 + "省": "福建"
  177 + },
  178 + {
  179 + "代码": "0931",
  180 + "city": "兰州",
  181 + "拼音": "兰州",
  182 + "省": "甘肃"
  183 + },
  184 + {
  185 + "代码": "0943",
  186 + "city": "白银",
  187 + "pinyin": "白音",
  188 + "省": "甘肃"
  189 + },
  190 + {
  191 + "代码": "0932",
  192 + "city": "定西",
  193 + "拼音": "定西",
  194 + "省": "甘肃"
  195 + },
  196 + {
  197 + "代码": "0935",
  198 + "city": "金昌",
  199 + "拼音": "金昌",
  200 + "省": "甘肃"
  201 + },
  202 + {
  203 + "代码": "0937",
  204 + "city": "酒泉",
  205 + "拼音": "酒泉",
  206 + "省": "甘肃"
  207 + },
  208 + {
  209 + "代码": "0933",
  210 + "city": "平凉",
  211 + "pinyin": "平凉",
  212 + "省": "甘肃"
  213 + },
  214 + {
  215 + "代码": "0934",
  216 + "city": "庆阳",
  217 + "拼音": "安阳",
  218 + "省": "甘肃"
  219 + },
  220 + {
  221 + "代码": "1935",
  222 + "city": "武威",
  223 + "拼音": "无为",
  224 + "省": "甘肃"
  225 + },
  226 + {
  227 + "代码": "0938",
  228 + "city": "天水",
  229 + "拼音": "天水",
  230 + "省": "甘肃"
  231 + },
  232 + {
  233 + "代码": "0936",
  234 + "city": "张掖",
  235 + "拼音": "张掖",
  236 + "省": "甘肃"
  237 + },
  238 + {
  239 + "代码": "0941",
  240 + "city": "甘南",
  241 + "拼音": "赣南",
  242 + "省": "甘肃"
  243 + },
  244 + {
  245 + "代码": "1937",
  246 + "city": "嘉峪关",
  247 + "拼音": "嘉峪关",
  248 + "省": "甘肃"
  249 + },
  250 + {
  251 + "代码": "0930",
  252 + "city": "临夏",
  253 + "拼音": "临夏",
  254 + "省": "甘肃"
  255 + },
  256 + {
  257 + "代码": "2935",
  258 + "city": "陇南",
  259 + "拼音": "陇南",
  260 + "省": "甘肃"
  261 + },
  262 + {
  263 + "代码": "020",
  264 + "城市": "广州",
  265 + "拼音": "广州",
  266 + "省份": "广东"
  267 + },
  268 + {
  269 + "代码": "0755",
  270 + "城市": "深圳",
  271 + "拼音": "深圳",
  272 + "省份": "广东"
  273 + },
  274 + {
  275 + "代码": "0756",
  276 + "city": "珠海",
  277 + "拼音": "珠海",
  278 + "省份": "广东"
  279 + },
  280 + {
  281 + "代码": "0769",
  282 + "城市": "东莞",
  283 + "拼音": "东莞",
  284 + "省份": "广东"
  285 + },
  286 + {
  287 + "代码": "0757",
  288 + "city": "佛山",
  289 + "拼音": "福山",
  290 + "省份": "广东"
  291 + },
  292 + {
  293 + "代码": "0752",
  294 + "city": "惠州",
  295 + "拼音": "惠州",
  296 + "省份": "广东"
  297 + },
  298 + {
  299 + "代码": "0750",
  300 + "city": "江门",
  301 + "拼音": "江门",
  302 + "省份": "广东"
  303 + },
  304 + {
  305 + "代码": "0760",
  306 + "city": "中山",
  307 + "拼音": "中山",
  308 + "省份": "广东"
  309 + },
  310 + {
  311 + "代码": "0754",
  312 + "city": "汕头",
  313 + "拼音": "汕头",
  314 + "省份": "广东"
  315 + },
  316 + {
  317 + "代码": "0759",
  318 + "city": "湛江",
  319 + "拼音": "湛江",
  320 + "省份": "广东"
  321 + },
  322 + {
  323 + "代码": "0768",
  324 + "city": "潮州",
  325 + "拼音": "潮州",
  326 + "省份": "广东"
  327 + },
  328 + {
  329 + "代码": "0762",
  330 + "city": "河源",
  331 + "拼音": "河源",
  332 + "省份": "广东"
  333 + },
  334 + {
  335 + "代码": "0663",
  336 + "city": "揭阳",
  337 + "拼音": "揭阳",
  338 + "省份": "广东"
  339 + },
  340 + {
  341 + "代码": "0668",
  342 + "city": "茂名",
  343 + "拼音": "茂名",
  344 + "省份": "广东"
  345 + },
  346 + {
  347 + "代码": "0753",
  348 + "city": "梅州",
  349 + "拼音": "梅州",
  350 + "省份": "广东"
  351 + },
  352 + {
  353 + "代码": "0763",
  354 + "city": "清远",
  355 + "拼音": "清源",
  356 + "省份": "广东"
  357 + },
  358 + {
  359 + "代码": "0751",
  360 + "city": "韶关",
  361 + "拼音": "韶关",
  362 + "省份": "广东"
  363 + },
  364 + {
  365 + "代码": "0660",
  366 + "city": "β尾",
  367 + "拼音": "汕尾",
  368 + "省份": "广东"
  369 + },
  370 + {
  371 + "代码": "0662",
  372 + "city": "阳江",
  373 + "拼音": "阳江",
  374 + "省份": "广东"
  375 + },
  376 + {
  377 + "代码": "0766",
  378 + "city": "云浮",
  379 + "拼音": "云符",
  380 + "省份": "广东"
  381 + },
  382 + {
  383 + "代码": "0758",
  384 + "city": "肇庆",
  385 + "拼音": "肇庆",
  386 + "省份": "广东"
  387 + },
  388 + {
  389 + "代码": "0771",
  390 + "city": "南宁",
  391 + "拼音": "南宁",
  392 + "省": "广西"
  393 + },
  394 + {
  395 + "代码": "0779",
  396 + "city": "北海",
  397 + "拼音": "北海",
  398 + "省": "广西"
  399 + },
  400 + {
  401 + "代码": "0770",
  402 + "city": "防城港",
  403 + "拼音": "防城港",
  404 + "省": "广西"
  405 + },
  406 + {
  407 + "代码": "0773",
  408 + "city": "桂林",
  409 + "拼音": "桂林",
  410 + "省": "广西"
  411 + },
  412 + {
  413 + "代码": "0772",
  414 + "city": "柳州",
  415 + "拼音": "柳州",
  416 + "省": "广西"
  417 + },
  418 + {
  419 + "代码": "1771",
  420 + "city": "崇左",
  421 + "拼音": "崇左",
  422 + "省": "广西"
  423 + },
  424 + {
  425 + "代码": "1772",
  426 + "city": "来宾",
  427 + "拼音": "来宾",
  428 + "省": "广西"
  429 + },
  430 + {
  431 + "代码": "0774",
  432 + "city": "梧州",
  433 + "拼音": "五洲",
  434 + "省": "广西"
  435 + },
  436 + {
  437 + "代码": "0778",
  438 + "city": "河池",
  439 + "拼音": "河池",
  440 + "省": "广西"
  441 + },
  442 + {
  443 + "代码": "0775",
  444 + "city": "玉林",
  445 + "拼音": "榆林",
  446 + "省": "广西"
  447 + },
  448 + {
  449 + "代码": "1755",
  450 + "city": "贵港",
  451 + "拼音": "贵港",
  452 + "省": "广西"
  453 + },
  454 + {
  455 + "代码": "1774",
  456 + "city": "贺州",
  457 + "拼音": "河州",
  458 + "省": "广西"
  459 + },
  460 + {
  461 + "代码": "0777",
  462 + "city": "钦州",
  463 + "拼音": "钦州",
  464 + "省": "广西"
  465 + },
  466 + {
  467 + "代码": "0776",
  468 + "city": "百色",
  469 + "拼音": "百色",
  470 + "省": "广西"
  471 + },
  472 + {
  473 + "代码": "0851",
  474 + "city": "贵阳",
  475 + "拼音": "贵阳",
  476 + "province": "贵州"
  477 + },
  478 + {
  479 + "代码": "0853",
  480 + "city": "安顺",
  481 + "拼音": "安顺",
  482 + "province": "贵州"
  483 + },
  484 + {
  485 + "代码": "0852",
  486 + "city": "遵义",
  487 + "拼音": "遵义",
  488 + "province": "贵州"
  489 + },
  490 + {
  491 + "代码": "0858",
  492 + "city": "六盘水",
  493 + "拼音": "六盘水",
  494 + "province": "贵州"
  495 + },
  496 + {
  497 + "代码": "0857",
  498 + "city": "节毕",
  499 + "拼音": "毕节",
  500 + "province": "贵州"
  501 + },
  502 + {
  503 + "代码": "0855",
  504 + "city": "黔东南",
  505 + "拼音": "黔东南",
  506 + "province": "贵州"
  507 + },
  508 + {
  509 + "代码": "0859",
  510 + "city": "黔西南",
  511 + "拼音": "黔西南",
  512 + "province": "贵州"
  513 + },
  514 + {
  515 + "代码": "0854",
  516 + "city": "黔南",
  517 + "拼音": "黔南",
  518 + "province": "贵州"
  519 + },
  520 + {
  521 + "代码": "0856",
  522 + "city": "铜仁",
  523 + "拼音": "同仁",
  524 + "province": "贵州"
  525 + },
  526 + {
  527 + "代码": "0898",
  528 + "city": "海口",
  529 + "拼音": "海口",
  530 + "省": "海南"
  531 + },
  532 + {
  533 + "代码": "0899",
  534 + "city": "三亚",
  535 + "拼音":"sanya",
  536 + "省": "海南"
  537 + },
  538 + {
  539 + "代码": "0802",
  540 + "city": "白沙县",
  541 + "拼音": "保亭县",
  542 + "省": "海南"
  543 + },
  544 + {
  545 + "代码": "0801",
  546 + "city": "保亭县",
  547 + "拼音": "保亭县",
  548 + "省": "海南"
  549 + },
  550 + {
  551 + "代码": "0803",
  552 + "city": "昌江县",
  553 + "pinyin": "长江县",
  554 + "省": "海南"
  555 + },
  556 + {
  557 + "代码": "0804",
  558 + "city": "澄迈县",
  559 + "拼音": "成麦线",
  560 + "省": "海南"
  561 + },
  562 + {
  563 + "代码": "0806",
  564 + "city": "定安县",
  565 + "pinyin": "安定县",
  566 + "省": "海南"
  567 + },
  568 + {
  569 + "代码": "0807",
  570 + "城市": "东方",
  571 + "拼音": "东方",
  572 + "省": "海南"
  573 + },
  574 + {
  575 + "代码": "2802",
  576 + "city": "乐东县",
  577 + "拼音": "乐东县",
  578 + "省": "海南"
  579 + },
  580 + {
  581 + "代码": "1896",
  582 + "city": "临高县",
  583 + "拼音": "临高县",
  584 + "省": "海南"
  585 + },
  586 + {
  587 + "代码": "0809",
  588 + "city": "陵水县",
  589 + "拼音": "陵水县",
  590 + "省": "海南"
  591 + },
  592 + {
  593 + "代码": "1894",
  594 + "city": "琼海",
  595 + "拼音": "海南",
  596 + "省": "海南"
  597 + },
  598 + {
  599 + "代码": "1899",
  600 + "city": "琼中县",
  601 + "拼音": "琼中线",
  602 + "省": "海南"
  603 + },
  604 + {
  605 + "代码": "1892",
  606 + "city": "屯昌县",
  607 + "拼音": "屯场线",
  608 + "省": "海南"
  609 + },
  610 + {
  611 + "代码": "1898",
  612 + "city": "万宁",
  613 + "拼音": "万宁",
  614 + "省": "海南"
  615 + },
  616 + {
  617 + "代码": "1893",
  618 + "city": "文昌",
  619 + "拼音": "文昌",
  620 + "省": "海南"
  621 + },
  622 + {
  623 + "代码": "1897",
  624 + "city": "五指山",
  625 + "拼音": "五指山",
  626 + "省": "海南"
  627 + },
  628 + {
  629 + "代码": "0805",
  630 + "city": "儋州",
  631 + "拼音": "儋州",
  632 + "省": "海南"
  633 + },
  634 + {
  635 + "代码": "0311",
  636 + "city": "石家庄",
  637 + "拼音": "石家庄",
  638 + "province": "河北"
  639 + },
  640 + {
  641 + "代码": "0312",
  642 + "city": "保定",
  643 + "拼音": "保定",
  644 + "province": "河北"
  645 + },
  646 + {
  647 + "代码": "0314",
  648 + "city": "承德",
  649 + "拼音": "承德",
  650 + "province": "河北"
  651 + },
  652 + {
  653 + "代码": "0310",
  654 + "city": "邯郸",
  655 + "拼音": "邯郸",
  656 + "province": "河北"
  657 + },
  658 + {
  659 + "代码": "0315",
  660 + "city": "唐山",
  661 + "拼音": "唐山",
  662 + "province": "河北"
  663 + },
  664 + {
  665 + "代码": "0335",
  666 + "city": "秦皇岛",
  667 + "拼音": "秦皇岛",
  668 + "province": "河北"
  669 + },
  670 + {
  671 + "代码": "0317",
  672 + "city": "沧州",
  673 + "拼音": "沧州",
  674 + "province": "河北"
  675 + },
  676 + {
  677 + "代码": "0318",
  678 + "city": "衡水",
  679 + "拼音": "衡水",
  680 + "province": "河北"
  681 + },
  682 + {
  683 + "代码": "0316",
  684 + "city": "廊坊",
  685 + "拼音": "廊坊",
  686 + "province": "河北"
  687 + },
  688 + {
  689 + "代码": "0319",
  690 + "city": "邢台",
  691 + "拼音": "邢台",
  692 + "province": "河北"
  693 + },
  694 + {
  695 + "代码": "0313",
  696 + "city": "张家口",
  697 + "拼音": "张家口",
  698 + "province": "河北"
  699 + },
  700 + {
  701 + "代码": "0371",
  702 + "city": "郑州",
  703 + "拼音": "郑州",
  704 + "省份": "河南"
  705 + },
  706 + {
  707 + "代码": "0379",
  708 + "city": "洛阳",
  709 + "拼音": "洛阳",
  710 + "省份": "河南"
  711 + },
  712 + {
  713 + "代码": "0378",
  714 + "city": "开封",
  715 + "拼音": "开封",
  716 + "省份": "河南"
  717 + },
  718 + {
  719 + "代码": "0374",
  720 + "city": "许昌",
  721 + "拼音": "许昌",
  722 + "省份": "河南"
  723 + },
  724 + {
  725 + "代码": "0372",
  726 + "city": "安阳",
  727 + "拼音": "安阳",
  728 + "省份": "河南"
  729 + },
  730 + {
  731 + "代码": "0375",
  732 + "city": "平顶山",
  733 + "拼音": "平顶山",
  734 + "省份": "河南"
  735 + },
  736 + {
  737 + "代码": "0392",
  738 + "city": "鹤壁",
  739 + "拼音": "鹤壁",
  740 + "省份": "河南"
  741 + },
  742 + {
  743 + "代码": "0391",
  744 + "city": "焦作",
  745 + "拼音": "焦作",
  746 + "省份": "河南"
  747 + },
  748 + {
  749 + "代码": "1391",
  750 + "city": "济源",
  751 + "拼音": "济源",
  752 + "省份": "河南"
  753 + },
  754 + {
  755 + "代码": "0395",
  756 + "city": "漯河",
  757 + "拼音": "漯河",
  758 + "省份": "河南"
  759 + },
  760 + {
  761 + "代码": "0377",
  762 + "city": "南阳",
  763 + "拼音": "南阳",
  764 + "省份": "河南"
  765 + },
  766 + {
  767 + "代码": "0393",
  768 + "city": "濮阳",
  769 + "拼音": "濮阳",
  770 + "省份": "河南"
  771 + },
  772 + {
  773 + "代码": "0398",
  774 + "city": "三门峡",
  775 + "拼音": "三门峡",
  776 + "省份": "河南"
  777 + },
  778 + {
  779 + "代码": "0370",
  780 + "city": "商丘",
  781 + "拼音": "商丘",
  782 + "省份": "河南"
  783 + },
  784 + {
  785 + "代码": "0373",
  786 + "city": "新乡",
  787 + "拼音": "新乡",
  788 + "省份": "河南"
  789 + },
  790 + {
  791 + "代码": "0376",
  792 + "city": "信阳",
  793 + "拼音": "信阳",
  794 + "省份": "河南"
  795 + },
  796 + {
  797 + "代码": "0396",
  798 + "city": "驻马店",
  799 + "pinyin": "驻马店",
  800 + "省份": "河南"
  801 + },
  802 + {
  803 + "代码": "0394",
  804 + "city": "周口",
  805 + "拼音": "周口",
  806 + "省份": "河南"
  807 + },
  808 + {
  809 + "代码": "0451",
  810 + "city": "哈尔滨",
  811 + "拼音":"哈尔滨",
  812 + "province": "黑龙江"
  813 + },
  814 + {
  815 + "代码": "0459",
  816 + "city": "大庆",
  817 + "拼音": "大庆",
  818 + "province": "黑龙江"
  819 + },
  820 + {
  821 + "代码": "0452",
  822 + "city": "齐齐哈尔",
  823 + "拼音": "齐齐哈尔",
  824 + "province": "黑龙江"
  825 + },
  826 + {
  827 + "代码": "0454",
  828 + "city": "佳木斯",
  829 + "拼音": "佳木斯",
  830 + "province": "黑龙江"
  831 + },
  832 + {
  833 + "代码": "0457",
  834 + "city": "大兴安岭",
  835 + "拼音": "大兴安岭",
  836 + "province": "黑龙江"
  837 + },
  838 + {
  839 + "代码": "0456",
  840 + "city": "黑河",
  841 + "拼音": "黑河",
  842 + "province": "黑龙江"
  843 + },
  844 + {
  845 + "代码": "0468",
  846 + "city": "鹤岗",
  847 + "拼音": "鹤岗",
  848 + "province": "黑龙江"
  849 + },
  850 + {
  851 + "代码": "0467",
  852 + "city": "鸡西",
  853 + "拼音": "鸡西",
  854 + "province": "黑龙江"
  855 + },
  856 + {
  857 + "代码": "0453",
  858 + "city": "牡丹江",
  859 + "拼音": "牡丹江",
  860 + "province": "黑龙江"
  861 + },
  862 + {
  863 + "代码": "0464",
  864 + "city": "七台河",
  865 + "拼音": "西泰河",
  866 + "province": "黑龙江"
  867 + },
  868 + {
  869 + "代码": "0455",
  870 + "city": "绥化",
  871 + "拼音": "绥化",
  872 + "province": "黑龙江"
  873 + },
  874 + {
  875 + "代码": "0469",
  876 + "city": "双鸭山",
  877 + "拼音": "双鸭山",
  878 + "province": "黑龙江"
  879 + },
  880 + {
  881 + "代码": "0458",
  882 + "city": "伊春",
  883 + "拼音": "伊春",
  884 + "province": "黑龙江"
  885 + },
  886 + {
  887 + "代码": "027",
  888 + "城市": "武汉",
  889 + "拼音": "武汉",
  890 + "省": "湖北"
  891 + },
  892 + {
  893 + "代码": "0710",
  894 + "city": "襄阳",
  895 + "拼音": "向阳",
  896 + "省": "湖北"
  897 + },
  898 + {
  899 + "代码": "0719",
  900 + "city": "十堰",
  901 + "拼音": "十堰",
  902 + "省": "湖北"
  903 + },
  904 + {
  905 + "代码": "0714",
  906 + "city": "黄石",
  907 + "拼音": "黄石",
  908 + "省": "湖北"
  909 + },
  910 + {
  911 + "代码": "0711",
  912 + "city": "鄂州",
  913 + "拼音": "鄂州",
  914 + "省": "湖北"
  915 + },
  916 + {
  917 + "代码": "0718",
  918 + "city": "恩施",
  919 + "拼音": "恩施",
  920 + "省": "湖北"
  921 + },
  922 + {
  923 + "代码": "0713",
  924 + "city": "黄冈",
  925 + "拼音": "皇岗",
  926 + "省": "湖北"
  927 + },
  928 + {
  929 + "代码": "0716",
  930 + "city": "荆州",
  931 + "拼音": "荆州",
  932 + "省": "湖北"
  933 + },
  934 + {
  935 + "代码": "0724",
  936 + "city": "荆门",
  937 + "拼音": "荆门",
  938 + "省": "湖北"
  939 + },
  940 + {
  941 + "代码": "0722",
  942 + "city": "随州",
  943 + "拼音": "随州",
  944 + "省": "湖北"
  945 + },
  946 + {
  947 + "代码": "0717",
  948 + "city": "宜昌",
  949 + "拼音": "宜昌",
  950 + "省": "湖北"
  951 + },
  952 + {
  953 + "代码": "1728",
  954 + "city": "天门",
  955 + "拼音": "天门",
  956 + "省": "湖北"
  957 + },
  958 + {
  959 + "代码": "2728",
  960 + "city": "潜江",
  961 + "拼音": "钱江",
  962 + "省": "湖北"
  963 + },
  964 + {
  965 + "代码": "0728",
  966 + "city": "仙桃",
  967 + "拼音": "仙桃",
  968 + "省": "湖北"
  969 + },
  970 + {
  971 + "代码": "0712",
  972 + "city": "孝感",
  973 + "拼音": "孝感",
  974 + "省": "湖北"
  975 + },
  976 + {
  977 + "代码": "0715",
  978 + "city": "咸宁",
  979 + "拼音": "咸宁",
  980 + "省": "湖北"
  981 + },
  982 + {
  983 + "代码": "1719",
  984 + "city": "神农架",
  985 + "拼音": "神农架",
  986 + "省": "湖北"
  987 + },
  988 + {
  989 + "代码": "0731",
  990 + "city": "长沙",
  991 + "拼音": "长沙",
  992 + "省份": "湖南"
  993 + },
  994 + {
  995 + "代码": "0730",
  996 + "city": "岳阳",
  997 + "拼音": "岳阳",
  998 + "省份": "湖南"
  999 + },
  1000 + {
  1001 + "代码": "0732",
  1002 + "city": "湘潭",
  1003 + "拼音": "湘潭",
  1004 + "省份": "湖南"
  1005 + },
  1006 + {
  1007 + "代码": "0736",
  1008 + "city": "常德",
  1009 + "拼音": "常德",
  1010 + "省份": "湖南"
  1011 + },
  1012 + {
  1013 + "代码": "0735",
  1014 + "city": "郴州",
  1015 + "拼音": "滨州",
  1016 + "省份": "湖南"
  1017 + },
  1018 + {
  1019 + "代码": "0734",
  1020 + "city": "衡阳",
  1021 + "拼音": "衡阳",
  1022 + "省份": "湖南"
  1023 + },
  1024 + {
  1025 + "代码": "0745",
  1026 + "city": "怀化",
  1027 + "拼音": "怀化",
  1028 + "省份": "湖南"
  1029 + },
  1030 + {
  1031 + "代码": "0738",
  1032 + "city": "娄底",
  1033 + "拼音": "娄底",
  1034 + "省份": "湖南"
  1035 + },
  1036 + {
  1037 + "代码": "0739",
  1038 + "city": "邵阳",
  1039 + "拼音":"少阳",
  1040 + "省份": "湖南"
  1041 + },
  1042 + {
  1043 + "代码": "0737",
  1044 + "city": "益阳",
  1045 + "拼音": "乙阳",
  1046 + "省份": "湖南"
  1047 + },
  1048 + {
  1049 + "代码": "0746",
  1050 + "city": "永州",
  1051 + "拼音": "永州",
  1052 + "省份": "湖南"
  1053 + },
  1054 + {
  1055 + "代码": "0733",
  1056 + "city": "株洲",
  1057 + "拼音": "株洲",
  1058 + "省份": "湖南"
  1059 + },
  1060 + {
  1061 + "代码": "0744",
  1062 + "city": "张家界",
  1063 + "拼音": "张家界",
  1064 + "省份": "湖南"
  1065 + },
  1066 + {
  1067 + "代码": "0743",
  1068 + "city": "湘西",
  1069 + "拼音": "湘西",
  1070 + "省份": "湖南"
  1071 + },
  1072 + {
  1073 + "代码": "0431",
  1074 + "city": "长春",
  1075 + "拼音": "长春",
  1076 + "省": "吉林"
  1077 + },
  1078 + {
  1079 + "代码": "0432",
  1080 + "city": "吉林",
  1081 + "拼音": "吉林",
  1082 + "省": "吉林"
  1083 + },
  1084 + {
  1085 + "代码": "1433",
  1086 + "city": "延边",
  1087 + "拼音": "延边",
  1088 + "省": "吉林"
  1089 + },
  1090 + {
  1091 + "代码": "0436",
  1092 + "city": "白城",
  1093 + "拼音": "白城",
  1094 + "省": "吉林"
  1095 + },
  1096 + {
  1097 + "代码": "0439",
  1098 + "city": "白山",
  1099 + "拼音": "白山",
  1100 + "省": "吉林"
  1101 + },
  1102 + {
  1103 + "代码": "0437",
  1104 + "city": "辽源",
  1105 + "拼音": "燎原",
  1106 + "省": "吉林"
  1107 + },
  1108 + {
  1109 + "代码": "0434",
  1110 + "city": "四平",
  1111 + "拼音": "四平",
  1112 + "省": "吉林"
  1113 + },
  1114 + {
  1115 + "代码": "0438",
  1116 + "city": "松原",
  1117 + "拼音": "松园",
  1118 + "省": "吉林"
  1119 + },
  1120 + {
  1121 + "代码": "0435",
  1122 + "city": "通化",
  1123 + "拼音": "通话",
  1124 + "省": "吉林"
  1125 + },
  1126 + {
  1127 + "代码": "025",
  1128 + "城市": "南京",
  1129 + "拼音": "南京",
  1130 + "省份": "江苏"
  1131 + },
  1132 + {
  1133 + "代码": "0512",
  1134 + "城市": "苏州",
  1135 + "拼音": "苏州",
  1136 + "省份": "江苏"
  1137 + },
  1138 + {
  1139 + "代码": "0519",
  1140 + "city": "常州",
  1141 + "拼音": "常州",
  1142 + "省份": "江苏"
  1143 + },
  1144 + {
  1145 + "代码": "0518",
  1146 + "city": "连云港",
  1147 + "拼音": "连云港",
  1148 + "省份": "江苏"
  1149 + },
  1150 + {
  1151 + "代码": "0523",
  1152 + "city": "泰州",
  1153 + "拼音": "台州",
  1154 + "省份": "江苏"
  1155 + },
  1156 + {
  1157 + "代码": "0510",
  1158 + "city": "无锡",
  1159 + "拼音": "无锡",
  1160 + "省份": "江苏"
  1161 + },
  1162 + {
  1163 + "代码": "0516",
  1164 + "city": "徐州",
  1165 + "拼音": "徐州",
  1166 + "省份": "江苏"
  1167 + },
  1168 + {
  1169 + "代码": "0514",
  1170 + "city": "扬州",
  1171 + "拼音": "扬州",
  1172 + "省份": "江苏"
  1173 + },
  1174 + {
  1175 + "代码": "0511",
  1176 + "city": "镇江",
  1177 + "拼音": "镇江",
  1178 + "省份": "江苏"
  1179 + },
  1180 + {
  1181 + "代码": "0517",
  1182 + "city": "淮安",
  1183 + "拼音": "淮安",
  1184 + "省份": "江苏"
  1185 + },
  1186 + {
  1187 + "代码": "0513",
  1188 + "city": "南通",
  1189 + "拼音": "南通",
  1190 + "省份": "江苏"
  1191 + },
  1192 + {
  1193 + "代码": "0527",
  1194 + "city": "宿迁",
  1195 + "拼音": "宿迁",
  1196 + "省份": "江苏"
  1197 + },
  1198 + {
  1199 + "代码": "0515",
  1200 + "city": "盐城",
  1201 + "拼音": "盐城",
  1202 + "省份": "江苏"
  1203 + },
  1204 + {
  1205 + "代码": "0791",
  1206 + "city": "南昌",
  1207 + "拼音": "南昌",
  1208 + "省份": "江西"
  1209 + },
  1210 + {
  1211 + "代码": "0797",
  1212 + "city": "赣州",
  1213 + "拼音": "赣州",
  1214 + "省份": "江西"
  1215 + },
  1216 + {
  1217 + "代码": "0792",
  1218 + "city": "九江",
  1219 + "拼音": "九江",
  1220 + "省份": "江西"
  1221 + },
  1222 + {
  1223 + "代码": "0798",
  1224 + "city": "景德镇",
  1225 + "拼音": "景德镇",
  1226 + "省份": "江西"
  1227 + },
  1228 + {
  1229 + "代码": "0796",
  1230 + "city": "吉安",
  1231 + "拼音": "健",
  1232 + "省份": "江西"
  1233 + },
  1234 + {
  1235 + "代码": "0799",
  1236 + "city": "萍乡",
  1237 + "pinyin": "凭祥",
  1238 + "省份": "江西"
  1239 + },
  1240 + {
  1241 + "代码": "0793",
  1242 + "city": "上饶",
  1243 + "拼音": "上饶",
  1244 + "省份": "江西"
  1245 + },
  1246 + {
  1247 + "代码": "0790",
  1248 + "city": "新余",
  1249 + "拼音": "新语",
  1250 + "省份": "江西"
  1251 + },
  1252 + {
  1253 + "代码": "0795",
  1254 + "city": "宜春",
  1255 + "拼音": "伊春",
  1256 + "省份": "江西"
  1257 + },
  1258 + {
  1259 + "代码": "0701",
  1260 + "city": "鹰潭",
  1261 + "拼音": "鹰潭",
  1262 + "省份": "江西"
  1263 + },
  1264 + {
  1265 + "代码": "0794",
  1266 + "city": "抚州",
  1267 + "拼音": "五洲",
  1268 + "省份": "江西"
  1269 + },
  1270 + {
  1271 + "代码": "024",
  1272 + "city": "沉阳",
  1273 + "拼音": "沉阳",
  1274 + "省份": "辽宁"
  1275 + },
  1276 + {
  1277 + "代码": "0411",
  1278 + "city": "大连",
  1279 + "拼音": "大连",
  1280 + "省份": "辽宁"
  1281 + },
  1282 + {
  1283 + "代码": "0412",
  1284 + "city": "鞍山",
  1285 + "拼音": "鞍山",
  1286 + "省份": "辽宁"
  1287 + },
  1288 + {
  1289 + "代码": "0415",
  1290 + "city": "丹东",
  1291 + "拼音": "丹东",
  1292 + "省份": "辽宁"
  1293 + },
  1294 + {
  1295 + "代码": "0413",
  1296 + "city": "抚顺",
  1297 + "拼音": "抚顺",
  1298 + "省份": "辽宁"
  1299 + },
  1300 + {
  1301 + "代码": "0416",
  1302 + "city": "锦州",
  1303 + "拼音": "锦州",
  1304 + "省份": "辽宁"
  1305 + },
  1306 + {
  1307 + "代码": "0417",
  1308 + "city": "营口",
  1309 + "拼音": "营口",
  1310 + "省份": "辽宁"
  1311 + },
  1312 + {
  1313 + "代码": "0414",
  1314 + "city": "本溪",
  1315 + "拼音": "本溪",
  1316 + "省份": "辽宁"
  1317 + },
  1318 + {
  1319 + "代码": "0421",
  1320 + "city": "朝阳",
  1321 + "拼音": "朝阳",
  1322 + "省份": "辽宁"
  1323 + },
  1324 + {
  1325 + "代码": "0418",
  1326 + "city": "阜新",
  1327 + "拼音": "阜新",
  1328 + "省份": "辽宁"
  1329 + },
  1330 + {
  1331 + "代码": "0429",
  1332 + "city": "葫芦岛",
  1333 + "拼音": "葫芦岛",
  1334 + "省份": "辽宁"
  1335 + },
  1336 + {
  1337 + "代码": "0419",
  1338 + "city": "辽阳",
  1339 + "拼音": "辽阳",
  1340 + "省份": "辽宁"
  1341 + },
  1342 + {
  1343 + "代码": "0427",
  1344 + "city": "盘锦",
  1345 + "拼音": "盘锦",
  1346 + "省份": "辽宁"
  1347 + },
  1348 + {
  1349 + "代码": "0410",
  1350 + "city": "铁岭",
  1351 + "拼音": "铁岭",
  1352 + "省份": "辽宁"
  1353 + },
  1354 + {
  1355 + "代码": "0471",
  1356 + "city": "呼和浩特",
  1357 + "拼音": "呼和浩特",
  1358 + "省份": "内蒙古"
  1359 + },
  1360 + {
  1361 + "代码": "0472",
  1362 + "city": "包头",
  1363 + "拼音": "包头",
  1364 + "省份": "内蒙古"
  1365 + },
  1366 + {
  1367 + "代码": "0476",
  1368 + "city": "赤峰",
  1369 + "拼音": "赤峰",
  1370 + "省份": "内蒙古"
  1371 + },
  1372 + {
  1373 + "代码": "0477",
  1374 + "city": "鄂尔多斯",
  1375 + "拼音": "埃尔多斯",
  1376 + "省份": "内蒙古"
  1377 + },
  1378 + {
  1379 + "代码": "0474",
  1380 + "city": "乌兰察布",
  1381 + "拼音": "乌兰察布",
  1382 + "省份": "内蒙古"
  1383 + },
  1384 + {
  1385 + "代码": "0473",
  1386 + "city": "乌海",
  1387 + "拼音": "乌海",
  1388 + "省份": "内蒙古"
  1389 + },
  1390 + {
  1391 + "代码": "0482",
  1392 + "city": "兴安盟",
  1393 + "拼音": "兴安盟",
  1394 + "省份": "内蒙古"
  1395 + },
  1396 + {
  1397 + "代码": "0470",
  1398 + "city": "呼伦贝尔",
  1399 + "拼音": "呼伦贝尔",
  1400 + "省份": "内蒙古"
  1401 + },
  1402 + {
  1403 + "代码": "0475",
  1404 + "city": "通辽",
  1405 + "拼音": "通辽",
  1406 + "省份": "内蒙古"
  1407 + },
  1408 + {
  1409 + "代码": "0483",
  1410 + "city": "阿拉善盟",
  1411 + "拼音": "阿里山盟",
  1412 + "省份": "内蒙古"
  1413 + },
  1414 + {
  1415 + "代码": "0478",
  1416 + "city": "巴彦淖尔",
  1417 + "拼音": "巴颜诺尔",
  1418 + "省份": "内蒙古"
  1419 + },
  1420 + {
  1421 + "代码": "0479",
  1422 + "city": "锡林郭勒",
  1423 + "拼音": "锡林郭勒",
  1424 + "省份": "内蒙古"
  1425 + },
  1426 + {
  1427 + "代码": "0951",
  1428 + "city": "银川",
  1429 + "拼音": "银川",
  1430 + "省份": "宁夏"
  1431 + },
  1432 + {
  1433 + "代码": "0952",
  1434 + "city": "石嘴山",
  1435 + "拼音": "石嘴山",
  1436 + "省份": "宁夏"
  1437 + },
  1438 + {
  1439 + "代码": "0954",
  1440 + "city": "固原",
  1441 + "拼音": "固原",
  1442 + "省份": "宁夏"
  1443 + },
  1444 + {
  1445 + "代码": "0953",
  1446 + "city": "吴忠",
  1447 + "拼音": "吴中",
  1448 + "省份": "宁夏"
  1449 + },
  1450 + {
  1451 + "代码": "1953",
  1452 + "city": "中卫",
  1453 + "拼音": "中卫",
  1454 + "省份": "宁夏"
  1455 + },
  1456 + {
  1457 + "代码": "0971",
  1458 + "city": "西宁",
  1459 + "拼音": "西宁",
  1460 + "省": "青海"
  1461 + },
  1462 + {
  1463 + "代码": "0973",
  1464 + "city": "黄南",
  1465 + "拼音": "黄南",
  1466 + "省": "青海"
  1467 + },
  1468 + {
  1469 + "代码": "0976",
  1470 + "city": "玉树",
  1471 + "拼音": "玉树",
  1472 + "省": "青海"
  1473 + },
  1474 + {
  1475 + "代码": "0975",
  1476 + "city": "果洛",
  1477 + "拼音": "果洛",
  1478 + "省": "青海"
  1479 + },
  1480 + {
  1481 + "代码": "0972",
  1482 + "city": "海东",
  1483 + "拼音": "海东",
  1484 + "省": "青海"
  1485 + },
  1486 + {
  1487 + "代码": "0977",
  1488 + "city": "海西",
  1489 + "拼音": "海西",
  1490 + "省": "青海"
  1491 + },
  1492 + {
  1493 + "代码": "0974",
  1494 + "city": "海南",
  1495 + "拼音": "海南",
  1496 + "省": "青海"
  1497 + },
  1498 + {
  1499 + "代码": "0970",
  1500 + "city": "海北",
  1501 + "拼音": "海北",
  1502 + "省": "青海"
  1503 + },
  1504 + {
  1505 + "代码": "0531",
  1506 + "city": "济南",
  1507 + "拼音": "济南",
  1508 + "省": "山东"
  1509 + },
  1510 + {
  1511 + "代码": "0532",
  1512 + "城市": "青岛",
  1513 + "拼音": "青岛",
  1514 + "省": "山东"
  1515 + },
  1516 + {
  1517 + "代码": "0631",
  1518 + "city": "威海",
  1519 + "拼音": "威海",
  1520 + "省": "山东"
  1521 + },
  1522 + {
  1523 + "代码": "0535",
  1524 + "city": "烟台",
  1525 + "拼音": "烟台",
  1526 + "省": "山东"
  1527 + },
  1528 + {
  1529 + "代码": "0536",
  1530 + "city": "潍坊",
  1531 + "拼音": "潍坊",
  1532 + "省": "山东"
  1533 + },
  1534 + {
  1535 + "代码": "0538",
  1536 + "city": "泰安",
  1537 + "拼音": "泰安",
  1538 + "省": "山东"
  1539 + },
  1540 + {
  1541 + "代码": "0543",
  1542 + "city": "滨州",
  1543 + "拼音": "滨州",
  1544 + "省": "山东"
  1545 + },
  1546 + {
  1547 + "代码": "0534",
  1548 + "city": "德州",
  1549 + "拼音": "德州",
  1550 + "省": "山东"
  1551 + },
  1552 + {
  1553 + "代码": "0546",
  1554 + "city": "东营",
  1555 + "拼音": "东营",
  1556 + "省": "山东"
  1557 + },
  1558 + {
  1559 + "代码": "0530",
  1560 + "city": "菏泽",
  1561 + "拼音": "菏泽",
  1562 + "省": "山东"
  1563 + },
  1564 + {
  1565 + "代码": "0537",
  1566 + "city": "济宁",
  1567 + "拼音": "济宁",
  1568 + "省": "山东"
  1569 + },
  1570 + {
  1571 + "代码": "0635",
  1572 + "city": "聊城",
  1573 + "拼音": "聊城",
  1574 + "省": "山东"
  1575 + },
  1576 + {
  1577 + "代码": "0539",
  1578 + "city": "临沂",
  1579 + "拼音":"linze",
  1580 + "省": "山东"
  1581 + },
  1582 + {
  1583 + "代码": "0634",
  1584 + "city": "莱芜",
  1585 + "拼音": "莱芜",
  1586 + "省": "山东"
  1587 + },
  1588 + {
  1589 + "代码": "0633",
  1590 + "city": "日照",
  1591 + "拼音": "日照",
  1592 + "省": "山东"
  1593 + },
  1594 + {
  1595 + "代码": "0533",
  1596 + "city": "淄博",
  1597 + "拼音": "淄博",
  1598 + "省": "山东"
  1599 + },
  1600 + {
  1601 + "代码": "0632",
  1602 + "city": "枣庄",
  1603 + "拼音": "枣庄",
  1604 + "省": "山东"
  1605 + },
  1606 + {
  1607 + "代码": "0351",
  1608 + "city": "太原",
  1609 + "拼音": "太原",
  1610 + "省": "山西"
  1611 + },
  1612 + {
  1613 + "代码": "0355",
  1614 + "city": "长治",
  1615 + "拼音": "长治",
  1616 + "省": "山西"
  1617 + },
  1618 + {
  1619 + "代码": "0352",
  1620 + "city": "大同",
  1621 + "拼音": "大同",
  1622 + "省": "山西"
  1623 + },
  1624 + {
  1625 + "代码": "0356",
  1626 + "city": "晋城",
  1627 + "拼音": "金城",
  1628 + "省": "山西"
  1629 + },
  1630 + {
  1631 + "代码": "0354",
  1632 + "city": "晋中",
  1633 + "拼音": "晋中",
  1634 + "省": "山西"
  1635 + },
  1636 + {
  1637 + "代码": "0357",
  1638 + "city": "临汾",
  1639 + "拼音": "临汾",
  1640 + "省": "山西"
  1641 + },
  1642 + {
  1643 + "代码": "0358",
  1644 + "city": "吕梁",
  1645 + "拼音":"lvliang",
  1646 + "省": "山西"
  1647 + },
  1648 + {
  1649 + "代码": "0349",
  1650 + "city": "朔州",
  1651 + "拼音": "苏州",
  1652 + "省": "山西"
  1653 + },
  1654 + {
  1655 + "代码": "0350",
  1656 + "city": "忻州",
  1657 + "拼音": "信州",
  1658 + "省": "山西"
  1659 + },
  1660 + {
  1661 + "代码": "0359",
  1662 + "city": "运城",
  1663 + "拼音": "运城",
  1664 + "省": "山西"
  1665 + },
  1666 + {
  1667 + "代码": "0353",
  1668 + "city": "阳泉",
  1669 + "拼音": "阳泉",
  1670 + "省": "山西"
  1671 + },
  1672 + {
  1673 + "代码": "029",
  1674 + "城市": "西安",
  1675 + "拼音": "西安",
  1676 + "省份": "陕西"
  1677 + },
  1678 + {
  1679 + "代码": "0915",
  1680 + "city": "安康",
  1681 + "拼音": "安康",
  1682 + "省份": "陕西"
  1683 + },
  1684 + {
  1685 + "代码": "0917",
  1686 + "city": "宝鸡",
  1687 + "拼音": "宝鸡",
  1688 + "省份": "陕西"
  1689 + },
  1690 + {
  1691 + "代码": "0916",
  1692 + "city": "汉中",
  1693 + "拼音": "汉中",
  1694 + "省份": "陕西"
  1695 + },
  1696 + {
  1697 + "代码": "0914",
  1698 + "city": "商洛",
  1699 + "拼音": "商略",
  1700 + "省份": "陕西"
  1701 + },
  1702 + {
  1703 + "代码": "0919",
  1704 + "city": "铜川",
  1705 + "拼音": "铜川",
  1706 + "省份": "陕西"
  1707 + },
  1708 + {
  1709 + "代码": "0913",
  1710 + "city": "渭南",
  1711 + "拼音": "渭南",
  1712 + "省份": "陕西"
  1713 + },
  1714 + {
  1715 + "代码": "0910",
  1716 + "city": "咸阳",
  1717 + "拼音": "咸阳",
  1718 + "省份": "陕西"
  1719 + },
  1720 + {
  1721 + "代码": "0911",
  1722 + "city": "延安",
  1723 + "拼音": "延安",
  1724 + "省份": "陕西"
  1725 + },
  1726 + {
  1727 + "代码": "0912",
  1728 + "city": "榆林",
  1729 + "拼音": "榆林",
  1730 + "省份": "陕西"
  1731 + },
  1732 + {
  1733 + "代码": "028",
  1734 + "城市":"成都",
  1735 + "拼音": "成都",
  1736 + "省份": "四川"
  1737 + },
  1738 + {
  1739 + "代码": "0816",
  1740 + "city": "绵阳",
  1741 + "拼音": "绵阳",
  1742 + "省份": "四川"
  1743 + },
  1744 + {
  1745 + "代码": "0832",
  1746 + "city": "资阳",
  1747 + "拼音": "紫阳",
  1748 + "省份": "四川"
  1749 + },
  1750 + {
  1751 + "代码": "0827",
  1752 + "city": "巴中",
  1753 + "拼音": "巴中",
  1754 + "省份": "四川"
  1755 + },
  1756 + {
  1757 + "代码": "0838",
  1758 + "city": "德阳",
  1759 + "拼音": "德阳",
  1760 + "省份": "四川"
  1761 + },
  1762 + {
  1763 + "代码": "0818",
  1764 + "city": "达州",
  1765 + "拼音": "达州",
  1766 + "省份": "四川"
  1767 + },
  1768 + {
  1769 + "代码": "0826",
  1770 + "city": "广安",
  1771 + "拼音": "广安",
  1772 + "省份": "四川"
  1773 + },
  1774 + {
  1775 + "代码": "0839",
  1776 + "city": "广元",
  1777 + "拼音": "广元",
  1778 + "省份": "四川"
  1779 + },
  1780 + {
  1781 + "代码": "0833",
  1782 + "city": "乐山",
  1783 + "拼音": "乐山",
  1784 + "省份": "四川"
  1785 + },
  1786 + {
  1787 + "代码": "0830",
  1788 + "city": "泸州",
  1789 + "拼音": "泸州",
  1790 + "省份": "四川"
  1791 + },
  1792 + {
  1793 + "代码": "1833",
  1794 + "city": "眉山",
  1795 + "拼音": "梅山",
  1796 + "省份": "四川"
  1797 + },
  1798 + {
  1799 + "代码": "1832",
  1800 + "city": "内江",
  1801 + "拼音": "内江",
  1802 + "省份": "四川"
  1803 + },
  1804 + {
  1805 + "代码": "0817",
  1806 + "city": "南充",
  1807 + "拼音": "南充",
  1808 + "省份": "四川"
  1809 + },
  1810 + {
  1811 + "代码": "0812",
  1812 + "city": "攀枝花",
  1813 + "拼音": "攀枝花",
  1814 + "省份": "四川"
  1815 + },
  1816 + {
  1817 + "代码": "0825",
  1818 + "city": "遂宁",
  1819 + "拼音": "遂宁",
  1820 + "省份": "四川"
  1821 + },
  1822 + {
  1823 + "代码": "0831",
  1824 + "city": "宜宾",
  1825 + "拼音": "宜宾",
  1826 + "省份": "四川"
  1827 + },
  1828 + {
  1829 + "代码": "0835",
  1830 + "city": "雅安",
  1831 + "拼音":"雅安",
  1832 + "省份": "四川"
  1833 + },
  1834 + {
  1835 + "代码": "0813",
  1836 + "city": "自贡",
  1837 + "拼音": "自贡",
  1838 + "省份": "四川"
  1839 + },
  1840 + {
  1841 + "代码": "0837",
  1842 + "city": "阿坝",
  1843 + "拼音": "安北",
  1844 + "省份": "四川"
  1845 + },
  1846 + {
  1847 + "代码": "0836",
  1848 + "city": "甘孜",
  1849 + "拼音": "甘孜",
  1850 + "省份": "四川"
  1851 + },
  1852 + {
  1853 + "代码": "0834",
  1854 + "city": "凉山",
  1855 + "拼音":"梁山",
  1856 + "省份": "四川"
  1857 + },
  1858 + {
  1859 + "代码": "0891",
  1860 + "city": "拉萨",
  1861 + "拼音":"lasa",
  1862 + "province": "西藏"
  1863 + },
  1864 + {
  1865 + "代码": "0897",
  1866 + "城市": "阿里",
  1867 + "拼音":"ali",
  1868 + "province": "西藏"
  1869 + },
  1870 + {
  1871 + "代码": "0895",
  1872 + "city": "昌都",
  1873 + "拼音": "changdu",
  1874 + "province": "西藏"
  1875 + },
  1876 + {
  1877 + "代码": "0894",
  1878 + "city": "林芝",
  1879 + "拼音": "林芝",
  1880 + "province": "西藏"
  1881 + },
  1882 + {
  1883 + "代码": "0896",
  1884 + "city": "那曲",
  1885 + "拼音": "那曲",
  1886 + "province": "西藏"
  1887 + },
  1888 + {
  1889 + "代码": "0893",
  1890 + "city": "山南",
  1891 + "拼音": "山南",
  1892 + "province": "西藏"
  1893 + },
  1894 + {
  1895 + "代码": "0991",
  1896 + "city": "乌鲁木齐",
  1897 + "拼音": "乌鲁木齐",
  1898 + "province": "新疆"
  1899 + },
  1900 + {
  1901 + "代码": "0993",
  1902 + "city": "石河子",
  1903 + "拼音": "石河子",
  1904 + "province": "新疆"
  1905 + },
  1906 + {
  1907 + "代码": "0995",
  1908 + "city": "吐鲁番",
  1909 + "拼音": "tulufan",
  1910 + "province": "新疆"
  1911 + },
  1912 + {
  1913 + "代码": "0999",
  1914 + "city": "伊犁",
  1915 + "拼音": "伊犁",
  1916 + "province": "新疆"
  1917 + },
  1918 + {
  1919 + "代码": "0997",
  1920 + "city": "阿克苏",
  1921 + "拼音": "阿克苏",
  1922 + "province": "新疆"
  1923 + },
  1924 + {
  1925 + "代码": "0906",
  1926 + "city": "阿勒泰",
  1927 + "拼音":"aletai",
  1928 + "province": "新疆"
  1929 + },
  1930 + {
  1931 + "代码": "0996",
  1932 + "city": "巴音",
  1933 + "拼音":"bayin",
  1934 + "province": "新疆"
  1935 + },
  1936 + {
  1937 + "代码": "0909",
  1938 + "city": "博尔塔拉",
  1939 + "拼音":"boertala",
  1940 + "province": "新疆"
  1941 + },
  1942 + {
  1943 + "代码": "0994",
  1944 + "city": "昌吉",
  1945 + "拼音": "昌吉",
  1946 + "province": "新疆"
  1947 + },
  1948 + {
  1949 + "代码": "0902",
  1950 + "city": "哈密",
  1951 + "拼音":"hami",
  1952 + "province": "新疆"
  1953 + },
  1954 + {
  1955 + "代码": "0903",
  1956 + "city": "和田",
  1957 + "拼音": "和田",
  1958 + "province": "新疆"
  1959 + },
  1960 + {
  1961 + "代码": "0998",
  1962 + "城市": "喀什",
  1963 + "拼音":"喀什",
  1964 + "province": "新疆"
  1965 + },
  1966 + {
  1967 + "代码": "0990",
  1968 + "city": "克拉玛依",
  1969 + "拼音": "克拉玛依",
  1970 + "province": "新疆"
  1971 + },
  1972 + {
  1973 + "代码": "0908",
  1974 + "city": "克孜勒",
  1975 + "拼音": "克孜勒",
  1976 + "province": "新疆"
  1977 + },
  1978 + {
  1979 + "代码": "0901",
  1980 + "city": "塔城",
  1981 + "拼音": "塔城",
  1982 + "province": "新疆"
  1983 + },
  1984 + {
  1985 + "代码": "0871",
  1986 + "city": "昆明",
  1987 + "拼音":"konming",
  1988 + "省份": "云南"
  1989 + },
  1990 + {
  1991 + "代码": "0877",
  1992 + "city": "玉溪",
  1993 + "拼音": "玉溪",
  1994 + "省份": "云南"
  1995 + },
  1996 + {
  1997 + "代码": "0878",
  1998 + "city": "楚雄",
  1999 + "拼音": "楚雄",
  2000 + "省份": "云南"
  2001 + },
  2002 + {
  2003 + "代码": "0872",
  2004 + "city": "大理",
  2005 + "拼音":"dali",
  2006 + "省份": "云南"
  2007 + },
  2008 + {
  2009 + "代码": "0873",
  2010 + "city": "红河",
  2011 + "拼音": "红河",
  2012 + "省份": "云南"
  2013 + },
  2014 + {
  2015 + "代码": "0874",
  2016 + "city": "曲靖",
  2017 + "拼音": "曲靖",
  2018 + "省份": "云南"
  2019 + },
  2020 + {
  2021 + "代码": "0691",
  2022 + "city": "西双版纳",
  2023 + "拼音": "西双版纳",
  2024 + "省份": "云南"
  2025 + },
  2026 + {
  2027 + "代码": "0870",
  2028 + "city": "昭通",
  2029 + "拼音": "绍通",
  2030 + "省份": "云南"
  2031 + },
  2032 + {
  2033 + "代码": "0875",
  2034 + "city": "保山",
  2035 + "拼音": "宝山",
  2036 + "省份": "云南"
  2037 + },
  2038 + {
  2039 + "代码": "0692",
  2040 + "city": "德宏",
  2041 + "拼音": "德宏",
  2042 + "省份": "云南"
  2043 + },
  2044 + {
  2045 + "代码": "0887",
  2046 + "city": "迪庆",
  2047 + "拼音": "迪庆",
  2048 + "省份": "云南"
  2049 + },
  2050 + {
  2051 + "代码": "0888",
  2052 + "city": "丽江",
  2053 + "拼音": "丽江",
  2054 + "省份": "云南"
  2055 + },
  2056 + {
  2057 + "代码": "0883",
  2058 + "city": "临沧",
  2059 + "拼音": "临沧",
  2060 + "省份": "云南"
  2061 + },
  2062 + {
  2063 + "代码": "0886",
  2064 + "city": "怒江",
  2065 + "拼音": "怒江",
  2066 + "省份": "云南"
  2067 + },
  2068 + {
  2069 + "代码": "0879",
  2070 + "city": "普洱",
  2071 + "拼音":"puer",
  2072 + "省份": "云南"
  2073 + },
  2074 + {
  2075 + "代码": "0876",
  2076 + "city": "文山",
  2077 + "拼音": "文山",
  2078 + "省份": "云南"
  2079 + },
  2080 + {
  2081 + "代码": "0571",
  2082 + "城市": "杭州",
  2083 + "拼音": "杭州",
  2084 + "省份": "浙江"
  2085 + },
  2086 + {
  2087 + "代码": "0574",
  2088 + "城市": "宁波",
  2089 + "拼音": "宁波",
  2090 + "省份": "浙江"
  2091 + },
  2092 + {
  2093 + "代码": "0573",
  2094 + "city": "嘉兴",
  2095 + "拼音": "嘉兴",
  2096 + "省份": "浙江"
  2097 + },
  2098 + {
  2099 + "代码": "0575",
  2100 + "city": "绍兴",
  2101 + "拼音": "绍兴",
  2102 + "省份": "浙江"
  2103 + },
  2104 + {
  2105 + "代码": "0577",
  2106 + "city": "温州",
  2107 + "拼音": "温州",
  2108 + "省份": "浙江"
  2109 + },
  2110 + {
  2111 + "代码": "0580",
  2112 + "city": "舟山",
  2113 + "拼音": "舟山",
  2114 + "省份": "浙江"
  2115 + },
  2116 + {
  2117 + "代码": "0572",
  2118 + "city": "湖州",
  2119 + "拼音": "湖州",
  2120 + "省份": "浙江"
  2121 + },
  2122 + {
  2123 + "代码": "0579",
  2124 + "city": "金华",
  2125 + "拼音": "金华",
  2126 + "省份": "浙江"
  2127 + },
  2128 + {
  2129 + "代码": "0578",
  2130 + "city": "丽水",
  2131 + "拼音": "丽水",
  2132 + "省份": "浙江"
  2133 + },
  2134 + {
  2135 + "代码": "0576",
  2136 + "城市": "台州",
  2137 + "拼音": "台州",
  2138 + "省份": "浙江"
  2139 + },
  2140 + {
  2141 + "代码": "0570",
  2142 + "city": "衢州",
  2143 + "拼音": "衢州",
  2144 + "省份": "浙江"
  2145 + },
  2146 + {
  2147 + "代码": "1852",
  2148 + "city": "香港",
  2149 + "拼音":"相港"
  2150 + },
  2151 + {
  2152 + "代码": "1852",
  2153 + "city": "澳门",
  2154 + "拼音":"澳门"
  2155 + }
  2156 +]
@@ -15,6 +15,7 @@ import 'package:one_key/models/set_seller_info_model.dart'; @@ -15,6 +15,7 @@ import 'package:one_key/models/set_seller_info_model.dart';
15 import 'package:one_key/models/settime.dart'; 15 import 'package:one_key/models/settime.dart';
16 import 'package:one_key/models/upload_img_model.dart'; 16 import 'package:one_key/models/upload_img_model.dart';
17 import 'package:one_key/models/user.dart'; 17 import 'package:one_key/models/user.dart';
  18 +
18 import 'package:one_key/pages/online_check/photo_view_wiget.dart'; 19 import 'package:one_key/pages/online_check/photo_view_wiget.dart';
19 import 'package:one_key/pages/online_check/progress.dart'; 20 import 'package:one_key/pages/online_check/progress.dart';
20 import 'package:one_key/provider/base_info_provider.dart'; 21 import 'package:one_key/provider/base_info_provider.dart';
@@ -43,6 +44,8 @@ import '../../app.dart'; @@ -43,6 +44,8 @@ import '../../app.dart';
43 import '../../utils/dialog_util.dart'; 44 import '../../utils/dialog_util.dart';
44 import '../../utils/screen_util.dart'; 45 import '../../utils/screen_util.dart';
45 46
  47 +import 'package:flutter/services.dart' show rootBundle;
  48 +
46 class StoreBaseInfoPage extends StatefulWidget { 49 class StoreBaseInfoPage extends StatefulWidget {
47 StoreBaseInfoPage({Key? key}) : super(key: key); 50 StoreBaseInfoPage({Key? key}) : super(key: key);
48 51
@@ -94,6 +97,8 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { @@ -94,6 +97,8 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> {
94 TextEditingController _averageC = TextEditingController(); 97 TextEditingController _averageC = TextEditingController();
95 String cuisine = ''; 98 String cuisine = '';
96 List<String?> cuisineIds = []; 99 List<String?> cuisineIds = [];
  100 + List<String> areaCode = [];
  101 + // final phoneFormatter = PhoneNumberFormatter();
97 102
98 ///获取接单时间接口 103 ///获取接单时间接口
99 _getReceiveOrdersTime() async { 104 _getReceiveOrdersTime() async {
@@ -142,6 +147,8 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { @@ -142,6 +147,8 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> {
142 _uploadImageProvider.mentou.process = 0.01; 147 _uploadImageProvider.mentou.process = 0.01;
143 _uploadImageProvider.mentou.qiniuUrl = ''; 148 _uploadImageProvider.mentou.qiniuUrl = '';
144 149
  150 + _initAreaCode();
  151 +
145 // _uploadImageProvider.mentou.file = null; 152 // _uploadImageProvider.mentou.file = null;
146 _getQiniuInfo(); 153 _getQiniuInfo();
147 _getStoreBaseinfo(); 154 _getStoreBaseinfo();
@@ -182,6 +189,21 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { @@ -182,6 +189,21 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> {
182 } 189 }
183 } 190 }
184 191
  192 + _initAreaCode() async {
  193 + List<dynamic> temp = await loadJsonData();
  194 + areaCode = [];
  195 + temp.forEach((element) {
  196 + print(element['代码']);
  197 + areaCode.add(element['代码']);
  198 + });
  199 + // temp.map((e) => {areaCode.add(e['代码'])});
  200 + // //推荐使用
  201 + // for (var entry in map.entries) {
  202 + // print('value:${entry.value}');
  203 + // }
  204 + print(areaCode); // 使用数据
  205 + }
  206 +
185 Future<bool> getAllCuisine(BuildContext context) async { 207 Future<bool> getAllCuisine(BuildContext context) async {
186 bool success = await _baseIndoProvider.getAllCuisine(context); 208 bool success = await _baseIndoProvider.getAllCuisine(context);
187 if (success && _baseIndoProvider.allCuisineData!.length > 0) { 209 if (success && _baseIndoProvider.allCuisineData!.length > 0) {
@@ -459,12 +481,12 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { @@ -459,12 +481,12 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> {
459 return; 481 return;
460 } 482 }
461 483
462 - if (!Utils.isNumeric1Req(_phoneController.text.trim())) { 484 + if (!Utils.isPhoneReq(_phoneController.text.trim())) {
463 Utils.showToast('电话1请输入正确的格式!'); 485 Utils.showToast('电话1请输入正确的格式!');
464 return; 486 return;
465 } 487 }
466 if (_phoneController2.text.trim().length > 0 && 488 if (_phoneController2.text.trim().length > 0 &&
467 - !Utils.isNumeric1Req(_phoneController2.text.trim())) { 489 + !Utils.isPhoneReq(_phoneController2.text.trim())) {
468 Utils.showToast('电话2请输入正确的格式!'); 490 Utils.showToast('电话2请输入正确的格式!');
469 return; 491 return;
470 } 492 }
@@ -1406,6 +1428,98 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { @@ -1406,6 +1428,98 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> {
1406 ); 1428 );
1407 } 1429 }
1408 1430
  1431 + Future<List<dynamic>> loadJsonData() async {
  1432 + final jsonString = await rootBundle.loadString('assets/areacode.json');
  1433 + return jsonDecode(jsonString);
  1434 + }
  1435 +
  1436 + TextInputFormatter phoneInputFormatter() {
  1437 + return TextInputFormatter.withFunction((oldValue, newValue) {
  1438 + String text = newValue.text;
  1439 + int numMin = 3;
  1440 + int numMax = 7;
  1441 + String textTemp = text.replaceAll('-', "");
  1442 + if (text.startsWith('0')) {
  1443 + // String string4 = textTemp.substring(0, 4);
  1444 +
  1445 + // String string3 = textTemp.substring(0, 3);
  1446 +
  1447 + if (textTemp.length > 4) {
  1448 + bool hasNumber4 =
  1449 + areaCode.any((number) => number == textTemp.substring(0, 4));
  1450 +
  1451 + if (hasNumber4) {
  1452 + numMin = 4;
  1453 + numMax = 8;
  1454 + } else {
  1455 + bool hasNumber3 =
  1456 + areaCode.any((number) => number == textTemp.substring(0, 3));
  1457 + if (hasNumber3) {
  1458 + numMin = 3;
  1459 + numMax = 7;
  1460 + }
  1461 + }
  1462 + } else if (textTemp.length > 3) {
  1463 + bool hasNumber3 =
  1464 + areaCode.any((number) => number == textTemp.substring(0, 3));
  1465 + if (hasNumber3) {
  1466 + numMin = 3;
  1467 + numMax = 7;
  1468 + }
  1469 + }
  1470 + }
  1471 + //获取光标左边的文本
  1472 + final positionStr = (text.substring(0, newValue.selection.baseOffset))
  1473 + .replaceAll('-', "");
  1474 + //计算格式化后的光标位置
  1475 + int length = positionStr.length;
  1476 + var position = 0;
  1477 + if (length <= numMin) {
  1478 + position = length;
  1479 + } else if (length <= numMax) {
  1480 + // 因为前面的字符串里面加了一个空格
  1481 + position = length + 1;
  1482 + } else {
  1483 + position = length + 2;
  1484 + }
  1485 + // else if (length <= 11) {
  1486 + // // 因为前面的字符串里面加了两个空格
  1487 + // position = length + 2;
  1488 + // } else {
  1489 + // // 号码本身为 11 位数字,因多了两个空格,故为 13
  1490 + // position = 13;
  1491 + // }
  1492 + // RegExp(r"\s+\b|\b\s")
  1493 +
  1494 + //这里格式化整个输入文本
  1495 + text = text.replaceAll('-', "");
  1496 + var string = "";
  1497 + for (int i = 0; i < text.length; i++) {
  1498 + // 这里第 4 位,与第 8 位,我们用空格填充
  1499 + if (i == numMin || i == numMax) {
  1500 + if (text[i] != "-") {
  1501 + string = string + "-";
  1502 + }
  1503 + }
  1504 + string += text[i];
  1505 + }
  1506 +
  1507 + return TextEditingValue(
  1508 + text: string,
  1509 + selection: TextSelection.fromPosition(
  1510 + TextPosition(offset: position, affinity: TextAffinity.upstream)),
  1511 + );
  1512 + });
  1513 + }
  1514 +
  1515 + // _phoneWidget(){
  1516 + // return Row(
  1517 + // children: [
  1518 + // fefef
  1519 + // ],
  1520 + // );
  1521 + // }
  1522 +
1409 /// 开始时间和结束时间widget 1523 /// 开始时间和结束时间widget
1410 timeWidget(String title, String time, 1524 timeWidget(String title, String time,
1411 {bool highted = true, GestureTapCallback? onTap}) { 1525 {bool highted = true, GestureTapCallback? onTap}) {
@@ -1772,6 +1886,10 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { @@ -1772,6 +1886,10 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> {
1772 child: TextField( 1886 child: TextField(
1773 controller: _phoneController, 1887 controller: _phoneController,
1774 maxLines: 1, 1888 maxLines: 1,
  1889 + inputFormatters: [
  1890 + phoneInputFormatter(),
  1891 + // LengthLimitingTextInputFormatter(14),
  1892 + ],
1775 // inputFormatters: [ 1893 // inputFormatters: [
1776 // LengthLimitingTextInputFormatter( 1894 // LengthLimitingTextInputFormatter(
1777 // 15), 1895 // 15),
@@ -1850,6 +1968,11 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> { @@ -1850,6 +1968,11 @@ class _StoreBaseInfoPageState extends State<StoreBaseInfoPage> {
1850 child: TextField( 1968 child: TextField(
1851 controller: _phoneController2, 1969 controller: _phoneController2,
1852 maxLines: 1, 1970 maxLines: 1,
  1971 + inputFormatters: [
  1972 + phoneInputFormatter(),
  1973 + // LengthLimitingTextInputFormatter(
  1974 + // 14),
  1975 + ],
1853 // inputFormatters: [ 1976 // inputFormatters: [
1854 // LengthLimitingTextInputFormatter( 1977 // LengthLimitingTextInputFormatter(
1855 // 15), 1978 // 15),
1 -  
2 import 'dart:async'; 1 import 'dart:async';
3 import 'dart:convert'; 2 import 'dart:convert';
4 import 'dart:io'; 3 import 'dart:io';
@@ -88,9 +87,12 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -88,9 +87,12 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
88 87
89 List<String?> imgAll = []; 88 List<String?> imgAll = [];
90 89
  90 + List<String> areaCode = [];
  91 +
91 ///获取接单时间接口 92 ///获取接单时间接口
92 _getReceiveOrdersTime() async { 93 _getReceiveOrdersTime() async {
93 - GetSellerInfoSunModel? model = await bookSetTimeModel.getSellerById(context); 94 + GetSellerInfoSunModel? model =
  95 + await bookSetTimeModel.getSellerById(context);
94 setState(() { 96 setState(() {
95 receiveOrdersTime.start = model!.data!.recStime!.padLeft(5, '0'); 97 receiveOrdersTime.start = model!.data!.recStime!.padLeft(5, '0');
96 receiveOrdersTime.end = model.data!.recEtime!.padLeft(5, '0'); 98 receiveOrdersTime.end = model.data!.recEtime!.padLeft(5, '0');
@@ -132,7 +134,7 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -132,7 +134,7 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
132 WidgetsBinding.instance.addPostFrameCallback((_) { 134 WidgetsBinding.instance.addPostFrameCallback((_) {
133 _uploadImageProvider.mentou.process = 0.01; 135 _uploadImageProvider.mentou.process = 0.01;
134 _uploadImageProvider.mentou.qiniuUrl = ''; 136 _uploadImageProvider.mentou.qiniuUrl = '';
135 - 137 + _initAreaCode();
136 // _uploadImageProvider.mentou.file = null; 138 // _uploadImageProvider.mentou.file = null;
137 _getQiniuInfo(); 139 _getQiniuInfo();
138 _getStoreBaseinfo(); 140 _getStoreBaseinfo();
@@ -149,6 +151,26 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -149,6 +151,26 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
149 super.dispose(); 151 super.dispose();
150 } 152 }
151 153
  154 + Future<List<dynamic>> loadJsonData() async {
  155 + final jsonString = await rootBundle.loadString('assets/areacode.json');
  156 + return jsonDecode(jsonString);
  157 + }
  158 +
  159 + _initAreaCode() async {
  160 + List<dynamic> temp = await loadJsonData();
  161 + areaCode = [];
  162 + temp.forEach((element) {
  163 + print(element['代码']);
  164 + areaCode.add(element['代码']);
  165 + });
  166 + // temp.map((e) => {areaCode.add(e['代码'])});
  167 + // //推荐使用
  168 + // for (var entry in map.entries) {
  169 + // print('value:${entry.value}');
  170 + // }
  171 + print(areaCode); // 使用数据
  172 + }
  173 +
152 getSellerTemplateConf() async { 174 getSellerTemplateConf() async {
153 bool success = await marketingCenterProvider.getSellerTemplateConf(context); 175 bool success = await marketingCenterProvider.getSellerTemplateConf(context);
154 if (success && marketingCenterProvider.markDataModel!.store != null) { 176 if (success && marketingCenterProvider.markDataModel!.store != null) {
@@ -354,11 +376,11 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -354,11 +376,11 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
354 GetSellerInfoSunModel? itemModel = 376 GetSellerInfoSunModel? itemModel =
355 await _baseIndoProvider.getSellerById(context); 377 await _baseIndoProvider.getSellerById(context);
356 if (itemModel != null) { 378 if (itemModel != null) {
357 - _nameController.text = itemModel.data!.sellername??""; 379 + _nameController.text = itemModel.data!.sellername ?? "";
358 380
359 - _timeController.text = itemModel.data!.dailyTime??"";  
360 - _addressController.text = itemModel.data!.realAddress??"";  
361 - _introductionController.text = itemModel.data!.sellerdesc??""; 381 + _timeController.text = itemModel.data!.dailyTime ?? "";
  382 + _addressController.text = itemModel.data!.realAddress ?? "";
  383 + _introductionController.text = itemModel.data!.sellerdesc ?? "";
362 _uploadImageProvider.mentou.qiniuUrl = itemModel.data!.sellerImage; 384 _uploadImageProvider.mentou.qiniuUrl = itemModel.data!.sellerImage;
363 // _uploadImageProvider.notifyListeners(); 385 // _uploadImageProvider.notifyListeners();
364 _countName = _nameController.text.trim().length; 386 _countName = _nameController.text.trim().length;
@@ -375,7 +397,7 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -375,7 +397,7 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
375 onePhone = true; 397 onePhone = true;
376 } 398 }
377 } else { 399 } else {
378 - _phoneController.text = itemModel.data!.sellerTel??""; 400 + _phoneController.text = itemModel.data!.sellerTel ?? "";
379 onePhone = true; 401 onePhone = true;
380 } 402 }
381 mapAddress = { 403 mapAddress = {
@@ -403,12 +425,12 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -403,12 +425,12 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
403 return; 425 return;
404 } 426 }
405 427
406 - if (!Utils.isNumeric1Req(_phoneController.text.trim())) { 428 + if (!Utils.isPhoneReq(_phoneController.text.trim())) {
407 Utils.showToast('电话1请输入正确的格式!'); 429 Utils.showToast('电话1请输入正确的格式!');
408 return; 430 return;
409 } 431 }
410 if (_phoneController2.text.trim().length > 0 && 432 if (_phoneController2.text.trim().length > 0 &&
411 - !Utils.isNumeric1Req(_phoneController2.text.trim())) { 433 + !Utils.isPhoneReq(_phoneController2.text.trim())) {
412 Utils.showToast('电话2请输入正确的格式!'); 434 Utils.showToast('电话2请输入正确的格式!');
413 return; 435 return;
414 } 436 }
@@ -456,6 +478,85 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -456,6 +478,85 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
456 await _setSellerInfoById(); 478 await _setSellerInfoById();
457 } 479 }
458 480
  481 + TextInputFormatter phoneInputFormatter() {
  482 + return TextInputFormatter.withFunction((oldValue, newValue) {
  483 + String text = newValue.text;
  484 + int numMin = 3;
  485 + int numMax = 7;
  486 + String textTemp = text.replaceAll('-', "");
  487 + if (text.startsWith('0')) {
  488 + // String string4 = textTemp.substring(0, 4);
  489 +
  490 + // String string3 = textTemp.substring(0, 3);
  491 +
  492 + if (textTemp.length > 4) {
  493 + bool hasNumber4 =
  494 + areaCode.any((number) => number == textTemp.substring(0, 4));
  495 +
  496 + if (hasNumber4) {
  497 + numMin = 4;
  498 + numMax = 8;
  499 + } else {
  500 + bool hasNumber3 =
  501 + areaCode.any((number) => number == textTemp.substring(0, 3));
  502 + if (hasNumber3) {
  503 + numMin = 3;
  504 + numMax = 7;
  505 + }
  506 + }
  507 + } else if (textTemp.length > 3) {
  508 + bool hasNumber3 =
  509 + areaCode.any((number) => number == textTemp.substring(0, 3));
  510 + if (hasNumber3) {
  511 + numMin = 3;
  512 + numMax = 7;
  513 + }
  514 + }
  515 + }
  516 + //获取光标左边的文本
  517 + final positionStr = (text.substring(0, newValue.selection.baseOffset))
  518 + .replaceAll('-', "");
  519 + //计算格式化后的光标位置
  520 + int length = positionStr.length;
  521 + var position = 0;
  522 + if (length <= numMin) {
  523 + position = length;
  524 + } else if (length <= numMax) {
  525 + // 因为前面的字符串里面加了一个空格
  526 + position = length + 1;
  527 + } else {
  528 + position = length + 2;
  529 + }
  530 + // else if (length <= 11) {
  531 + // // 因为前面的字符串里面加了两个空格
  532 + // position = length + 2;
  533 + // } else {
  534 + // // 号码本身为 11 位数字,因多了两个空格,故为 13
  535 + // position = 13;
  536 + // }
  537 + // RegExp(r"\s+\b|\b\s")
  538 +
  539 + //这里格式化整个输入文本
  540 + text = text.replaceAll('-', "");
  541 + var string = "";
  542 + for (int i = 0; i < text.length; i++) {
  543 + // 这里第 4 位,与第 8 位,我们用空格填充
  544 + if (i == numMin || i == numMax) {
  545 + if (text[i] != "-") {
  546 + string = string + "-";
  547 + }
  548 + }
  549 + string += text[i];
  550 + }
  551 +
  552 + return TextEditingValue(
  553 + text: string,
  554 + selection: TextSelection.fromPosition(
  555 + TextPosition(offset: position, affinity: TextAffinity.upstream)),
  556 + );
  557 + });
  558 + }
  559 +
459 _refreshMarketingInfo() async { 560 _refreshMarketingInfo() async {
460 //接口 561 //接口
461 Map storeData = { 562 Map storeData = {
@@ -466,7 +567,8 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -466,7 +567,8 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
466 567
467 if (marketingCenterProvider.markDataModel != null && 568 if (marketingCenterProvider.markDataModel != null &&
468 marketingCenterProvider.markDataModel!.store != null) { 569 marketingCenterProvider.markDataModel!.store != null) {
469 - storeData['images'] = marketingCenterProvider.markDataModel!.store!.images; 570 + storeData['images'] =
  571 + marketingCenterProvider.markDataModel!.store!.images;
470 storeData['is_introduce'] = 572 storeData['is_introduce'] =
471 marketingCenterProvider.markDataModel!.store!.isIntroduce; 573 marketingCenterProvider.markDataModel!.store!.isIntroduce;
472 storeData['is_images'] = 574 storeData['is_images'] =
@@ -912,7 +1014,7 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -912,7 +1014,7 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
912 return InkWell( 1014 return InkWell(
913 onTap: () { 1015 onTap: () {
914 Utils.getPickPermission(context, () async { 1016 Utils.getPickPermission(context, () async {
915 - Map? temp = await NavigatorUtil.goMapChoicePointPage(context) ; 1017 + Map? temp = await NavigatorUtil.goMapChoicePointPage(context);
916 if (temp != null) { 1018 if (temp != null) {
917 mapAddress = temp as Map<String, dynamic>?; 1019 mapAddress = temp as Map<String, dynamic>?;
918 setState(() { 1020 setState(() {
@@ -1032,8 +1134,8 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -1032,8 +1134,8 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
1032 morning.end!, SetTimeWidget.dateData); 1134 morning.end!, SetTimeWidget.dateData);
1033 } else if (tag == 2) { 1135 } else if (tag == 2) {
1034 //晚市 1136 //晚市
1035 - data =  
1036 - Utils.getPickerData(noon.end!, SetTimeWidget.dateData); 1137 + data = Utils.getPickerData(
  1138 + noon.end!, SetTimeWidget.dateData);
1037 } 1139 }
1038 1140
1039 SetTimeWidget().showTimeSelector(context, data, start, 1141 SetTimeWidget().showTimeSelector(context, data, start,
@@ -1170,8 +1272,8 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -1170,8 +1272,8 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
1170 morning.start!, SetTimeWidget.dateData); 1272 morning.start!, SetTimeWidget.dateData);
1171 } else if (tag == 1) { 1273 } else if (tag == 1) {
1172 //午市 1274 //午市
1173 - data =  
1174 - Utils.getPickerData(noon.start!, SetTimeWidget.dateData); 1275 + data = Utils.getPickerData(
  1276 + noon.start!, SetTimeWidget.dateData);
1175 } else if (tag == 2) { 1277 } else if (tag == 2) {
1176 //晚市 1278 //晚市
1177 data = Utils.getPickerData( 1279 data = Utils.getPickerData(
@@ -1686,6 +1788,10 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -1686,6 +1788,10 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
1686 child: TextField( 1788 child: TextField(
1687 controller: _phoneController, 1789 controller: _phoneController,
1688 maxLines: 1, 1790 maxLines: 1,
  1791 + inputFormatters: [
  1792 + phoneInputFormatter(),
  1793 + // LengthLimitingTextInputFormatter(14),
  1794 + ],
1689 // inputFormatters: [ 1795 // inputFormatters: [
1690 // LengthLimitingTextInputFormatter( 1796 // LengthLimitingTextInputFormatter(
1691 // 15), 1797 // 15),
@@ -1726,7 +1832,8 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -1726,7 +1832,8 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
1726 FocusScope.of(context).requestFocus( 1832 FocusScope.of(context).requestFocus(
1727 FocusNode()); //点击空白处隐藏键盘 1833 FocusNode()); //点击空白处隐藏键盘
1728 }, 1834 },
1729 - keyboardType: TextInputType.text, 1835 + keyboardType:
  1836 + TextInputType.numberWithOptions(),
1730 ), 1837 ),
1731 )), 1838 )),
1732 HEmptyView(20), 1839 HEmptyView(20),
@@ -1764,6 +1871,10 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -1764,6 +1871,10 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
1764 child: TextField( 1871 child: TextField(
1765 controller: _phoneController2, 1872 controller: _phoneController2,
1766 maxLines: 1, 1873 maxLines: 1,
  1874 + inputFormatters: [
  1875 + phoneInputFormatter(),
  1876 + // LengthLimitingTextInputFormatter(14),
  1877 + ],
1767 // inputFormatters: [ 1878 // inputFormatters: [
1768 // LengthLimitingTextInputFormatter( 1879 // LengthLimitingTextInputFormatter(
1769 // 15), 1880 // 15),
@@ -1807,7 +1918,8 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -1807,7 +1918,8 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
1807 .requestFocus( 1918 .requestFocus(
1808 FocusNode()); //点击空白处隐藏键盘 1919 FocusNode()); //点击空白处隐藏键盘
1809 }, 1920 },
1810 - keyboardType: TextInputType.text, 1921 + keyboardType: TextInputType
  1922 + .numberWithOptions(),
1811 ), 1923 ),
1812 )), 1924 )),
1813 HEmptyView(20), 1925 HEmptyView(20),
@@ -1924,9 +2036,10 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -1924,9 +2036,10 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
1924 Utils.getPickPermission(context, 2036 Utils.getPickPermission(context,
1925 () async { 2037 () async {
1926 Map? temp = await NavigatorUtil 2038 Map? temp = await NavigatorUtil
1927 - .goMapChoicePointPage(context) ; 2039 + .goMapChoicePointPage(context);
1928 if (temp != null) { 2040 if (temp != null) {
1929 - mapAddress = temp as Map<String, dynamic>?; 2041 + mapAddress =
  2042 + temp as Map<String, dynamic>?;
1930 setState(() { 2043 setState(() {
1931 // storeMapAddress = address['address']; 2044 // storeMapAddress = address['address'];
1932 // // createStoreModel.storeInfo?.address = storeAddress; 2045 // // createStoreModel.storeInfo?.address = storeAddress;
@@ -2034,9 +2147,10 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> { @@ -2034,9 +2147,10 @@ class _StoreBaseInfoPageSimState extends State<StoreBaseInfoPageSim> {
2034 .toString(), 2147 .toString(),
2035 lat: mapAddress![ 2148 lat: mapAddress![
2036 'lat'] 2149 'lat']
2037 - .toString()) ; 2150 + .toString());
2038 if (temp != null) { 2151 if (temp != null) {
2039 - mapAddress = temp as Map<String, dynamic>?; 2152 + mapAddress = temp as Map<
  2153 + String, dynamic>?;
2040 2154
2041 setState(() { 2155 setState(() {
2042 // storeMapAddress = address['address']; 2156 // storeMapAddress = address['address'];
@@ -206,6 +206,20 @@ class Utils { @@ -206,6 +206,20 @@ class Utils {
206 return reg.hasMatch(str); 206 return reg.hasMatch(str);
207 } 207 }
208 208
  209 + static bool isPhoneReq(String str) {
  210 +// 正则表达式匹配格式:XXX-XXX-XXXX
  211 + RegExp regex = RegExp(r'^\d{3}-\d{4}-\d{1,6}$');
  212 + bool isValid = regex.hasMatch(str);
  213 +
  214 + RegExp regex1 = RegExp(r'^\d{4}-\d{4}-\d{1,6}$');
  215 + bool isValid1 = regex1.hasMatch(str);
  216 +
  217 + if (isValid1 || isValid) {
  218 + return true;
  219 + }
  220 + return false;
  221 + }
  222 +
209 // ^(([^0][0-9]+|0)$)|^(([1-9]+)$) 223 // ^(([^0][0-9]+|0)$)|^(([1-9]+)$)
210 224
211 // 验证是否为数字 225 // 验证是否为数字
@@ -1031,7 +1045,7 @@ class Utils { @@ -1031,7 +1045,7 @@ class Utils {
1031 return lunarCalendarUtilsShow(day); 1045 return lunarCalendarUtilsShow(day);
1032 } 1046 }
1033 1047
1034 - //农历节日 *表示放假日 1048 + //农历节日 *表示放假日
1035 static String? lunarCalendarUnHolidays(DateTime day) { 1049 static String? lunarCalendarUnHolidays(DateTime day) {
1036 // LunarCalendar lunarCalendar = LunarCalendar(day); 1050 // LunarCalendar lunarCalendar = LunarCalendar(day);
1037 //阴历月-日 1051 //阴历月-日
@@ -3326,18 +3340,16 @@ class Utils { @@ -3326,18 +3340,16 @@ class Utils {
3326 static _getDsoltStrShow(String ddateSolt, String mname, {bool isCan = true}) { 3340 static _getDsoltStrShow(String ddateSolt, String mname, {bool isCan = true}) {
3327 String dsoltStr = ''; 3341 String dsoltStr = '';
3328 if (!isCan) { 3342 if (!isCan) {
3329 - if (mname == '早餐') {  
3330 - mname ='早上'; 3343 + if (mname == '早餐') {
  3344 + mname = '早上';
3331 } else if (mname == '午餐') { 3345 } else if (mname == '午餐') {
3332 - mname ='中午'; 3346 + mname = '中午';
3333 } else if (mname == '晚餐') { 3347 } else if (mname == '晚餐') {
3334 mname = '晚上'; 3348 mname = '晚上';
3335 - }  
3336 - dsoltStr = mname; 3349 + }
  3350 + dsoltStr = mname;
3337 } else { 3351 } else {
3338 -  
3339 - dsoltStr = mname;  
3340 - 3352 + dsoltStr = mname;
3341 } 3353 }
3342 return dsoltStr; 3354 return dsoltStr;
3343 } 3355 }
@@ -3351,16 +3363,14 @@ class Utils { @@ -3351,16 +3363,14 @@ class Utils {
3351 String dsoltStr = '${ddateHm == null || ddateHm == '' ? '' : ddateHm}'; 3363 String dsoltStr = '${ddateHm == null || ddateHm == '' ? '' : ddateHm}';
3352 if (liteStyle == '1') { 3364 if (liteStyle == '1') {
3353 if (mname == '早餐') { 3365 if (mname == '早餐') {
3354 - mname ='早上'; 3366 + mname = '早上';
3355 } else if (mname == '午餐') { 3367 } else if (mname == '午餐') {
3356 - mname ='中午'; 3368 + mname = '中午';
3357 } else if (mname == '晚餐') { 3369 } else if (mname == '晚餐') {
3358 mname = '晚上'; 3370 mname = '晚上';
3359 - }  
3360 - dsoltStr = mname;  
3361 - 3371 + }
  3372 + dsoltStr = mname;
3362 } else if (liteStyle == '3') { 3373 } else if (liteStyle == '3') {
3363 -  
3364 dsoltStr = mname; 3374 dsoltStr = mname;
3365 } 3375 }
3366 return dsoltStr; 3376 return dsoltStr;