作者 liaolinfeng

2018年11月27号项目开发,差订单部分的逻辑

正在显示 97 个修改的文件 包含 4799 行增加0 行删除

要显示太多修改。

为保证性能只显示 97 of 97+ 个文件。

  1 +/* animation */
  2 +
  3 +.Augly-bounce,
  4 +.Augly-flip,
  5 +.Augly-flash,
  6 +.Augly-shake,
  7 +.Augly-swing,
  8 +.Augly-wobble,
  9 +.Augly-ring {
  10 + -webkit-animation: 1s ease;
  11 + animation: 1s ease;
  12 +}
  13 +
  14 +.Augly-fadein,
  15 +.Augly-fadeinT,
  16 +.Augly-fadeinR,
  17 +.Augly-fadeinB,
  18 +.Augly-fadeinL,
  19 +.Augly-bouncein,
  20 +.Augly-bounceinT,
  21 +.Augly-bounceinR,
  22 +.Augly-bounceinB,
  23 +.Augly-bounceinL,
  24 +.Augly-rotatein,
  25 +.Augly-rotateinLT,
  26 +.Augly-rotateinLB,
  27 +.Augly-rotateinRT,
  28 +.Augly-rotateinRB,
  29 +.Augly-flipin,
  30 +.Augly-flipinX,
  31 +.Augly-flipinY {
  32 + -webkit-animation: 0.6s ease-out backwards;
  33 + animation: 0.6s ease-out backwards;
  34 +}
  35 +
  36 +.Augly-fadeout,
  37 +.Augly-fadeoutT,
  38 +.Augly-fadeoutR,
  39 +.Augly-fadeoutB,
  40 +.Augly-fadeoutL,
  41 +.Augly-bounceout,
  42 +.Augly-bounceoutT,
  43 +.Augly-bounceoutR,
  44 +.Augly-bounceoutB,
  45 +.Augly-bounceoutL,
  46 +.Augly-rotateout,
  47 +.Augly-rotateoutLT,
  48 +.Augly-rotateoutLB,
  49 +.Augly-rotateoutRT,
  50 +.Augly-rotateoutRB,
  51 +.Augly-flipout,
  52 +.Augly-flipoutX,
  53 +.Augly-flipoutY {
  54 + -webkit-animation: 1s ease-in forwards;
  55 + animation: 1s ease-in forwards;
  56 +}
  57 +
  58 +/* 淡入 */
  59 +
  60 +Augly-fadeinT .Augly-fadein {
  61 + -webkit-animation-name: fadein;
  62 + animation-name: fadein;
  63 +}
  64 +
  65 +/* 淡入-从上 */
  66 +
  67 +.Augly-fadeinT {
  68 + -webkit-animation-name: fadeinT;
  69 + animation-name: fadeinT;
  70 +}
  71 +
  72 +/* 淡入-从右 */
  73 +
  74 +.Augly-fadeinR {
  75 + -webkit-animation-name: fadeinR;
  76 + animation-name: fadeinR;
  77 +}
  78 +
  79 +/* 淡入-从下 */
  80 +
  81 +.Augly-fadeinB {
  82 + -webkit-animation-name: fadeinB;
  83 + animation-name: fadeinB;
  84 +}
  85 +
  86 +/* 淡入-从左 */
  87 +
  88 +.Augly-fadeinL {
  89 + -webkit-animation-name: fadeinL;
  90 + animation-name: fadeinL;
  91 +}
  92 +
  93 +/* 淡出 */
  94 +
  95 +.Augly-fadeout {
  96 + -webkit-animation-name: fadeout;
  97 + animation-name: fadeout;
  98 +}
  99 +
  100 +/* 淡出-向上 */
  101 +
  102 +.Augly-fadeoutT {
  103 + -webkit-animation-name: fadeoutT;
  104 + animation-name: fadeoutT;
  105 +}
  106 +
  107 +/* 淡出-向右 */
  108 +
  109 +.Augly-fadeoutR {
  110 + -webkit-animation-name: fadeoutR;
  111 + animation-name: fadeoutR;
  112 +}
  113 +
  114 +/* 淡出-向下 */
  115 +
  116 +.Augly-fadeoutB {
  117 + -webkit-animation-name: fadeoutB;
  118 + animation-name: fadeoutB;
  119 +}
  120 +
  121 +/* 淡出-向左 */
  122 +
  123 +.Augly-fadeoutL {
  124 + -webkit-animation-name: fadeoutL;
  125 + animation-name: fadeoutL;
  126 +}
  127 +
  128 +/* 弹跳 */
  129 +
  130 +.Augly-bounce {
  131 + -webkit-animation-name: bounce;
  132 + animation-name: bounce;
  133 +}
  134 +/* 弹入 */
  135 +.Augly-bouncein {
  136 + -webkit-animation-name: bouncein;
  137 + animation-name: bouncein;
  138 +}
  139 +
  140 +/* 弹入-从上 */
  141 +
  142 +.Augly-bounceinT {
  143 + -webkit-animation-name: bounceinT;
  144 + animation-name: bounceinT;
  145 +}
  146 +
  147 +/* 弹入-从右 */
  148 +
  149 +.Augly-bounceinR {
  150 + -webkit-animation-name: bounceinR;
  151 + animation-name: bounceinR;
  152 +}
  153 +
  154 +/* 弹入-从下 */
  155 +
  156 +.Augly-bounceinB {
  157 + -webkit-animation-name: bounceinB;
  158 + animation-name: bounceinB;
  159 +}
  160 +
  161 +/* 弹入-从左 */
  162 +
  163 +.Augly-bounceinL {
  164 + -webkit-animation-name: bounceinL;
  165 + animation-name: bounceinL;
  166 +}
  167 +
  168 +/* 弹出 */
  169 +
  170 +.Augly-bounceout {
  171 + -webkit-animation-name: bounceout;
  172 + animation-name: bounceout;
  173 +}
  174 +
  175 +/* 弹出-向上 */
  176 +
  177 +.Augly-bounceoutT {
  178 + -webkit-animation-name: bounceoutT;
  179 + animation-name: bounceoutT;
  180 +}
  181 +
  182 +/* 弹出-向右 */
  183 +
  184 +.Augly-bounceoutR {
  185 + -webkit-animation-name: bounceoutR;
  186 + animation-name: bounceoutR;
  187 +}
  188 +
  189 +/* 弹出-向下 */
  190 +
  191 +.Augly-bounceoutB {
  192 + -webkit-animation-name: bounceoutB;
  193 + animation-name: bounceoutB;
  194 +}
  195 +
  196 +/* 弹出-向左 */
  197 +
  198 +.Augly-bounceoutL {
  199 + -webkit-animation-name: bounceoutL;
  200 + animation-name: bounceoutL;
  201 +}
  202 +
  203 +/* 转入 */
  204 +
  205 +.Augly-rotatein {
  206 + -webkit-animation-name: rotatein;
  207 + animation-name: rotatein;
  208 +}
  209 +
  210 +/* 转入-从左上 */
  211 +
  212 +.Augly-rotateinLT {
  213 + -webkit-animation-name: rotateinLT;
  214 + animation-name: rotateinLT;
  215 +}
  216 +
  217 +/* 转入-从左下 */
  218 +
  219 +.Augly-rotateinLB {
  220 + -webkit-animation-name: rotateinLB;
  221 + animation-name: rotateinLB;
  222 +}
  223 +
  224 +/* 转入-从右上 */
  225 +
  226 +.Augly-rotateinRT {
  227 + -webkit-animation-name: rotateinRT;
  228 + animation-name: rotateinRT;
  229 +}
  230 +
  231 +/* 转入-从右下*/
  232 +
  233 +.Augly-rotateinRB {
  234 + -webkit-animation-name: rotateinRB;
  235 + animation-name: rotateinRB;
  236 +}
  237 +
  238 +/* 转出 */
  239 +
  240 +.Augly-rotateout {
  241 + -webkit-animation-name: rotateout;
  242 + animation-name: rotateout;
  243 +}
  244 +
  245 +/* 转出-向左上 */
  246 +
  247 +.Augly-rotateoutLT {
  248 + -webkit-animation-name: rotateoutLT;
  249 + animation-name: rotateoutLT;
  250 +}
  251 +
  252 +/* 转出-向左下 */
  253 +
  254 +.Augly-rotateoutLB {
  255 + -webkit-animation-name: rotateoutLB;
  256 + animation-name: rotateoutLB;
  257 +}
  258 +
  259 +/* 转出-向右上 */
  260 +
  261 +.Augly-rotateoutRT {
  262 + -webkit-animation-name: rotateoutRT;
  263 + animation-name: rotateoutRT;
  264 +}
  265 +
  266 +/* 转出-向右下 */
  267 +
  268 +.Augly-rotateoutRB {
  269 + -webkit-animation-name: rotateoutRB;
  270 + animation-name: rotateoutRB;
  271 +}
  272 +
  273 +/* 翻转 */
  274 +
  275 +.Augly-flip {
  276 + -webkit-animation-name: flip;
  277 + animation-name: flip;
  278 +}
  279 +
  280 +/* 翻入-X轴 */
  281 +
  282 +.Augly-flipinX {
  283 + -webkit-animation-name: flipinX;
  284 + animation-name: flipinX;
  285 +}
  286 +
  287 +/* 翻入-Y轴 */
  288 +
  289 +.Augly-flipin,
  290 +.Augly-flipinY {
  291 + -webkit-animation-name: flipinY;
  292 + animation-name: flipinY;
  293 +}
  294 +
  295 +/* 翻出-X轴 */
  296 +
  297 +.Augly-flipoutX {
  298 + -webkit-animation-name: flipoutX;
  299 + animation-name: flipoutX;
  300 +}
  301 +
  302 +/* 翻出-Y轴 */
  303 +
  304 +.Augly-flipout,
  305 +.Augly-flipoutY {
  306 + -webkit-animation-name: flipoutY;
  307 + animation-name: flipoutY;
  308 +}
  309 +
  310 +/* 闪烁 */
  311 +
  312 +.Augly-flash {
  313 + -webkit-animation-name: flash;
  314 + animation-name: flash;
  315 +}
  316 +
  317 +/* 震颤 */
  318 +
  319 +.Augly-shake {
  320 + -webkit-animation-name: shake;
  321 + animation-name: shake;
  322 +}
  323 +
  324 +/* 摇摆 */
  325 +
  326 +.Augly-swing {
  327 + -webkit-animation-name: swing;
  328 + animation-name: swing;
  329 +}
  330 +
  331 +/* 摇晃 */
  332 +
  333 +.Augly-wobble {
  334 + -webkit-animation-name: wobble;
  335 + animation-name: wobble;
  336 +}
  337 +
  338 +/* 震铃 */
  339 +
  340 +.Augly-ring {
  341 + -webkit-animation-name: ring;
  342 + animation-name: ring;
  343 +}
  344 +
  345 +/* define */
  346 +
  347 +/* 淡入 */
  348 +
  349 +@-webkit-keyframes fadein {
  350 + 0% {
  351 + opacity: 0;
  352 + }
  353 + 100% {
  354 + opacity: 1;
  355 + }
  356 +}
  357 +
  358 +@keyframes fadein {
  359 + 0% {
  360 + opacity: 0;
  361 + }
  362 + 100% {
  363 + opacity: 1;
  364 + }
  365 +}
  366 +
  367 +/* 淡入-从上 */
  368 +
  369 +@-webkit-keyframes fadeinT {
  370 + 0% {
  371 + opacity: 0;
  372 + -webkit-transform: translateY(-100rpx);
  373 + }
  374 + 100% {
  375 + opacity: 1;
  376 + -webkit-transform: translateY(0);
  377 + }
  378 +}
  379 +
  380 +@keyframes fadeinT {
  381 + 0% {
  382 + opacity: 0;
  383 + -webkit-transform: translateY(-100px);
  384 + transform: translateY(-100px);
  385 + }
  386 + 100% {
  387 + opacity: 1;
  388 + -webkit-transform: translateY(0);
  389 + transform: translateY(0);
  390 + }
  391 +}
  392 +
  393 +/* 淡入-从右 */
  394 +
  395 +@-webkit-keyframes fadeinR {
  396 + 0% {
  397 + opacity: 0;
  398 + -webkit-transform: translateX(100px);
  399 + }
  400 + 100% {
  401 + opacity: 1;
  402 + -webkit-transform: translateX(0);
  403 + }
  404 +}
  405 +
  406 +@keyframes fadeinR {
  407 + 0% {
  408 + opacity: 0;
  409 + -webkit-transform: translateX(100px);
  410 + transform: translateX(100px);
  411 + }
  412 + 100% {
  413 + opacity: 1;
  414 + -webkit-transform: translateX(0);
  415 + transform: translateX(0);
  416 + }
  417 +}
  418 +
  419 +/* 淡入-从下 */
  420 +
  421 +@-webkit-keyframes fadeinB {
  422 + 0% {
  423 + opacity: 0;
  424 + -webkit-transform: translateY(100px);
  425 + }
  426 + 100% {
  427 + opacity: 1;
  428 + -webkit-transform: translateY(0);
  429 + }
  430 +}
  431 +
  432 +@keyframes fadeinB {
  433 + 0% {
  434 + opacity: 0;
  435 + -webkit-transform: translateY(100px);
  436 + transform: translateY(100px);
  437 + }
  438 + 100% {
  439 + opacity: 1;
  440 + -webkit-transform: translateY(0);
  441 + transform: translateY(0);
  442 + }
  443 +}
  444 +
  445 +/* 淡入-从左 */
  446 +
  447 +@-webkit-keyframes fadeinL {
  448 + 0% {
  449 + opacity: 0;
  450 + -webkit-transform: translateX(-100px);
  451 + }
  452 + 100% {
  453 + opacity: 1;
  454 + -webkit-transform: translateX(0);
  455 + }
  456 +}
  457 +
  458 +@keyframes fadeinL {
  459 + 0% {
  460 + opacity: 0;
  461 + -webkit-transform: translateX(-100px);
  462 + transform: translateX(-100px);
  463 + }
  464 + 100% {
  465 + opacity: 1;
  466 + -webkit-transform: translateX(0);
  467 + transform: translateX(0);
  468 + }
  469 +}
  470 +
  471 +/* 淡出 */
  472 +
  473 +@-webkit-keyframes fadeout {
  474 + 0% {
  475 + opacity: 1;
  476 + }
  477 + 100% {
  478 + opacity: 0;
  479 + }
  480 +}
  481 +
  482 +@keyframes fadeout {
  483 + 0% {
  484 + opacity: 1;
  485 + }
  486 + 100% {
  487 + opacity: 0;
  488 + }
  489 +}
  490 +
  491 +/* 淡出-向上 */
  492 +
  493 +@-webkit-keyframes fadeoutT {
  494 + 0% {
  495 + opacity: 1;
  496 + -webkit-transform: translateY(0);
  497 + }
  498 + 100% {
  499 + opacity: 0;
  500 + -webkit-transform: translateY(-100px);
  501 + }
  502 +}
  503 +
  504 +@keyframes fadeoutT {
  505 + 0% {
  506 + opacity: 1;
  507 + -webkit-transform: translateY(0);
  508 + transform: translateY(0);
  509 + }
  510 + 100% {
  511 + opacity: 0;
  512 + -webkit-transform: translateY(-100px);
  513 + transform: translateY(-100px);
  514 + }
  515 +}
  516 +
  517 +/* 淡出-向右 */
  518 +
  519 +@-webkit-keyframes fadeoutR {
  520 + 0% {
  521 + opacity: 1;
  522 + -webkit-transform: translateX(0);
  523 + }
  524 + 100% {
  525 + opacity: 0;
  526 + -webkit-transform: translateX(100px);
  527 + }
  528 +}
  529 +
  530 +@keyframes fadeoutR {
  531 + 0% {
  532 + opacity: 1;
  533 + -webkit-transform: translateX(0);
  534 + transform: translateX(0);
  535 + }
  536 + 100% {
  537 + opacity: 0;
  538 + -webkit-transform: translateX(100px);
  539 + transform: translateX(100px);
  540 + }
  541 +}
  542 +
  543 +/* 淡出-向下 */
  544 +
  545 +@-webkit-keyframes fadeoutB {
  546 + 0% {
  547 + opacity: 1;
  548 + -webkit-transform: translateY(0);
  549 + }
  550 + 100% {
  551 + opacity: 0;
  552 + -webkit-transform: translateY(100px);
  553 + }
  554 +}
  555 +
  556 +@keyframes fadeoutB {
  557 + 0% {
  558 + opacity: 1;
  559 + -webkit-transform: translateY(0);
  560 + transform: translateY(0);
  561 + }
  562 + 100% {
  563 + opacity: 0;
  564 + -webkit-transform: translateY(100px);
  565 + transform: translateY(100px);
  566 + }
  567 +}
  568 +
  569 +/* 淡出-向左 */
  570 +
  571 +@-webkit-keyframes fadeoutL {
  572 + 0% {
  573 + opacity: 1;
  574 + -webkit-transform: translateX(0);
  575 + }
  576 + 100% {
  577 + opacity: 0;
  578 + -webkit-transform: translateX(-100px);
  579 + }
  580 +}
  581 +
  582 +@keyframes fadeoutL {
  583 + 0% {
  584 + opacity: 1;
  585 + -webkit-transform: translateX(0);
  586 + transform: translateX(0);
  587 + }
  588 + 100% {
  589 + opacity: 0;
  590 + -webkit-transform: translateX(-100px);
  591 + transform: translateX(-100px);
  592 + }
  593 +}
  594 +
  595 +/* 弹跳 */
  596 +
  597 +@-webkit-keyframes bounce {
  598 + 0%,
  599 + 20%,
  600 + 50%,
  601 + 80%,
  602 + 100% {
  603 + -webkit-transform: translateY(0);
  604 + }
  605 + 40% {
  606 + -webkit-transform: translateY(-30px);
  607 + }
  608 + 60% {
  609 + -webkit-transform: translateY(-15px);
  610 + }
  611 +}
  612 +
  613 +@keyframes bounce {
  614 + 0%,
  615 + 20%,
  616 + 50%,
  617 + 80%,
  618 + 100% {
  619 + -webkit-transform: translateY(0);
  620 + transform: translateY(0);
  621 + }
  622 + 40% {
  623 + -webkit-transform: translateY(-30px);
  624 + transform: translateY(-30px);
  625 + }
  626 + 60% {
  627 + -webkit-transform: translateY(-15px);
  628 + transform: translateY(-15px);
  629 + }
  630 +}
  631 +
  632 +/* 弹入 */
  633 +
  634 +@-webkit-keyframes bouncein {
  635 + 0% {
  636 + opacity: 0;
  637 + -webkit-transform: scale(0.3);
  638 + }
  639 + 50% {
  640 + opacity: 1;
  641 + -webkit-transform: scale(1.05);
  642 + }
  643 + 70% {
  644 + -webkit-transform: scale(0.9);
  645 + }
  646 + 100% {
  647 + -webkit-transform: scale(1);
  648 + }
  649 +}
  650 +
  651 +@keyframes bouncein {
  652 + 0% {
  653 + opacity: 0;
  654 + -webkit-transform: scale(0.3);
  655 + transform: scale(0.3);
  656 + }
  657 + 50% {
  658 + opacity: 1;
  659 + -webkit-transform: scale(1.05);
  660 + transform: scale(1.05);
  661 + }
  662 + 70% {
  663 + -webkit-transform: scale(0.9);
  664 + transform: scale(0.9);
  665 + }
  666 + 100% {
  667 + -webkit-transform: scale(1);
  668 + transform: scale(1);
  669 + }
  670 +}
  671 +
  672 +/* 弹入-从上 */
  673 +
  674 +@-webkit-keyframes bounceinT {
  675 + 0% {
  676 + opacity: 0;
  677 + -webkit-transform: translateY(-100px);
  678 + }
  679 + 60% {
  680 + opacity: 1;
  681 + -webkit-transform: translateY(30px);
  682 + }
  683 + 80% {
  684 + -webkit-transform: translateY(-10px);
  685 + }
  686 + 100% {
  687 + -webkit-transform: translateY(0);
  688 + }
  689 +}
  690 +
  691 +@keyframes bounceinT {
  692 + 0% {
  693 + opacity: 0;
  694 + -webkit-transform: translateY(-100px);
  695 + transform: translateY(-100px);
  696 + }
  697 + 60% {
  698 + opacity: 1;
  699 + -webkit-transform: translateY(30px);
  700 + transform: translateY(30px);
  701 + }
  702 + 80% {
  703 + -webkit-transform: translateY(-10px);
  704 + transform: translateY(-10px);
  705 + }
  706 + 100% {
  707 + -webkit-transform: translateY(0);
  708 + transform: translateY(0);
  709 + }
  710 +}
  711 +
  712 +/* 弹入-从右 */
  713 +
  714 +@-webkit-keyframes bounceinR {
  715 + 0% {
  716 + opacity: 0;
  717 + -webkit-transform: translateX(100px);
  718 + }
  719 + 60% {
  720 + opacity: 1;
  721 + -webkit-transform: translateX(-30px);
  722 + }
  723 + 80% {
  724 + -webkit-transform: translateX(10px);
  725 + }
  726 + 100% {
  727 + -webkit-transform: translateX(0);
  728 + }
  729 +}
  730 +
  731 +@keyframes bounceinR {
  732 + 0% {
  733 + opacity: 0;
  734 + -webkit-transform: translateX(100px);
  735 + transform: translateX(100px);
  736 + }
  737 + 60% {
  738 + opacity: 1;
  739 + -webkit-transform: translateX(-30px);
  740 + transform: translateX(-30px);
  741 + }
  742 + 80% {
  743 + -webkit-transform: translateX(10px);
  744 + transform: translateX(10px);
  745 + }
  746 + 100% {
  747 + -webkit-transform: translateX(0);
  748 + transform: translateX(0);
  749 + }
  750 +}
  751 +
  752 +/* 弹入-从下 */
  753 +
  754 +@-webkit-keyframes bounceinB {
  755 + 0% {
  756 + opacity: 0;
  757 + -webkit-transform: translateY(100px);
  758 + }
  759 + 60% {
  760 + opacity: 1;
  761 + -webkit-transform: translateY(-30px);
  762 + }
  763 + 80% {
  764 + -webkit-transform: translateY(10px);
  765 + }
  766 + 100% {
  767 + -webkit-transform: translateY(0);
  768 + }
  769 +}
  770 +
  771 +@keyframes bounceinB {
  772 + 0% {
  773 + opacity: 0;
  774 + -webkit-transform: translateY(100px);
  775 + transform: translateY(100px);
  776 + }
  777 + 60% {
  778 + opacity: 1;
  779 + -webkit-transform: translateY(-30px);
  780 + transform: translateY(-30px);
  781 + }
  782 + 80% {
  783 + -webkit-transform: translateY(10px);
  784 + transform: translateY(10px);
  785 + }
  786 + 100% {
  787 + -webkit-transform: translateY(0);
  788 + transform: translateY(0);
  789 + }
  790 +}
  791 +
  792 +/* 弹入-从左 */
  793 +
  794 +@-webkit-keyframes bounceinL {
  795 + 0% {
  796 + opacity: 0;
  797 + -webkit-transform: translateX(-100px);
  798 + }
  799 + 60% {
  800 + opacity: 1;
  801 + -webkit-transform: translateX(30px);
  802 + }
  803 + 80% {
  804 + -webkit-transform: translateX(-10px);
  805 + }
  806 + 100% {
  807 + -webkit-transform: translateX(0);
  808 + }
  809 +}
  810 +
  811 +@keyframes bounceinL {
  812 + 0% {
  813 + opacity: 0;
  814 + -webkit-transform: translateX(-100px);
  815 + transform: translateX(-100px);
  816 + }
  817 + 60% {
  818 + opacity: 1;
  819 + -webkit-transform: translateX(30px);
  820 + transform: translateX(30px);
  821 + }
  822 + 80% {
  823 + -webkit-transform: translateX(-10px);
  824 + transform: translateX(-10px);
  825 + }
  826 + 100% {
  827 + -webkit-transform: translateX(0);
  828 + transform: translateX(0);
  829 + }
  830 +}
  831 +
  832 +/* 弹出 */
  833 +
  834 +@-webkit-keyframes bounceout {
  835 + 0% {
  836 + -webkit-transform: scale(1);
  837 + }
  838 + 25% {
  839 + -webkit-transform: scale(0.95);
  840 + }
  841 + 50% {
  842 + opacity: 1;
  843 + -webkit-transform: scale(1.1);
  844 + }
  845 + 100% {
  846 + opacity: 0;
  847 + -webkit-transform: scale(0.3);
  848 + }
  849 +}
  850 +
  851 +@keyframes bounceout {
  852 + 0% {
  853 + -webkit-transform: scale(1);
  854 + transform: scale(1);
  855 + }
  856 + 25% {
  857 + -webkit-transform: scale(0.95);
  858 + transform: scale(0.95);
  859 + }
  860 + 50% {
  861 + opacity: 1;
  862 + -webkit-transform: scale(1.1);
  863 + transform: scale(1.1);
  864 + }
  865 + 100% {
  866 + opacity: 0;
  867 + -webkit-transform: scale(0.3);
  868 + transform: scale(0.3);
  869 + }
  870 +}
  871 +
  872 +/* 弹出-向上*/
  873 +
  874 +@-webkit-keyframes bounceoutT {
  875 + 0% {
  876 + -webkit-transform: translateY(0);
  877 + }
  878 + 20% {
  879 + opacity: 1;
  880 + -webkit-transform: translateY(20px);
  881 + }
  882 + 100% {
  883 + opacity: 0;
  884 + -webkit-transform: translateY(-100px);
  885 + }
  886 +}
  887 +
  888 +@keyframes bounceoutT {
  889 + 0% {
  890 + -webkit-transform: translateY(0);
  891 + transform: translateY(0);
  892 + }
  893 + 20% {
  894 + opacity: 1;
  895 + -webkit-transform: translateY(20px);
  896 + transform: translateY(20px);
  897 + }
  898 + 100% {
  899 + opacity: 0;
  900 + -webkit-transform: translateY(-100px);
  901 + transform: translateY(-100px);
  902 + }
  903 +}
  904 +
  905 +/* 弹出-向右*/
  906 +
  907 +@-webkit-keyframes bounceoutR {
  908 + 0% {
  909 + -webkit-transform: translateX(0);
  910 + }
  911 + 20% {
  912 + opacity: 1;
  913 + -webkit-transform: translateX(-20px);
  914 + }
  915 + 100% {
  916 + opacity: 0;
  917 + -webkit-transform: translateX(100px);
  918 + }
  919 +}
  920 +
  921 +@keyframes bounceoutR {
  922 + 0% {
  923 + -webkit-transform: translateX(0);
  924 + transform: translateX(0);
  925 + }
  926 + 20% {
  927 + opacity: 1;
  928 + -webkit-transform: translateX(-20px);
  929 + transform: translateX(-20px);
  930 + }
  931 + 100% {
  932 + opacity: 0;
  933 + -webkit-transform: translateX(100px);
  934 + transform: translateX(100px);
  935 + }
  936 +}
  937 +
  938 +/* 弹出-向下 */
  939 +
  940 +@-webkit-keyframes bounceoutB {
  941 + 0% {
  942 + -webkit-transform: translateY(0);
  943 + }
  944 + 20% {
  945 + opacity: 1;
  946 + -webkit-transform: translateY(-20px);
  947 + }
  948 + 100% {
  949 + opacity: 0;
  950 + -webkit-transform: translateY(100px);
  951 + }
  952 +}
  953 +
  954 +@keyframes bounceoutB {
  955 + 0% {
  956 + -webkit-transform: translateY(0);
  957 + transform: translateY(0);
  958 + }
  959 + 20% {
  960 + opacity: 1;
  961 + -webkit-transform: translateY(-20px);
  962 + transform: translateY(-20px);
  963 + }
  964 + 100% {
  965 + opacity: 0;
  966 + -webkit-transform: translateY(100px);
  967 + transform: translateY(100px);
  968 + }
  969 +}
  970 +
  971 +/* 弹出-向左 */
  972 +
  973 +@-webkit-keyframes bounceoutL {
  974 + 0% {
  975 + -webkit-transform: translateX(0);
  976 + }
  977 + 20% {
  978 + opacity: 1;
  979 + -webkit-transform: translateX(20px);
  980 + }
  981 + 100% {
  982 + opacity: 0;
  983 + -webkit-transform: translateX(-100px);
  984 + }
  985 +}
  986 +
  987 +@keyframes bounceoutL {
  988 + 0% {
  989 + -webkit-transform: translateX(0);
  990 + transform: translateX(0);
  991 + }
  992 + 20% {
  993 + opacity: 1;
  994 + -webkit-transform: translateX(20px);
  995 + transform: translateX(20px);
  996 + }
  997 + 100% {
  998 + opacity: 0;
  999 + -webkit-transform: translateX(-200px);
  1000 + transform: translateX(-200px);
  1001 + }
  1002 +}
  1003 +
  1004 +/* 转入 */
  1005 +
  1006 +@-webkit-keyframes rotatein {
  1007 + 0% {
  1008 + opacity: 0;
  1009 + -webkit-transform: rotate(-200deg);
  1010 + }
  1011 + 100% {
  1012 + opacity: 1;
  1013 + -webkit-transform: rotate(0);
  1014 + }
  1015 +}
  1016 +
  1017 +@keyframes rotatein {
  1018 + 0% {
  1019 + opacity: 0;
  1020 + -webkit-transform: rotate(-200deg);
  1021 + transform: rotate(-200deg);
  1022 + }
  1023 + 100% {
  1024 + opacity: 1;
  1025 + -webkit-transform: rotate(0);
  1026 + transform: rotate(0);
  1027 + }
  1028 +}
  1029 +
  1030 +/* 转入-从左上 */
  1031 +
  1032 +@-webkit-keyframes rotateinLT {
  1033 + 0% {
  1034 + -webkit-transform-origin: left bottom;
  1035 + -webkit-transform: rotate(-90deg);
  1036 + opacity: 0;
  1037 + }
  1038 + 100% {
  1039 + -webkit-transform-origin: left bottom;
  1040 + -webkit-transform: rotate(0);
  1041 + opacity: 1;
  1042 + }
  1043 +}
  1044 +
  1045 +@keyframes rotateinLT {
  1046 + 0% {
  1047 + -webkit-transform-origin: left bottom;
  1048 + transform-origin: left bottom;
  1049 + -webkit-transform: rotate(-90deg);
  1050 + transform: rotate(-90deg);
  1051 + opacity: 0;
  1052 + }
  1053 + 100% {
  1054 + -webkit-transform-origin: left bottom;
  1055 + transform-origin: left bottom;
  1056 + -webkit-transform: rotate(0);
  1057 + transform: rotate(0);
  1058 + opacity: 1;
  1059 + }
  1060 +}
  1061 +
  1062 +/* 转入-从左下 */
  1063 +
  1064 +@-webkit-keyframes rotateineftB {
  1065 + 0% {
  1066 + -webkit-transform-origin: left bottom;
  1067 + -webkit-transform: rotate(90deg);
  1068 + opacity: 0;
  1069 + }
  1070 + 100% {
  1071 + -webkit-transform-origin: left bottom;
  1072 + -webkit-transform: rotate(0);
  1073 + opacity: 1;
  1074 + }
  1075 +}
  1076 +
  1077 +@keyframes rotateineftB {
  1078 + 0% {
  1079 + -webkit-transform-origin: left bottom;
  1080 + transform-origin: left bottom;
  1081 + -webkit-transform: rotate(90deg);
  1082 + transform: rotate(90deg);
  1083 + opacity: 0;
  1084 + }
  1085 + 100% {
  1086 + -webkit-transform-origin: left bottom;
  1087 + transform-origin: left bottom;
  1088 + -webkit-transform: rotate(0);
  1089 + transform: rotate(0);
  1090 + opacity: 1;
  1091 + }
  1092 +}
  1093 +
  1094 +/* 转入-从右上 */
  1095 +
  1096 +@-webkit-keyframes rotateinRT {
  1097 + 0% {
  1098 + -webkit-transform-origin: right bottom;
  1099 + -webkit-transform: rotate(90deg);
  1100 + opacity: 0;
  1101 + }
  1102 + 100% {
  1103 + -webkit-transform-origin: right bottom;
  1104 + -webkit-transform: rotate(0);
  1105 + opacity: 1;
  1106 + }
  1107 +}
  1108 +
  1109 +@keyframes rotateinRT {
  1110 + 0% {
  1111 + -webkit-transform-origin: right bottom;
  1112 + transform-origin: right bottom;
  1113 + -webkit-transform: rotate(90deg);
  1114 + transform: rotate(90deg);
  1115 + opacity: 0;
  1116 + }
  1117 + 100% {
  1118 + -webkit-transform-origin: right bottom;
  1119 + transform-origin: right bottom;
  1120 + -webkit-transform: rotate(0);
  1121 + transform: rotate(0);
  1122 + opacity: 1;
  1123 + }
  1124 +}
  1125 +
  1126 +/* 转入-从右下*/
  1127 +
  1128 +@-webkit-keyframes rotateinRB {
  1129 + 0% {
  1130 + -webkit-transform-origin: right bottom;
  1131 + -webkit-transform: rotate(-90deg);
  1132 + opacity: 0;
  1133 + }
  1134 + 100% {
  1135 + -webkit-transform-origin: right bottom;
  1136 + -webkit-transform: rotate(0);
  1137 + opacity: 1;
  1138 + }
  1139 +}
  1140 +
  1141 +@keyframes rotateinRB {
  1142 + 0% {
  1143 + -webkit-transform-origin: right bottom;
  1144 + transform-origin: right bottom;
  1145 + -webkit-transform: rotate(-90deg);
  1146 + transform: rotate(-90deg);
  1147 + opacity: 0;
  1148 + }
  1149 + 100% {
  1150 + -webkit-transform-origin: right bottom;
  1151 + transform-origin: right bottom;
  1152 + -webkit-transform: rotate(0);
  1153 + transform: rotate(0);
  1154 + opacity: 1;
  1155 + }
  1156 +}
  1157 +
  1158 +/* 转出 */
  1159 +
  1160 +@-webkit-keyframes rotateout {
  1161 + 0% {
  1162 + -webkit-transform-origin: center center;
  1163 + -webkit-transform: rotate(0);
  1164 + opacity: 1;
  1165 + }
  1166 + 100% {
  1167 + -webkit-transform-origin: center center;
  1168 + -webkit-transform: rotate(200deg);
  1169 + opacity: 0;
  1170 + }
  1171 +}
  1172 +
  1173 +@keyframes rotateout {
  1174 + 0% {
  1175 + -webkit-transform-origin: center center;
  1176 + transform-origin: center center;
  1177 + -webkit-transform: rotate(0);
  1178 + transform: rotate(0);
  1179 + opacity: 1;
  1180 + }
  1181 + 100% {
  1182 + -webkit-transform-origin: center center;
  1183 + transform-origin: center center;
  1184 + -webkit-transform: rotate(200deg);
  1185 + transform: rotate(200deg);
  1186 + opacity: 0;
  1187 + }
  1188 +}
  1189 +
  1190 +/* 转出-向左上 */
  1191 +
  1192 +@-webkit-keyframes rotateoutLT {
  1193 + 0% {
  1194 + -webkit-transform-origin: left bottom;
  1195 + -webkit-transform: rotate(0);
  1196 + opacity: 1;
  1197 + }
  1198 + 100% {
  1199 + -webkit-transform-origin: left bottom;
  1200 + -webkit-transform: rotate(-90deg);
  1201 + opacity: 0;
  1202 + }
  1203 +}
  1204 +
  1205 +@keyframes rotateoutLT {
  1206 + 0% {
  1207 + -webkit-transform-origin: left bottom;
  1208 + transform-origin: left bottom;
  1209 + -webkit-transform: rotate(0);
  1210 + transform: rotate(0);
  1211 + opacity: 1;
  1212 + }
  1213 + 100% {
  1214 + -webkit-transform-origin: left bottom;
  1215 + transform-origin: left bottom;
  1216 + -webkit-transform: rotate(-90deg);
  1217 + transform: rotate(-90deg);
  1218 + opacity: 0;
  1219 + }
  1220 +}
  1221 +
  1222 +/* 转出-向左下 */
  1223 +
  1224 +@-webkit-keyframes rotateoutLB {
  1225 + 0% {
  1226 + -webkit-transform-origin: left bottom;
  1227 + -webkit-transform: rotate(0);
  1228 + opacity: 1;
  1229 + }
  1230 + 100% {
  1231 + -webkit-transform-origin: left bottom;
  1232 + -webkit-transform: rotate(90deg);
  1233 + opacity: 0;
  1234 + }
  1235 +}
  1236 +
  1237 +@keyframes rotateoutLB {
  1238 + 0% {
  1239 + -webkit-transform-origin: left bottom;
  1240 + transform-origin: left bottom;
  1241 + -webkit-transform: rotate(0);
  1242 + transform: rotate(0);
  1243 + opacity: 1;
  1244 + }
  1245 + 100% {
  1246 + -webkit-transform-origin: left bottom;
  1247 + transform-origin: left bottom;
  1248 + -webkit-transform: rotate(90deg);
  1249 + transform: rotate(90deg);
  1250 + opacity: 0;
  1251 + }
  1252 +}
  1253 +
  1254 +/* 转出-向右上 */
  1255 +
  1256 +@-webkit-keyframes rotateoutRT {
  1257 + 0% {
  1258 + -webkit-transform-origin: right bottom;
  1259 + -webkit-transform: rotate(0);
  1260 + opacity: 1;
  1261 + }
  1262 + 100% {
  1263 + -webkit-transform-origin: right bottom;
  1264 + -webkit-transform: rotate(90deg);
  1265 + opacity: 0;
  1266 + }
  1267 +}
  1268 +
  1269 +@keyframes rotateoutRT {
  1270 + 0% {
  1271 + -webkit-transform-origin: right bottom;
  1272 + transform-origin: right bottom;
  1273 + -webkit-transform: rotate(0);
  1274 + transform: rotate(0);
  1275 + opacity: 1;
  1276 + }
  1277 + 100% {
  1278 + -webkit-transform-origin: right bottom;
  1279 + transform-origin: right bottom;
  1280 + -webkit-transform: rotate(90deg);
  1281 + transform: rotate(90deg);
  1282 + opacity: 0;
  1283 + }
  1284 +}
  1285 +
  1286 +/* 转出-向右下 */
  1287 +
  1288 +@-webkit-keyframes rotateoutBR {
  1289 + 0% {
  1290 + -webkit-transform-origin: right bottom;
  1291 + -webkit-transform: rotate(0);
  1292 + opacity: 1;
  1293 + }
  1294 + 100% {
  1295 + -webkit-transform-origin: right bottom;
  1296 + -webkit-transform: rotate(-90deg);
  1297 + opacity: 0;
  1298 + }
  1299 +}
  1300 +
  1301 +@keyframes rotateoutBR {
  1302 + 0% {
  1303 + -webkit-transform-origin: right bottom;
  1304 + transform-origin: right bottom;
  1305 + -webkit-transform: rotate(0);
  1306 + transform: rotate(0);
  1307 + opacity: 1;
  1308 + }
  1309 + 100% {
  1310 + -webkit-transform-origin: right bottom;
  1311 + transform-origin: right bottom;
  1312 + -webkit-transform: rotate(-90deg);
  1313 + transform: rotate(-90deg);
  1314 + opacity: 0;
  1315 + }
  1316 +}
  1317 +
  1318 +/* 翻转 */
  1319 +
  1320 +@-webkit-keyframes flip {
  1321 + 0% {
  1322 + -webkit-transform: perspective(400px) rotateY(0);
  1323 + -webkit-animation-timing-function: ease-out;
  1324 + }
  1325 + 40% {
  1326 + -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg);
  1327 + -webkit-animation-timing-function: ease-out;
  1328 + }
  1329 + 50% {
  1330 + -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
  1331 + -webkit-animation-timing-function: ease-in;
  1332 + }
  1333 + 80% {
  1334 + -webkit-transform: perspective(400px) rotateY(360deg) scale(0.95);
  1335 + -webkit-animation-timing-function: ease-in;
  1336 + }
  1337 + 100% {
  1338 + -webkit-transform: perspective(400px) scale(1);
  1339 + -webkit-animation-timing-function: ease-in;
  1340 + }
  1341 +}
  1342 +
  1343 +@keyframes flip {
  1344 + 0% {
  1345 + -webkit-transform: perspective(400px) rotateY(0);
  1346 + transform: perspective(400px) rotateY(0);
  1347 + -webkit-animation-timing-function: ease-out;
  1348 + animation-timing-function: ease-out;
  1349 + }
  1350 + 40% {
  1351 + -webkit-transform: perspective(400px) translateZ(150px) rotateY(170deg);
  1352 + transform: perspective(400px) translateZ(150px) rotateY(170deg);
  1353 + -webkit-animation-timing-function: ease-out;
  1354 + animation-timing-function: ease-out;
  1355 + }
  1356 + 50% {
  1357 + -webkit-transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
  1358 + transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
  1359 + -webkit-animation-timing-function: ease-in;
  1360 + animation-timing-function: ease-in;
  1361 + }
  1362 + 80% {
  1363 + -webkit-transform: perspective(400px) rotateY(360deg) scale(0.95);
  1364 + transform: perspective(400px) rotateY(360deg) scale(0.95);
  1365 + -webkit-animation-timing-function: ease-in;
  1366 + animation-timing-function: ease-in;
  1367 + }
  1368 + 100% {
  1369 + -webkit-transform: perspective(400px) scale(1);
  1370 + transform: perspective(400px) scale(1);
  1371 + -webkit-animation-timing-function: ease-in;
  1372 + animation-timing-function: ease-in;
  1373 + }
  1374 +}
  1375 +
  1376 +/* 翻入-X轴 */
  1377 +
  1378 +@-webkit-keyframes flipinX {
  1379 + 0% {
  1380 + -webkit-transform: perspective(400px) rotateX(90deg);
  1381 + opacity: 0;
  1382 + }
  1383 + 40% {
  1384 + -webkit-transform: perspective(400px) rotateX(-10deg);
  1385 + }
  1386 + 70% {
  1387 + -webkit-transform: perspective(400px) rotateX(10deg);
  1388 + }
  1389 + 100% {
  1390 + -webkit-transform: perspective(400px) rotateX(0);
  1391 + opacity: 1;
  1392 + }
  1393 +}
  1394 +
  1395 +@keyframes flipinX {
  1396 + 0% {
  1397 + -webkit-transform: perspective(400px) rotateX(90deg);
  1398 + transform: perspective(400px) rotateX(90deg);
  1399 + opacity: 0;
  1400 + }
  1401 + 40% {
  1402 + -webkit-transform: perspective(400px) rotateX(-10deg);
  1403 + transform: perspective(400px) rotateX(-10deg);
  1404 + }
  1405 + 70% {
  1406 + -webkit-transform: perspective(400px) rotateX(10deg);
  1407 + transform: perspective(400px) rotateX(10deg);
  1408 + }
  1409 + 100% {
  1410 + -webkit-transform: perspective(400px) rotateX(0);
  1411 + transform: perspective(400px) rotateX(0);
  1412 + opacity: 1;
  1413 + }
  1414 +}
  1415 +
  1416 +/* 翻入-Y轴 */
  1417 +
  1418 +@-webkit-keyframes flipinY {
  1419 + 0% {
  1420 + -webkit-transform: perspective(400px) rotateY(90deg);
  1421 + opacity: 0;
  1422 + }
  1423 + 40% {
  1424 + -webkit-transform: perspective(400px) rotateY(-10deg);
  1425 + }
  1426 + 70% {
  1427 + -webkit-transform: perspective(400px) rotateY(10deg);
  1428 + }
  1429 + 100% {
  1430 + -webkit-transform: perspective(400px) rotateY(0);
  1431 + opacity: 1;
  1432 + }
  1433 +}
  1434 +
  1435 +@keyframes flipinY {
  1436 + 0% {
  1437 + -webkit-transform: perspective(400px) rotateY(90deg);
  1438 + transform: perspective(400px) rotateY(90deg);
  1439 + opacity: 0;
  1440 + }
  1441 + 40% {
  1442 + -webkit-transform: perspective(400px) rotateY(-10deg);
  1443 + transform: perspective(400px) rotateY(-10deg);
  1444 + }
  1445 + 70% {
  1446 + -webkit-transform: perspective(400px) rotateY(10deg);
  1447 + transform: perspective(400px) rotateY(10deg);
  1448 + }
  1449 + 100% {
  1450 + -webkit-transform: perspective(400px) rotateY(0);
  1451 + transform: perspective(400px) rotateY(0);
  1452 + opacity: 1;
  1453 + }
  1454 +}
  1455 +
  1456 +/* 翻出-X轴 */
  1457 +
  1458 +@-webkit-keyframes flipoutX {
  1459 + 0% {
  1460 + -webkit-transform: perspective(400px) rotateX(0);
  1461 + opacity: 1;
  1462 + }
  1463 + 100% {
  1464 + -webkit-transform: perspective(400px) rotateX(90deg);
  1465 + opacity: 0;
  1466 + }
  1467 +}
  1468 +
  1469 +@keyframes flipoutX {
  1470 + 0% {
  1471 + -webkit-transform: perspective(400px) rotateX(0);
  1472 + transform: perspective(400px) rotateX(0);
  1473 + opacity: 1;
  1474 + }
  1475 + 100% {
  1476 + -webkit-transform: perspective(400px) rotateX(90deg);
  1477 + transform: perspective(400px) rotateX(90deg);
  1478 + opacity: 0;
  1479 + }
  1480 +}
  1481 +
  1482 +/* 翻出-Y轴 */
  1483 +
  1484 +@-webkit-keyframes flipoutY {
  1485 + 0% {
  1486 + -webkit-transform: perspective(400px) rotateY(0);
  1487 + opacity: 1;
  1488 + }
  1489 + 100% {
  1490 + -webkit-transform: perspective(400px) rotateY(90deg);
  1491 + opacity: 0;
  1492 + }
  1493 +}
  1494 +
  1495 +@keyframes flipoutY {
  1496 + 0% {
  1497 + -webkit-transform: perspective(400px) rotateY(0);
  1498 + transform: perspective(400px) rotateY(0);
  1499 + opacity: 1;
  1500 + }
  1501 + 100% {
  1502 + -webkit-transform: perspective(400px) rotateY(90deg);
  1503 + transform: perspective(400px) rotateY(90deg);
  1504 + opacity: 0;
  1505 + }
  1506 +}
  1507 +
  1508 +/* 闪烁 */
  1509 +
  1510 +@-webkit-keyframes flash {
  1511 + 0%,
  1512 + 50%,
  1513 + 100% {
  1514 + opacity: 1;
  1515 + }
  1516 + 25%,
  1517 + 75% {
  1518 + opacity: 0;
  1519 + }
  1520 +}
  1521 +
  1522 +@keyframes flash {
  1523 + 0%,
  1524 + 50%,
  1525 + 100% {
  1526 + opacity: 1;
  1527 + }
  1528 + 25%,
  1529 + 75% {
  1530 + opacity: 0;
  1531 + }
  1532 +}
  1533 +
  1534 +/* 震颤 */
  1535 +
  1536 +@-webkit-keyframes shake {
  1537 + 0%,
  1538 + 100% {
  1539 + -webkit-transform: translateX(0);
  1540 + }
  1541 + 10%,
  1542 + 30%,
  1543 + 50%,
  1544 + 70%,
  1545 + 90% {
  1546 + -webkit-transform: translateX(-10px);
  1547 + }
  1548 + 20%,
  1549 + 40%,
  1550 + 60%,
  1551 + 80% {
  1552 + -webkit-transform: translateX(10px);
  1553 + }
  1554 +}
  1555 +
  1556 +@keyframes shake {
  1557 + 0%,
  1558 + 100% {
  1559 + -webkit-transform: translateX(0);
  1560 + transform: translateX(0);
  1561 + }
  1562 + 10%,
  1563 + 30%,
  1564 + 50%,
  1565 + 70%,
  1566 + 90% {
  1567 + -webkit-transform: translateX(-10px);
  1568 + transform: translateX(-10px);
  1569 + }
  1570 + 20%,
  1571 + 40%,
  1572 + 60%,
  1573 + 80% {
  1574 + -webkit-transform: translateX(10px);
  1575 + transform: translateX(10px);
  1576 + }
  1577 +}
  1578 +
  1579 +/* 摇摆 */
  1580 +
  1581 +@-webkit-keyframes swing {
  1582 + 20% {
  1583 + -webkit-transform: rotate(30deg);
  1584 + }
  1585 + 40% {
  1586 + -webkit-transform: rotate(-20deg);
  1587 + }
  1588 + 60% {
  1589 + -webkit-transform: rotate(10deg);
  1590 + }
  1591 + 80% {
  1592 + -webkit-transform: rotate(-10deg);
  1593 + }
  1594 + 100% {
  1595 + -webkit-transform: rotate(0);
  1596 + }
  1597 +}
  1598 +
  1599 +@keyframes swing {
  1600 + 20% {
  1601 + -webkit-transform: rotate(30deg);
  1602 + transform: rotate(30deg);
  1603 + }
  1604 + 40% {
  1605 + -webkit-transform: rotate(-20deg);
  1606 + transform: rotate(-20deg);
  1607 + }
  1608 + 60% {
  1609 + -webkit-transform: rotate(10deg);
  1610 + transform: rotate(10deg);
  1611 + }
  1612 + 80% {
  1613 + -webkit-transform: rotate(-10deg);
  1614 + transform: rotate(-10deg);
  1615 + }
  1616 + 100% {
  1617 + -webkit-transform: rotate(0);
  1618 + transform: rotate(0);
  1619 + }
  1620 +}
  1621 +
  1622 +/* 摇晃 */
  1623 +
  1624 +@-webkit-keyframes wobble {
  1625 + 0% {
  1626 + -webkit-transform: translateX(0);
  1627 + }
  1628 + 15% {
  1629 + -webkit-transform: translateX(-100px) rotate(-5deg);
  1630 + }
  1631 + 30% {
  1632 + -webkit-transform: translateX(80px) rotate(3deg);
  1633 + }
  1634 + 45% {
  1635 + -webkit-transform: translateX(-65px) rotate(-3deg);
  1636 + }
  1637 + 60% {
  1638 + -webkit-transform: translateX(40px) rotate(2deg);
  1639 + }
  1640 + 75% {
  1641 + -webkit-transform: translateX(-20px) rotate(-1deg);
  1642 + }
  1643 + 100% {
  1644 + -webkit-transform: translateX(0);
  1645 + }
  1646 +}
  1647 +
  1648 +@keyframes wobble {
  1649 + 0% {
  1650 + -webkit-transform: translateX(0);
  1651 + transform: translateX(0);
  1652 + }
  1653 + 15% {
  1654 + -webkit-transform: translateX(-100px) rotate(-5deg);
  1655 + transform: translateX(-100px) rotate(-5deg);
  1656 + }
  1657 + 30% {
  1658 + -webkit-transform: translateX(80px) rotate(3deg);
  1659 + transform: translateX(80px) rotate(3deg);
  1660 + }
  1661 + 45% {
  1662 + -webkit-transform: translateX(-65px) rotate(-3deg);
  1663 + transform: translateX(-65px) rotate(-3deg);
  1664 + }
  1665 + 60% {
  1666 + -webkit-transform: translateX(40px) rotate(2deg);
  1667 + transform: translateX(40px) rotate(2deg);
  1668 + }
  1669 + 75% {
  1670 + -webkit-transform: translateX(-20px) rotate(-1deg);
  1671 + transform: translateX(-20px) rotate(-1deg);
  1672 + }
  1673 + 100% {
  1674 + -webkit-transform: translateX(0);
  1675 + transform: translateX(0);
  1676 + }
  1677 +}
  1678 +
  1679 +/* 震铃 */
  1680 +
  1681 +@-webkit-keyframes ring {
  1682 + 0% {
  1683 + -webkit-transform: scale(1);
  1684 + }
  1685 + 10%,
  1686 + 20% {
  1687 + -webkit-transform: scale(0.9) rotate(-3deg);
  1688 + }
  1689 + 30%,
  1690 + 50%,
  1691 + 70%,
  1692 + 90% {
  1693 + -webkit-transform: scale(1.1) rotate(3deg);
  1694 + }
  1695 + 40%,
  1696 + 60%,
  1697 + 80% {
  1698 + -webkit-transform: scale(1.1) rotate(-3deg);
  1699 + }
  1700 + 100% {
  1701 + -webkit-transform: scale(1) rotate(0);
  1702 + }
  1703 +}
  1704 +
  1705 +@keyframes ring {
  1706 + 0% {
  1707 + -webkit-transform: scale(1);
  1708 + transform: scale(1);
  1709 + }
  1710 + 10%,
  1711 + 20% {
  1712 + -webkit-transform: scale(0.9) rotate(-3deg);
  1713 + transform: scale(0.9) rotate(-3deg);
  1714 + }
  1715 + 30%,
  1716 + 50%,
  1717 + 70%,
  1718 + 90% {
  1719 + -webkit-transform: scale(1.1) rotate(3deg);
  1720 + transform: scale(1.1) rotate(3deg);
  1721 + }
  1722 + 40%,
  1723 + 60%,
  1724 + 80% {
  1725 + -webkit-transform: scale(1.1) rotate(-3deg);
  1726 + transform: scale(1.1) rotate(-3deg);
  1727 + }
  1728 + 100% {
  1729 + -webkit-transform: scale(1) rotate(0);
  1730 + transform: scale(1) rotate(0);
  1731 + }
  1732 +}
  1 +//app.js
  2 +
  3 +App({
  4 + onLaunch: function () {
  5 +
  6 + },
  7 + /**
  8 + * 自定义post函数,返回Promise
  9 + * +-------------------
  10 + * @param {String} url 接口网址
  11 + * @param {arrayObject} data 要传的数组对象 like: {name: 'name', age: 32}
  12 + * +-------------------
  13 + * @return {Promise} promise 返回promise供后续操作
  14 + */
  15 + post: function (url, data, headerParams) {
  16 + wx.showNavigationBarLoading()
  17 + wx.showLoading({
  18 + title: '加载中',
  19 + })
  20 + var promise = new Promise((resolve, reject) => {
  21 + let that = this;
  22 + let postData = data;
  23 + let baseUrl = 'http://jysh.w.bronet.cn/api/';
  24 + //网络请求
  25 + let header = {
  26 + 'content-type': 'application/x-www-form-urlencoded'
  27 + }
  28 + header = Object.assign(header, headerParams)
  29 + wx.request({
  30 + url: baseUrl + url,
  31 + data: postData,
  32 + method: 'POST',
  33 + header: header,
  34 + success: function (res) {//返回取得的数据
  35 + if (res.data.code == '20000') {
  36 + resolve(res.data.data);
  37 + } else if (res.data.code == '10001') {//返回错误提示信息
  38 + wx.showModal({
  39 + title: '提示',
  40 + content: res.data.msg,
  41 + showCancel: false,
  42 + success: function (res) {
  43 + if (res.confirm) {
  44 + wx.removeStorageSync('token');
  45 + wx.navigateTo({
  46 + url: '/pages/start/start',
  47 + })
  48 + }
  49 + }
  50 + })
  51 + } else if (res.data.code == '40000') {
  52 + wx.showModal({
  53 + title: '提示',
  54 + content: res.data.msg,
  55 + showCancel: false,
  56 + success: function (res) { }
  57 + })
  58 + } else if (res.data.code == '40005') {
  59 +
  60 + } else if (res.data.code == '40006') {
  61 +
  62 + } else {
  63 + wx.showModal({
  64 + title: '提示',
  65 + content: res.data.msg,
  66 + showCancel: false,
  67 + })
  68 + reject(res.data)
  69 + }
  70 + wx.hideLoading()
  71 + wx.hideNavigationBarLoading()
  72 + },
  73 + error: function (e) {
  74 + console.log(e)
  75 + reject('网络出错');
  76 + // wx.hideLoading()
  77 + wx.hideNavigationBarLoading()
  78 + }
  79 + })
  80 + });
  81 +
  82 + return promise;
  83 + },
  84 + //根据年月日获取(星期等信息)////later=0 当前 later=1明天 later=2后天
  85 + dateLater(later) {
  86 + let dateObj = {};
  87 + let show_day = new Array('星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六');
  88 + let date = new Date();
  89 + date.setDate(date.getDate() + later);
  90 + let day = date.getDay();
  91 + dateObj.year = date.getFullYear();
  92 + dateObj.month = ((date.getMonth() + 1) < 10 ? ("0" + (date.getMonth() + 1)) : date.getMonth() + 1);
  93 + dateObj.day = (date.getDate() < 10 ? ("0" + date.getDate()) : date.getDate());
  94 + dateObj.week = show_day[day];
  95 + dateObj.dataday = date.getFullYear() + '-' + ((date.getMonth() + 1) < 10 ? ("0" + (date.getMonth() + 1)) : date.getMonth() + 1) + '-' + (date.getDate() < 10 ? ("0" + date.getDate()) : date.getDate());
  96 + dateObj.houser = date.getHours();//当前时间点
  97 + console.log(date.getHours())
  98 + dateObj.housers = (date.getHours() < 10 ? ("0" + date.getHours()) : date.getHours()) + ':00:00';//当前时间点
  99 + dateObj.datadayhouser = date.getFullYear() + '/' + ((date.getMonth() + 1) < 10 ? ("0" + (date.getMonth() + 1)) : date.getMonth() + 1) + '/' + (date.getDate() < 10 ? ("0" + date.getDate()) : date.getDate()) + ' ' + (date.getHours() < 10 ? ("0" + date.getHours()) : date.getHours()) + ':00';//当前时间并时间点
  100 + return dateObj;
  101 + },
  102 + globalData: {
  103 + userInfo: null,
  104 + city:'',//预约城市
  105 + }
  106 +})
  1 +{
  2 + "pages": [
  3 + "pages/start/start",
  4 + "pages/index/index",
  5 + "pages/love/love",
  6 + "pages/pool/pool",
  7 + "pages/my/my",
  8 + "pages/appointment/appintment",
  9 + "pages/submit_yes/submit_yes",
  10 + "pages/text/text",
  11 + "pages/topline/topline",
  12 + "pages/submit_message/submit_message",
  13 + "pages/topline_detail/topline_detail",
  14 + "pages/service/service",
  15 + "pages/selfhelp/selfhelp",
  16 + "pages/apply/apply",
  17 + "pages/recruit/recuit",
  18 + "pages/order/order",
  19 + "pages/order_detail/order_detail",
  20 + "pages/eidt_myinfo/eidt_myinfo",
  21 + "pages/message/message",
  22 + "pages/test/test",
  23 + "pages/img_text/img_text",
  24 + "pages/wuliu/wuliu",
  25 + "pages/template/template"
  26 + ],
  27 + "window": {
  28 + "backgroundTextStyle": "light",
  29 + "navigationBarBackgroundColor": "#8DE063",
  30 + "navigationBarTitleText": "象爱心",
  31 + "navigationBarTextStyle": "white"
  32 + },
  33 + "tabBar": {
  34 + "color": "#666666",
  35 + "selectedColor": "#8DE063",
  36 + "list": [
  37 + {
  38 + "pagePath": "pages/index/index",
  39 + "text": "首页",
  40 + "iconPath": "pages/imgs/nav01@2x.png",
  41 + "selectedIconPath": "pages/imgs/nav02@2x.png"
  42 + },
  43 + {
  44 + "pagePath": "pages/love/love",
  45 + "text": "象爱心",
  46 + "iconPath": "pages/imgs/nav03@2x.png",
  47 + "selectedIconPath": "pages/imgs/nav04@2x.png"
  48 + },
  49 + {
  50 + "pagePath": "pages/pool/pool",
  51 + "text": "公益基金池",
  52 + "iconPath": "pages/imgs/nav05@2x.png",
  53 + "selectedIconPath": "pages/imgs/nav06@2x.png"
  54 + },
  55 + {
  56 + "pagePath": "pages/my/my",
  57 + "text": "个人中心",
  58 + "iconPath": "pages/imgs/nav07@2x.png",
  59 + "selectedIconPath": "pages/imgs/nav08@2x.png"
  60 + }
  61 + ]
  62 + }
  63 +}
  1 +/**app.wxss**/
  2 +@import 'pages/template/template.wxss';
  3 +.container {
  4 + height: 100%;
  5 + display: flex;
  6 + flex-direction: column;
  7 + align-items: center;
  8 + justify-content: space-between;
  9 + padding: 200rpx 0;
  10 + box-sizing: border-box;
  11 +}
  12 +.other-navigator-hover{
  13 + background: none;
  14 +}
  15 +.button-hover{
  16 + background: none;
  17 + border:none;
  18 +}
  19 +.addnomore {
  20 +padding:20rpx 0;
  21 +color:#999;
  22 +font-size:28rpx;
  23 +text-align:center;
  24 +
  25 +}
  26 +
  27 +swiper {
  28 +display:block;
  29 +height:220rpx;
  30 +
  31 +}
  32 +
  33 +
  34 +@font-face {font-family: "iconfont";
  35 + src: url('//at.alicdn.com/t/font_922700_rz88pld60rc.eot?t=1542679696602'); /* IE9*/
  36 + src: url('//at.alicdn.com/t/font_922700_rz88pld60rc.eot?t=1542679696602#iefix') format('embedded-opentype'), /* IE6-IE8 */
  37 + url('data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAbAAAsAAAAACfAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFY8dkoCY21hcAAAAYAAAAB+AAAB3juYbUBnbHlmAAACAAAAAqQAAANEyer9CmhlYWQAAASkAAAALwAAADYTUl8XaGhlYQAABNQAAAAcAAAAJAfeA4hobXR4AAAE8AAAAA4AAAAcHAAAAGxvY2EAAAUAAAAAEAAAABAB7AMkbWF4cAAABRAAAAAeAAAAIAEYAGhuYW1lAAAFMAAAAUUAAAJtPlT+fXBvc3QAAAZ4AAAARwAAAFrGCTHYeJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2BkYWCcwMDKwMHUyXSGgYGhH0IzvmYwYuRgYGBiYGVmwAoC0lxTGByeMbwQYG7438AQw9zA0AAUZgTJAQDefQv1eJztkV0KgzAQhL8kGkqR4kE8jfjgCfTFQ/TJo268hd3NCi2eoRO+wEz+IAO0QFIGpYGwEzC9NQ01Tzxr3jCpf/EgkgUZZZGtrEd/nnD3Pwp65jvslVbvzJpHXcz81dV5vly233SsERkda0oWxxqTzbH9ZXWssaN3iB+gHCNvAAB4nD1STWgTQRj9vp3dTTZpN51kdyYxUPNjk8ZiapNsFkmp7cWD0kI99GKDlxYvRaRIaSFCBUGKOSnqLdRCQSx47KntQejBa0/1YkGL0IvgsTbZ+m2qwvJ23ps3w7w3Awhw/pT9Yo8gDIA8y9N2mpd52lGG5rwa7s/hPm7hvleb99k8qOT/xPbYTQiCBSm4BjCQ0S1RqlZyzMRAP8oxdIvIipinAVETGQ14ETO6zS2B51YyWUgm7d22prV399qq2t7bOFTVw40ubvYJRJES4rvvKiSV2f+u3Xb78z8bIRbQ5pjnts29L9ym49PZjpSfLA2cSEmisAKoF7HqGkiI18MGvjMM734o3ochfOY1QshZKuA1jLjhNYJKTBq4gAvBuNXN+ZydshUYhBtwG+5RzlyWAuoBPUvZclV3DJ1KvohdUUZBc2XJ7WbPZ3Kk01eplrsFuF1G8oVg6SQ4fx2uABKUb7FYYSJmJkKhlQ+W0tObyglrPD86raISx4cYluFIpDSOWJvjApXFGS4EX15nKFa5RLa9FhUiunWsSqLa2Q6Xkn/FgiY3NcylhYLs9ePIpWBsYnAoe/kKTtYiEe/Ue68jsp7JavlOQ/KZRQVlRrL1ZS7jKKJr2ypR9XgrKiRKvnOmocgK1L3DIy4BFOrnB3vDEvRu4tR22g/npvvR0jGTc3ilWhJ03Tp70tHDphlWfhN6ywR2JIIPTNtEJPBWaercN3QwbAJAgPb9qAK7Cwb0goQkFGAEXADXb92hfssBu+xoWe43Sbvky0524OKl+Q66jBj9/MkR/zDZk2beQXTyzeYwk80LMjM83ImrB63WgVpnraWlFnsx/VKr49SoSCTEW99NvnqzeYK3Lshss05mWkJeWtE5UF9Nj04hJq4m4A8dBbA3eJxjYGRgYADi33oSNvH8Nl8ZuFkYQOCGZO8EBP2/kYWBuRLI5WBgAokCAAlICVQAeJxjYGRgYG7438AQw8IAAkCSkQEVsAMARw0CcHicY2FgYGDBgQEB3AAdAAAAAAAAABgAZgCMARwBSAGieJxjYGRgYGBniAFiEGACYi4gZGD4D+YzAAASpAGBAAB4nGWPTU7DMBCFX/oHpBKqqGCH5AViASj9EatuWFRq911036ZOmyqJI8et1ANwHo7ACTgC3IA78EgnmzaWx9+8eWNPANzgBx6O3y33kT1cMjtyDRe4F65TfxBukF+Em2jjVbhF/U3YxzOmwm10YXmD17hi9oR3YQ8dfAjXcI1P4Tr1L+EG+Vu4iTv8CrfQ8erCPuZeV7iNRy/2x1YvnF6p5UHFockikzm/gple75KFrdLqnGtbxCZTg6BfSVOdaVvdU+zXQ+ciFVmTqgmrOkmMyq3Z6tAFG+fyUa8XiR6EJuVYY/62xgKOcQWFJQ6MMUIYZIjK6Og7VWb0r7FDwl57Vj3N53RbFNT/c4UBAvTPXFO6stJ5Ok+BPV8bUnV0K27LnpQ0kV7NSRKyQl7WtlRC6gE2ZVeOEXpc0Yk/KGdI/wAJWm7IAAAAeJxjYGKAAC4G7ICdkYmRmZGFkZWRjZGdkYOBOSszkT0rMy89PTGfoyIzMS+9Mr+UPQXIyChNZAFKGrJkp6aVMjAAADWxDdAA') format('woff'),
  38 + url('//at.alicdn.com/t/font_922700_rz88pld60rc.ttf?t=1542679696602') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
  39 + url('//at.alicdn.com/t/font_922700_rz88pld60rc.svg?t=1542679696602#iconfont') format('svg'); /* iOS 4.1- */
  40 +}
  41 +
  42 +.iconfont {
  43 + font-family:"iconfont" !important;
  44 + font-size:16px;
  45 + font-style:normal;
  46 + -webkit-font-smoothing: antialiased;
  47 + -moz-osx-font-smoothing: grayscale;
  48 +}
  49 +
  50 +.icon-jia:before { content: "\e767"; }
  51 +
  52 +.icon-jinggao:before { content: "\e810"; }
  53 +
  54 +.icon-xiangyou:before { content: "\e666"; }
  55 +
  56 +.icon-dianhua:before { content: "\e600"; }
  57 +
  58 +.icon-jia1:before { content: "\e652"; }
  59 +
  60 +.icon-kefu:before { content: "\e66c"; }
  1 +/**
  2 + * 微信小程序JavaScriptSDK
  3 + *
  4 + * @version 1.0
  5 + * @date 2017-01-10
  6 + * @author jaysonzhou@tencent.com
  7 + */
  8 +
  9 +var ERROR_CONF = {
  10 + KEY_ERR: 311,
  11 + KEY_ERR_MSG: 'key格式错误',
  12 + PARAM_ERR: 310,
  13 + PARAM_ERR_MSG: '请求参数信息有误',
  14 + SYSTEM_ERR: 600,
  15 + SYSTEM_ERR_MSG: '系统错误',
  16 + WX_ERR_CODE: 1000,
  17 + WX_OK_CODE: 200
  18 +};
  19 +var BASE_URL = 'https://apis.map.qq.com/ws/';
  20 +var URL_SEARCH = BASE_URL + 'place/v1/search';
  21 +var URL_SUGGESTION = BASE_URL + 'place/v1/suggestion';
  22 +var URL_GET_GEOCODER = BASE_URL + 'geocoder/v1/';
  23 +var URL_CITY_LIST = BASE_URL + 'district/v1/list';
  24 +var URL_AREA_LIST = BASE_URL + 'district/v1/getchildren';
  25 +var URL_DISTANCE = BASE_URL + 'distance/v1/';
  26 +var Utils = {
  27 + /**
  28 + * 得到终点query字符串
  29 + * @param {Array|String} 检索数据
  30 + */
  31 + location2query(data) {
  32 + if (typeof data == 'string') {
  33 + return data;
  34 + }
  35 + var query = '';
  36 + for (var i = 0; i < data.length; i++) {
  37 + var d = data[i];
  38 + if (!!query) {
  39 + query += ';';
  40 + }
  41 + if (d.location) {
  42 + query = query + d.location.lat + ',' + d.location.lng;
  43 + }
  44 + if (d.latitude && d.longitude) {
  45 + query = query + d.latitude + ',' + d.longitude;
  46 + }
  47 + }
  48 + return query;
  49 + },
  50 +
  51 + /**
  52 + * 使用微信接口进行定位
  53 + */
  54 + getWXLocation(success, fail, complete) {
  55 + wx.getLocation({
  56 + type: 'gcj02',
  57 + success: success,
  58 + fail: fail,
  59 + complete: complete
  60 + });
  61 + },
  62 +
  63 + /**
  64 + * 获取location参数
  65 + */
  66 + getLocationParam(location) {
  67 + if (typeof location == 'string') {
  68 + var locationArr = location.split(',');
  69 + if (locationArr.length === 2) {
  70 + location = {
  71 + latitude: location.split(',')[0],
  72 + longitude: location.split(',')[1]
  73 + };
  74 + } else {
  75 + location = {};
  76 + }
  77 + }
  78 + return location;
  79 + },
  80 +
  81 + /**
  82 + * 回调函数默认处理
  83 + */
  84 + polyfillParam(param) {
  85 + param.success = param.success || function () { };
  86 + param.fail = param.fail || function () { };
  87 + param.complete = param.complete || function () { };
  88 + },
  89 +
  90 + /**
  91 + * 验证param对应的key值是否为空
  92 + *
  93 + * @param {Object} param 接口参数
  94 + * @param {String} key 对应参数的key
  95 + */
  96 + checkParamKeyEmpty(param, key) {
  97 + if (!param[key]) {
  98 + var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + key +'参数格式有误');
  99 + param.fail(errconf);
  100 + param.complete(errconf);
  101 + return true;
  102 + }
  103 + return false;
  104 + },
  105 +
  106 + /**
  107 + * 验证参数中是否存在检索词keyword
  108 + *
  109 + * @param {Object} param 接口参数
  110 + */
  111 + checkKeyword(param){
  112 + return !this.checkParamKeyEmpty(param, 'keyword');
  113 + },
  114 +
  115 + /**
  116 + * 验证location值
  117 + *
  118 + * @param {Object} param 接口参数
  119 + */
  120 + checkLocation(param) {
  121 + var location = this.getLocationParam(param.location);
  122 + if (!location || !location.latitude || !location.longitude) {
  123 + var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' location参数格式有误')
  124 + param.fail(errconf);
  125 + param.complete(errconf);
  126 + return false;
  127 + }
  128 + return true;
  129 + },
  130 +
  131 + /**
  132 + * 构造错误数据结构
  133 + * @param {Number} errCode 错误码
  134 + * @param {Number} errMsg 错误描述
  135 + */
  136 + buildErrorConfig(errCode, errMsg) {
  137 + return {
  138 + status: errCode,
  139 + message: errMsg
  140 + };
  141 + },
  142 +
  143 + /**
  144 + * 构造微信请求参数,公共属性处理
  145 + *
  146 + * @param {Object} param 接口参数
  147 + * @param {Object} param 配置项
  148 + */
  149 + buildWxRequestConfig(param, options) {
  150 + var that = this;
  151 + options.header = { "content-type": "application/json" };
  152 + options.method = 'GET';
  153 + options.success = function (res) {
  154 + var data = res.data;
  155 + if (data.status === 0) {
  156 + param.success(data);
  157 + } else {
  158 + param.fail(data);
  159 + }
  160 + };
  161 + options.fail = function (res) {
  162 + res.statusCode = ERROR_CONF.WX_ERR_CODE;
  163 + param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, result.errMsg));
  164 + };
  165 + options.complete = function (res) {
  166 + var statusCode = +res.statusCode;
  167 + switch(statusCode) {
  168 + case ERROR_CONF.WX_ERR_CODE: {
  169 + param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));
  170 + break;
  171 + }
  172 + case ERROR_CONF.WX_OK_CODE: {
  173 + var data = res.data;
  174 + if (data.status === 0) {
  175 + param.complete(data);
  176 + } else {
  177 + param.complete(that.buildErrorConfig(data.status, data.message));
  178 + }
  179 + break;
  180 + }
  181 + default:{
  182 + param.complete(that.buildErrorConfig(ERROR_CONF.SYSTEM_ERR, ERROR_CONF.SYSTEM_ERR_MSG));
  183 + }
  184 +
  185 + }
  186 + }
  187 + return options;
  188 + },
  189 +
  190 + /**
  191 + * 处理用户参数是否传入坐标进行不同的处理
  192 + */
  193 + locationProcess(param, locationsuccess, locationfail, locationcomplete) {
  194 + var that = this;
  195 + locationfail = locationfail || function (res) {
  196 + res.statusCode = ERROR_CONF.WX_ERR_CODE;
  197 + param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));
  198 + };
  199 + locationcomplete = locationcomplete || function (res) {
  200 + if (res.statusCode == ERROR_CONF.WX_ERR_CODE) {
  201 + param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));
  202 + }
  203 + };
  204 + if (!param.location) {
  205 + that.getWXLocation(locationsuccess, locationfail, locationcomplete);
  206 + } else if (that.checkLocation(param)) {
  207 + var location = Utils.getLocationParam(param.location);
  208 + locationsuccess(location);
  209 + }
  210 + }
  211 +}
  212 +
  213 +
  214 +class QQMapWX {
  215 +
  216 + /**
  217 + * 构造函数
  218 + *
  219 + * @param {Object} options 接口参数,key 为必选参数
  220 + */
  221 + constructor(options) {
  222 + if (!options.key) {
  223 + throw Error('key值不能为空');
  224 + }
  225 + this.key = options.key;
  226 + }
  227 +
  228 + /**
  229 + * POI周边检索
  230 + *
  231 + * @param {Object} options 接口参数对象
  232 + *
  233 + * 参数对象结构可以参考
  234 + * @see http://lbs.qq.com/webservice_v1/guide-search.html
  235 + */
  236 + search(options) {
  237 + var that = this;
  238 + options = options || {};
  239 +
  240 + Utils.polyfillParam(options);
  241 +
  242 + if (!Utils.checkKeyword(options)) {
  243 + return;
  244 + }
  245 +
  246 + var requestParam = {
  247 + keyword: options.keyword,
  248 + orderby: options.orderby || '_distance',
  249 + page_size: options.page_size || 10,
  250 + page_index: options.page_index || 1,
  251 + output: 'json',
  252 + key: that.key
  253 + };
  254 +
  255 + if (options.address_format) {
  256 + requestParam.address_format = options.address_format;
  257 + }
  258 +
  259 + if (options.filter) {
  260 + requestParam.filter = options.filter;
  261 + }
  262 +
  263 + var distance = options.distance || "1000";
  264 + var auto_extend = options.auto_extend || 1;
  265 +
  266 + var locationsuccess = function (result) {
  267 + requestParam.boundary = "nearby(" + result.latitude + "," + result.longitude + "," + distance + "," + auto_extend +")";
  268 + wx.request(Utils.buildWxRequestConfig(options, {
  269 + url: URL_SEARCH,
  270 + data: requestParam
  271 + }));
  272 + }
  273 + Utils.locationProcess(options, locationsuccess);
  274 + }
  275 +
  276 + /**
  277 + * sug模糊检索
  278 + *
  279 + * @param {Object} options 接口参数对象
  280 + *
  281 + * 参数对象结构可以参考
  282 + * http://lbs.qq.com/webservice_v1/guide-suggestion.html
  283 + */
  284 + getSuggestion(options) {
  285 + var that = this;
  286 + options = options || {};
  287 + Utils.polyfillParam(options);
  288 +
  289 + if (!Utils.checkKeyword(options)) {
  290 + return;
  291 + }
  292 +
  293 + var requestParam = {
  294 + keyword: options.keyword,
  295 + region: options.region || '全国',
  296 + region_fix: options.region_fix || 0,
  297 + policy: options.policy || 0,
  298 + output: 'json',
  299 + key: that.key
  300 + };
  301 + wx.request(Utils.buildWxRequestConfig(options, {
  302 + url: URL_SUGGESTION,
  303 + data: requestParam
  304 + }));
  305 + }
  306 +
  307 + /**
  308 + * 逆地址解析
  309 + *
  310 + * @param {Object} options 接口参数对象
  311 + *
  312 + * 请求参数结构可以参考
  313 + * http://lbs.qq.com/webservice_v1/guide-gcoder.html
  314 + */
  315 + reverseGeocoder(options) {
  316 + var that = this;
  317 + options = options || {};
  318 + Utils.polyfillParam(options);
  319 + var requestParam = {
  320 + coord_type: options.coord_type || 5,
  321 + get_poi: options.get_poi || 0,
  322 + output: 'json',
  323 + key: that.key
  324 + };
  325 + if (options.poi_options) {
  326 + requestParam.poi_options = options.poi_options
  327 + }
  328 +
  329 + var locationsuccess = function (result) {
  330 + requestParam.location = result.latitude + ',' + result.longitude;
  331 + wx.request(Utils.buildWxRequestConfig(options, {
  332 + url: URL_GET_GEOCODER,
  333 + data: requestParam
  334 + }));
  335 + };
  336 + Utils.locationProcess(options, locationsuccess);
  337 + }
  338 +
  339 + /**
  340 + * 地址解析
  341 + *
  342 + * @param {Object} options 接口参数对象
  343 + *
  344 + * 请求参数结构可以参考
  345 + * http://lbs.qq.com/webservice_v1/guide-geocoder.html
  346 + */
  347 + geocoder(options) {
  348 + var that = this;
  349 + options = options || {};
  350 + Utils.polyfillParam(options);
  351 +
  352 + if (Utils.checkParamKeyEmpty(options, 'address')) {
  353 + return;
  354 + }
  355 +
  356 + var requestParam = {
  357 + address: options.address,
  358 + output: 'json',
  359 + key: that.key
  360 + };
  361 +
  362 + wx.request(Utils.buildWxRequestConfig(options, {
  363 + url: URL_GET_GEOCODER,
  364 + data: requestParam
  365 + }));
  366 + }
  367 +
  368 +
  369 + /**
  370 + * 获取城市列表
  371 + *
  372 + * @param {Object} options 接口参数对象
  373 + *
  374 + * 请求参数结构可以参考
  375 + * http://lbs.qq.com/webservice_v1/guide-region.html
  376 + */
  377 + getCityList(options) {
  378 + var that = this;
  379 + options = options || {};
  380 + Utils.polyfillParam(options);
  381 + var requestParam = {
  382 + output: 'json',
  383 + key: that.key
  384 + };
  385 +
  386 + wx.request(Utils.buildWxRequestConfig(options, {
  387 + url: URL_CITY_LIST,
  388 + data: requestParam
  389 + }));
  390 + }
  391 +
  392 + /**
  393 + * 获取对应城市ID的区县列表
  394 + *
  395 + * @param {Object} options 接口参数对象
  396 + *
  397 + * 请求参数结构可以参考
  398 + * http://lbs.qq.com/webservice_v1/guide-region.html
  399 + */
  400 + getDistrictByCityId(options) {
  401 + var that = this;
  402 + options = options || {};
  403 + Utils.polyfillParam(options);
  404 +
  405 + if (Utils.checkParamKeyEmpty(options, 'id')) {
  406 + return;
  407 + }
  408 +
  409 + var requestParam = {
  410 + id: options.id || '',
  411 + output: 'json',
  412 + key: that.key
  413 + };
  414 +
  415 + wx.request(Utils.buildWxRequestConfig(options, {
  416 + url: URL_AREA_LIST,
  417 + data: requestParam
  418 + }));
  419 + }
  420 +
  421 + /**
  422 + * 用于单起点到多终点的路线距离(非直线距离)计算:
  423 + * 支持两种距离计算方式:步行和驾车。
  424 + * 起点到终点最大限制直线距离10公里。
  425 + *
  426 + * @param {Object} options 接口参数对象
  427 + *
  428 + * 请求参数结构可以参考
  429 + * http://lbs.qq.com/webservice_v1/guide-distance.html
  430 + */
  431 + calculateDistance(options) {
  432 + var that = this;
  433 + options = options || {};
  434 + Utils.polyfillParam(options);
  435 +
  436 + if (Utils.checkParamKeyEmpty(options, 'to')) {
  437 + return;
  438 + }
  439 +
  440 + var requestParam = {
  441 + mode: options.mode || 'walking',
  442 + to: Utils.location2query(options.to),
  443 + output: 'json',
  444 + key: that.key
  445 + };
  446 +
  447 + var locationsuccess = function (result) {
  448 + requestParam.from = result.latitude + ',' + result.longitude;
  449 + wx.request(Utils.buildWxRequestConfig(options, {
  450 + url: URL_DISTANCE,
  451 + data: requestParam
  452 + }));
  453 + }
  454 + if (options.from) {
  455 + options.location = options.from;
  456 + }
  457 +
  458 + Utils.locationProcess(options, locationsuccess);
  459 + }
  460 +}
  461 +
  462 +module.exports = QQMapWX;
  1 +// pages/apply/apply.js
  2 +const app=getApp();
  3 +Page({
  4 +
  5 + /**
  6 + * 页面的初始数据
  7 + */
  8 + data: {
  9 + name:'',
  10 + tel:'',
  11 + need:'',
  12 + upimg: []
  13 + },
  14 + //图片预览
  15 + imgYu: function (event) {
  16 + var src = event.currentTarget.dataset.src;//获取data-src
  17 + var imgList = event.currentTarget.dataset.list;//获取data-list
  18 + wx.previewImage({
  19 + current: src, // 当前显示图片的http链接
  20 + urls: imgList // 需要预览的图片http链接列表
  21 + })
  22 + },
  23 + setname(e){
  24 + this.setData({
  25 + name: e.detail.value
  26 + })
  27 + },
  28 + settel(e){
  29 + this.setData({
  30 + tel: e.detail.value
  31 + })
  32 + },
  33 + setneed(e){
  34 + this.setData({
  35 + need: e.detail.value
  36 + })
  37 +
  38 + },
  39 + //上传多个文件的方法
  40 + uploadImages() {
  41 + let that = this;
  42 + wx.chooseImage({
  43 + count: 9 - that.data.upimg.length,
  44 + sizeType: ['original', 'compressed'],
  45 + success: function (res) {
  46 + let successUp = 0; //成功个数
  47 + let failUp = 0; //失败个数
  48 + let i = 0; //第几个
  49 + let tempFilePaths = res.tempFilePaths //总文件
  50 + let length = res.tempFilePaths.length //总共个数
  51 + wx.showNavigationBarLoading()
  52 + wx.showLoading({
  53 + title: '上传中',
  54 + })
  55 + console.log(tempFilePaths)
  56 + that.uploadAllfile(tempFilePaths, successUp, failUp, i, length)
  57 + },
  58 + fail: function (res) {
  59 + }
  60 + })
  61 + },
  62 + uploadAllfile(filePaths, successUp, failUp, i, length) {
  63 + let that = this
  64 + let bannerimgs = that.data.bannerimgs;
  65 + let head = {
  66 + 'XX-Token': wx.getStorageSync('token'),
  67 + 'XX-Device-Type': ''
  68 + }
  69 + let url = 'http://jysh.w.bronet.cn/api/wxapp/public/upload'
  70 + wx.uploadFile({
  71 + url: url, //仅为示例,非真实的接口地址
  72 + filePath: filePaths[i],
  73 + name: 'file',
  74 + header: head,
  75 + formData: {},
  76 + success: function (res) {
  77 + console.log(res);
  78 + let temdata = JSON.parse(res.data);
  79 + console.log(temdata);
  80 + wx.hideNavigationBarLoading();
  81 + wx.hideLoading();
  82 + let upimg = that.data.upimg;
  83 + if (upimg.length < 9) {
  84 + upimg.push(temdata.data);
  85 + that.setData({
  86 + upimg: upimg
  87 + })
  88 + }
  89 +
  90 + },
  91 + fail: function (res) {
  92 + wx.hideNavigationBarLoading()
  93 + wx.hideLoading()
  94 + console.log(res);
  95 + },
  96 + complete: () => {
  97 + i++;
  98 + if (i == length) {
  99 + console.log('总共' + successUp + '张上传成功,' + failUp + '张上传失败!');
  100 + } else { //递归调用uploadDIY函数
  101 + this.uploadAllfile(filePaths, successUp, failUp, i, length);
  102 + }
  103 + },
  104 + })
  105 + },
  106 + //删除图片
  107 + del_upimg(e) {
  108 + let that = this;
  109 + let upimg = that.data.upimg;
  110 + upimg.splice(e.currentTarget.dataset.index, 1);
  111 + that.setData({
  112 + upimg: upimg
  113 + })
  114 + },
  115 + //提交表单
  116 + submit(){
  117 + let that=this;
  118 + let err='';
  119 + var myreg = /^[1][3,4,5,7,8][0-9]{9}$/;
  120 + if(that.data.name==''){
  121 + err='请输入您的姓名'
  122 + }else if(that.data.tel==''){
  123 + err = '请输入您的电话'
  124 + } else if (!myreg.test(that.data.tel)){
  125 + err='电话输入不正确'
  126 + }else if(that.data.need==''){
  127 + err = '请输入您的需求'
  128 + }
  129 + if(err==''){
  130 + let url ='home/Elephant/submit_aid';
  131 + let imgurl='';
  132 + for (let obj of that.data.upimg){
  133 + imgurl += obj+','
  134 + }
  135 + let param={
  136 + name: that.data.name,
  137 + phone: that.data.tel,
  138 + need: that.data.need,
  139 + file: imgurl
  140 + }
  141 + app.post(url, param).then((res)=>{
  142 + wx.showToast({
  143 + title: '申请提交成功',
  144 + })
  145 + setTimeout(function () {
  146 + wx.switchTab({
  147 + url: '/pages/love/love',
  148 + })
  149 + }, 1000)
  150 + }).catch((err)=>{
  151 + console.log(err);
  152 + })
  153 + wx.switchTab({
  154 + url: '/pages/love/love',
  155 + })
  156 + }else{
  157 + wx.showToast({
  158 + title: err,
  159 + duration:2000,
  160 + icon:'none'
  161 + })
  162 +
  163 + }
  164 +
  165 + },
  166 + /**
  167 + * 生命周期函数--监听页面加载
  168 + */
  169 + onLoad: function (options) {
  170 +
  171 + },
  172 +
  173 + /**
  174 + * 生命周期函数--监听页面初次渲染完成
  175 + */
  176 + onReady: function () {
  177 +
  178 + },
  179 +
  180 + /**
  181 + * 生命周期函数--监听页面显示
  182 + */
  183 + onShow: function () {
  184 +
  185 + },
  186 +
  187 + /**
  188 + * 生命周期函数--监听页面隐藏
  189 + */
  190 + onHide: function () {
  191 +
  192 + },
  193 +
  194 + /**
  195 + * 生命周期函数--监听页面卸载
  196 + */
  197 + onUnload: function () {
  198 +
  199 + },
  200 +
  201 + /**
  202 + * 页面相关事件处理函数--监听用户下拉动作
  203 + */
  204 + onPullDownRefresh: function () {
  205 +
  206 + },
  207 +
  208 + /**
  209 + * 页面上拉触底事件的处理函数
  210 + */
  211 + onReachBottom: function () {
  212 +
  213 + },
  214 +
  215 + /**
  216 + * 用户点击右上角分享
  217 + */
  218 + onShareAppMessage: function () {
  219 +
  220 + }
  221 +})
  1 +{"navigationBarTitleText": "援助申请"}
  1 +<!--pages/apply/apply.wxml-->
  2 +<view class='top'>
  3 + <view class='cell_box'>
  4 + <view class='cell'>
  5 + <view class='cell_left'>
  6 + <view class='iconbox'>
  7 + <image src='../imgs/aicon15@2x.png'></image>
  8 + </view>
  9 + <view>您的姓名</view>
  10 + </view>
  11 + <view class='cell_rigth'>
  12 + <input placeholder-class='input_p' bindinput='setname'></input>
  13 + </view>
  14 + </view>
  15 + <view class='cell'>
  16 + <view class='cell_left'>
  17 + <view class='iconbox tel_box'>
  18 + <image src='../imgs/aicon16@2x.png'></image>
  19 + </view>
  20 + <view>您的电话</view>
  21 + </view>
  22 + <view class='cell_rigth'>
  23 + <input placeholder-class='input_p' bindinput='settel' type='number'></input>
  24 + </view>
  25 + </view>
  26 + <view class='cell exp_box'>
  27 + <view class='cell_left'>
  28 + <view class='iconbox'>
  29 + <image src='../imgs/aicon13@2x.png'></image>
  30 + </view>
  31 + <view>需求说明</view>
  32 + </view>
  33 + <view class='explain_txt'>简单说明您的困难情况</view>
  34 + </view>
  35 + <view class='explain'>
  36 + <textarea bindinput='setneed'></textarea>
  37 + </view>
  38 + </view>
  39 +</view>
  40 +<view class='bottom'>
  41 + <view class='cell exp_box bottom_title'>
  42 + <view class='cell_left'>
  43 + <view class='iconbox'>
  44 + <image src='../imgs/bicon06@2x.png'></image>
  45 + </view>
  46 + <view>凭证资料</view>
  47 + </view>
  48 + <view class='explain_txt'>请上传真实有效的,最多9张</view>
  49 + </view>
  50 + <view class='imgbox'>
  51 + <view class='img_item' wx:for='{{upimg}}' wx:key>
  52 + <view class='close_box' bindtap='del_upimg' data-index='{{index}}'>
  53 + <image src='../imgs/bicon07@2x.png'></image>
  54 + </view>
  55 + <image src='{{item}}' bindtap="imgYu" data-list="{{upimg}}" src="{{item}}"></image>
  56 + </view>
  57 + <view class='add_item' bindtap='uploadImages' wx:if='{{upimg.length<9}}'>
  58 + <view class='iconfont icon-jia1'></view>
  59 + </view>
  60 + </view>
  61 + <view class='btn' bindtap='submit'>确认提交</view>
  62 +</view>
  1 +/* pages/apply/apply.wxss */
  2 +@import '../selfhelp/selfhelp.wxss';
  3 +page{
  4 + background: #F0F0F0;
  5 +}
  6 +iconbox {
  7 +margin:0 16rpx 0 0;
  8 +}
  9 +.top{
  10 + background: #fff;
  11 +}
  12 +.explain{
  13 + height: 220rpx;
  14 + margin: 0 0 10rpx 0;
  15 +}
  16 +.exp_box{
  17 + justify-content: space-between;
  18 +}
  19 +.explain_txt{
  20 + color:#CCCCCC;
  21 + font-size:24rpx;
  22 +}
  23 +.bottom{
  24 + margin: 16rpx 0 0 0;
  25 + padding: 0 32rpx 30rpx 32rpx;
  26 + background: #fff;
  27 +}
  28 +.bottom_title{
  29 + padding:32rpx 0;
  30 + margin: 0;
  31 + border-bottom:1rpx solid #EBEBEB;
  32 +}
  33 +.imgbox{
  34 + height: 430rpx;
  35 + display: flex;
  36 + flex-wrap: wrap;
  37 +}
  38 +.img_item{
  39 + margin: 20rpx 10rpx 0 0;
  40 + position: relative;
  41 + width:137rpx;
  42 + height: 137rpx;
  43 + border-radius: 5rpx;
  44 +}
  45 +.img_item image{
  46 + width:100%;
  47 + height: 100%;
  48 + display: block;
  49 +}
  50 +.close_box{
  51 + position: absolute;
  52 + top:5rpx;
  53 + right: 5rpx;
  54 + width:34rpx;
  55 + height: 34rpx;
  56 + border-radius: 50%;
  57 + z-index:5;
  58 + background: #fff;
  59 +
  60 +}
  61 +.add_item{
  62 + margin: 20rpx 10rpx 0 0;
  63 + width:137rpx;
  64 + height: 137rpx;
  65 + border-radius: 5rpx;
  66 +background-color: #E6E6E6;
  67 +display: flex;
  68 +align-items: center;
  69 +justify-content: center;
  70 +}
  71 +.add_item .iconfont{
  72 + color:#fff;
  73 + font-size: 85rpx;
  74 +}
  75 +.btn{
  76 + margin: 30rpx 0 0 0;
  77 + width:100%;
  78 + height: 88rpx;
  79 + border-radius: 44rpx;
  80 + background: #8DE063;
  81 + color:#fff;
  82 + font-size:34rpx;
  83 + display: flex;
  84 + align-items: center;
  85 + justify-content: center;
  86 +}
  87 +.btn:active{
  88 + opacity: 0.7;
  89 +}
  90 +.tel_box{
  91 + width:22rpx;
  92 +}
  1 +// pages/appointment/appintment.js
  2 +const app=getApp();
  3 +var wxParse = require('../../wxParse/wxParse.js')
  4 +Page({
  5 +
  6 + /**
  7 + * 页面的初始数据
  8 + */
  9 + data: {
  10 + mode: "scaleToFill",
  11 + array:['5-10kg','10-20kg','20-30kg','30kg以上'],
  12 + arraynum:[5,10,20,30],
  13 + arraytxt:'请选择大约重量',
  14 + indicatorDots: true,
  15 + autoplay: true,
  16 + interval: 2000,
  17 + duration: 1000,
  18 + showstate: '',//1打包说明,2预约说明,3开通说明
  19 + address:'',
  20 + ifexp:true,//是否有快递
  21 + choosedate:'请选择时间',
  22 + city:'',
  23 + weight:'',
  24 + remark:'',//备注
  25 + enddate: '',//预约结束日期
  26 + nowdate:'',//预约开始日期
  27 + id:''
  28 + },
  29 + bindPickerChange: function (e) {
  30 + let that=this;
  31 + let array = that.data.array;
  32 + let arraynum = that.data.arraynum;
  33 + this.setData({
  34 + arraytxt: array[e.detail.value],
  35 + weight: arraynum[e.detail.value]
  36 + })
  37 + },
  38 + setshowstate(e){
  39 + console.log(e);
  40 + let that=this;
  41 + that.setData({
  42 + showstate:e.currentTarget.dataset.showstate
  43 + })
  44 + },
  45 + setshowstateno(){
  46 + let that = this;
  47 + that.setData({
  48 + showstate: ''
  49 + })
  50 + },
  51 + setweight(e){
  52 + console.log(e);
  53 + let that=this;
  54 + that.setData({
  55 + weight:e.detail.value
  56 + })
  57 + },
  58 + setremark(e) {
  59 + let that = this;
  60 + that.setData({
  61 + remark: e.detail.value
  62 + })
  63 + },
  64 + //选择地址
  65 + chooseadress(){
  66 + let that=this;
  67 + wx.chooseAddress({
  68 + success(res) {
  69 + that.setData({
  70 + address:res
  71 + })
  72 + }
  73 + })
  74 + },
  75 + //选择日期
  76 + bindDateChange: function (e) {
  77 + console.log('picker发送选择改变,携带值为', e.detail.value)
  78 + this.setData({
  79 + choosedate: e.detail.value
  80 + })
  81 + },
  82 + //提交表单
  83 + submit(){
  84 + let that=this;
  85 + let err='';
  86 + if (that.data.address.length==0){
  87 + err='请选择地址'
  88 + } else if (that.data.choosedate =='请选择时间'){
  89 + err = '请选择时间'
  90 + } else if (that.data.weight==''){
  91 + err = '请输入重量'
  92 + }
  93 + if (err == ''){
  94 +
  95 + if (that.data.id==''){//添加
  96 + let url = 'home/home/submit_make';
  97 + let params = {
  98 + province: that.data.address.provinceName,
  99 + city: that.data.address.cityName,
  100 + county: that.data.address.countyName,
  101 + address: that.data.address.detailInfo,
  102 + logistics_id: that.data.postdata.logistics.id,
  103 + total_weight: that.data.weight,
  104 + phone: that.data.address.telNumber,
  105 + name: that.data.address.userName,
  106 + time: that.data.choosedate,
  107 + remark: that.data.remark
  108 + }
  109 + let header = {
  110 + 'XX-Token': wx.getStorageSync('token')
  111 + }
  112 + app.post(url, params, header).then((res) => {
  113 + console.log(res)
  114 + wx.navigateTo({
  115 + url: '/pages/submit_yes/submit_yes',
  116 + success: function (res) { },
  117 + fail: function (res) { },
  118 + complete: function (res) { },
  119 + })
  120 + }).catch((err) => {
  121 + console.log(err)
  122 + })
  123 + }else{//修改
  124 + let url = 'home/Member_center/update_order';
  125 + let params = {
  126 + id:that.data.id,
  127 + province: that.data.address.provinceName,
  128 + city: that.data.address.cityName,
  129 + county: that.data.address.countyName,
  130 + address: that.data.address.detailInfo,
  131 + logistics_id: that.data.postdata.logistics.id,
  132 + total_weight: that.data.weight,
  133 + phone: that.data.address.telNumber,
  134 + name: that.data.address.userName,
  135 + time: that.data.choosedate,
  136 + remark: that.data.remark
  137 + }
  138 + let header = {
  139 + 'XX-Token': wx.getStorageSync('token')
  140 + }
  141 + app.post(url, params, header).then((res) => {
  142 + wx.showToast({
  143 + title: '修改成功',
  144 + })
  145 + setTimeout(function(){
  146 + wx.navigateBack({
  147 + delta: 1,
  148 + })
  149 + },1000)
  150 + }).catch((err) => {
  151 + console.log(err)
  152 + })
  153 +
  154 + }
  155 +
  156 + }else{
  157 + wx.showToast({
  158 + title: err,
  159 + duration:2000,
  160 + icon:'none'
  161 + })
  162 + }
  163 + },
  164 + getpostdata(){
  165 + console.log('getpostdata');
  166 + let that=this;
  167 + let url ='home/home/make_form';
  168 + let params={
  169 + 'city': app.globalData.city
  170 + // 'city': '天津市'
  171 + }
  172 + app.post(url,params).then((res)=>{
  173 + console.log(res)
  174 + that.setData({
  175 + postdata:res
  176 + })
  177 +
  178 + wxParse.wxParse('content1', 'html', res.make_notice.content, that, 5);
  179 + wxParse.wxParse('content2', 'html', res.pack.content, that, 5);
  180 + wxParse.wxParse('content3', 'html', res.open_explain.content, that, 5);
  181 + if (res.logistics==null){
  182 + that.setData({
  183 + ifexp:false
  184 + })
  185 + }else{
  186 + that.setData({
  187 + ifexp: true
  188 + })
  189 + }
  190 + }).catch((err)=>{
  191 + console.log(err)
  192 + })
  193 + },
  194 + //修改的数据回现
  195 + getorder(id){
  196 + let that=this;
  197 + console.log('getorder');
  198 + let url ='home/Member_center/update_order_html';
  199 + let header={
  200 + 'XX-Token':wx.getStorageSync('token')
  201 + }
  202 + let param={
  203 + id:id
  204 + }
  205 + app.post(url,param,header).then((res)=>{
  206 + let address={
  207 + userName: res.order.sender_name,
  208 + telNumber: res.order.sender_phone,
  209 + cityName: res.order.sender_city,
  210 + countyName: res.order.sender_county,
  211 + detailInfo: res.order.sender_address
  212 + }
  213 + let logistics={
  214 + id: res.order.id,
  215 + logistics_name: res.order.logistics_name
  216 + }
  217 + res.logistics = logistics;
  218 + that.setData({
  219 + postdata: res,
  220 + address: address,
  221 + choosedate: res.order.time,
  222 + arraytxt: res.order.total_weight+'kg',
  223 + weight: res.order.total_weight,
  224 + remark: res.order.remark,
  225 + city: res.order.sender_city,
  226 + ifexp:true,
  227 +
  228 + })
  229 + wxParse.wxParse('content1', 'html', res.make_notice.content, that, 5);
  230 + wxParse.wxParse('content2', 'html', res.pack.content, that, 5);
  231 + wxParse.wxParse('content3', 'html', res.open_explain.content, that, 5);
  232 + }).catch((err)=>{
  233 + console.log()
  234 + })
  235 + },
  236 + /**
  237 + * 生命周期函数--监听页面加载
  238 + */
  239 + onLoad: function (options) {
  240 + let that=this;
  241 + let nowdate = app.dateLater(0).dataday;
  242 + let enddate = app.dateLater(4).dataday;
  243 + that.setData({
  244 + city: app.globalData.city,
  245 + nowdate: nowdate,
  246 + enddate: enddate
  247 + })
  248 + if(options.id != undefined){
  249 + that.getorder(options.id);
  250 + that.setData({
  251 + id: options.id
  252 + })
  253 + }else{
  254 + that.getpostdata();
  255 + }
  256 + },
  257 +
  258 + /**
  259 + * 生命周期函数--监听页面初次渲染完成
  260 + */
  261 + onReady: function () {
  262 +
  263 + },
  264 +
  265 + /**
  266 + * 生命周期函数--监听页面显示
  267 + */
  268 + onShow: function () {
  269 + let that = this;
  270 +
  271 + },
  272 +
  273 + /**
  274 + * 生命周期函数--监听页面隐藏
  275 + */
  276 + onHide: function () {
  277 +
  278 + },
  279 +
  280 + /**
  281 + * 生命周期函数--监听页面卸载
  282 + */
  283 + onUnload: function () {
  284 +
  285 + },
  286 +
  287 + /**
  288 + * 页面相关事件处理函数--监听用户下拉动作
  289 + */
  290 + onPullDownRefresh: function () {
  291 +
  292 + },
  293 +
  294 + /**
  295 + * 页面上拉触底事件的处理函数
  296 + */
  297 + onReachBottom: function () {
  298 +
  299 + },
  300 +
  301 + /**
  302 + * 用户点击右上角分享
  303 + */
  304 + onShareAppMessage: function () {
  305 +
  306 + }
  307 +})
  1 +{"navigationBarTitleText": "在线预约"}
  1 +<!--pages/appointment/appintment.wxml-->
  2 +<import src="../../wxParse/wxParse.wxml" />
  3 +<swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}" circular="true" indicator-active-color='#fff'>
  4 + <block wx:for="{{postdata.slide}}" wx:key>
  5 + <swiper-item>
  6 + <view class='item_img'>
  7 + <image src="{{item.image}}" class="slide-image" />
  8 + </view>
  9 + </swiper-item>
  10 + </block>
  11 +</swiper>
  12 +
  13 +<view class='appintmentbox' >
  14 + <view class='appint_item' wx:if='{{address.length==0}}' bindtap='chooseadress'>
  15 + <view class='int_rigth'>
  16 + <view class='int_img'>
  17 + <image src='../imgs/aicon11@2x.png'></image>
  18 + </view>
  19 + <text>地址信息</text>
  20 + </view>
  21 + <view class='int'>
  22 + <view class='vlue_txt'>请选择新建地址</view>
  23 + </view>
  24 + <view class='iconfont icon-xiangyou'></view>
  25 + </view>
  26 + <view class='appint_item' wx:else bindtap='chooseadress'>
  27 + <view class='address_box'>
  28 + <view class='additem'>
  29 + <view class='int_rigth'>
  30 + <view class='int_img'>
  31 + <image src='../imgs/aicon15@2x.png'></image>
  32 + </view>
  33 + <text>{{address.userName}}</text>
  34 + </view>
  35 + <view class='int_rigth tel_box'>
  36 + <view class='int_img tel_img'>
  37 + <image src='../imgs/aicon16@2x.png'></image>
  38 + </view>
  39 + <text>{{address.telNumber}}</text>
  40 + </view>
  41 + </view>
  42 + <view class='address'>
  43 + <view class='addresint'>
  44 + <view class='int_img'>
  45 + <image src='../imgs/aicon11@2x.png'></image>
  46 + </view>
  47 + <text>{{address.cityName}}{{address.countyName}}{{address.detailInfo}}</text>
  48 + </view>
  49 + </view>
  50 + </view>
  51 +
  52 +
  53 + <view class='iconfont icon-xiangyou'></view>
  54 + </view>
  55 + <view class='info_box'>
  56 + <view class='int_title'>
  57 + <view>预约信息</view>
  58 + <view>
  59 + <view class='txt_box' bindtap='setshowstate' data-showstate='2'>
  60 + <text class='nimi_txt'>预约须知</text>
  61 + <text class='iconfont icon-jinggao'></text>
  62 + </view>
  63 + </view>
  64 + </view>
  65 + </view>
  66 + <picker mode='date' bindchange="bindDateChange" start='{{nowdate}}' end='{{enddate}}'>
  67 + <view class='appint_item'>
  68 + <view class='int_rigth'>
  69 + <view class='int_img'>
  70 + <image src='../imgs/icon_rl.png'></image>
  71 + </view>
  72 + <text>预约日期</text>
  73 + </view>
  74 + <view class='int'>
  75 + <view class='vlue_txt'>{{choosedate}}</view>
  76 + </view>
  77 + </view>
  78 + </picker>
  79 + <picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}">
  80 + <view class='appint_item'>
  81 + <view class='int_rigth'>
  82 + <view class='int_img'>
  83 + <image src='../imgs/aicon12@2x.png'></image>
  84 + </view>
  85 + <text>预约重量</text>
  86 + </view>
  87 + <view class='int'>
  88 + <view class='vlue_txt'>
  89 + <!-- <input placeholder-class='input_p' placeholder='请预估衣服重量' bindinput='setweight' type='digit'></input> -->
  90 + {{arraytxt}}
  91 + </view>
  92 + <view class='txt_box' bindtap='setshowstate' data-showstate='1'>
  93 + <text class='nimi_txt'>打包说明</text>
  94 + <text class='iconfont icon-jinggao'></text>
  95 + </view>
  96 + </view>
  97 + </view>
  98 + </picker>
  99 + <view class='appint_item'>
  100 + <view class='int_rigth'>
  101 + <view class='int_img'>
  102 + <image src='../imgs/aicon13@2x.png'></image>
  103 + </view>
  104 + <text>备 注</text>
  105 + </view>
  106 + <view class='int'>
  107 + <view class='vlue_txt input_txt'>
  108 + <input placeholder-class='input_p' placeholder='请输入(限制在45字以内)' bindinput='setremark'
  109 + value='{{remark}}'></input>
  110 + </view>
  111 + </view>
  112 + </view>
  113 +</view>
  114 +<view class='tranpost'>
  115 + <view class='tranpost_item'>
  116 + <view>委托快递</view>
  117 + <view class="{{ifexp?'':'gry'}}">{{ifexp?postdata.logistics.logistics_name:'暂无快速'}}</view>
  118 + </view>
  119 + <view class='tranpost_item'>
  120 + <view>运费支付</view>
  121 + <view class="{{ifexp?'':'gry'}}">{{ifexp?'象和家':'暂无'}}</view>
  122 + </view>
  123 + <view class='tranpost_item'>
  124 + <view>开通情况</view>
  125 + <view>{{city}}【
  126 + <text class="txt-green {{ifexp?'':'gry'}}">{{ifexp?'已':'未'}}开通</text>】</view>
  127 + </view>
  128 + <view class='tranpost_item'>
  129 + <view>处置方式</view>
  130 + <view>环保+公益+出口
  131 + <text class='iconfont icon-xiangyou'></text>
  132 + </view>
  133 + </view>
  134 +</view>
  135 +<view class="int_btn {{ifexp?'':'gry_btn'}}" bindtap='submit'>确认提交</view>
  136 +
  137 +<!-- 弹框打包说明 -->
  138 +<view class="mold " wx:if='{{showstate==1}}' bindtap='setshowstateno'>
  139 + <view class="mold_main {{showstate==1?'Augly-bounceinR':'Augly-fadeoutR'}}">
  140 + <view class='mold_titlebox'> 打包说明 </view>
  141 + <view class='mold_content'>
  142 + <template is='wxParse' data='{{wxParseData:content2.nodes}}' />
  143 + </view>
  144 + <view class='mold_btn' catchtap='setshowstateno'>我知道了</view>
  145 + </view>
  146 +</view>
  147 +<!-- 弹框预约说明 -->
  148 +<view class="mold " wx:if='{{showstate==2}}' bindtap='setshowstateno'>
  149 + <view class="mold_main {{showstate==2?'Augly-bounceinR':'Augly-fadeoutR'}}">
  150 + <view class='mold_titlebox'> 预约须知 </view>
  151 + <view class='mold_content'>
  152 + <template is='wxParse' data='{{wxParseData:content1.nodes}}' />
  153 + </view>
  154 + <view class='mold_btn' catchtap='setshowstateno'>我知道了</view>
  155 + </view>
  156 +</view>
  157 +<!-- 弹框开通说明 -->
  158 +<view class="mold " wx:if='{{showstate==3}}' bindtap='setshowstateno'>
  159 + <view class="mold_main {{showstate==3?'Augly-bounceinR':'Augly-fadeoutR'}}" >
  160 + <view class='mold_titlebox'> 开通说明 </view>
  161 + <view class='mold_content'>
  162 + <template is='wxParse' data='{{wxParseData:content3.nodes}}' />
  163 + </view>
  164 + <view class='mold_btn' catchtap='setshowstateno'>我知道了</view>
  165 + </view>
  166 +</view>
  1 +/* pages/appointment/appintment.wxss */
  2 +@import '../love/love.wxss';
  3 +@import '../../Augly_Animation.wxss';
  4 +page{
  5 + background: #f0f0f0;
  6 +}
  7 +.appintmentbox{
  8 + margin: 16rpx 0 0 0;
  9 + background: #fff;
  10 + padding:0 32rpx;
  11 +}
  12 +.appintmenttab{
  13 + background: #fff;
  14 + margin: 14rpx 0 0 0;
  15 + padding:0 32rpx ;
  16 + display: flex;
  17 + align-items: center;
  18 +}
  19 +.additem{
  20 + display: flex;
  21 + align-items: center;
  22 + margin: 0 0 20rpx 0;
  23 +}
  24 +.appint_item .tel_box{
  25 + width:270rpx;
  26 +}
  27 +.appint_item .tel_img{
  28 + width:24rpx;
  29 + height: 30rpx
  30 +}
  31 +.addresint{
  32 + display: flex;
  33 + align-items: center;
  34 + width:600rpx;
  35 + white-space: nowrap;
  36 + text-overflow: ellipsis;
  37 + overflow: hidden;
  38 + color:#1F1F1F;
  39 + font-size:24rpx;
  40 +}
  41 +.appint_item{
  42 + position: relative;
  43 + display: flex;
  44 + padding:30rpx 0;
  45 + align-items: center;
  46 + justify-content: space-between;
  47 + background:#fff;
  48 + border-bottom:1rpx solid #EBEBEB;
  49 +}
  50 +.int_rigth{
  51 + width:200rpx;
  52 + display: flex;
  53 + align-items: center;
  54 + color:#292929;
  55 + font-size:28rpx;
  56 + box-sizing: border-box;
  57 +}
  58 +.int_img{
  59 + width:28rpx;
  60 + height: 28rpx;
  61 + margin: 0 16rpx 0 0;
  62 +}
  63 +.int_img image{
  64 + width:100%;
  65 + height: 100%;
  66 +}
  67 +.int{
  68 + width:500rpx;
  69 + display: flex;
  70 + align-items: center;
  71 + justify-content: space-between;
  72 +}
  73 +.appint_item .icon-xiangyou{
  74 + position: absolute;
  75 + top:28rpx;
  76 + right: 0;
  77 + color:#ccc;
  78 +}
  79 +.info_box{
  80 + background: #fff;
  81 + padding:30rpx 0 0 0;
  82 +}
  83 +.vlue_txt{
  84 + color:#CCCCCC;
  85 + font-size:24rpx;
  86 +}
  87 +.input_txt{
  88 + width:100%;
  89 +}
  90 +.input_txt input{
  91 + width:100%;
  92 +}
  93 +.int_title{
  94 + display: flex;
  95 + align-items: center;
  96 + justify-content: space-between;
  97 + color:#8DE063;
  98 + font-size:30rpx;
  99 +}
  100 +.inmi_img{
  101 + width:22rpx;
  102 + height: 22rpx;
  103 + border-radius: 50%;
  104 + overflow: hidden;
  105 +}
  106 +.inmi_img image{
  107 + width:100%;
  108 + height: 100%;
  109 +}
  110 +.nimi_txt{
  111 + font-size:24rpx;
  112 + margin: 0 10rpx 0 0;
  113 + color:#8DE063;
  114 +}
  115 +.txt_box .iconfont{
  116 + font-size:27rpx;
  117 + color:#8DE063;
  118 +}
  119 +.input_p{
  120 + color:#CCCCCC;
  121 + font-size:24rpx;
  122 +}
  123 +
  124 +.tranpost{
  125 + background: #fff;
  126 + margin: 16rpx 0 0 0;
  127 + padding:0 32rpx;
  128 +}
  129 +.tranpost_item{
  130 + display: flex;
  131 + justify-items: center;
  132 + justify-content: space-between;
  133 + color:#292929;
  134 + font-size:28rpx;
  135 + padding:30rpx 0;
  136 + border-bottom:1rpx solid #EBEBEB;
  137 +}
  138 +.txt-green{
  139 + color:#8DE063;
  140 +}
  141 +.int_btn{
  142 + margin: 28rpx 32rpx;
  143 + height: 88rpx;
  144 + display: flex;
  145 + align-items: center;
  146 + justify-content: center;
  147 + color:#fff;
  148 + font-size:34rpx;
  149 + background: #8DE063;
  150 + border-radius: 44rpx;
  151 +}
  152 +.int_btn:active{
  153 + opacity: 0.7;
  154 +}
  155 +.mold{
  156 + background: rgba(0,0,0,0.3);
  157 + width:100%;
  158 + height: 100%;
  159 + position: fixed;
  160 + z-index: 2;
  161 + top:0;
  162 + left:0;
  163 + display: flex;
  164 + justify-content: center;
  165 + align-items: center;
  166 +}
  167 +.mold_main{
  168 + padding:0 60rpx 160rpx 60rpx;
  169 + position: relative;
  170 + box-sizing: border-box;
  171 + background: #fff;
  172 + width:646rpx;
  173 + border-radius: 36rpx;
  174 + box-shadow:0rpx 8rpx 16rpx 0rpx rgba(0, 0, 0, 0.08);
  175 +}
  176 +.mold_titlebox{
  177 + display: flex;
  178 + align-items: center;
  179 + justify-content: center;
  180 + position: relative;
  181 + color:#000;
  182 + /* font-weight: bold; */
  183 + font-size:36rpx;
  184 + padding:30rpx 0;
  185 +}
  186 +.mold_titlebox::before{
  187 + content: '';
  188 + position: absolute;
  189 + top:50%;
  190 + left:177rpx;
  191 + transform: translateX(-50%);
  192 + width:9rpx;
  193 + height: 9rpx;
  194 + border-radius: 50%;
  195 + background: #8EE064;
  196 +}
  197 +.mold_titlebox::after{
  198 + content: '';
  199 + position: absolute;
  200 + top:50%;
  201 + right:170rpx;
  202 + transform: translateX(-50%);
  203 + width:9rpx;
  204 + height: 9rpx;
  205 + border-radius: 50%;
  206 + background: #8EE064;
  207 +}
  208 +.mold_btn{
  209 + position: absolute;
  210 + bottom:40rpx;
  211 + transform: translateX(-50%);
  212 + left:50%;
  213 + display: flex;
  214 + align-items: center;
  215 + justify-content: center;
  216 + color:#fff;
  217 + font-size:30rpx;
  218 + width:460rpx;
  219 + height: 82rpx;
  220 + border-radius: 42rpx;
  221 + background: linear-gradient(0deg,rgba(125,198,87,1),rgba(142,224,100,1));
  222 +border:1px solid rgba(226,226,226,1);
  223 +}
  224 +.mold_btn:active{
  225 + opacity: 0.7;
  226 +}
  227 +.mold_content{
  228 + height: 680rpx;
  229 + overflow-y: scroll;
  230 + color:#000;
  231 + font-size:26rpx;
  232 + line-height: 50rpx;
  233 +}
  234 +.gry{
  235 + color:#CCCCCC !important;
  236 +
  237 +}
  238 +.gry_btn{
  239 + background: rgba(204,204,204,1) !important;
  240 + color:#fff !important;
  241 +}
  1 +// pages/eidt_myinfo/eidt_myinfo.js
  2 +const app=getApp();
  3 +Page({
  4 +
  5 + /**
  6 + * 页面的初始数据
  7 + */
  8 + data: {
  9 + showmold:false,
  10 + array:['男','女'],
  11 + postdata:[],
  12 + sex:'女',
  13 + name1:'',//临时的name
  14 + upimgstr:''
  15 + },
  16 + setshowmold(){
  17 + this.setData({
  18 + showmold:true
  19 + })
  20 + },
  21 + setshowno(){
  22 + this.setData({
  23 + showmold: false
  24 + })
  25 + },
  26 + bindPickerChange(e){
  27 + let that=this;
  28 + let array = that.data.array;
  29 + let postdata=that.data.postdata;
  30 + postdata.sextab = array[e.detail.value];
  31 + if (array[e.detail.value]=='男'){
  32 + postdata.sex=1;
  33 + } else if (array[e.detail.value] == '女'){
  34 + postdata.sex = 2;
  35 + }
  36 + this.setData({
  37 + postdata:postdata
  38 + })
  39 + },
  40 + //上传多个文件的方法
  41 + uploadImages() {
  42 + let that = this;
  43 + wx.chooseImage({
  44 + count: 1,
  45 + sizeType: ['original', 'compressed'],
  46 + success: function (res) {
  47 + let successUp = 0; //成功个数
  48 + let failUp = 0; //失败个数
  49 + let i = 0; //第几个
  50 + let tempFilePaths = res.tempFilePaths //总文件
  51 + let length = res.tempFilePaths.length //总共个数
  52 + wx.showNavigationBarLoading()
  53 + wx.showLoading({
  54 + title: '上传中',
  55 + })
  56 + console.log(tempFilePaths)
  57 + that.uploadAllfile(tempFilePaths, successUp, failUp, i, length)
  58 + },
  59 + fail: function (res) {
  60 + }
  61 + })
  62 + },
  63 + uploadAllfile(filePaths, successUp, failUp, i, length) {
  64 + let that = this
  65 + let bannerimgs = that.data.bannerimgs;
  66 + let head = {
  67 + 'XX-Token': wx.getStorageSync('token'),
  68 + 'XX-Device-Type': ''
  69 + }
  70 + let url = 'http://jysh.w.bronet.cn/api/wxapp/public/upload'
  71 + wx.uploadFile({
  72 + url: url, //仅为示例,非真实的接口地址
  73 + filePath: filePaths[i],
  74 + name: 'file',
  75 + header: head,
  76 + formData: {},
  77 + success: function (res) {
  78 + let temdata = JSON.parse(res.data);
  79 + let postdata = that.data.postdata;
  80 + postdata.avatar = temdata.data;
  81 + wx.hideNavigationBarLoading();
  82 + wx.hideLoading();
  83 + that.setData({
  84 + postdata: postdata
  85 + })
  86 + },
  87 + fail: function (res) {
  88 + wx.hideNavigationBarLoading()
  89 + wx.hideLoading()
  90 + console.log(res);
  91 + },
  92 + complete: () => {
  93 + i++;
  94 + if (i == length) {
  95 + console.log('总共' + successUp + '张上传成功,' + failUp + '张上传失败!');
  96 + } else { //递归调用uploadDIY函数
  97 + this.uploadAllfile(filePaths, successUp, failUp, i, length);
  98 + }
  99 + },
  100 + })
  101 + },
  102 + setname(e){
  103 + let that=this;
  104 + that.setData({
  105 + name1:e.detail.value
  106 + })
  107 + },
  108 + yesname(){
  109 + let that=this;
  110 + let postdata = that.data.postdata;
  111 + postdata.user_nickname = that.data.name1;
  112 + that.setData({
  113 + postdata:postdata,
  114 + showmold: false
  115 + })
  116 + },
  117 + void(){
  118 +
  119 + },
  120 + submit(){
  121 + let that=this;
  122 + let url ='home/Member_center/update_user';
  123 + let header={
  124 + 'XX-Token':wx.getStorageSync('token')
  125 + }
  126 + let postdata=that.data.postdata;
  127 + let param={
  128 + user_nickname: postdata.user_nickname,
  129 + avatar: postdata.avatar,
  130 + sex: postdata.sex
  131 + }
  132 + app.post(url,param,header).then((res)=>{
  133 + console.log(res)
  134 + wx.switchTab({
  135 + url: '/pages/my/my',
  136 + })
  137 + }).catch((err)=>{
  138 + console.log(err)
  139 + })
  140 + },
  141 + getpostdata() {
  142 + let that = this;
  143 + let url = 'home/Member_center/index';
  144 + let header = {
  145 + 'XX-Token': wx.getStorageSync('token')
  146 + };
  147 + app.post(url, {}, header).then((res) => {
  148 + if (res.sex=='0'){
  149 + res.sextab='暂无'
  150 + } else if (res.sex == '1'){
  151 + res.sextab = '男'
  152 + } else if (res.sex == '2'){
  153 + res.sextab = '女'
  154 + }
  155 + that.setData({
  156 + postdata: res
  157 + })
  158 + }).catch((err) => {
  159 + console.log(err)
  160 + })
  161 + },
  162 + /**
  163 + * 生命周期函数--监听页面加载
  164 + */
  165 + onLoad: function (options) {
  166 +
  167 + let that = this;
  168 + that.getpostdata();
  169 +
  170 + },
  171 +
  172 + /**
  173 + * 生命周期函数--监听页面初次渲染完成
  174 + */
  175 + onReady: function () {
  176 + let that = this;
  177 + that.getpostdata();
  178 +
  179 + },
  180 +
  181 + /**
  182 + * 生命周期函数--监听页面显示
  183 + */
  184 + onShow: function () {
  185 +
  186 + },
  187 +
  188 + /**
  189 + * 生命周期函数--监听页面隐藏
  190 + */
  191 + onHide: function () {
  192 +
  193 + },
  194 +
  195 + /**
  196 + * 生命周期函数--监听页面卸载
  197 + */
  198 + onUnload: function () {
  199 +
  200 + },
  201 +
  202 + /**
  203 + * 页面相关事件处理函数--监听用户下拉动作
  204 + */
  205 + onPullDownRefresh: function () {
  206 +
  207 + },
  208 +
  209 + /**
  210 + * 页面上拉触底事件的处理函数
  211 + */
  212 + onReachBottom: function () {
  213 +
  214 + },
  215 +
  216 + /**
  217 + * 用户点击右上角分享
  218 + */
  219 + onShareAppMessage: function () {
  220 +
  221 + }
  222 +})
  1 +{"navigationBarTitleText": "编辑资料"}
  1 +<!--pages/eidt_myinfo/eidt_myinfo.wxml-->
  2 +<view class='itembox'>
  3 + <view class='my_item' bindtap='uploadImages'>
  4 + <view class='my_left'>
  5 + <view class='heaimg'>
  6 + <image src='{{postdata.avatar}}'></image>
  7 + </view>
  8 + </view>
  9 + <view class='my_rigth'>
  10 + <text>编辑头像</text>
  11 + <text class='iconfont icon-xiangyou'></text>
  12 + </view>
  13 + </view>
  14 + <view class='my_item' bindtap='setshowmold'>
  15 + <view class='my_left'>
  16 + 昵称
  17 + </view>
  18 + <view class='my_rigth'>
  19 + <text>{{postdata.user_nickname}}</text>
  20 + <text class='iconfont icon-xiangyou'></text>
  21 + </view>
  22 + </view>
  23 + <picker bindchange="bindPickerChange" range="{{array}}">
  24 + <view class='my_item'>
  25 + <view class='my_left'>
  26 + 性别
  27 + </view>
  28 + <view class='my_rigth'>
  29 + <text>{{postdata.sextab}}</text>
  30 + <text class='iconfont icon-xiangyou'></text>
  31 + </view>
  32 + </view>
  33 + </picker>
  34 +
  35 +</view>
  36 +<view class='bg'></view>
  37 +<view class='itembox'>
  38 + <view class='my_item'>
  39 + <view class='my_left'>
  40 + 手机号
  41 + </view>
  42 + <view class='my_rigth'>
  43 + <text>{{postdata.mobile}}(已绑定)</text>
  44 + <text class='iconfont icon-xiangyou'></text>
  45 + </view>
  46 + </view>
  47 +</view>
  48 +<view class='my_infobtn' bindtap='submit'>保存</view>
  49 +
  50 +<view class='mold' wx:if='{{showmold}}' bindtap='setshowno'>
  51 + <view class='mold_box' catchtap='void'>
  52 + <view class='mold_top'>昵称</view>
  53 + <view class='mold_bottom'>
  54 + <view class='mold_input'>
  55 + <input value='{{postdata.user_nickname}}' bindinput='setname'></input>
  56 + </view>
  57 + </view>
  58 + <view class='my_btnbox'>
  59 + <view class='my_btn' catchtap='setshowno'>取消</view>
  60 + <view class='my_btn' catchtap='yesname'>确定</view>
  61 + </view>
  62 +
  63 + </view>
  64 +</view>
  1 +/* pages/eidt_myinfo/eidt_myinfo.wxss */
  2 +page{
  3 + padding:0 0 150rpx 0;
  4 +}
  5 +.itembox{
  6 + padding:10rpx 32rpx 0 32rpx;
  7 +}
  8 +.my_item{
  9 + display: flex;
  10 + justify-content: space-between;
  11 + align-items: center;
  12 + padding:36rpx 0;
  13 + border-bottom:1rpx solid #EBEBEB;
  14 +}
  15 +.my_item:last-child{
  16 + border:none;
  17 +}
  18 +.my_left{
  19 + color:#000;
  20 + font-size:30rpx;
  21 +}
  22 +.heaimg{
  23 + height: 84rpx;
  24 + width: 84rpx;
  25 + border-radius: 50%;
  26 + display: flex;
  27 + align-items: center;
  28 + justify-content: center;
  29 + overflow: hidden;
  30 +}
  31 +.heaimg image{
  32 + width:100%;
  33 + height: 100%;
  34 + display: block;
  35 +}
  36 +.my_rigth{
  37 + font-size:26rpx;
  38 + color:#666666;
  39 +}
  40 +.bg{
  41 + width:100%;
  42 + height: 16rpx;
  43 + background: #F5F6FA;
  44 +}
  45 +.my_infobtn{
  46 + width:686rpx;
  47 + position: fixed;
  48 + bottom:0;
  49 + left: 0;
  50 + margin: 32rpx;
  51 + height: 80rpx;
  52 + border-radius: 40rpx;
  53 + display: flex;
  54 + align-items: center;
  55 + justify-content: center;
  56 + background: #8DE063;
  57 + color:#fff;
  58 + font-size:30rpx;
  59 + z-index:1;
  60 +}
  61 +.my_infobtn:active{
  62 + opacity: 0.7
  63 +}
  64 +.mold{
  65 + position: fixed;
  66 + width:100%;
  67 + height: 100%;
  68 + top:0;
  69 + left:0;
  70 + background-color: rgba(0,0,0,0.1);
  71 + z-index:30;
  72 +}
  73 +.mold_box{
  74 + position: absolute;
  75 + top:50%;
  76 + left:50%;
  77 + width:718rpx;
  78 + transform: translate(-50%,-50%);
  79 + background: #fff;
  80 + border-radius: 36rpx;
  81 +
  82 + overflow: hidden;
  83 + z-index:50;
  84 +}
  85 +.mold_top{
  86 + padding:30rpx 0;
  87 + text-align: center;
  88 + color:#000000;
  89 + font-size:36rpx;
  90 + border-bottom:1rpx solid #EBEBEB;
  91 +}
  92 +.mold_bottom{
  93 + margin: 0 55rpx
  94 +}
  95 +.mold_input{
  96 +margin: 50rpx 0 60rpx 0;
  97 +color:#000;
  98 +font-size:30rpx;
  99 +border-bottom: 1rpx solid #999;
  100 +}
  101 +.mold_input input{
  102 + width:100%;
  103 + height: 100%;
  104 + margin: 0 0 10rpx 0;
  105 +}
  106 +.my_btnbox{
  107 + margin: 0 32rpx 0 32rpx;
  108 + display: flex;
  109 + justify-content: space-between;
  110 + align-items: center;
  111 +}
  112 +.my_btnbox .my_btn{
  113 + height: 82rpx;
  114 + margin: 0 0 30rpx 0;
  115 + width:312rpx;
  116 + border-radius: 41rpx;
  117 + background:rgba(247,247,247,1);
  118 +border:1px solid rgba(226,226,226,1);
  119 + color:#53B920;
  120 + font-size:30rpx;
  121 + display: flex;
  122 + align-items: center;
  123 + justify-content: center;
  124 +}
  1 +// pages/img_text/img_text.js
  2 +const app=getApp();
  3 +var wxParse = require('../../wxParse/wxParse.js')
  4 +Page({
  5 + /**
  6 + * 页面的初始数据
  7 + */
  8 + data: {
  9 + state: 1,//1开通城市,2预约流程,3关于我们,4公告详情,5消息
  10 + id:'',
  11 + postdata:''
  12 + },
  13 +
  14 +//公告详情
  15 +getdata(){
  16 + let that=this;
  17 + let url ='home/home/notice_info';
  18 + let param={
  19 + id:that.data.id
  20 + }
  21 + app.post(url, param).then((res)=>{
  22 + that.setData({
  23 + postdata:res
  24 + })
  25 + wxParse.wxParse('content', 'html', res.content, that, 5);
  26 + }).catch((errMsg)=>{
  27 + console.log(errMsg)
  28 + })
  29 +},
  30 +//开通城市、预约流程、关于象合家、公益基金池(id只有2,3,4,9)
  31 +getmoredata(id){
  32 + let that=this;
  33 + let url ='home/home/page_info';
  34 + let param = {
  35 + id: id
  36 + }
  37 + app.post(url, param).then((res) => {
  38 + that.setData({
  39 + postdata: res
  40 + })
  41 + wxParse.wxParse('content', 'html', res.content, that, 5);
  42 + }).catch((errMsg) => {
  43 + console.log(errMsg)
  44 + })
  45 +
  46 +
  47 +},
  48 +//系消息详情
  49 + system_bell_info(id){
  50 + let that=this;
  51 + let url ='home/Member_center/system_bell_info';
  52 + let params={
  53 + id:id
  54 + }
  55 + let header={
  56 + 'XX-Token':wx.getStorageSync('token')
  57 + }
  58 + app.post(url, params, header).then((res)=>{
  59 + that.setData({
  60 + postdata: res
  61 + })
  62 + wxParse.wxParse('content', 'html', res.content, that, 5);
  63 + }).catch((err)=>{
  64 + console.log(err)
  65 + })
  66 + },
  67 + /**
  68 + * 生命周期函数--监听页面加载,开通城市、预约流程、关于象合家、公益基金池(id只有2,3,4,9)
  69 + */
  70 + onLoad: function (options) {
  71 + let that=this;
  72 + that.setData({
  73 + state:options.state
  74 + })
  75 + let BarTitle=''
  76 + if (options.state== '1'){
  77 + BarTitle='开通城市'
  78 + that.getmoredata(2);
  79 + } else if (options.state == '2'){
  80 + BarTitle = '预约流程';
  81 + that.getmoredata(3);
  82 + } else if (options.state == '3'){
  83 + BarTitle = '关于我们';
  84 + that.getmoredata(4);
  85 + } else if (options.state == '4'){
  86 + BarTitle = '公告详情';
  87 + that.setData({
  88 + id: options.id
  89 + })
  90 + that.getdata();
  91 + } else if (options.state == '5'){
  92 + BarTitle = '消息';
  93 + that.setData({
  94 + id: options.id
  95 + })
  96 + that.system_bell_info(options.id)
  97 + }
  98 + wx.setNavigationBarTitle({
  99 + title: BarTitle
  100 + })
  101 +
  102 + },
  103 +
  104 + /**
  105 + * 生命周期函数--监听页面初次渲染完成
  106 + */
  107 + onReady: function () {
  108 +
  109 + },
  110 +
  111 + /**
  112 + * 生命周期函数--监听页面显示
  113 + */
  114 + onShow: function () {
  115 +
  116 + },
  117 +
  118 + /**
  119 + * 生命周期函数--监听页面隐藏
  120 + */
  121 + onHide: function () {
  122 +
  123 + },
  124 +
  125 + /**
  126 + * 生命周期函数--监听页面卸载
  127 + */
  128 + onUnload: function () {
  129 +
  130 + },
  131 +
  132 + /**
  133 + * 页面相关事件处理函数--监听用户下拉动作
  134 + */
  135 + onPullDownRefresh: function () {
  136 +
  137 + },
  138 +
  139 + /**
  140 + * 页面上拉触底事件的处理函数
  141 + */
  142 + onReachBottom: function () {
  143 +
  144 + },
  145 +
  146 + /**
  147 + * 用户点击右上角分享
  148 + */
  149 + onShareAppMessage: function () {
  150 +
  151 + }
  152 +})
  1 +<!--pages/img_text/img_text.wxml-->
  2 +
  3 +<view class='top_img'>
  4 +<image src='{{postdata.thumbnail}}'></image>
  5 +
  6 +</view>
  7 +<view class='text_title'>{{postdata.title}}</view>
  8 +<view class='text_content'>
  9 + <import src="../../wxParse/wxParse.wxml" />
  10 + <template is='wxParse' data='{{wxParseData:content.nodes}}' />
  11 +</view>
  1 +/* pages/img_text/img_text.wxss */
  2 +.top_img{
  3 + height:360rpx;
  4 + overflow: hidden;
  5 +}
  6 +.top_img image{
  7 + width:100%;
  8 + height: 100%;
  9 + display: block;
  10 +}
  11 +.text_title{
  12 + text-align: center;
  13 + color:#211F1D;
  14 + font-size:36rpx;
  15 + font-weight: bold;
  16 + padding:33rpx 0;
  17 +}
  18 +.text_content{
  19 + text-indent: 50rpx;
  20 + margin: 0 34rpx 30rpx 34rpx;
  21 + color:#252729;
  22 + font-size:30rpx;
  23 + line-height: 56rpx;
  24 +}
  1 +const app=getApp();
  2 +import NumberAnimate from "../../utils/NumberAnimate.js";
  3 +var QQMapWX = require('../../libs/qqmap-wx-jssdk.js');
  4 +var qqmapsdk;
  5 +Page({
  6 +
  7 + /**
  8 + * 页面的初始数据
  9 + */
  10 + data: {
  11 + postdata:'',
  12 + city:'',
  13 + province:''
  14 + },
  15 + // 手机号授权
  16 + getPhoneNumber: function (e) {
  17 + let that=this;
  18 + wx.login({
  19 + success: function (s) {
  20 + let url = 'wxapp/public/getSessionKey';
  21 + if (s.code) {
  22 + var code = s.code;
  23 + var param = {
  24 + code: code
  25 + }
  26 + app.post(url, param).then((res) => {
  27 + that.login_phone(res.openid, res.session_key, e.detail.encryptedData, e.detail.iv);
  28 + }).catch((errMsg) => {
  29 + console.log(errMsg);
  30 + })
  31 + }
  32 + }
  33 + });
  34 + },
  35 + //到预约页
  36 + goappintment(){
  37 + wx.navigateTo({
  38 + url: '/pages/appointment/appintment',
  39 + success: function(res) {},
  40 + fail: function(res) {},
  41 + complete: function(res) {},
  42 + })
  43 + },
  44 + login_phone(openid, session_key, encrypted_data, iv ){
  45 + let that = this;
  46 + let param = {
  47 + openid: openid,
  48 + session_key: session_key,
  49 + encrypted_data: encrypted_data,
  50 + iv: iv
  51 + }
  52 + let url = 'wxapp/public/login_phone';
  53 + app.post(url, param).then((res) => {
  54 + wx.navigateTo({
  55 + url: '/pages/appointment/appintment',
  56 + success: function(res) {},
  57 + fail: function(res) {},
  58 + complete: function(res) {},
  59 + })
  60 + }).catch((errMsg) => {
  61 + console.log(errMsg);
  62 + })
  63 +
  64 + },
  65 + // 数字滚动
  66 + animate: function () {
  67 + let that=this;
  68 + this.setData({
  69 + num1: '',
  70 + });
  71 + let num1 = parseInt(that.data.postdata.num.kg);
  72 + // let num1 = 906037;
  73 + let n1 = new NumberAnimate({
  74 + from: num1,//开始时的数字
  75 + speed: 5000,// 总时间
  76 + refreshTime: 100,// 刷新一次的时间
  77 + decimals: 0,//小数点后的位数
  78 + onUpdate: () => {//更新回调函数
  79 + this.setData({
  80 + num1: n1.tempValue
  81 + });
  82 + },
  83 + onComplete: () => {//完成回调函数
  84 + }
  85 + });
  86 + },
  87 + getindexdata(){
  88 + let that=this;
  89 + let url ='home/home/index';
  90 + let header={
  91 + 'XX-Token':wx.getStorageSync('token')
  92 + }
  93 + app.post(url,{},header).then((res)=>{
  94 + that.setData({
  95 + postdata:res
  96 + })
  97 + that.animate();
  98 + }).catch((err)=>{
  99 + console.log(err)
  100 + })
  101 + },
  102 + /**
  103 + * 生命周期函数--监听页面加载
  104 + */
  105 + onLoad: function (options) {
  106 + let that=this;
  107 + //注册腾讯地图
  108 + qqmapsdk = new QQMapWX({
  109 + key: 'GERBZ-FTDR6-M4HS4-MRP44-25KPT-UCBBV'
  110 + });
  111 + //获取用户省市位置
  112 + wx.getLocation({
  113 + success: function(res) {
  114 + let location={
  115 + latitude: res.latitude,
  116 + longitude: res.longitude
  117 + }
  118 + qqmapsdk.search({
  119 + keyword:'全部',
  120 + location: location,
  121 + success: function (res) {
  122 + let city = res.data[0].ad_info.city;
  123 + let province = res.data[0].ad_info.province;
  124 + app.globalData.city = city;
  125 + that.setData({
  126 + province: province,
  127 + city: city
  128 + })
  129 + },
  130 + fail: function (res) {
  131 + },
  132 + complete: function (res) {
  133 + }
  134 + });
  135 + },
  136 + })
  137 + },
  138 + /**
  139 + * 生命周期函数--监听页面初次渲染完成
  140 + */
  141 + onReady: function () {
  142 +
  143 + },
  144 + /**
  145 + * 生命周期函数--监听页面显示
  146 + */
  147 + onShow: function () {
  148 + let that=this;
  149 +
  150 + that.getindexdata();
  151 + },
  152 +
  153 + /**
  154 + * 生命周期函数--监听页面隐藏
  155 + */
  156 + onHide: function () {
  157 +
  158 + },
  159 +
  160 + /**
  161 + * 生命周期函数--监听页面卸载
  162 + */
  163 + onUnload: function () {
  164 +
  165 + },
  166 +
  167 + /**
  168 + * 页面相关事件处理函数--监听用户下拉动作
  169 + */
  170 + onPullDownRefresh: function () {
  171 +
  172 + },
  173 +
  174 + /**
  175 + * 页面上拉触底事件的处理函数
  176 + */
  177 + onReachBottom: function () {
  178 +
  179 + },
  180 +
  181 + /**
  182 + * 用户点击右上角分享
  183 + */
  184 + onShareAppMessage: function () {
  185 +
  186 + }
  187 +})
  1 +{"navigationBarTitleText": "象和家"}
  1 +<view class='index_header'>
  2 + <view class='header_top'>
  3 + <view class='header_top_left'>
  4 + {{province}}{{city}}
  5 + <view class='tri_box'>
  6 + <image src='../imgs/tri.png'></image>
  7 + </view>
  8 + </view>
  9 + <view class='header_top_rigth'>谢谢你这么有爱心来看我</view>
  10 + </view>
  11 + <view class='header_main'>
  12 + <view>互联网+衣服环保回收品牌</view>
  13 + <view class='num_box'>
  14 + <view class='num_inbox'>{{num1}}
  15 + <text>件</text>
  16 + </view>
  17 + </view>
  18 + <view class='header_txt'>累计再利用衣服</view>
  19 + </view>
  20 + <view class="waveWrapper waveAnimation">
  21 + <view class="waveWrapperInner bgTop">
  22 + <view class="wave waveTop">
  23 + <!-- <image mode='widthFix' src="../imgs/alin01.png"></image> -->
  24 + </view>
  25 + </view>
  26 + <view class="waveWrapperInner bgMiddle">
  27 + <view class="wave waveMiddle">
  28 + <image mode='widthFix' src="../imgs/alin02.png"></image>
  29 + </view>
  30 + </view>
  31 + <view class="waveWrapperInner bgBottom">
  32 + <view class="wave waveBottom">
  33 + <image mode='widthFix' src="../imgs/alin03.png"></image>
  34 + </view>
  35 + </view>
  36 + </view>
  37 +</view>
  38 +
  39 +
  40 +<view class='header_center'>
  41 + <view class='center_item'>
  42 + <view class='item_img'>
  43 + <image src='../imgs/aicon@2x.png'></image>
  44 + </view>
  45 + <view>免运费</view>
  46 + </view>
  47 + <view class='center_item' >
  48 + <view class='item_img'>
  49 + <image src='../imgs/aicon@2x.png'></image>
  50 + </view>
  51 + <view>在线预约</view>
  52 + </view>
  53 + <view class='center_item'>
  54 + <view class='item_img'>
  55 + <image src='../imgs/aicon@2x.png'></image>
  56 + </view>
  57 + <view>上门取件</view>
  58 + </view>
  59 +</view>
  60 +<view class='icon_box'>
  61 + <view class='icon_cell' >
  62 + <view class='cell_img'>
  63 + <image src='../imgs/aicon02@2x.png'></image>
  64 + </view>
  65 + <text>衣服</text>
  66 + </view>
  67 + <view class='icon_cell' >
  68 + <view class='cell_img'>
  69 + <image src='../imgs/aicon03@2x.png'></image>
  70 + </view>
  71 + <text>鞋帽</text>
  72 + </view>
  73 + <view class='icon_cell' >
  74 + <view class='cell_img'>
  75 + <image src='../imgs/aicon04@2x.png'></image>
  76 + </view>
  77 + <text>包包</text>
  78 + </view>
  79 + <view class='icon_cell' >
  80 + <view class='cell_img'>
  81 + <image src='../imgs/aicon05@2x.png'></image>
  82 + </view>
  83 + <text>其他</text>
  84 + </view>
  85 +</view>
  86 +<view class='adv_box'>
  87 + <view class='adv_left'>最新公告 :</view>
  88 + <swiper autoplay="true " circular="true " interval="2000 ">
  89 + <swiper-item wx:for='{{postdata.notice}}' wx:key>
  90 + <navigator url="/pages/img_text/img_text?state=4&id={{item.id}}" hover-class="other-navigator-hover">
  91 + {{item.title}}
  92 + </navigator>
  93 + </swiper-item>
  94 + </swiper>
  95 +</view>
  96 +<button class='app' open-type='getPhoneNumber' wx:if='{{postdata.is_mobile==0}}' bindgetphonenumber="getPhoneNumber">立即预约</button>
  97 +<view class='app' bindtap="goappintment" wx:else>立即预约</view>
  98 +<view class='icon_box'>
  99 + <navigator class='in_cell' url='/pages/img_text/img_text?state=1' hover-class="other-navigator-hover ">
  100 + <view class='in_cellimg'>
  101 + <image src='../imgs/aicon08@2x.png'></image>
  102 + </view>
  103 + <text>开通城市</text>
  104 + </navigator>
  105 + <navigator class='in_cell' url='/pages/img_text/img_text?state=2' hover-class="other-navigator-hover ">
  106 + <view class='in_cellimg'>
  107 + <image src='../imgs/aicon09@2x.png'></image>
  108 + </view>
  109 + <text>预约流程</text>
  110 + </navigator>
  111 + <navigator class='in_cell' url='/pages/service/service' hover-class="other-navigator-hover ">
  112 + <view class='in_cellimg'>
  113 + <image src='../imgs/aicon10@2x.png'></image>
  114 + </view>
  115 + <text>客服中心</text>
  116 + </navigator>
  117 +</view>
  1 +.index_header{
  2 + background: #8DE063;
  3 + padding:0 32rpx 100rpx 32rpx;
  4 + color:#fff;
  5 + font-size:30rpx;
  6 + position: relative;
  7 +
  8 +
  9 +}
  10 +.header_top{
  11 + display: flex;
  12 + align-items: center;
  13 + justify-content: space-between;
  14 +}
  15 +.header_top_left{
  16 + position: relative;
  17 + padding:0 40rpx 0 20rpx;
  18 + text-align: center;
  19 + line-height: 60rpx;
  20 + height: 60rpx;
  21 + color:#fff;
  22 + font-size: 26rpx;
  23 + background: #7BD64D;
  24 + border-radius: 30rpx;
  25 +}
  26 +.tri_box{
  27 +height:17rpx;
  28 +width:17rpx;
  29 +position:absolute;
  30 +overflow:hidden;
  31 +right:14rpx;
  32 +bottom:20rpx;
  33 +z-index:3;
  34 +
  35 +}
  36 +.tri_box image{
  37 + display: block;
  38 + width:100%;
  39 + height: 100%;
  40 +}
  41 +.header_top_rigth{
  42 + width:430rpx;
  43 + height: 60rpx;
  44 + text-align: center;
  45 + line-height: 60rpx;
  46 + color:#fff;
  47 + font-size:30rpx;
  48 + font-weight: bold;
  49 + border-radius: 30rpx;
  50 + background: #7BD64D;
  51 +}
  52 +.header_main{
  53 + padding:30rpx 0 20rpx 0;
  54 + display: flex;
  55 + flex-direction: column;
  56 + align-items: center;
  57 +}
  58 +.num_box{
  59 + margin: 23rpx 0 25rpx 0;
  60 + width:255rpx;
  61 + height: 84rpx;
  62 + display: flex;
  63 + justify-content: center;
  64 + align-items: center;
  65 + background: rgba(235,250,227,1);
  66 + border-radius: 42rpx;
  67 +}
  68 +.num_inbox{
  69 + width: 231rpx;
  70 + height: 60rpx;
  71 + color:#46D043;
  72 + font-size:36rpx;
  73 + background: #FFFFFF;
  74 + border-radius: 30rpx;
  75 + display: flex;
  76 + justify-content: center;
  77 + align-items: center;
  78 +}
  79 +.header_txt{
  80 + color:#fff;
  81 + font-size:26rpx;
  82 + font-weight: bold;
  83 +}
  84 +.header_center{
  85 + margin: 30rpx 90rpx 37rpx 90rpx;
  86 + display: flex;
  87 + align-items: center;
  88 + justify-content: space-between;
  89 +}
  90 +.center_item{
  91 + display: flex;
  92 + align-items: cneter;
  93 + justify-content: cneter;
  94 + color:#979DA8;
  95 + font-size:26rpx;
  96 +}
  97 +.item_img{
  98 + margin: 0 13rpx 0 0;
  99 + width:29rpx;
  100 + height: 36rpx;
  101 + box-sizing: border-box;
  102 +}
  103 +.item_img image{
  104 + width:100%;
  105 + height: 100%;
  106 +}
  107 +.icon_box{
  108 +display: flex;
  109 + align-items: center;
  110 +justify-content: space-between;
  111 +margin: 0 100rpx 20rpx 100rpx;
  112 +text-align: center;
  113 +}
  114 +.icon_cell{
  115 + color:#979DA8;
  116 + font-size: 26rpx;
  117 +}
  118 +.cell_img{
  119 + width:84rpx;
  120 + height: 84rpx;
  121 + border-radius: 50%;
  122 + overflow: hidden;
  123 +}
  124 +.cell_img image{
  125 +width:100%;
  126 +height: 100%;
  127 +border-radius: 50%;
  128 +}
  129 +.adv_box{
  130 + display: flex;
  131 + justify-items: center;
  132 + border:1rpx solid #EBEBEB;
  133 + margin: 37rpx 0 27rpx 0;
  134 + color:#53555C;
  135 + font-size:22rpx;
  136 + padding:0 40rpx;
  137 + height: 49rpx;
  138 + line-height: 49rpx;
  139 +}
  140 +.adv_left{
  141 + color:#7BD64D;
  142 + margin: 0 10rpx 0 0;
  143 +}
  144 +.app{
  145 + width:213rpx;
  146 + height: 213rpx;
  147 + line-height: 213rpx;
  148 + margin: 0 auto 20rpx auto;
  149 + color:#fff;
  150 + font-size:36rpx;
  151 + text-align: center;
  152 + border-radius: 50%;
  153 + background: #8DE063;
  154 + box-shadow: #D5D5DD 0 0 10rpx 5rpx;
  155 +}
  156 +.in_cell{
  157 + display: flex;
  158 + align-items: center;
  159 + justify-content: center;
  160 + flex-direction: column;
  161 + color:#252629;
  162 + font-size:26rpx;
  163 +}
  164 +.in_cellimg{
  165 + width:100rpx;
  166 + height: 100rpx;
  167 + border-radius: 50%;
  168 + overflow: hidden;
  169 + margin: 0 0 10rpx 0;
  170 +}
  171 +.in_cellimg image{
  172 + width:100%;
  173 + height: 100%;
  174 + display: block;
  175 +}
  176 +.waveWrapper {
  177 + overflow: hidden;
  178 + width: 100%;
  179 + position: absolute;
  180 + left: 0;
  181 + bottom:-1rpx;
  182 + height: 100rpx;
  183 + z-index:300;
  184 +}
  185 +.waveWrapper image {
  186 + width: 100%;
  187 + height: 100%;
  188 +}
  189 +
  190 +.waveWrapperInner {
  191 + position: absolute;
  192 + width: 100%;
  193 + overflow: hidden;
  194 + bottom: -1px;
  195 + height: 100%;
  196 +}
  197 +
  198 +.bgTop {
  199 + z-index: 15;
  200 + opacity: 0.5;
  201 +}
  202 +
  203 +.bgMiddle {
  204 + z-index: 10;
  205 + opacity: 0.75;
  206 +}
  207 +
  208 +.bgBottom {
  209 + z-index: 5;
  210 +}
  211 +
  212 +.wave {
  213 + position: absolute;
  214 + left: 0;
  215 + width: 200%;
  216 + bottom: 0;
  217 + transform-origin: center bottom;
  218 +}
  219 +
  220 +.waveAnimation .waveTop {
  221 + animation: move-wave 10s linear infinite;
  222 +
  223 +}
  224 +
  225 +.waveAnimation .waveMiddle {
  226 + animation: move_wave 10s linear infinite;
  227 +}
  228 +
  229 +.waveAnimation .waveBottom {
  230 + animation: move_wave 15s linear infinite;
  231 +}
  232 +@-webkit-keyframes move_wave {
  233 + 0% {
  234 + transform: translateX(0) translateZ(0) scaleY(0.75);
  235 + }
  236 +
  237 + 50% {
  238 + transform: translateX(-25%) translateZ(0) scaleY(0.55);
  239 + }
  240 +
  241 + 100% {
  242 + transform: translateX(-50%) translateZ(0) scaleY(0.75);
  243 + }
  244 +}
  245 +
  246 +@keyframes move_wave {
  247 + 0% {
  248 + transform: translateX(0) translateZ(0) scaleY(0.75);
  249 + }
  250 +
  251 + 50% {
  252 + transform: translateX(-25%) translateZ(0) scaleY(0.55);
  253 + }
  254 +
  255 + 100% {
  256 + transform: translateX(-50%) translateZ(0) scaleY(0.75);
  257 + }
  258 +}
  259 +swiper{
  260 + height: auto;
  261 + width:500rpx;
  262 +}
  1 +//logs.js
  2 +const util = require('../../utils/util.js')
  3 +
  4 +Page({
  5 + data: {
  6 + logs: []
  7 + },
  8 + onLoad: function () {
  9 + this.setData({
  10 + logs: (wx.getStorageSync('logs') || []).map(log => {
  11 + return util.formatTime(new Date(log))
  12 + })
  13 + })
  14 + }
  15 +})
  1 +{
  2 + "navigationBarTitleText": "查看启动日志"
  3 +}
  1 +<!--logs.wxml-->
  2 +<view class="container log-list">
  3 + <block wx:for="{{logs}}" wx:for-item="log">
  4 + <text class="log-item">{{index + 1}}. {{log}}</text>
  5 + </block>
  6 +</view>
  1 +.log-list {
  2 + display: flex;
  3 + flex-direction: column;
  4 + padding: 40rpx;
  5 +}
  6 +.log-item {
  7 + margin: 10rpx;
  8 +}
  1 +// pages/love/love.js
  2 +const app=getApp();
  3 +Page({
  4 +
  5 + /**
  6 + * 页面的初始数据
  7 + */
  8 + data: {
  9 + mode: "scaleToFill",
  10 + arr: ['../imgs/abanner01@2x.png', '../imgs/abanner01@2x.png', '../imgs/abanner01@2x.png'],
  11 + indicatorDots: true,
  12 + autoplay: true,
  13 + interval: 2000,
  14 + duration: 1000,
  15 + },
  16 +//爱心头条
  17 +getpostdata(){
  18 + let that=this;
  19 + let url ='home/Elephant/index';
  20 + app.post(url,{}).then((res)=>{
  21 + that.setData({
  22 + postdata:res
  23 + })
  24 + }).catch((err)=>{
  25 + console.log(err)
  26 + })
  27 +
  28 +},
  29 + /**
  30 + * 生命周期函数--监听页面加载
  31 + */
  32 + onLoad: function (options) {
  33 + let that=this;
  34 + that.getpostdata();
  35 +
  36 + },
  37 +
  38 + /**
  39 + * 生命周期函数--监听页面初次渲染完成
  40 + */
  41 + onReady: function () {
  42 +
  43 + },
  44 +
  45 + /**
  46 + * 生命周期函数--监听页面显示
  47 + */
  48 + onShow: function () {
  49 +
  50 + },
  51 +
  52 + /**
  53 + * 生命周期函数--监听页面隐藏
  54 + */
  55 + onHide: function () {
  56 +
  57 + },
  58 +
  59 + /**
  60 + * 生命周期函数--监听页面卸载
  61 + */
  62 + onUnload: function () {
  63 +
  64 + },
  65 +
  66 + /**
  67 + * 页面相关事件处理函数--监听用户下拉动作
  68 + */
  69 + onPullDownRefresh: function () {
  70 +
  71 + },
  72 +
  73 + /**
  74 + * 页面上拉触底事件的处理函数
  75 + */
  76 + onReachBottom: function () {
  77 +
  78 + },
  79 +
  80 + /**
  81 + * 用户点击右上角分享
  82 + */
  83 + onShareAppMessage: function () {
  84 +
  85 + }
  86 +})
  1 +{"navigationBarTitleText": "象爱心"}