作者 xudada

Merge remote-tracking branch 'origin/master'

@@ -34,6 +34,11 @@ @@ -34,6 +34,11 @@
34 } 34 }
35 } 35 }
36 }, 36 },
  37 + "abab": {
  38 + "version": "1.0.4",
  39 + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
  40 + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4="
  41 + },
37 "abbrev": { 42 "abbrev": {
38 "version": "1.1.1", 43 "version": "1.1.1",
39 "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 44 "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
@@ -72,6 +77,21 @@ @@ -72,6 +77,21 @@
72 } 77 }
73 } 78 }
74 }, 79 },
  80 + "acorn-globals": {
  81 + "version": "1.0.9",
  82 + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
  83 + "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=",
  84 + "requires": {
  85 + "acorn": "^2.1.0"
  86 + },
  87 + "dependencies": {
  88 + "acorn": {
  89 + "version": "2.7.0",
  90 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
  91 + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc="
  92 + }
  93 + }
  94 + },
75 "acorn-jsx": { 95 "acorn-jsx": {
76 "version": "5.0.1", 96 "version": "5.0.1",
77 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", 97 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz",
@@ -487,6 +507,11 @@ @@ -487,6 +507,11 @@
487 "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", 507 "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
488 "dev": true 508 "dev": true
489 }, 509 },
  510 + "array-equal": {
  511 + "version": "1.0.0",
  512 + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
  513 + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM="
  514 + },
490 "array-find-index": { 515 "array-find-index": {
491 "version": "1.0.2", 516 "version": "1.0.2",
492 "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", 517 "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
@@ -524,7 +549,6 @@ @@ -524,7 +549,6 @@
524 "version": "0.2.4", 549 "version": "0.2.4",
525 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 550 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
526 "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 551 "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
527 - "dev": true,  
528 "requires": { 552 "requires": {
529 "safer-buffer": "~2.1.0" 553 "safer-buffer": "~2.1.0"
530 } 554 }
@@ -570,8 +594,7 @@ @@ -570,8 +594,7 @@
570 "assert-plus": { 594 "assert-plus": {
571 "version": "1.0.0", 595 "version": "1.0.0",
572 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 596 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
573 - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",  
574 - "dev": true 597 + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
575 }, 598 },
576 "assign-symbols": { 599 "assign-symbols": {
577 "version": "1.0.0", 600 "version": "1.0.0",
@@ -622,8 +645,7 @@ @@ -622,8 +645,7 @@
622 "asynckit": { 645 "asynckit": {
623 "version": "0.4.0", 646 "version": "0.4.0",
624 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 647 "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
625 - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",  
626 - "dev": true 648 + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
627 }, 649 },
628 "atob": { 650 "atob": {
629 "version": "2.1.2", 651 "version": "2.1.2",
@@ -648,14 +670,12 @@ @@ -648,14 +670,12 @@
648 "aws-sign2": { 670 "aws-sign2": {
649 "version": "0.7.0", 671 "version": "0.7.0",
650 "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 672 "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
651 - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",  
652 - "dev": true 673 + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
653 }, 674 },
654 "aws4": { 675 "aws4": {
655 "version": "1.8.0", 676 "version": "1.8.0",
656 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", 677 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
657 - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",  
658 - "dev": true 678 + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
659 }, 679 },
660 "axios": { 680 "axios": {
661 "version": "0.19.0", 681 "version": "0.19.0",
@@ -1625,7 +1645,6 @@ @@ -1625,7 +1645,6 @@
1625 "version": "1.0.2", 1645 "version": "1.0.2",
1626 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 1646 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
1627 "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 1647 "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
1628 - "dev": true,  
1629 "requires": { 1648 "requires": {
1630 "tweetnacl": "^0.14.3" 1649 "tweetnacl": "^0.14.3"
1631 } 1650 }
@@ -1960,11 +1979,28 @@ @@ -1960,11 +1979,28 @@
1960 "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==", 1979 "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==",
1961 "dev": true 1980 "dev": true
1962 }, 1981 },
  1982 + "canvg": {
  1983 + "version": "1.5.3",
  1984 + "resolved": "https://registry.npmjs.org/canvg/-/canvg-1.5.3.tgz",
  1985 + "integrity": "sha512-7Gn2IuQzvUQWPIuZuFHrzsTM0gkPz2RRT9OcbdmA03jeKk8kltrD8gqUzNX15ghY/4PV5bbe5lmD6yDLDY6Ybg==",
  1986 + "requires": {
  1987 + "jsdom": "^8.1.0",
  1988 + "rgbcolor": "^1.0.1",
  1989 + "stackblur-canvas": "^1.4.1",
  1990 + "xmldom": "^0.1.22"
  1991 + },
  1992 + "dependencies": {
  1993 + "stackblur-canvas": {
  1994 + "version": "1.4.1",
  1995 + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-1.4.1.tgz",
  1996 + "integrity": "sha1-hJqm+UsnL/JvZHH6QTDtH35HlVs="
  1997 + }
  1998 + }
  1999 + },
1963 "caseless": { 2000 "caseless": {
1964 "version": "0.12.0", 2001 "version": "0.12.0",
1965 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 2002 "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
1966 - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",  
1967 - "dev": true 2003 + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
1968 }, 2004 },
1969 "center-align": { 2005 "center-align": {
1970 "version": "0.1.3", 2006 "version": "0.1.3",
@@ -2423,7 +2459,6 @@ @@ -2423,7 +2459,6 @@
2423 "version": "1.0.8", 2459 "version": "1.0.8",
2424 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 2460 "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
2425 "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 2461 "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
2426 - "dev": true,  
2427 "requires": { 2462 "requires": {
2428 "delayed-stream": "~1.0.0" 2463 "delayed-stream": "~1.0.0"
2429 } 2464 }
@@ -2919,6 +2954,19 @@ @@ -2919,6 +2954,19 @@
2919 "source-map": "^0.5.3" 2954 "source-map": "^0.5.3"
2920 } 2955 }
2921 }, 2956 },
  2957 + "cssom": {
  2958 + "version": "0.3.8",
  2959 + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
  2960 + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
  2961 + },
  2962 + "cssstyle": {
  2963 + "version": "0.2.37",
  2964 + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
  2965 + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
  2966 + "requires": {
  2967 + "cssom": "0.3.x"
  2968 + }
  2969 + },
2922 "currently-unhandled": { 2970 "currently-unhandled": {
2923 "version": "0.4.1", 2971 "version": "0.4.1",
2924 "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", 2972 "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
@@ -2938,7 +2986,6 @@ @@ -2938,7 +2986,6 @@
2938 "version": "1.14.1", 2986 "version": "1.14.1",
2939 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 2987 "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
2940 "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 2988 "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
2941 - "dev": true,  
2942 "requires": { 2989 "requires": {
2943 "assert-plus": "^1.0.0" 2990 "assert-plus": "^1.0.0"
2944 } 2991 }
@@ -3054,8 +3101,7 @@ @@ -3054,8 +3101,7 @@
3054 "delayed-stream": { 3101 "delayed-stream": {
3055 "version": "1.0.0", 3102 "version": "1.0.0",
3056 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 3103 "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
3057 - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",  
3058 - "dev": true 3104 + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
3059 }, 3105 },
3060 "delegates": { 3106 "delegates": {
3061 "version": "1.0.0", 3107 "version": "1.0.0",
@@ -3202,7 +3248,6 @@ @@ -3202,7 +3248,6 @@
3202 "version": "0.1.2", 3248 "version": "0.1.2",
3203 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 3249 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
3204 "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 3250 "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
3205 - "dev": true,  
3206 "requires": { 3251 "requires": {
3207 "jsbn": "~0.1.0", 3252 "jsbn": "~0.1.0",
3208 "safer-buffer": "^2.1.0" 3253 "safer-buffer": "^2.1.0"
@@ -3364,6 +3409,26 @@ @@ -3364,6 +3409,26 @@
3364 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 3409 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
3365 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 3410 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
3366 }, 3411 },
  3412 + "escodegen": {
  3413 + "version": "1.14.1",
  3414 + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz",
  3415 + "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==",
  3416 + "requires": {
  3417 + "esprima": "^4.0.1",
  3418 + "estraverse": "^4.2.0",
  3419 + "esutils": "^2.0.2",
  3420 + "optionator": "^0.8.1",
  3421 + "source-map": "~0.6.1"
  3422 + },
  3423 + "dependencies": {
  3424 + "source-map": {
  3425 + "version": "0.6.1",
  3426 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
  3427 + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
  3428 + "optional": true
  3429 + }
  3430 + }
  3431 + },
3367 "eslint": { 3432 "eslint": {
3368 "version": "5.16.0", 3433 "version": "5.16.0",
3369 "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", 3434 "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz",
@@ -3610,8 +3675,7 @@ @@ -3610,8 +3675,7 @@
3610 "extend": { 3675 "extend": {
3611 "version": "3.0.2", 3676 "version": "3.0.2",
3612 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 3677 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
3613 - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",  
3614 - "dev": true 3678 + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
3615 }, 3679 },
3616 "extend-shallow": { 3680 "extend-shallow": {
3617 "version": "3.0.2", 3681 "version": "3.0.2",
@@ -3764,8 +3828,7 @@ @@ -3764,8 +3828,7 @@
3764 "extsprintf": { 3828 "extsprintf": {
3765 "version": "1.3.0", 3829 "version": "1.3.0",
3766 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 3830 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
3767 - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",  
3768 - "dev": true 3831 + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
3769 }, 3832 },
3770 "fast-deep-equal": { 3833 "fast-deep-equal": {
3771 "version": "2.0.1", 3834 "version": "2.0.1",
@@ -3980,14 +4043,12 @@ @@ -3980,14 +4043,12 @@
3980 "forever-agent": { 4043 "forever-agent": {
3981 "version": "0.6.1", 4044 "version": "0.6.1",
3982 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 4045 "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
3983 - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",  
3984 - "dev": true 4046 + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
3985 }, 4047 },
3986 "form-data": { 4048 "form-data": {
3987 "version": "2.3.3", 4049 "version": "2.3.3",
3988 "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 4050 "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
3989 "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 4051 "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
3990 - "dev": true,  
3991 "requires": { 4052 "requires": {
3992 "asynckit": "^0.4.0", 4053 "asynckit": "^0.4.0",
3993 "combined-stream": "^1.0.6", 4054 "combined-stream": "^1.0.6",
@@ -4731,7 +4792,6 @@ @@ -4731,7 +4792,6 @@
4731 "version": "0.1.7", 4792 "version": "0.1.7",
4732 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 4793 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
4733 "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 4794 "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
4734 - "dev": true,  
4735 "requires": { 4795 "requires": {
4736 "assert-plus": "^1.0.0" 4796 "assert-plus": "^1.0.0"
4737 } 4797 }
@@ -4814,14 +4874,12 @@ @@ -4814,14 +4874,12 @@
4814 "har-schema": { 4874 "har-schema": {
4815 "version": "2.0.0", 4875 "version": "2.0.0",
4816 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 4876 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
4817 - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",  
4818 - "dev": true 4877 + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
4819 }, 4878 },
4820 "har-validator": { 4879 "har-validator": {
4821 "version": "5.1.3", 4880 "version": "5.1.3",
4822 "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", 4881 "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
4823 "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", 4882 "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
4824 - "dev": true,  
4825 "requires": { 4883 "requires": {
4826 "ajv": "^6.5.5", 4884 "ajv": "^6.5.5",
4827 "har-schema": "^2.0.0" 4885 "har-schema": "^2.0.0"
@@ -5119,7 +5177,6 @@ @@ -5119,7 +5177,6 @@
5119 "version": "1.2.0", 5177 "version": "1.2.0",
5120 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 5178 "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
5121 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 5179 "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
5122 - "dev": true,  
5123 "requires": { 5180 "requires": {
5124 "assert-plus": "^1.0.0", 5181 "assert-plus": "^1.0.0",
5125 "jsprim": "^1.2.2", 5182 "jsprim": "^1.2.2",
@@ -5449,8 +5506,7 @@ @@ -5449,8 +5506,7 @@
5449 "is-typedarray": { 5506 "is-typedarray": {
5450 "version": "1.0.0", 5507 "version": "1.0.0",
5451 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 5508 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
5452 - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",  
5453 - "dev": true 5509 + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
5454 }, 5510 },
5455 "is-utf8": { 5511 "is-utf8": {
5456 "version": "0.2.1", 5512 "version": "0.2.1",
@@ -5483,8 +5539,7 @@ @@ -5483,8 +5539,7 @@
5483 "isstream": { 5539 "isstream": {
5484 "version": "0.1.2", 5540 "version": "0.1.2",
5485 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 5541 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
5486 - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",  
5487 - "dev": true 5542 + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
5488 }, 5543 },
5489 "js-base64": { 5544 "js-base64": {
5490 "version": "2.5.1", 5545 "version": "2.5.1",
@@ -5539,8 +5594,38 @@ @@ -5539,8 +5594,38 @@
5539 "jsbn": { 5594 "jsbn": {
5540 "version": "0.1.1", 5595 "version": "0.1.1",
5541 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 5596 "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
5542 - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",  
5543 - "dev": true 5597 + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
  5598 + },
  5599 + "jsdom": {
  5600 + "version": "8.5.0",
  5601 + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-8.5.0.tgz",
  5602 + "integrity": "sha1-1Nj12/J2hjW2KmKCO5R89wcevJg=",
  5603 + "requires": {
  5604 + "abab": "^1.0.0",
  5605 + "acorn": "^2.4.0",
  5606 + "acorn-globals": "^1.0.4",
  5607 + "array-equal": "^1.0.0",
  5608 + "cssom": ">= 0.3.0 < 0.4.0",
  5609 + "cssstyle": ">= 0.2.34 < 0.3.0",
  5610 + "escodegen": "^1.6.1",
  5611 + "iconv-lite": "^0.4.13",
  5612 + "nwmatcher": ">= 1.3.7 < 2.0.0",
  5613 + "parse5": "^1.5.1",
  5614 + "request": "^2.55.0",
  5615 + "sax": "^1.1.4",
  5616 + "symbol-tree": ">= 3.1.0 < 4.0.0",
  5617 + "tough-cookie": "^2.2.0",
  5618 + "webidl-conversions": "^3.0.1",
  5619 + "whatwg-url": "^2.0.1",
  5620 + "xml-name-validator": ">= 2.0.1 < 3.0.0"
  5621 + },
  5622 + "dependencies": {
  5623 + "acorn": {
  5624 + "version": "2.7.0",
  5625 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
  5626 + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc="
  5627 + }
  5628 + }
5544 }, 5629 },
5545 "jsesc": { 5630 "jsesc": {
5546 "version": "1.3.0", 5631 "version": "1.3.0",
@@ -5557,8 +5642,7 @@ @@ -5557,8 +5642,7 @@
5557 "json-schema": { 5642 "json-schema": {
5558 "version": "0.2.3", 5643 "version": "0.2.3",
5559 "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 5644 "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
5560 - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",  
5561 - "dev": true 5645 + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
5562 }, 5646 },
5563 "json-schema-traverse": { 5647 "json-schema-traverse": {
5564 "version": "0.4.1", 5648 "version": "0.4.1",
@@ -5582,8 +5666,7 @@ @@ -5582,8 +5666,7 @@
5582 "json-stringify-safe": { 5666 "json-stringify-safe": {
5583 "version": "5.0.1", 5667 "version": "5.0.1",
5584 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 5668 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
5585 - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",  
5586 - "dev": true 5669 + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
5587 }, 5670 },
5588 "json5": { 5671 "json5": {
5589 "version": "0.5.1", 5672 "version": "0.5.1",
@@ -5597,11 +5680,50 @@ @@ -5597,11 +5680,50 @@
5597 "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", 5680 "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
5598 "dev": true 5681 "dev": true
5599 }, 5682 },
  5683 + "jspdf": {
  5684 + "version": "1.5.3",
  5685 + "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-1.5.3.tgz",
  5686 + "integrity": "sha512-J9X76xnncMw+wIqb15HeWfPMqPwYxSpPY8yWPJ7rAZN/ZDzFkjCSZObryCyUe8zbrVRNiuCnIeQteCzMn7GnWw==",
  5687 + "requires": {
  5688 + "canvg": "1.5.3",
  5689 + "file-saver": "github:eligrey/FileSaver.js#1.3.8",
  5690 + "html2canvas": "1.0.0-alpha.12",
  5691 + "omggif": "1.0.7",
  5692 + "promise-polyfill": "8.1.0",
  5693 + "stackblur-canvas": "2.2.0"
  5694 + },
  5695 + "dependencies": {
  5696 + "base64-arraybuffer": {
  5697 + "version": "0.1.5",
  5698 + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
  5699 + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
  5700 + },
  5701 + "css-line-break": {
  5702 + "version": "1.0.1",
  5703 + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-1.0.1.tgz",
  5704 + "integrity": "sha1-GfIGOjPpX7KDG4ZEbAuAwYivRQo=",
  5705 + "requires": {
  5706 + "base64-arraybuffer": "^0.1.5"
  5707 + }
  5708 + },
  5709 + "file-saver": {
  5710 + "version": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e",
  5711 + "from": "github:eligrey/FileSaver.js#1.3.8"
  5712 + },
  5713 + "html2canvas": {
  5714 + "version": "1.0.0-alpha.12",
  5715 + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz",
  5716 + "integrity": "sha1-OxmS48mz9WBjw1/WIElPN+uohRM=",
  5717 + "requires": {
  5718 + "css-line-break": "1.0.1"
  5719 + }
  5720 + }
  5721 + }
  5722 + },
5600 "jsprim": { 5723 "jsprim": {
5601 "version": "1.4.1", 5724 "version": "1.4.1",
5602 "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 5725 "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
5603 "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 5726 "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
5604 - "dev": true,  
5605 "requires": { 5727 "requires": {
5606 "assert-plus": "1.0.0", 5728 "assert-plus": "1.0.0",
5607 "extsprintf": "1.3.0", 5729 "extsprintf": "1.3.0",
@@ -5959,14 +6081,12 @@ @@ -5959,14 +6081,12 @@
5959 "mime-db": { 6081 "mime-db": {
5960 "version": "1.40.0", 6082 "version": "1.40.0",
5961 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", 6083 "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
5962 - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",  
5963 - "dev": true 6084 + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
5964 }, 6085 },
5965 "mime-types": { 6086 "mime-types": {
5966 "version": "2.1.24", 6087 "version": "2.1.24",
5967 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", 6088 "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
5968 "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", 6089 "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
5969 - "dev": true,  
5970 "requires": { 6090 "requires": {
5971 "mime-db": "1.40.0" 6091 "mime-db": "1.40.0"
5972 } 6092 }
@@ -9420,11 +9540,15 @@ @@ -9420,11 +9540,15 @@
9420 "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", 9540 "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
9421 "dev": true 9541 "dev": true
9422 }, 9542 },
  9543 + "nwmatcher": {
  9544 + "version": "1.4.4",
  9545 + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz",
  9546 + "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ=="
  9547 + },
9423 "oauth-sign": { 9548 "oauth-sign": {
9424 "version": "0.9.0", 9549 "version": "0.9.0",
9425 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 9550 "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
9426 - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",  
9427 - "dev": true 9551 + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
9428 }, 9552 },
9429 "object-assign": { 9553 "object-assign": {
9430 "version": "4.1.1", 9554 "version": "4.1.1",
@@ -9488,6 +9612,11 @@ @@ -9488,6 +9612,11 @@
9488 } 9612 }
9489 } 9613 }
9490 }, 9614 },
  9615 + "omggif": {
  9616 + "version": "1.0.7",
  9617 + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.7.tgz",
  9618 + "integrity": "sha1-WdLuywJj3oRjWz/riHwMmXPx5J0="
  9619 + },
9491 "on-finished": { 9620 "on-finished": {
9492 "version": "2.3.0", 9621 "version": "2.3.0",
9493 "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 9622 "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@@ -9740,6 +9869,11 @@ @@ -9740,6 +9869,11 @@
9740 "error-ex": "^1.2.0" 9869 "error-ex": "^1.2.0"
9741 } 9870 }
9742 }, 9871 },
  9872 + "parse5": {
  9873 + "version": "1.5.1",
  9874 + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
  9875 + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ="
  9876 + },
9743 "parseurl": { 9877 "parseurl": {
9744 "version": "1.3.3", 9878 "version": "1.3.3",
9745 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 9879 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
@@ -9825,8 +9959,7 @@ @@ -9825,8 +9959,7 @@
9825 "performance-now": { 9959 "performance-now": {
9826 "version": "2.1.0", 9960 "version": "2.1.0",
9827 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 9961 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
9828 - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",  
9829 - "dev": true 9962 + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
9830 }, 9963 },
9831 "pify": { 9964 "pify": {
9832 "version": "3.0.0", 9965 "version": "3.0.0",
@@ -10421,6 +10554,11 @@ @@ -10421,6 +10554,11 @@
10421 "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", 10554 "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
10422 "dev": true 10555 "dev": true
10423 }, 10556 },
  10557 + "promise-polyfill": {
  10558 + "version": "8.1.0",
  10559 + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.0.tgz",
  10560 + "integrity": "sha512-OzSf6gcCUQ01byV4BgwyUCswlaQQ6gzXc23aLQWhicvfX9kfsUiUhgt3CCQej8jDnl8/PhGF31JdHX2/MzF3WA=="
  10561 + },
10424 "proto-list": { 10562 "proto-list": {
10425 "version": "1.2.4", 10563 "version": "1.2.4",
10426 "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", 10564 "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
@@ -10452,8 +10590,7 @@ @@ -10452,8 +10590,7 @@
10452 "psl": { 10590 "psl": {
10453 "version": "1.3.0", 10591 "version": "1.3.0",
10454 "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz", 10592 "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz",
10455 - "integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==",  
10456 - "dev": true 10593 + "integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag=="
10457 }, 10594 },
10458 "public-encrypt": { 10595 "public-encrypt": {
10459 "version": "4.0.3", 10596 "version": "4.0.3",
@@ -11105,7 +11242,6 @@ @@ -11105,7 +11242,6 @@
11105 "version": "2.88.0", 11242 "version": "2.88.0",
11106 "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", 11243 "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
11107 "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", 11244 "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
11108 - "dev": true,  
11109 "requires": { 11245 "requires": {
11110 "aws-sign2": "~0.7.0", 11246 "aws-sign2": "~0.7.0",
11111 "aws4": "^1.8.0", 11247 "aws4": "^1.8.0",
@@ -11132,8 +11268,7 @@ @@ -11132,8 +11268,7 @@
11132 "qs": { 11268 "qs": {
11133 "version": "6.5.2", 11269 "version": "6.5.2",
11134 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 11270 "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
11135 - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",  
11136 - "dev": true 11271 + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
11137 } 11272 }
11138 } 11273 }
11139 }, 11274 },
@@ -11201,6 +11336,11 @@ @@ -11201,6 +11336,11 @@
11201 "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", 11336 "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
11202 "dev": true 11337 "dev": true
11203 }, 11338 },
  11339 + "rgbcolor": {
  11340 + "version": "1.0.1",
  11341 + "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz",
  11342 + "integrity": "sha1-1lBezbMEplldom+ktDMHMGd1lF0="
  11343 + },
11204 "right-align": { 11344 "right-align": {
11205 "version": "0.1.3", 11345 "version": "0.1.3",
11206 "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", 11346 "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
@@ -11334,8 +11474,7 @@ @@ -11334,8 +11474,7 @@
11334 "sax": { 11474 "sax": {
11335 "version": "1.2.4", 11475 "version": "1.2.4",
11336 "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 11476 "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
11337 - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",  
11338 - "dev": true 11477 + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
11339 }, 11478 },
11340 "schema-utils": { 11479 "schema-utils": {
11341 "version": "0.3.0", 11480 "version": "0.3.0",
@@ -11801,7 +11940,6 @@ @@ -11801,7 +11940,6 @@
11801 "version": "1.16.1", 11940 "version": "1.16.1",
11802 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 11941 "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
11803 "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", 11942 "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
11804 - "dev": true,  
11805 "requires": { 11943 "requires": {
11806 "asn1": "~0.2.3", 11944 "asn1": "~0.2.3",
11807 "assert-plus": "^1.0.0", 11945 "assert-plus": "^1.0.0",
@@ -11823,6 +11961,11 @@ @@ -11823,6 +11961,11 @@
11823 "safe-buffer": "^5.1.1" 11961 "safe-buffer": "^5.1.1"
11824 } 11962 }
11825 }, 11963 },
  11964 + "stackblur-canvas": {
  11965 + "version": "2.2.0",
  11966 + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.2.0.tgz",
  11967 + "integrity": "sha512-5Gf8dtlf8k6NbLzuly2NkGrkS/Ahh+I5VUjO7TnFizdJtgpfpLLEdQlLe9umbcnZlitU84kfYjXE67xlSXfhfQ=="
  11968 + },
11826 "stackframe": { 11969 "stackframe": {
11827 "version": "1.0.4", 11970 "version": "1.0.4",
11828 "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.0.4.tgz", 11971 "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.0.4.tgz",
@@ -12017,6 +12160,11 @@ @@ -12017,6 +12160,11 @@
12017 } 12160 }
12018 } 12161 }
12019 }, 12162 },
  12163 + "symbol-tree": {
  12164 + "version": "3.2.4",
  12165 + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
  12166 + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
  12167 + },
12020 "table": { 12168 "table": {
12021 "version": "5.4.6", 12169 "version": "5.4.6",
12022 "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", 12170 "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
@@ -12193,7 +12341,6 @@ @@ -12193,7 +12341,6 @@
12193 "version": "2.4.3", 12341 "version": "2.4.3",
12194 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", 12342 "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
12195 "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", 12343 "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
12196 - "dev": true,  
12197 "requires": { 12344 "requires": {
12198 "psl": "^1.1.24", 12345 "psl": "^1.1.24",
12199 "punycode": "^1.4.1" 12346 "punycode": "^1.4.1"
@@ -12202,11 +12349,15 @@ @@ -12202,11 +12349,15 @@
12202 "punycode": { 12349 "punycode": {
12203 "version": "1.4.1", 12350 "version": "1.4.1",
12204 "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 12351 "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
12205 - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",  
12206 - "dev": true 12352 + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
12207 } 12353 }
12208 } 12354 }
12209 }, 12355 },
  12356 + "tr46": {
  12357 + "version": "0.0.3",
  12358 + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
  12359 + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
  12360 + },
12210 "trim-newlines": { 12361 "trim-newlines": {
12211 "version": "1.0.0", 12362 "version": "1.0.0",
12212 "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", 12363 "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
@@ -12249,7 +12400,6 @@ @@ -12249,7 +12400,6 @@
12249 "version": "0.6.0", 12400 "version": "0.6.0",
12250 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 12401 "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
12251 "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 12402 "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
12252 - "dev": true,  
12253 "requires": { 12403 "requires": {
12254 "safe-buffer": "^5.0.1" 12404 "safe-buffer": "^5.0.1"
12255 } 12405 }
@@ -12257,8 +12407,7 @@ @@ -12257,8 +12407,7 @@
12257 "tweetnacl": { 12407 "tweetnacl": {
12258 "version": "0.14.5", 12408 "version": "0.14.5",
12259 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 12409 "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
12260 - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",  
12261 - "dev": true 12410 + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
12262 }, 12411 },
12263 "type-check": { 12412 "type-check": {
12264 "version": "0.3.2", 12413 "version": "0.3.2",
@@ -12557,8 +12706,7 @@ @@ -12557,8 +12706,7 @@
12557 "uuid": { 12706 "uuid": {
12558 "version": "3.3.2", 12707 "version": "3.3.2",
12559 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", 12708 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
12560 - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",  
12561 - "dev": true 12709 + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
12562 }, 12710 },
12563 "validate-npm-package-license": { 12711 "validate-npm-package-license": {
12564 "version": "3.0.4", 12712 "version": "3.0.4",
@@ -12586,7 +12734,6 @@ @@ -12586,7 +12734,6 @@
12586 "version": "1.10.0", 12734 "version": "1.10.0",
12587 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 12735 "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
12588 "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 12736 "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
12589 - "dev": true,  
12590 "requires": { 12737 "requires": {
12591 "assert-plus": "^1.0.0", 12738 "assert-plus": "^1.0.0",
12592 "core-util-is": "1.0.2", 12739 "core-util-is": "1.0.2",
@@ -12604,6 +12751,11 @@ @@ -12604,6 +12751,11 @@
12604 "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.10.tgz", 12751 "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.10.tgz",
12605 "integrity": "sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ==" 12752 "integrity": "sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ=="
12606 }, 12753 },
  12754 + "vue-count-to": {
  12755 + "version": "1.0.13",
  12756 + "resolved": "https://registry.npmjs.org/vue-count-to/-/vue-count-to-1.0.13.tgz",
  12757 + "integrity": "sha512-6R4OVBVNtQTlcbXu6SJ8ENR35M2/CdWt3Jmv57jOUM+1ojiFmjVGvZPH8DfHpMDSA+ITs+EW5V6qthADxeyYOQ=="
  12758 + },
12607 "vue-hot-reload-api": { 12759 "vue-hot-reload-api": {
12608 "version": "2.3.3", 12760 "version": "2.3.3",
12609 "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.3.tgz", 12761 "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.3.tgz",
@@ -12750,6 +12902,11 @@ @@ -12750,6 +12902,11 @@
12750 "neo-async": "^2.5.0" 12902 "neo-async": "^2.5.0"
12751 } 12903 }
12752 }, 12904 },
  12905 + "webidl-conversions": {
  12906 + "version": "3.0.1",
  12907 + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
  12908 + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
  12909 + },
12753 "webpack": { 12910 "webpack": {
12754 "version": "2.7.0", 12911 "version": "2.7.0",
12755 "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.7.0.tgz", 12912 "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.7.0.tgz",
@@ -13073,6 +13230,15 @@ @@ -13073,6 +13230,15 @@
13073 } 13230 }
13074 } 13231 }
13075 }, 13232 },
  13233 + "whatwg-url": {
  13234 + "version": "2.0.1",
  13235 + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-2.0.1.tgz",
  13236 + "integrity": "sha1-U5ayBD8CDub3BNnEXqhRnnJN5lk=",
  13237 + "requires": {
  13238 + "tr46": "~0.0.3",
  13239 + "webidl-conversions": "^3.0.0"
  13240 + }
  13241 + },
13076 "whet.extend": { 13242 "whet.extend": {
13077 "version": "0.9.9", 13243 "version": "0.9.9",
13078 "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", 13244 "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
@@ -13220,6 +13386,16 @@ @@ -13220,6 +13386,16 @@
13220 "wmf": "~1.0.1" 13386 "wmf": "~1.0.1"
13221 } 13387 }
13222 }, 13388 },
  13389 + "xml-name-validator": {
  13390 + "version": "2.0.1",
  13391 + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
  13392 + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU="
  13393 + },
  13394 + "xmldom": {
  13395 + "version": "0.1.31",
  13396 + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz",
  13397 + "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ=="
  13398 + },
13223 "xtend": { 13399 "xtend": {
13224 "version": "4.0.2", 13400 "version": "4.0.2",
13225 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 13401 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
@@ -26,6 +26,7 @@ @@ -26,6 +26,7 @@
26 "nprogress": "^0.2.0", 26 "nprogress": "^0.2.0",
27 "script-loader": "^0.7.2", 27 "script-loader": "^0.7.2",
28 "vue": "^2.2.2", 28 "vue": "^2.2.2",
  29 + "vue-count-to": "^1.0.13",
29 "vue-i18n": "^8.14.0", 30 "vue-i18n": "^8.14.0",
30 "vue-router": "^2.3.0", 31 "vue-router": "^2.3.0",
31 "vuex": "^2.0.0-rc.6", 32 "vuex": "^2.0.0-rc.6",
  1 +import request from '@/utils/request'
  2 +
  3 +export function searchUser(name) {
  4 + return request({
  5 + url: '/vue-element-admin/search/user',
  6 + method: 'get',
  7 + params: { name }
  8 + })
  9 +}
  10 +
  11 +export function transactionList(query) {
  12 + return request({
  13 + url: '/vue-element-admin/transaction/list',
  14 + method: 'get',
  15 + params: query
  16 + })
  17 +}
  1 +<template>
  2 +<!-- href="https://github.com/PanJiaChen/vue-element-admin"-->
  3 + <a target="_blank" class="github-corner" aria-label="View source on Github">
  4 + <svg
  5 + width="80"
  6 + height="80"
  7 + viewBox="0 0 250 250"
  8 + style="fill:#40c9c6; color:#fff;"
  9 + aria-hidden="true"
  10 + >
  11 + <path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z" />
  12 + <path
  13 + d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
  14 + fill="currentColor"
  15 + style="transform-origin: 130px 106px;"
  16 + class="octo-arm"
  17 + />
  18 + <path
  19 + d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
  20 + fill="currentColor"
  21 + class="octo-body"
  22 + />
  23 + </svg>
  24 + </a>
  25 +</template>
  26 +
  27 +<style scoped>
  28 +.github-corner:hover .octo-arm {
  29 + animation: octocat-wave 560ms ease-in-out
  30 +}
  31 +
  32 +@keyframes octocat-wave {
  33 + 0%,
  34 + 100% {
  35 + transform: rotate(0)
  36 + }
  37 + 20%,
  38 + 60% {
  39 + transform: rotate(-25deg)
  40 + }
  41 + 40%,
  42 + 80% {
  43 + transform: rotate(10deg)
  44 + }
  45 +}
  46 +
  47 +@media (max-width:500px) {
  48 + .github-corner:hover .octo-arm {
  49 + animation: none
  50 + }
  51 + .github-corner .octo-arm {
  52 + animation: octocat-wave 560ms ease-in-out
  53 + }
  54 +}
  55 +</style>
  1 +<template>
  2 + <div :style="{zIndex:zIndex,height:height,width:width}" class="pan-item">
  3 + <div class="pan-info">
  4 + <div class="pan-info-roles-container">
  5 + <slot />
  6 + </div>
  7 + </div>
  8 + <!-- eslint-disable-next-line -->
  9 + <div :style="{backgroundImage: `url(${image})`}" class="pan-thumb"></div>
  10 + </div>
  11 +</template>
  12 +
  13 +<script>
  14 +export default {
  15 + name: 'PanThumb',
  16 + props: {
  17 + image: {
  18 + type: String,
  19 + required: true
  20 + },
  21 + zIndex: {
  22 + type: Number,
  23 + default: 1
  24 + },
  25 + width: {
  26 + type: String,
  27 + default: '150px'
  28 + },
  29 + height: {
  30 + type: String,
  31 + default: '150px'
  32 + }
  33 + }
  34 +}
  35 +</script>
  36 +
  37 +<style scoped>
  38 +.pan-item {
  39 + width: 200px;
  40 + height: 200px;
  41 + border-radius: 50%;
  42 + display: inline-block;
  43 + position: relative;
  44 + cursor: default;
  45 + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  46 +}
  47 +
  48 +.pan-info-roles-container {
  49 + padding: 20px;
  50 + text-align: center;
  51 +}
  52 +
  53 +.pan-thumb {
  54 + width: 100%;
  55 + height: 100%;
  56 + background-position: center center;
  57 + background-size: cover;
  58 + border-radius: 50%;
  59 + overflow: hidden;
  60 + position: absolute;
  61 + transform-origin: 95% 40%;
  62 + transition: all 0.3s ease-in-out;
  63 +}
  64 +
  65 +/* .pan-thumb:after {
  66 + content: '';
  67 + width: 8px;
  68 + height: 8px;
  69 + position: absolute;
  70 + border-radius: 50%;
  71 + top: 40%;
  72 + left: 95%;
  73 + margin: -4px 0 0 -4px;
  74 + background: radial-gradient(ellipse at center, rgba(14, 14, 14, 1) 0%, rgba(125, 126, 125, 1) 100%);
  75 + box-shadow: 0 0 1px rgba(255, 255, 255, 0.9);
  76 +} */
  77 +
  78 +.pan-info {
  79 + position: absolute;
  80 + width: inherit;
  81 + height: inherit;
  82 + border-radius: 50%;
  83 + overflow: hidden;
  84 + box-shadow: inset 0 0 0 5px rgba(0, 0, 0, 0.05);
  85 +}
  86 +
  87 +.pan-info h3 {
  88 + color: #fff;
  89 + text-transform: uppercase;
  90 + position: relative;
  91 + letter-spacing: 2px;
  92 + font-size: 18px;
  93 + margin: 0 60px;
  94 + padding: 22px 0 0 0;
  95 + height: 85px;
  96 + font-family: 'Open Sans', Arial, sans-serif;
  97 + text-shadow: 0 0 1px #fff, 0 1px 2px rgba(0, 0, 0, 0.3);
  98 +}
  99 +
  100 +.pan-info p {
  101 + color: #fff;
  102 + padding: 10px 5px;
  103 + font-style: italic;
  104 + margin: 0 30px;
  105 + font-size: 12px;
  106 + border-top: 1px solid rgba(255, 255, 255, 0.5);
  107 +}
  108 +
  109 +.pan-info p a {
  110 + display: block;
  111 + color: #333;
  112 + width: 80px;
  113 + height: 80px;
  114 + background: rgba(255, 255, 255, 0.3);
  115 + border-radius: 50%;
  116 + color: #fff;
  117 + font-style: normal;
  118 + font-weight: 700;
  119 + text-transform: uppercase;
  120 + font-size: 9px;
  121 + letter-spacing: 1px;
  122 + padding-top: 24px;
  123 + margin: 7px auto 0;
  124 + font-family: 'Open Sans', Arial, sans-serif;
  125 + opacity: 0;
  126 + transition: transform 0.3s ease-in-out 0.2s, opacity 0.3s ease-in-out 0.2s, background 0.2s linear 0s;
  127 + transform: translateX(60px) rotate(90deg);
  128 +}
  129 +
  130 +.pan-info p a:hover {
  131 + background: rgba(255, 255, 255, 0.5);
  132 +}
  133 +
  134 +.pan-item:hover .pan-thumb {
  135 + transform: rotate(-110deg);
  136 +}
  137 +
  138 +.pan-item:hover .pan-info p a {
  139 + opacity: 1;
  140 + transform: translateX(0px) rotate(0deg);
  141 +}
  142 +</style>
  1 +<template>
  2 + <a :class="className" class="link--mallki" href="#">
  3 + {{ text }}
  4 + <span :data-letters="text" />
  5 + <span :data-letters="text" />
  6 + </a>
  7 +</template>
  8 +
  9 +<script>
  10 +export default {
  11 + props: {
  12 + className: {
  13 + type: String,
  14 + default: ''
  15 + },
  16 + text: {
  17 + type: String,
  18 + default: 'vue-element-admin'
  19 + }
  20 + }
  21 +}
  22 +</script>
  23 +
  24 +<style>
  25 +/* Mallki */
  26 +
  27 +.link--mallki {
  28 + font-weight: 800;
  29 + color: #4dd9d5;
  30 + font-family: 'Dosis', sans-serif;
  31 + -webkit-transition: color 0.5s 0.25s;
  32 + transition: color 0.5s 0.25s;
  33 + overflow: hidden;
  34 + position: relative;
  35 + display: inline-block;
  36 + line-height: 1;
  37 + outline: none;
  38 + text-decoration: none;
  39 +}
  40 +
  41 +.link--mallki:hover {
  42 + -webkit-transition: none;
  43 + transition: none;
  44 + color: transparent;
  45 +}
  46 +
  47 +.link--mallki::before {
  48 + content: '';
  49 + width: 100%;
  50 + height: 6px;
  51 + margin: -3px 0 0 0;
  52 + background: #3888fa;
  53 + position: absolute;
  54 + left: 0;
  55 + top: 50%;
  56 + -webkit-transform: translate3d(-100%, 0, 0);
  57 + transform: translate3d(-100%, 0, 0);
  58 + -webkit-transition: -webkit-transform 0.4s;
  59 + transition: transform 0.4s;
  60 + -webkit-transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
  61 + transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
  62 +}
  63 +
  64 +.link--mallki:hover::before {
  65 + -webkit-transform: translate3d(100%, 0, 0);
  66 + transform: translate3d(100%, 0, 0);
  67 +}
  68 +
  69 +.link--mallki span {
  70 + position: absolute;
  71 + height: 50%;
  72 + width: 100%;
  73 + left: 0;
  74 + top: 0;
  75 + overflow: hidden;
  76 +}
  77 +
  78 +.link--mallki span::before {
  79 + content: attr(data-letters);
  80 + color: red;
  81 + position: absolute;
  82 + left: 0;
  83 + width: 100%;
  84 + color: #3888fa;
  85 + -webkit-transition: -webkit-transform 0.5s;
  86 + transition: transform 0.5s;
  87 +}
  88 +
  89 +.link--mallki span:nth-child(2) {
  90 + top: 50%;
  91 +}
  92 +
  93 +.link--mallki span:first-child::before {
  94 + top: 0;
  95 + -webkit-transform: translate3d(0, 100%, 0);
  96 + transform: translate3d(0, 100%, 0);
  97 +}
  98 +
  99 +.link--mallki span:nth-child(2)::before {
  100 + bottom: 0;
  101 + -webkit-transform: translate3d(0, -100%, 0);
  102 + transform: translate3d(0, -100%, 0);
  103 +}
  104 +
  105 +.link--mallki:hover span::before {
  106 + -webkit-transition-delay: 0.3s;
  107 + transition-delay: 0.3s;
  108 + -webkit-transform: translate3d(0, 0, 0);
  109 + transform: translate3d(0, 0, 0);
  110 + -webkit-transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
  111 + transition-timing-function: cubic-bezier(0.2, 1, 0.3, 1);
  112 +}
  113 +</style>
1 import Login from './views/Login.vue' 1 import Login from './views/Login.vue'
2 import NotFound from './views/404.vue' 2 import NotFound from './views/404.vue'
3 import Home from './views/Home.vue' 3 import Home from './views/Home.vue'
4 -import Main from './views/Main.vue' 4 +import Main from './views/dashboard/index'
5 // import Table from './views/nav1/Table.vue' 5 // import Table from './views/nav1/Table.vue'
6 import Role from './views/nav1/role.vue' 6 import Role from './views/nav1/role.vue'
7 import Perm from './views/nav1/perm.vue' 7 import Perm from './views/nav1/perm.vue'
  1 +<template>
  2 + <div :class="className" :style="{height:height,width:width}" />
  3 +</template>
  4 +
  5 +<script>
  6 +import echarts from 'echarts'
  7 +require('echarts/theme/macarons') // echarts theme
  8 +import resize from './mixins/resize'
  9 +
  10 +const animationDuration = 6000
  11 +
  12 +export default {
  13 + mixins: [resize],
  14 + props: {
  15 + className: {
  16 + type: String,
  17 + default: 'chart'
  18 + },
  19 + width: {
  20 + type: String,
  21 + default: '100%'
  22 + },
  23 + height: {
  24 + type: String,
  25 + default: '300px'
  26 + }
  27 + },
  28 + data() {
  29 + return {
  30 + chart: null
  31 + }
  32 + },
  33 + mounted() {
  34 + this.$nextTick(() => {
  35 + this.initChart()
  36 + })
  37 + },
  38 + beforeDestroy() {
  39 + if (!this.chart) {
  40 + return
  41 + }
  42 + this.chart.dispose()
  43 + this.chart = null
  44 + },
  45 + methods: {
  46 + initChart() {
  47 + this.chart = echarts.init(this.$el, 'macarons')
  48 +
  49 + this.chart.setOption({
  50 + tooltip: {
  51 + trigger: 'axis',
  52 + axisPointer: { // 坐标轴指示器,坐标轴触发有效
  53 + type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
  54 + }
  55 + },
  56 + grid: {
  57 + top: 10,
  58 + left: '2%',
  59 + right: '2%',
  60 + bottom: '3%',
  61 + containLabel: true
  62 + },
  63 + xAxis: [{
  64 + type: 'category',
  65 + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
  66 + axisTick: {
  67 + alignWithLabel: true
  68 + }
  69 + }],
  70 + yAxis: [{
  71 + type: 'value',
  72 + axisTick: {
  73 + show: false
  74 + }
  75 + }],
  76 + series: [{
  77 + name: 'pageA',
  78 + type: 'bar',
  79 + stack: 'vistors',
  80 + barWidth: '60%',
  81 + data: [79, 52, 200, 334, 390, 330, 220],
  82 + animationDuration
  83 + }, {
  84 + name: 'pageB',
  85 + type: 'bar',
  86 + stack: 'vistors',
  87 + barWidth: '60%',
  88 + data: [80, 52, 200, 334, 390, 330, 220],
  89 + animationDuration
  90 + }, {
  91 + name: 'pageC',
  92 + type: 'bar',
  93 + stack: 'vistors',
  94 + barWidth: '60%',
  95 + data: [30, 52, 200, 334, 390, 330, 220],
  96 + animationDuration
  97 + }]
  98 + })
  99 + }
  100 + }
  101 +}
  102 +</script>
  1 +<template>
  2 + <el-card class="box-card-component" style="margin-left:8px;">
  3 + <div slot="header" class="box-card-header">
  4 + <img src="https://wpimg.wallstcn.com/e7d23d71-cf19-4b90-a1cc-f56af8c0903d.png">
  5 + </div>
  6 + <div style="position:relative;">
  7 + <pan-thumb :image="avatar" class="panThumb" />
  8 + <mallki class-name="mallki-text" text="vue-element-admin" />
  9 + <div style="padding-top:35px;" class="progress-item">
  10 + <span>Vue</span>
  11 + <el-progress :percentage="70" />
  12 + </div>
  13 + <div class="progress-item">
  14 + <span>JavaScript</span>
  15 + <el-progress :percentage="18" />
  16 + </div>
  17 + <div class="progress-item">
  18 + <span>Css</span>
  19 + <el-progress :percentage="12" />
  20 + </div>
  21 + <div class="progress-item">
  22 + <span>ESLint</span>
  23 + <el-progress :percentage="100" status="success" />
  24 + </div>
  25 + </div>
  26 + </el-card>
  27 +</template>
  28 +
  29 +<script>
  30 +import { mapGetters } from 'vuex'
  31 +import PanThumb from '../../../components/PanThumb'
  32 +import Mallki from '../../../components/TextHoverEffect/Mallki'
  33 +
  34 +export default {
  35 + components: { PanThumb, Mallki },
  36 +
  37 + filters: {
  38 + statusFilter(status) {
  39 + const statusMap = {
  40 + success: 'success',
  41 + pending: 'danger'
  42 + }
  43 + return statusMap[status]
  44 + }
  45 + },
  46 + data() {
  47 + return {
  48 + statisticsData: {
  49 + article_count: 1024,
  50 + pageviews_count: 1024
  51 + }
  52 + }
  53 + },
  54 + computed: {
  55 + ...mapGetters([
  56 + 'name',
  57 + 'avatar',
  58 + 'roles'
  59 + ])
  60 + }
  61 +}
  62 +</script>
  63 +
  64 +<style lang="scss" >
  65 +.box-card-component{
  66 + .el-card__header {
  67 + padding: 0px!important;
  68 + }
  69 +}
  70 +</style>
  71 +<style lang="scss" scoped>
  72 +.box-card-component {
  73 + .box-card-header {
  74 + position: relative;
  75 + height: 220px;
  76 + img {
  77 + width: 100%;
  78 + height: 100%;
  79 + transition: all 0.2s linear;
  80 + &:hover {
  81 + transform: scale(1.1, 1.1);
  82 + filter: contrast(130%);
  83 + }
  84 + }
  85 + }
  86 + .mallki-text {
  87 + position: absolute;
  88 + top: 0px;
  89 + right: 0px;
  90 + font-size: 20px;
  91 + font-weight: bold;
  92 + }
  93 + .panThumb {
  94 + z-index: 100;
  95 + height: 70px!important;
  96 + width: 70px!important;
  97 + position: absolute!important;
  98 + top: -45px;
  99 + left: 0px;
  100 + border: 5px solid #ffffff;
  101 + background-color: #fff;
  102 + margin: auto;
  103 + box-shadow: none!important;
  104 + /deep/ .pan-info {
  105 + box-shadow: none!important;
  106 + }
  107 + }
  108 + .progress-item {
  109 + margin-bottom: 10px;
  110 + font-size: 14px;
  111 + }
  112 + @media only screen and (max-width: 1510px){
  113 + .mallki-text{
  114 + display: none;
  115 + }
  116 + }
  117 +}
  118 +</style>
  1 +<template>
  2 + <div :class="className" :style="{height:height,width:width}" />
  3 +</template>
  4 +
  5 +<script>
  6 +import echarts from 'echarts'
  7 +require('echarts/theme/macarons') // echarts theme
  8 +import resize from './mixins/resize'
  9 +
  10 +export default {
  11 + mixins: [resize],
  12 + props: {
  13 + className: {
  14 + type: String,
  15 + default: 'chart'
  16 + },
  17 + width: {
  18 + type: String,
  19 + default: '100%'
  20 + },
  21 + height: {
  22 + type: String,
  23 + default: '350px'
  24 + },
  25 + autoResize: {
  26 + type: Boolean,
  27 + default: true
  28 + },
  29 + chartData: {
  30 + type: Object,
  31 + required: true
  32 + }
  33 + },
  34 + data() {
  35 + return {
  36 + chart: null
  37 + }
  38 + },
  39 + watch: {
  40 + chartData: {
  41 + deep: true,
  42 + handler(val) {
  43 + this.setOptions(val)
  44 + }
  45 + }
  46 + },
  47 + mounted() {
  48 + this.$nextTick(() => {
  49 + this.initChart()
  50 + })
  51 + },
  52 + beforeDestroy() {
  53 + if (!this.chart) {
  54 + return
  55 + }
  56 + this.chart.dispose()
  57 + this.chart = null
  58 + },
  59 + methods: {
  60 + initChart() {
  61 + this.chart = echarts.init(this.$el, 'macarons')
  62 + this.setOptions(this.chartData)
  63 + },
  64 + setOptions({ expectedData, actualData } = {}) {
  65 + this.chart.setOption({
  66 + xAxis: {
  67 + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
  68 + boundaryGap: false,
  69 + axisTick: {
  70 + show: false
  71 + }
  72 + },
  73 + grid: {
  74 + left: 10,
  75 + right: 10,
  76 + bottom: 20,
  77 + top: 30,
  78 + containLabel: true
  79 + },
  80 + tooltip: {
  81 + trigger: 'axis',
  82 + axisPointer: {
  83 + type: 'cross'
  84 + },
  85 + padding: [5, 10]
  86 + },
  87 + yAxis: {
  88 + axisTick: {
  89 + show: false
  90 + }
  91 + },
  92 + legend: {
  93 + data: ['expected', 'actual']
  94 + },
  95 + series: [{
  96 + name: 'expected', itemStyle: {
  97 + normal: {
  98 + color: '#FF005A',
  99 + lineStyle: {
  100 + color: '#FF005A',
  101 + width: 2
  102 + }
  103 + }
  104 + },
  105 + smooth: true,
  106 + type: 'line',
  107 + data: expectedData,
  108 + animationDuration: 2800,
  109 + animationEasing: 'cubicInOut'
  110 + },
  111 + {
  112 + name: 'actual',
  113 + smooth: true,
  114 + type: 'line',
  115 + itemStyle: {
  116 + normal: {
  117 + color: '#3888fa',
  118 + lineStyle: {
  119 + color: '#3888fa',
  120 + width: 2
  121 + },
  122 + areaStyle: {
  123 + color: '#f3f8ff'
  124 + }
  125 + }
  126 + },
  127 + data: actualData,
  128 + animationDuration: 2800,
  129 + animationEasing: 'quadraticOut'
  130 + }]
  131 + })
  132 + }
  133 + }
  134 +}
  135 +</script>
  1 +<template>
  2 + <el-row :gutter="15" class="panel-group">
  3 +
  4 + <el-col :span="5" class="card-panel-col">
  5 + <div class="card-panel" @click="handleSetLineChartData('newVisitis')">
  6 + <div class="card-panel-icon-wrapper icon-people">
  7 +<!-- <svg-icon icon-class="peoples" class-name="card-panel-icon" />-->
  8 + <i class="el-icon-user-solid" style="font-size: 60px;"></i>
  9 + </div>
  10 + <div class="card-panel-description">
  11 + <div class="card-panel-text">
  12 + New Visits
  13 + </div>
  14 + <count-to :start-val="0" :end-val="102400" :duration="2600" class="card-panel-num" />
  15 + </div>
  16 + </div>
  17 + </el-col>
  18 +
  19 +<!-- :xs="12" :sm="12" :lg="6"-->
  20 + <el-col :span="5" class="card-panel-col">
  21 + <div class="card-panel" @click="handleSetLineChartData('messages')">
  22 + <div class="card-panel-icon-wrapper icon-message">
  23 +<!-- <svg-icon icon-class="message" class-name="card-panel-icon" />-->
  24 + <i class="el-icon-message" style="font-size: 60px;"></i>
  25 + </div>
  26 + <div class="card-panel-description">
  27 + <div class="card-panel-text">
  28 + Messages
  29 + </div>
  30 + <count-to :start-val="0" :end-val="81212" :duration="3000" class="card-panel-num" />
  31 + </div>
  32 + </div>
  33 + </el-col>
  34 +
  35 + <el-col :span="5" class="card-panel-col">
  36 + <div class="card-panel" @click="handleSetLineChartData('purchases')">
  37 + <div class="card-panel-icon-wrapper icon-money">
  38 +<!-- <svg-icon icon-class="money" class-name="card-panel-icon" />-->
  39 + <i class="el-icon-money" style="font-size: 60px;"></i>
  40 + </div>
  41 + <div class="card-panel-description">
  42 + <div class="card-panel-text">
  43 + Purchases
  44 + </div>
  45 + <count-to :start-val="0" :end-val="9280" :duration="3200" class="card-panel-num" />
  46 + </div>
  47 + </div>
  48 + </el-col>
  49 + <el-col :span="5" class="card-panel-col">
  50 + <div class="card-panel" @click="handleSetLineChartData('shoppings')">
  51 + <div class="card-panel-icon-wrapper icon-shopping">
  52 +<!-- <svg-icon icon-class="shopping" class-name="card-panel-icon" />-->
  53 + <i class="el-icon-shopping-cart-2" style="font-size: 60px;"></i>
  54 + </div>
  55 + <div class="card-panel-description">
  56 + <div class="card-panel-text">
  57 + Shoppings
  58 + </div>
  59 + <count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" />
  60 + </div>
  61 + </div>
  62 + </el-col>
  63 + </el-row>
  64 +</template>
  65 +
  66 +<script>
  67 +import CountTo from 'vue-count-to'
  68 +// import '../../../icons'
  69 +export default {
  70 + components: {
  71 + CountTo
  72 + },
  73 + methods: {
  74 + handleSetLineChartData(type) {
  75 + this.$emit('handleSetLineChartData', type)
  76 + }
  77 + }
  78 +}
  79 +</script>
  80 +
  81 +<style lang="scss" scoped>
  82 +.panel-group {
  83 + margin-top: 18px;
  84 +
  85 + .card-panel-col {
  86 + margin-bottom: 32px;
  87 + }
  88 +
  89 + .card-panel {
  90 + height: 108px;
  91 + cursor: pointer;
  92 + font-size: 12px;
  93 + position: relative;
  94 + overflow: hidden;
  95 + color: #666;
  96 + background: #fff;
  97 + box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
  98 + border-color: rgba(0, 0, 0, .05);
  99 +
  100 + &:hover {
  101 + .card-panel-icon-wrapper {
  102 + color: #fff;
  103 + }
  104 +
  105 + .icon-people {
  106 + background: #40c9c6;
  107 + }
  108 +
  109 + .icon-message {
  110 + background: #36a3f7;
  111 + }
  112 +
  113 + .icon-money {
  114 + background: #f4516c;
  115 + }
  116 +
  117 + .icon-shopping {
  118 + background: #34bfa3
  119 + }
  120 + }
  121 +
  122 + .icon-people {
  123 + color: #40c9c6;
  124 + }
  125 +
  126 + .icon-message {
  127 + color: #36a3f7;
  128 + }
  129 +
  130 + .icon-money {
  131 + color: #f4516c;
  132 + }
  133 +
  134 + .icon-shopping {
  135 + color: #34bfa3
  136 + }
  137 +
  138 + .card-panel-icon-wrapper {
  139 + float: left;
  140 + margin: 14px 0 0 14px;
  141 + padding: 16px;
  142 + transition: all 0.38s ease-out;
  143 + border-radius: 6px;
  144 + }
  145 +
  146 + .card-panel-icon {
  147 + float: left;
  148 + font-size: 48px;
  149 + }
  150 +
  151 + .card-panel-description {
  152 + float: right;
  153 + font-weight: bold;
  154 + margin: 26px;
  155 + margin-left: 0px;
  156 +
  157 + .card-panel-text {
  158 + line-height: 18px;
  159 + color: rgba(0, 0, 0, 0.45);
  160 + font-size: 16px;
  161 + margin-bottom: 12px;
  162 + }
  163 +
  164 + .card-panel-num {
  165 + font-size: 20px;
  166 + }
  167 + }
  168 + }
  169 +}
  170 +
  171 +@media (max-width:550px) {
  172 + .card-panel-description {
  173 + display: none;
  174 + }
  175 +
  176 + .card-panel-icon-wrapper {
  177 + float: none !important;
  178 + width: 100%;
  179 + height: 100%;
  180 + margin: 0 !important;
  181 +
  182 + .svg-icon {
  183 + display: block;
  184 + margin: 14px auto !important;
  185 + float: none !important;
  186 + }
  187 + }
  188 +}
  189 +</style>
  1 +<template>
  2 + <div :class="className" :style="{height:height,width:width}" />
  3 +</template>
  4 +
  5 +<script>
  6 +import echarts from 'echarts'
  7 +require('echarts/theme/macarons') // echarts theme
  8 +import resize from './mixins/resize'
  9 +
  10 +export default {
  11 + mixins: [resize],
  12 + props: {
  13 + className: {
  14 + type: String,
  15 + default: 'chart'
  16 + },
  17 + width: {
  18 + type: String,
  19 + default: '100%'
  20 + },
  21 + height: {
  22 + type: String,
  23 + default: '300px'
  24 + }
  25 + },
  26 + data() {
  27 + return {
  28 + chart: null
  29 + }
  30 + },
  31 + mounted() {
  32 + this.$nextTick(() => {
  33 + this.initChart()
  34 + })
  35 + },
  36 + beforeDestroy() {
  37 + if (!this.chart) {
  38 + return
  39 + }
  40 + this.chart.dispose()
  41 + this.chart = null
  42 + },
  43 + methods: {
  44 + initChart() {
  45 + this.chart = echarts.init(this.$el, 'macarons')
  46 +
  47 + this.chart.setOption({
  48 + tooltip: {
  49 + trigger: 'item',
  50 + formatter: '{a} <br/>{b} : {c} ({d}%)'
  51 + },
  52 + legend: {
  53 + left: 'center',
  54 + bottom: '10',
  55 + data: ['Industries', 'Technology', 'Forex', 'Gold', 'Forecasts']
  56 + },
  57 + series: [
  58 + {
  59 + name: 'WEEKLY WRITE ARTICLES',
  60 + type: 'pie',
  61 + roseType: 'radius',
  62 + radius: [15, 95],
  63 + center: ['50%', '38%'],
  64 + data: [
  65 + { value: 320, name: 'Industries' },
  66 + { value: 240, name: 'Technology' },
  67 + { value: 149, name: 'Forex' },
  68 + { value: 100, name: 'Gold' },
  69 + { value: 59, name: 'Forecasts' }
  70 + ],
  71 + animationEasing: 'cubicInOut',
  72 + animationDuration: 2600
  73 + }
  74 + ]
  75 + })
  76 + }
  77 + }
  78 +}
  79 +</script>
  1 +<template>
  2 + <div :class="className" :style="{height:height,width:width}" />
  3 +</template>
  4 +
  5 +<script>
  6 +import echarts from 'echarts'
  7 +require('echarts/theme/macarons') // echarts theme
  8 +import resize from './mixins/resize'
  9 +
  10 +const animationDuration = 3000
  11 +
  12 +export default {
  13 + mixins: [resize],
  14 + props: {
  15 + className: {
  16 + type: String,
  17 + default: 'chart'
  18 + },
  19 + width: {
  20 + type: String,
  21 + default: '100%'
  22 + },
  23 + height: {
  24 + type: String,
  25 + default: '300px'
  26 + }
  27 + },
  28 + data() {
  29 + return {
  30 + chart: null
  31 + }
  32 + },
  33 + mounted() {
  34 + this.$nextTick(() => {
  35 + this.initChart()
  36 + })
  37 + },
  38 + beforeDestroy() {
  39 + if (!this.chart) {
  40 + return
  41 + }
  42 + this.chart.dispose()
  43 + this.chart = null
  44 + },
  45 + methods: {
  46 + initChart() {
  47 + this.chart = echarts.init(this.$el, 'macarons')
  48 +
  49 + this.chart.setOption({
  50 + tooltip: {
  51 + trigger: 'axis',
  52 + axisPointer: { // 坐标轴指示器,坐标轴触发有效
  53 + type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
  54 + }
  55 + },
  56 + radar: {
  57 + radius: '66%',
  58 + center: ['50%', '42%'],
  59 + splitNumber: 8,
  60 + splitArea: {
  61 + areaStyle: {
  62 + color: 'rgba(127,95,132,.3)',
  63 + opacity: 1,
  64 + shadowBlur: 45,
  65 + shadowColor: 'rgba(0,0,0,.5)',
  66 + shadowOffsetX: 0,
  67 + shadowOffsetY: 15
  68 + }
  69 + },
  70 + indicator: [
  71 + { name: 'Sales', max: 10000 },
  72 + { name: 'Administration', max: 20000 },
  73 + { name: 'Information Technology', max: 20000 },
  74 + { name: 'Customer Support', max: 20000 },
  75 + { name: 'Development', max: 20000 },
  76 + { name: 'Marketing', max: 20000 }
  77 + ]
  78 + },
  79 + legend: {
  80 + left: 'center',
  81 + bottom: '10',
  82 + data: ['Allocated Budget', 'Expected Spending', 'Actual Spending']
  83 + },
  84 + series: [{
  85 + type: 'radar',
  86 + symbolSize: 0,
  87 + areaStyle: {
  88 + normal: {
  89 + shadowBlur: 13,
  90 + shadowColor: 'rgba(0,0,0,.2)',
  91 + shadowOffsetX: 0,
  92 + shadowOffsetY: 10,
  93 + opacity: 1
  94 + }
  95 + },
  96 + data: [
  97 + {
  98 + value: [5000, 7000, 12000, 11000, 15000, 14000],
  99 + name: 'Allocated Budget'
  100 + },
  101 + {
  102 + value: [4000, 9000, 15000, 15000, 13000, 11000],
  103 + name: 'Expected Spending'
  104 + },
  105 + {
  106 + value: [5500, 11000, 12000, 15000, 12000, 12000],
  107 + name: 'Actual Spending'
  108 + }
  109 + ],
  110 + animationDuration: animationDuration
  111 + }]
  112 + })
  113 + }
  114 + }
  115 +}
  116 +</script>
  1 +<template>
  2 + <li :class="{ completed: todo.done, editing: editing }" class="todo">
  3 + <div class="view">
  4 + <input
  5 + :checked="todo.done"
  6 + class="toggle"
  7 + type="checkbox"
  8 + @change="toggleTodo( todo)"
  9 + >
  10 + <label @dblclick="editing = true" v-text="todo.text" />
  11 + <button class="destroy" @click="deleteTodo( todo )" />
  12 + </div>
  13 + <input
  14 + v-show="editing"
  15 + v-focus="editing"
  16 + :value="todo.text"
  17 + class="edit"
  18 + @keyup.enter="doneEdit"
  19 + @keyup.esc="cancelEdit"
  20 + @blur="doneEdit"
  21 + >
  22 + </li>
  23 +</template>
  24 +
  25 +<script>
  26 +export default {
  27 + name: 'Todo',
  28 + directives: {
  29 + focus(el, { value }, { context }) {
  30 + if (value) {
  31 + context.$nextTick(() => {
  32 + el.focus()
  33 + })
  34 + }
  35 + }
  36 + },
  37 + props: {
  38 + todo: {
  39 + type: Object,
  40 + default: function() {
  41 + return {}
  42 + }
  43 + }
  44 + },
  45 + data() {
  46 + return {
  47 + editing: false
  48 + }
  49 + },
  50 + methods: {
  51 + deleteTodo(todo) {
  52 + this.$emit('deleteTodo', todo)
  53 + },
  54 + editTodo({ todo, value }) {
  55 + this.$emit('editTodo', { todo, value })
  56 + },
  57 + toggleTodo(todo) {
  58 + this.$emit('toggleTodo', todo)
  59 + },
  60 + doneEdit(e) {
  61 + const value = e.target.value.trim()
  62 + const { todo } = this
  63 + if (!value) {
  64 + this.deleteTodo({
  65 + todo
  66 + })
  67 + } else if (this.editing) {
  68 + this.editTodo({
  69 + todo,
  70 + value
  71 + })
  72 + this.editing = false
  73 + }
  74 + },
  75 + cancelEdit(e) {
  76 + e.target.value = this.todo.text
  77 + this.editing = false
  78 + }
  79 + }
  80 +}
  81 +</script>
  1 +.todoapp {
  2 + font: 14px 'Helvetica Neue', Helvetica, Arial, sans-serif;
  3 + line-height: 1.4em;
  4 + color: #4d4d4d;
  5 + min-width: 230px;
  6 + max-width: 550px;
  7 + margin: 0 auto ;
  8 + -webkit-font-smoothing: antialiased;
  9 + -moz-osx-font-smoothing: grayscale;
  10 + font-weight: 300;
  11 + background: #fff;
  12 + z-index: 1;
  13 + position: relative;
  14 + button {
  15 + margin: 0;
  16 + padding: 0;
  17 + border: 0;
  18 + background: none;
  19 + font-size: 100%;
  20 + vertical-align: baseline;
  21 + font-family: inherit;
  22 + font-weight: inherit;
  23 + color: inherit;
  24 + -webkit-appearance: none;
  25 + appearance: none;
  26 + -webkit-font-smoothing: antialiased;
  27 + -moz-osx-font-smoothing: grayscale;
  28 + }
  29 + :focus {
  30 + outline: 0;
  31 + }
  32 + .hidden {
  33 + display: none;
  34 + }
  35 + .todoapp {
  36 + background: #fff;
  37 + margin: 130px 0 40px 0;
  38 + position: relative;
  39 + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1);
  40 + }
  41 + .todoapp input::-webkit-input-placeholder {
  42 + font-style: italic;
  43 + font-weight: 300;
  44 + color: #e6e6e6;
  45 + }
  46 + .todoapp input::-moz-placeholder {
  47 + font-style: italic;
  48 + font-weight: 300;
  49 + color: #e6e6e6;
  50 + }
  51 + .todoapp input::input-placeholder {
  52 + font-style: italic;
  53 + font-weight: 300;
  54 + color: #e6e6e6;
  55 + }
  56 + .todoapp h1 {
  57 + position: absolute;
  58 + top: -155px;
  59 + width: 100%;
  60 + font-size: 100px;
  61 + font-weight: 100;
  62 + text-align: center;
  63 + color: rgba(175, 47, 47, 0.15);
  64 + -webkit-text-rendering: optimizeLegibility;
  65 + -moz-text-rendering: optimizeLegibility;
  66 + text-rendering: optimizeLegibility;
  67 + }
  68 + .new-todo,
  69 + .edit {
  70 + position: relative;
  71 + margin: 0;
  72 + width: 100%;
  73 + font-size: 18px;
  74 + font-family: inherit;
  75 + font-weight: inherit;
  76 + line-height: 1.4em;
  77 + border: 0;
  78 + color: inherit;
  79 + padding: 6px;
  80 + border: 1px solid #999;
  81 + box-shadow: inset 0 -1px 5px 0 rgba(0, 0, 0, 0.2);
  82 + box-sizing: border-box;
  83 + -webkit-font-smoothing: antialiased;
  84 + -moz-osx-font-smoothing: grayscale;
  85 + }
  86 + .new-todo {
  87 + padding: 10px 16px 16px 60px;
  88 + border: none;
  89 + background: rgba(0, 0, 0, 0.003);
  90 + box-shadow: inset 0 -2px 1px rgba(0, 0, 0, 0.03);
  91 + }
  92 + .main {
  93 + position: relative;
  94 + z-index: 2;
  95 + border-top: 1px solid #e6e6e6;
  96 + }
  97 + .toggle-all {
  98 + text-align: center;
  99 + border: none;
  100 + /* Mobile Safari */
  101 + opacity: 0;
  102 + position: absolute;
  103 + }
  104 + .toggle-all+label {
  105 + width: 60px;
  106 + height: 34px;
  107 + font-size: 0;
  108 + position: absolute;
  109 + top: -52px;
  110 + left: -13px;
  111 + -webkit-transform: rotate(90deg);
  112 + transform: rotate(90deg);
  113 + }
  114 + .toggle-all+label:before {
  115 + content: '❯';
  116 + font-size: 22px;
  117 + color: #e6e6e6;
  118 + padding: 10px 27px 10px 27px;
  119 + }
  120 + .toggle-all:checked+label:before {
  121 + color: #737373;
  122 + }
  123 + .todo-list {
  124 + margin: 0;
  125 + padding: 0;
  126 + list-style: none;
  127 + }
  128 + .todo-list li {
  129 + position: relative;
  130 + font-size: 24px;
  131 + border-bottom: 1px solid #ededed;
  132 + }
  133 + .todo-list li:last-child {
  134 + border-bottom: none;
  135 + }
  136 + .todo-list li.editing {
  137 + border-bottom: none;
  138 + padding: 0;
  139 + }
  140 + .todo-list li.editing .edit {
  141 + display: block;
  142 + width: 506px;
  143 + padding: 12px 16px;
  144 + margin: 0 0 0 43px;
  145 + }
  146 + .todo-list li.editing .view {
  147 + display: none;
  148 + }
  149 + .todo-list li .toggle {
  150 + text-align: center;
  151 + width: 40px;
  152 + /* auto, since non-WebKit browsers doesn't support input styling */
  153 + height: auto;
  154 + position: absolute;
  155 + top: 0;
  156 + bottom: 0;
  157 + margin: auto 0;
  158 + border: none;
  159 + /* Mobile Safari */
  160 + -webkit-appearance: none;
  161 + appearance: none;
  162 + }
  163 + .todo-list li .toggle {
  164 + opacity: 0;
  165 + }
  166 + .todo-list li .toggle+label {
  167 + /*
  168 + Firefox requires `#` to be escaped - https://bugzilla.mozilla.org/show_bug.cgi?id=922433
  169 + IE and Edge requires *everything* to be escaped to render, so we do that instead of just the `#` - https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/7157459/
  170 + */
  171 + background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23ededed%22%20stroke-width%3D%223%22/%3E%3C/svg%3E');
  172 + background-repeat: no-repeat;
  173 + background-position: center left;
  174 + background-size: 36px;
  175 + }
  176 + .todo-list li .toggle:checked+label {
  177 + background-size: 36px;
  178 + background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23bddad5%22%20stroke-width%3D%223%22/%3E%3Cpath%20fill%3D%22%235dc2af%22%20d%3D%22M72%2025L42%2071%2027%2056l-4%204%2020%2020%2034-52z%22/%3E%3C/svg%3E');
  179 + }
  180 + .todo-list li label {
  181 + word-break: break-all;
  182 + padding: 15px 15px 15px 50px;
  183 + display: block;
  184 + line-height: 1.0;
  185 + font-size: 14px;
  186 + transition: color 0.4s;
  187 + }
  188 + .todo-list li.completed label {
  189 + color: #d9d9d9;
  190 + text-decoration: line-through;
  191 + }
  192 + .todo-list li .destroy {
  193 + display: none;
  194 + position: absolute;
  195 + top: 0;
  196 + right: 10px;
  197 + bottom: 0;
  198 + width: 40px;
  199 + height: 40px;
  200 + margin: auto 0;
  201 + font-size: 30px;
  202 + color: #cc9a9a;
  203 + transition: color 0.2s ease-out;
  204 + cursor: pointer;
  205 + }
  206 + .todo-list li .destroy:hover {
  207 + color: #af5b5e;
  208 + }
  209 + .todo-list li .destroy:after {
  210 + content: '×';
  211 + }
  212 + .todo-list li:hover .destroy {
  213 + display: block;
  214 + }
  215 + .todo-list li .edit {
  216 + display: none;
  217 + }
  218 + .todo-list li.editing:last-child {
  219 + margin-bottom: -1px;
  220 + }
  221 + .footer {
  222 + color: #777;
  223 + position: relative;
  224 + padding: 10px 15px;
  225 + height: 40px;
  226 + text-align: center;
  227 + border-top: 1px solid #e6e6e6;
  228 + }
  229 + .footer:before {
  230 + content: '';
  231 + position: absolute;
  232 + right: 0;
  233 + bottom: 0;
  234 + left: 0;
  235 + height: 40px;
  236 + overflow: hidden;
  237 + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2), 0 8px 0 -3px #f6f6f6, 0 9px 1px -3px rgba(0, 0, 0, 0.2), 0 16px 0 -6px #f6f6f6, 0 17px 2px -6px rgba(0, 0, 0, 0.2);
  238 + }
  239 + .todo-count {
  240 + float: left;
  241 + text-align: left;
  242 + }
  243 + .todo-count strong {
  244 + font-weight: 300;
  245 + }
  246 + .filters {
  247 + margin: 0;
  248 + padding: 0;
  249 + position: relative;
  250 + z-index: 1;
  251 + list-style: none;
  252 + }
  253 + .filters li {
  254 + display: inline;
  255 + }
  256 + .filters li a {
  257 + color: inherit;
  258 + font-size: 12px;
  259 + padding: 3px 7px;
  260 + text-decoration: none;
  261 + border: 1px solid transparent;
  262 + border-radius: 3px;
  263 + }
  264 + .filters li a:hover {
  265 + border-color: rgba(175, 47, 47, 0.1);
  266 + }
  267 + .filters li a.selected {
  268 + border-color: rgba(175, 47, 47, 0.2);
  269 + }
  270 + .clear-completed,
  271 + html .clear-completed:active {
  272 + float: right;
  273 + position: relative;
  274 + line-height: 20px;
  275 + text-decoration: none;
  276 + cursor: pointer;
  277 + }
  278 + .clear-completed:hover {
  279 + text-decoration: underline;
  280 + }
  281 + .info {
  282 + margin: 65px auto 0;
  283 + color: #bfbfbf;
  284 + font-size: 10px;
  285 + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  286 + text-align: center;
  287 + }
  288 + .info p {
  289 + line-height: 1;
  290 + }
  291 + .info a {
  292 + color: inherit;
  293 + text-decoration: none;
  294 + font-weight: 400;
  295 + }
  296 + .info a:hover {
  297 + text-decoration: underline;
  298 + }
  299 + /*
  300 + Hack to remove background from Mobile Safari.
  301 + Can't use it globally since it destroys checkboxes in Firefox
  302 +*/
  303 + @media screen and (-webkit-min-device-pixel-ratio:0) {
  304 + .toggle-all,
  305 + .todo-list li .toggle {
  306 + background: none;
  307 + }
  308 + .todo-list li .toggle {
  309 + height: 40px;
  310 + }
  311 + }
  312 + @media (max-width: 430px) {
  313 + .footer {
  314 + height: 50px;
  315 + }
  316 + .filters {
  317 + bottom: 10px;
  318 + }
  319 + }
  320 +}
  1 +<template>
  2 + <section class="todoapp">
  3 + <!-- header -->
  4 + <header class="header">
  5 + <input class="new-todo" autocomplete="off" placeholder="Todo List" @keyup.enter="addTodo">
  6 + </header>
  7 + <!-- main section -->
  8 + <section v-show="todos.length" class="main">
  9 + <input id="toggle-all" :checked="allChecked" class="toggle-all" type="checkbox" @change="toggleAll({ done: !allChecked })">
  10 + <label for="toggle-all" />
  11 + <ul class="todo-list">
  12 + <todo
  13 + v-for="(todo, index) in filteredTodos"
  14 + :key="index"
  15 + :todo="todo"
  16 + @toggleTodo="toggleTodo"
  17 + @editTodo="editTodo"
  18 + @deleteTodo="deleteTodo"
  19 + />
  20 + </ul>
  21 + </section>
  22 + <!-- footer -->
  23 + <footer v-show="todos.length" class="footer">
  24 + <span class="todo-count">
  25 + <strong>{{ remaining }}</strong>
  26 + {{ remaining | pluralize('item') }} left
  27 + </span>
  28 + <ul class="filters">
  29 + <li v-for="(val, key) in filters" :key="key">
  30 + <a :class="{ selected: visibility === key }" @click.prevent="visibility = key">{{ key | capitalize }}</a>
  31 + </li>
  32 + </ul>
  33 + <!-- <button class="clear-completed" v-show="todos.length > remaining" @click="clearCompleted">
  34 + Clear completed
  35 + </button> -->
  36 + </footer>
  37 + </section>
  38 +</template>
  39 +
  40 +<script>
  41 +import Todo from './Todo.vue'
  42 +
  43 +const STORAGE_KEY = 'todos'
  44 +const filters = {
  45 + all: todos => todos,
  46 + active: todos => todos.filter(todo => !todo.done),
  47 + completed: todos => todos.filter(todo => todo.done)
  48 +}
  49 +const defalutList = [
  50 + { text: 'star this repository', done: false },
  51 + { text: 'fork this repository', done: false },
  52 + { text: 'follow author', done: false },
  53 + { text: 'vue-element-admin', done: true },
  54 + { text: 'vue', done: true },
  55 + { text: 'element-ui', done: true },
  56 + { text: 'axios', done: true },
  57 + { text: 'webpack', done: true }
  58 +]
  59 +export default {
  60 + components: { Todo },
  61 + filters: {
  62 + pluralize: (n, w) => n === 1 ? w : w + 's',
  63 + capitalize: s => s.charAt(0).toUpperCase() + s.slice(1)
  64 + },
  65 + data() {
  66 + return {
  67 + visibility: 'all',
  68 + filters,
  69 + // todos: JSON.parse(window.localStorage.getItem(STORAGE_KEY)) || defalutList
  70 + todos: defalutList
  71 + }
  72 + },
  73 + computed: {
  74 + allChecked() {
  75 + return this.todos.every(todo => todo.done)
  76 + },
  77 + filteredTodos() {
  78 + return filters[this.visibility](this.todos)
  79 + },
  80 + remaining() {
  81 + return this.todos.filter(todo => !todo.done).length
  82 + }
  83 + },
  84 + methods: {
  85 + setLocalStorage() {
  86 + window.localStorage.setItem(STORAGE_KEY, JSON.stringify(this.todos))
  87 + },
  88 + addTodo(e) {
  89 + const text = e.target.value
  90 + if (text.trim()) {
  91 + this.todos.push({
  92 + text,
  93 + done: false
  94 + })
  95 + this.setLocalStorage()
  96 + }
  97 + e.target.value = ''
  98 + },
  99 + toggleTodo(val) {
  100 + val.done = !val.done
  101 + this.setLocalStorage()
  102 + },
  103 + deleteTodo(todo) {
  104 + this.todos.splice(this.todos.indexOf(todo), 1)
  105 + this.setLocalStorage()
  106 + },
  107 + editTodo({ todo, value }) {
  108 + todo.text = value
  109 + this.setLocalStorage()
  110 + },
  111 + clearCompleted() {
  112 + this.todos = this.todos.filter(todo => !todo.done)
  113 + this.setLocalStorage()
  114 + },
  115 + toggleAll({ done }) {
  116 + this.todos.forEach(todo => {
  117 + todo.done = done
  118 + this.setLocalStorage()
  119 + })
  120 + }
  121 + }
  122 +}
  123 +</script>
  124 +
  125 +<style lang="scss">
  126 + @import './index.scss';
  127 +</style>
  1 +<template>
  2 + <el-table :data="list" style="width: 100%;padding-top: 15px;">
  3 + <el-table-column label="Order_No" min-width="200">
  4 + <template slot-scope="scope">
  5 + {{ scope.row.order_no | orderNoFilter }}
  6 + </template>
  7 + </el-table-column>
  8 + <el-table-column label="Price" width="195" align="center">
  9 + <template slot-scope="scope">
  10 + ¥{{ scope.row.price | toThousandFilter }}
  11 + </template>
  12 + </el-table-column>
  13 + <el-table-column label="Status" width="100" align="center">
  14 + <template slot-scope="{row}">
  15 + <el-tag :type="row.status | statusFilter">
  16 + {{ row.status }}
  17 + </el-tag>
  18 + </template>
  19 + </el-table-column>
  20 + </el-table>
  21 +</template>
  22 +
  23 +<script>
  24 +import { transactionList } from '@/api/remote-search'
  25 +
  26 +export default {
  27 + filters: {
  28 + statusFilter(status) {
  29 + const statusMap = {
  30 + success: 'success',
  31 + pending: 'danger'
  32 + }
  33 + return statusMap[status]
  34 + },
  35 + orderNoFilter(str) {
  36 + return str.substring(0, 30)
  37 + }
  38 + },
  39 + data() {
  40 + return {
  41 + list: null
  42 + }
  43 + },
  44 + created() {
  45 + this.fetchData()
  46 + },
  47 + methods: {
  48 + fetchData() {
  49 + transactionList().then(response => {
  50 + this.list = response.data.items.slice(0, 8)
  51 + })
  52 + }
  53 + }
  54 +}
  55 +</script>
  1 +import { debounce } from '@/utils'
  2 +
  3 +export default {
  4 + data() {
  5 + return {
  6 + $_sidebarElm: null,
  7 + $_resizeHandler: null
  8 + }
  9 + },
  10 + mounted() {
  11 + this.$_resizeHandler = debounce(() => {
  12 + if (this.chart) {
  13 + this.chart.resize()
  14 + }
  15 + }, 100)
  16 + this.$_initResizeEvent()
  17 + this.$_initSidebarResizeEvent()
  18 + },
  19 + beforeDestroy() {
  20 + this.$_destroyResizeEvent()
  21 + this.$_destroySidebarResizeEvent()
  22 + },
  23 + // to fixed bug when cached by keep-alive
  24 + // https://github.com/PanJiaChen/vue-element-admin/issues/2116
  25 + activated() {
  26 + this.$_initResizeEvent()
  27 + this.$_initSidebarResizeEvent()
  28 + },
  29 + deactivated() {
  30 + this.$_destroyResizeEvent()
  31 + this.$_destroySidebarResizeEvent()
  32 + },
  33 + methods: {
  34 + // use $_ for mixins properties
  35 + // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential
  36 + $_initResizeEvent() {
  37 + window.addEventListener('resize', this.$_resizeHandler)
  38 + },
  39 + $_destroyResizeEvent() {
  40 + window.removeEventListener('resize', this.$_resizeHandler)
  41 + },
  42 + $_sidebarResizeHandler(e) {
  43 + if (e.propertyName === 'width') {
  44 + this.$_resizeHandler()
  45 + }
  46 + },
  47 + $_initSidebarResizeEvent() {
  48 + this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0]
  49 + this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler)
  50 + },
  51 + $_destroySidebarResizeEvent() {
  52 + this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler)
  53 + }
  54 + }
  55 +}
  1 +<template>
  2 + <div class="dashboard-editor-container">
  3 + <github-corner class="github-corner" />
  4 +
  5 + <panel-group @handleSetLineChartData="handleSetLineChartData" />
  6 +
  7 + <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
  8 + <line-chart :chart-data="lineChartData" />
  9 + </el-row>
  10 +
  11 + <el-row :gutter="20">
  12 + <el-col :span="7">
  13 + <div class="chart-wrapper">
  14 + <raddar-chart />
  15 + </div>
  16 + </el-col>
  17 +<!-- :xs="24" :sm="24" :lg="8"-->
  18 + <el-col :span="7">
  19 + <div class="chart-wrapper">
  20 + <pie-chart />
  21 + </div>
  22 + </el-col>
  23 + <el-col :span="7">
  24 + <div class="chart-wrapper">
  25 + <bar-chart />
  26 + </div>
  27 + </el-col>
  28 + </el-row>
  29 +
  30 +<!-- <el-row :gutter="8">-->
  31 +<!-- <el-col :xs="{span: 24}" :sm="{span: 24}" :md="{span: 24}" :lg="{span: 12}" :xl="{span: 12}" style="padding-right:8px;margin-bottom:30px;">-->
  32 +<!-- <transaction-table />-->
  33 +<!-- </el-col>-->
  34 +<!-- <el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}" style="margin-bottom:30px;">-->
  35 +<!-- <todo-list />-->
  36 +<!-- </el-col>-->
  37 +<!-- <el-col :xs="{span: 24}" :sm="{span: 12}" :md="{span: 12}" :lg="{span: 6}" :xl="{span: 6}" style="margin-bottom:30px;">-->
  38 +<!-- <box-card />-->
  39 +<!-- </el-col>-->
  40 +<!-- </el-row>-->
  41 + </div>
  42 +</template>
  43 +
  44 +<script>
  45 + import GithubCorner from '../../components/GithubCorner'
  46 + import PanelGroup from './components/PanelGroup'
  47 + import LineChart from './components/LineChart'
  48 + import RaddarChart from './components/RaddarChart'
  49 + import PieChart from './components/PieChart'
  50 + import BarChart from './components/BarChart'
  51 + import TransactionTable from './components/TransactionTable'
  52 + import TodoList from './components/TodoList'
  53 + import BoxCard from './components/BoxCard'
  54 +
  55 + const lineChartData = {
  56 + newVisitis: {
  57 + expectedData: [100, 120, 161, 134, 105, 160, 165],
  58 + actualData: [120, 82, 91, 154, 162, 140, 145]
  59 + },
  60 + messages: {
  61 + expectedData: [200, 192, 120, 144, 160, 130, 140],
  62 + actualData: [180, 160, 151, 106, 145, 150, 130]
  63 + },
  64 + purchases: {
  65 + expectedData: [80, 100, 121, 104, 105, 90, 100],
  66 + actualData: [120, 90, 100, 138, 142, 130, 130]
  67 + },
  68 + shoppings: {
  69 + expectedData: [130, 140, 141, 142, 145, 150, 160],
  70 + actualData: [120, 82, 91, 154, 162, 140, 130]
  71 + }
  72 + }
  73 +
  74 + export default {
  75 + name: 'DashboardAdmin',
  76 + components: {
  77 + GithubCorner,
  78 + PanelGroup,
  79 + LineChart,
  80 + RaddarChart,
  81 + PieChart,
  82 + BarChart,
  83 + TransactionTable,
  84 + TodoList,
  85 + BoxCard
  86 + },
  87 + data() {
  88 + return {
  89 + lineChartData: lineChartData.newVisitis
  90 + }
  91 + },
  92 + methods: {
  93 + handleSetLineChartData(type) {
  94 + this.lineChartData = lineChartData[type]
  95 + }
  96 + }
  97 + }
  98 +</script>
  99 +
  100 +<style lang="scss" scoped>
  101 + .dashboard-editor-container {
  102 + padding: 32px;
  103 + background-color: rgb(240, 242, 245);
  104 + position: relative;
  105 +
  106 + .github-corner {
  107 + position: absolute;
  108 + top: 0px;
  109 + border: 0;
  110 + right: 0;
  111 + }
  112 +
  113 + .chart-wrapper {
  114 + background: #fff;
  115 + padding: 16px 16px 0;
  116 + margin-bottom: 32px;
  117 + }
  118 + }
  119 +
  120 + @media (max-width:1024px) {
  121 + .chart-wrapper {
  122 + padding: 6px;
  123 + }
  124 + }
  125 +</style>
@@ -155,7 +155,7 @@ @@ -155,7 +155,7 @@
155 </el-button> 155 </el-button>
156 </el-row> 156 </el-row>
157 </div> 157 </div>
158 - <pagination v-show="total>0" :total="total" :page.sync="arriveQuery.pageSize" 158 + <pagination background layout="total, prev, pager, next" v-show="total>0" :total="total" :page.sync="arriveQuery.pageSize"
159 :limit.sync="arriveQuery.limitSize" 159 :limit.sync="arriveQuery.limitSize"
160 @pagination="getList"/> 160 @pagination="getList"/>
161 <el-dialog :title="dialogMap[dialogStatus]" :visible.sync="dialogFormVisible"> 161 <el-dialog :title="dialogMap[dialogStatus]" :visible.sync="dialogFormVisible">
@@ -409,7 +409,7 @@ @@ -409,7 +409,7 @@
409 isAdmin: false, 409 isAdmin: false,
410 arriveQuery: { 410 arriveQuery: {
411 pageSize: 1, 411 pageSize: 1,
412 - limitSize: 30, 412 + limitSize: 10,
413 awba: undefined, 413 awba: undefined,
414 carrier: undefined, 414 carrier: undefined,
415 flightno: undefined, 415 flightno: undefined,
@@ -77,7 +77,7 @@ @@ -77,7 +77,7 @@
77 <span>{{scope.row.loadingtime}}</span> 77 <span>{{scope.row.loadingtime}}</span>
78 </template> 78 </template>
79 </el-table-column> 79 </el-table-column>
80 - <el-table-column label="状态" width="100" align="center"> 80 + <el-table-column label="状态" width="200" align="center">
81 <template slot-scope="scope"> 81 <template slot-scope="scope">
82 <span v-if="scope.row.status ==='01'">接受申报</span> 82 <span v-if="scope.row.status ==='01'">接受申报</span>
83 <span v-if="scope.row.status ==='02'">待人工审核</span> 83 <span v-if="scope.row.status ==='02'">待人工审核</span>
@@ -101,7 +101,7 @@ @@ -101,7 +101,7 @@
101 <span v-if="scope.row.status ==='25'">已发送修改报</span> 101 <span v-if="scope.row.status ==='25'">已发送修改报</span>
102 </template> 102 </template>
103 </el-table-column> 103 </el-table-column>
104 - <el-table-column label="回执信息" width="180" align="center"> 104 + <el-table-column label="回执信息" width="270" align="center">
105 <template slot-scope="scope"> 105 <template slot-scope="scope">
106 <span>{{scope.row.ext5}}</span> 106 <span>{{scope.row.ext5}}</span>
107 </template> 107 </template>
@@ -144,7 +144,7 @@ @@ -144,7 +144,7 @@
144 </el-button> 144 </el-button>
145 </el-row> 145 </el-row>
146 </div> 146 </div>
147 - <pagination v-show="total>0" :total="total" :page.sync="loadingQuery.page" :limit.sync="loadingQuery.limit" 147 + <pagination background layout="total, prev, pager, next" v-show="total>0" :total="total" :page.sync="loadingQuery.pageSize" :limit.sync="loadingQuery.limitSize"
148 @pagination="getList"/> 148 @pagination="getList"/>
149 149
150 <el-dialog :title="dialogMap[dialogStatus]" :visible.sync="dialogFormVisible"> 150 <el-dialog :title="dialogMap[dialogStatus]" :visible.sync="dialogFormVisible">
@@ -400,7 +400,7 @@ @@ -400,7 +400,7 @@
400 callback() 400 callback()
401 } 401 }
402 return { 402 return {
403 - total: 1, 403 + total: 0,
404 isAdmin: false, 404 isAdmin: false,
405 dialogMap: { 405 dialogMap: {
406 update: '编辑出港装载', 406 update: '编辑出港装载',
@@ -416,7 +416,7 @@ @@ -416,7 +416,7 @@
416 listLoading: false, 416 listLoading: false,
417 loadingQuery: { 417 loadingQuery: {
418 pageSize: 1, 418 pageSize: 1,
419 - limitSize: 100, 419 + limitSize: 10,
420 awba: undefined, 420 awba: undefined,
421 carrier: undefined, 421 carrier: undefined,
422 flightno: undefined, 422 flightno: undefined,
@@ -546,6 +546,9 @@ @@ -546,6 +546,9 @@
546 } 546 }
547 }, 547 },
548 methods: { 548 methods: {
  549 +
  550 +
  551 +
549 getList() { 552 getList() {
550 this.listLoading = true 553 this.listLoading = true
551 if (this.loadingQuery.awba !== undefined && this.loadingQuery.awba !== '') { 554 if (this.loadingQuery.awba !== undefined && this.loadingQuery.awba !== '') {
@@ -89,22 +89,28 @@ @@ -89,22 +89,28 @@
89 <span>{{ scope.row.actime }}</span> 89 <span>{{ scope.row.actime }}</span>
90 </template> 90 </template>
91 </el-table-column> 91 </el-table-column>
92 - <el-table-column label="状态" width="90px" align="center"> 92 + <el-table-column label="状态" width="130px" align="center">
93 <template slot-scope="scope"> 93 <template slot-scope="scope">
94 - <span v-if="scope.row.status ==='01'">未发送</span>  
95 - <span v-if="scope.row.status ==='02'">已发舱单报</span> 94 + <span v-if="scope.row.status ==='01'">接受申报</span>
  95 + <span v-if="scope.row.status ==='02'">待人工审核</span>
  96 + <span v-if="scope.row.status ==='03'">退单</span>
96 <span v-if="scope.row.status ==='05'">舱单报退单</span> 97 <span v-if="scope.row.status ==='05'">舱单报退单</span>
97 <span v-if="scope.row.status ==='06'">舱单转人工</span> 98 <span v-if="scope.row.status ==='06'">舱单转人工</span>
98 <span v-if="scope.row.status ==='07'">舱单报申报成功</span> 99 <span v-if="scope.row.status ==='07'">舱单报申报成功</span>
99 <span v-if="scope.row.status ==='08'">已发舱单删除报</span> 100 <span v-if="scope.row.status ==='08'">已发舱单删除报</span>
100 <span v-if="scope.row.status ==='09'">舱单删除报退单</span> 101 <span v-if="scope.row.status ==='09'">舱单删除报退单</span>
101 <span v-if="scope.row.status ==='10'">舱单删除报转人工</span> 102 <span v-if="scope.row.status ==='10'">舱单删除报转人工</span>
102 - <span v-if="scope.row.status ==='11'">舱单删除成功</span>  
103 - <span v-if="scope.row.status ==='12'">已发舱单修改报</span>  
104 - <span v-if="scope.row.status ==='13'">舱单修改报退单</span> 103 + <span v-if="scope.row.status ==='11'">放行</span>
  104 + <span v-if="scope.row.status ==='12'">拒装</span>
  105 + <span v-if="scope.row.status ==='13'">禁卸</span>
105 <span v-if="scope.row.status ==='14'">舱单修改报转人工</span> 106 <span v-if="scope.row.status ==='14'">舱单修改报转人工</span>
106 <span v-if="scope.row.status ==='15'">舱单修改报成功</span> 107 <span v-if="scope.row.status ==='15'">舱单修改报成功</span>
107 <span v-if="scope.row.status ==='16'">海关已存在</span> 108 <span v-if="scope.row.status ==='16'">海关已存在</span>
  109 + <span v-if="scope.row.status ==='21'">可自动发送</span>
  110 + <span v-if="scope.row.status ==='22'">未发送</span>
  111 + <span v-if="scope.row.status ==='23'">已发送新增报</span>
  112 + <span v-if="scope.row.status ==='24'">已发送删除报</span>
  113 + <span v-if="scope.row.status ==='25'">已发送修改报</span>
108 </template> 114 </template>
109 </el-table-column> 115 </el-table-column>
110 <el-table-column label="回执内容" align="center" show-overflow-tooltip> 116 <el-table-column label="回执内容" align="center" show-overflow-tooltip>
@@ -93,11 +93,6 @@ @@ -93,11 +93,6 @@
93 {{scope.row.actime}} 93 {{scope.row.actime}}
94 </template> 94 </template>
95 </el-table-column> 95 </el-table-column>
96 - <!--<el-table-column label="代理人代码" width="120" align="center">-->  
97 - <!--<template slot-scope="scope">-->  
98 - <!--{{scope.row.status}}-->  
99 - <!--</template>-->  
100 - <!--</el-table-column>-->  
101 <el-table-column label="状态" width="100" align="center"> 96 <el-table-column label="状态" width="100" align="center">
102 <template slot-scope="scope"> 97 <template slot-scope="scope">
103 <span v-if="scope.row.status ==='01'">接受申报</span> 98 <span v-if="scope.row.status ==='01'">接受申报</span>
@@ -159,12 +154,14 @@ @@ -159,12 +154,14 @@
159 </el-button> 154 </el-button>
160 </el-row> 155 </el-row>
161 </div> 156 </div>
162 - <pagination v-show="total>0" :total="total" :page.sync="preQuery.pageSize" :limit.sync="preQuery.limitSize" 157 +
  158 + <pagination background layout="total, prev, pager, next" v-show="total>0" :total="total" :page.sync="preQuery.pageSize" :limit.sync="preQuery.limitSize"
163 @pagination="getList"/> 159 @pagination="getList"/>
164 - <el-dialog :title="dialogMap[dialogStatus]" :visible.sync="dialogFormVisible" width="85%"> 160 +
  161 + <el-dialog :title="dialogMap[dialogStatus]" :visible.sync="dialogFormVisible" width="90%">
165 <el-form ref="preFormData" :model="preModel" :rules="preRoles" label-position="right" 162 <el-form ref="preFormData" :model="preModel" :rules="preRoles" label-position="right"
166 - label-width="120px" class="el-dialog-div">  
167 - <div class="grid-content content"> 163 + label-width="78px" size="mini" class="el-dialog-div" style="height: 90%">
  164 + <div class="grid-content content" style="font-size: 10px">
168 运单信息 165 运单信息
169 </div> 166 </div>
170 <el-row> 167 <el-row>
@@ -179,7 +176,7 @@ @@ -179,7 +176,7 @@
179 </el-form-item> 176 </el-form-item>
180 </el-col> 177 </el-col>
181 </el-row> 178 </el-row>
182 - <div class="grid-content content"> 179 + <div class="grid-content content" style="font-size: 10px">
183 航班信息 180 航班信息
184 </div> 181 </div>
185 <el-row> 182 <el-row>
@@ -201,9 +198,6 @@ @@ -201,9 +198,6 @@
201 type="date" placeholder="请输入航班日期" clearable/> 198 type="date" placeholder="请输入航班日期" clearable/>
202 </el-form-item> 199 </el-form-item>
203 </el-col> 200 </el-col>
204 -  
205 - </el-row>  
206 - <el-row>  
207 <el-col :span="7.5"> 201 <el-col :span="7.5">
208 <el-form-item label="起始站" prop="originstation"> 202 <el-form-item label="起始站" prop="originstation">
209 <el-select 203 <el-select
@@ -237,102 +231,91 @@ @@ -237,102 +231,91 @@
237 </el-form-item> 231 </el-form-item>
238 </el-col> 232 </el-col>
239 </el-row> 233 </el-row>
240 - <div class="grid-content content"> 234 + <div class="grid-content content" style="font-size: 10px">
241 航程信息 235 航程信息
242 </div> 236 </div>
243 <div> 237 <div>
244 <el-row> 238 <el-row>
245 - <el-col :span="7.5"> 239 + <el-col :span="3">
246 <el-form-item label="承运人" prop="carrier"> 240 <el-form-item label="承运人" prop="carrier">
247 <el-input v-model="carrier" disabled clearable/> 241 <el-input v-model="carrier" disabled clearable/>
248 </el-form-item> 242 </el-form-item>
249 </el-col> 243 </el-col>
250 - <el-col :span="7.5"> 244 + <el-col :span="3">
251 <el-form-item label="到达航站" prop="destinationstation"> 245 <el-form-item label="到达航站" prop="destinationstation">
252 <el-input v-model="destinationstation" disabled clearable/> 246 <el-input v-model="destinationstation" disabled clearable/>
253 </el-form-item> 247 </el-form-item>
254 </el-col> 248 </el-col>
255 - </el-row>  
256 - <el-row>  
257 - <el-col :span="7.5"> 249 + <el-col :span="3">
258 <el-form-item label="承运人1"> 250 <el-form-item label="承运人1">
259 <el-input v-model="by1" clearable/> 251 <el-input v-model="by1" clearable/>
260 </el-form-item> 252 </el-form-item>
261 </el-col> 253 </el-col>
262 - <el-col :span="7.5"> 254 + <el-col :span="3">
263 <el-form-item label="到达航站1"> 255 <el-form-item label="到达航站1">
264 <el-input v-model="dest1" clearable></el-input> 256 <el-input v-model="dest1" clearable></el-input>
265 </el-form-item> 257 </el-form-item>
266 </el-col> 258 </el-col>
267 - </el-row>  
268 - <el-row>  
269 - <el-col :span="7.5"> 259 + <el-col :span="3">
270 <el-form-item label="承运人2"> 260 <el-form-item label="承运人2">
271 <el-input v-model="by2" clearable/> 261 <el-input v-model="by2" clearable/>
272 </el-form-item> 262 </el-form-item>
273 </el-col> 263 </el-col>
274 - <el-col :span="7.5"> 264 + <el-col :span="3">
275 <el-form-item label="到达航站2"> 265 <el-form-item label="到达航站2">
276 <el-input v-model="dest2" clearable/> 266 <el-input v-model="dest2" clearable/>
277 </el-form-item> 267 </el-form-item>
278 </el-col> 268 </el-col>
279 -  
280 </el-row> 269 </el-row>
281 </div> 270 </div>
282 - <div class="grid-content content"> 271 + <div class="grid-content content" style="font-size: 10px">
283 货物信息 272 货物信息
284 </div> 273 </div>
285 <el-row> 274 <el-row>
286 - <el-col :span="7.5"> 275 + <el-col :span="3">
287 <el-form-item label="运单件数" prop="awbinfo.pcs"> 276 <el-form-item label="运单件数" prop="awbinfo.pcs">
288 <el-input v-model="preModel.awbinfo.pcs" clearable/> 277 <el-input v-model="preModel.awbinfo.pcs" clearable/>
289 </el-form-item> 278 </el-form-item>
290 </el-col> 279 </el-col>
291 - <el-col :span="7.5"> 280 + <el-col :span="3">
292 <el-form-item label="运单重量" prop="awbinfo.weight"> 281 <el-form-item label="运单重量" prop="awbinfo.weight">
293 <el-input v-model="preModel.awbinfo.weight" clearable/> 282 <el-input v-model="preModel.awbinfo.weight" clearable/>
294 </el-form-item> 283 </el-form-item>
295 </el-col> 284 </el-col>
296 - <el-col :span="7.5"> 285 + <el-col :span="3">
297 <el-form-item label="货物描述" prop="goodsname"> 286 <el-form-item label="货物描述" prop="goodsname">
298 <el-input v-model="goodsname" clearable/> 287 <el-input v-model="goodsname" clearable/>
299 </el-form-item> 288 </el-form-item>
300 </el-col> 289 </el-col>
301 - </el-row>  
302 - <el-row>  
303 - <el-col :span="7.5" v-if="fenStatus !=='addAwbh'"> 290 + <el-col :span="3" v-if="fenStatus !=='addAwbh'">
304 <el-form-item label="预配件数" prop="piece"> 291 <el-form-item label="预配件数" prop="piece">
305 <el-input v-model="preModel.piece" clearable/> 292 <el-input v-model="preModel.piece" clearable/>
306 </el-form-item> 293 </el-form-item>
307 </el-col> 294 </el-col>
308 - <el-col :span="8" v-if="fenStatus ==='addAwbh'">  
309 - <el-col :span="14"> 295 + <el-col :span="3" v-if="fenStatus ==='addAwbh'">
310 <el-form-item label="预配件数" prop="piece"> 296 <el-form-item label="预配件数" prop="piece">
311 <el-input v-model="preModel.piece" clearable/> 297 <el-input v-model="preModel.piece" clearable/>
312 </el-form-item> 298 </el-form-item>
313 </el-col> 299 </el-col>
314 - <el-col :span="8"> 300 + <el-col :span="1.5" v-if="fenStatus ==='addAwbh'">
315 <span>剩余件数:{{awbPiece}}</span> 301 <span>剩余件数:{{awbPiece}}</span>
316 </el-col> 302 </el-col>
317 - </el-col>  
318 303
319 - <el-col :span="7.5" v-if="fenStatus !=='addAwbh'"> 304 + <el-col :span="3" v-if="fenStatus !=='addAwbh'">
320 <el-form-item label="预配重量" prop="weight"> 305 <el-form-item label="预配重量" prop="weight">
321 <el-input v-model="preModel.weight" clearable/> 306 <el-input v-model="preModel.weight" clearable/>
322 </el-form-item> 307 </el-form-item>
323 </el-col> 308 </el-col>
324 - <el-col :span="8" v-if="fenStatus ==='addAwbh'">  
325 - <el-col :span="14"> 309 + <el-col :span="3" v-if="fenStatus ==='addAwbh'">
326 <el-form-item label="预配重量" prop="weight"> 310 <el-form-item label="预配重量" prop="weight">
327 <el-input v-model="preModel.weight" clearable/> 311 <el-input v-model="preModel.weight" clearable/>
328 </el-form-item> 312 </el-form-item>
329 </el-col> 313 </el-col>
330 - <el-col :span="8"> 314 + <el-col :span="1.5" v-if="fenStatus ==='addAwbh'">
331 <span>剩余重量:{{awbWeight}}</span> 315 <span>剩余重量:{{awbWeight}}</span>
332 </el-col> 316 </el-col>
333 - </el-col>  
334 317
335 - <el-col :span="7.5"> 318 + <el-col :span="3">
336 <el-form-item label="预配时间" prop="actime"> 319 <el-form-item label="预配时间" prop="actime">
337 <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" 320 <el-date-picker value-format="yyyy-MM-dd HH:mm:ss"
338 v-model="preModel.actime" align="right" 321 v-model="preModel.actime" align="right"
@@ -341,7 +324,7 @@ @@ -341,7 +324,7 @@
341 </el-col> 324 </el-col>
342 </el-row> 325 </el-row>
343 <el-row> 326 <el-row>
344 - <el-col :span="7.5"> 327 + <el-col :span="3">
345 <el-form-item label="关区代码" prop="customcode"> 328 <el-form-item label="关区代码" prop="customcode">
346 <el-select v-model="preModel.customcode" placeholder="请选择关区代码" 329 <el-select v-model="preModel.customcode" placeholder="请选择关区代码"
347 filterable clearable :remote-method="remoteMethodCustomCode" :loading="customLoading" remote 330 filterable clearable :remote-method="remoteMethodCustomCode" :loading="customLoading" remote
@@ -354,7 +337,7 @@ @@ -354,7 +337,7 @@
354 </el-select> 337 </el-select>
355 </el-form-item> 338 </el-form-item>
356 </el-col> 339 </el-col>
357 - <el-col :span="7.5"> 340 + <el-col :span="3">
358 <el-form-item label="海关状态"> 341 <el-form-item label="海关状态">
359 <el-select v-model="preModel.awbinfo.awbtype" class="filter-item" placeholder="请录入货物类型"> 342 <el-select v-model="preModel.awbinfo.awbtype" class="filter-item" placeholder="请录入货物类型">
360 <el-option v-for="item in customTypes" :key="item.value" :label="item.label" 343 <el-option v-for="item in customTypes" :key="item.value" :label="item.label"
@@ -362,7 +345,7 @@ @@ -362,7 +345,7 @@
362 </el-select> 345 </el-select>
363 </el-form-item> 346 </el-form-item>
364 </el-col> 347 </el-col>
365 - <el-col :span="7.5"> 348 + <el-col :span="3">
366 <el-form-item label="付费方式" prop="awbinfo.paymodel"> 349 <el-form-item label="付费方式" prop="awbinfo.paymodel">
367 <el-select v-model="preModel.awbinfo.paymodel" class="filter-item" placeholder="付费方式"> 350 <el-select v-model="preModel.awbinfo.paymodel" class="filter-item" placeholder="付费方式">
368 <el-option 351 <el-option
@@ -373,67 +356,57 @@ @@ -373,67 +356,57 @@
373 </el-select> 356 </el-select>
374 </el-form-item> 357 </el-form-item>
375 </el-col> 358 </el-col>
376 - </el-row>  
377 - <el-row>  
378 -  
379 - <el-col :span="7.5"> 359 + <el-col :span="3">
380 <el-form-item label="卸货地" prop=""> 360 <el-form-item label="卸货地" prop="">
381 <el-input v-model="specopeid" clearable/> 361 <el-input v-model="specopeid" clearable/>
382 </el-form-item> 362 </el-form-item>
383 </el-col> 363 </el-col>
384 - <el-col :span="7.5">  
385 - <el-form-item label="代理人代码" prop=""> 364 + <el-col :span="3">
  365 + <el-form-item label-width="95px" label="代理人代码" prop="">
386 <el-input v-model="preModel.awbinfo.shpcustomerid" clearable/> 366 <el-input v-model="preModel.awbinfo.shpcustomerid" clearable/>
387 </el-form-item> 367 </el-form-item>
388 </el-col> 368 </el-col>
389 - <el-col :span="7.5">  
390 - <el-form-item label="代理人名称" prop=""> 369 + <el-col :span="3">
  370 + <el-form-item label-width="95px" label="代理人名称" prop="">
391 <el-input v-model="preModel.awbinfo.shpcustomerid" clearable/> 371 <el-input v-model="preModel.awbinfo.shpcustomerid" clearable/>
392 </el-form-item> 372 </el-form-item>
393 </el-col> 373 </el-col>
394 </el-row> 374 </el-row>
395 - <el-row>  
396 -  
397 - </el-row>  
398 - <div class="grid-content content"> 375 + <div class="grid-content content" style="font-size: 10px">
399 发货人信息 376 发货人信息
400 </div> 377 </div>
401 <el-row> 378 <el-row>
402 - <el-col :span="7.5">  
403 - <el-form-item label="发货人名称" prop="awbinfo.shprname"> 379 + <el-col :span="3">
  380 + <el-form-item label-width="95px" label="发货人名称" prop="awbinfo.shprname">
404 <el-input v-model="shprname" clearable/> 381 <el-input v-model="shprname" clearable/>
405 </el-form-item> 382 </el-form-item>
406 </el-col> 383 </el-col>
407 - <el-col :span="7.5"> 384 + <el-col :span="3">
408 <el-form-item label="地址" prop="awbinfo.shpraddress"> 385 <el-form-item label="地址" prop="awbinfo.shpraddress">
409 - <el-input v-model="shpraddress" clearable/> 386 + <el-input style="width: 100px" v-model="shpraddress" clearable/>
410 </el-form-item> 387 </el-form-item>
411 </el-col> 388 </el-col>
412 - <el-col :span="7.5"> 389 + <el-col :span="2">
413 <el-form-item label="城市代码"> 390 <el-form-item label="城市代码">
414 - <el-input v-model="scityid" maxlength="5" clearable/> 391 + <el-input style="width: 100px" v-model="scityid" maxlength="5" clearable/>
415 </el-form-item> 392 </el-form-item>
416 </el-col> 393 </el-col>
417 - </el-row>  
418 - <el-row>  
419 - <el-col :span="7.5"> 394 + <el-col :span="3">
420 <el-form-item label="电话" prop="awbinfo.shprtel"> 395 <el-form-item label="电话" prop="awbinfo.shprtel">
421 - <el-input v-model="preModel.awbinfo.shprtel" clearable/> 396 + <el-input style="width: 150px" v-model="preModel.awbinfo.shprtel" clearable/>
422 </el-form-item> 397 </el-form-item>
423 </el-col> 398 </el-col>
424 - <el-col :span="7.5"> 399 + <el-col :span="3">
425 <el-form-item label="传真"> 400 <el-form-item label="传真">
426 <el-input v-model="preModel.awbinfo.shprmobiletype" clearable/> 401 <el-input v-model="preModel.awbinfo.shprmobiletype" clearable/>
427 </el-form-item> 402 </el-form-item>
428 </el-col> 403 </el-col>
429 - <el-col :span="7.5">  
430 - <el-form-item label="发货人AEO编码" prop="awbinfo.shpaeocode"> 404 + <el-col :span="3">
  405 + <el-form-item label-width="115px" label="发货人AEO编码" prop="awbinfo.shpaeocode">
431 <el-input v-model="shpaeocode" clearable/> 406 <el-input v-model="shpaeocode" clearable/>
432 </el-form-item> 407 </el-form-item>
433 </el-col> 408 </el-col>
434 - </el-row>  
435 - <el-row>  
436 - <el-col :span="7.5"> 409 + <el-col :span="3">
437 <el-form-item label="国家代码" prop="awbinfo.shprcountyr"> 410 <el-form-item label="国家代码" prop="awbinfo.shprcountyr">
438 <el-select 411 <el-select
439 :remote-method="remoteMethod" 412 :remote-method="remoteMethod"
@@ -474,45 +447,41 @@ @@ -474,45 +447,41 @@
474 <!--</el-form-item>--> 447 <!--</el-form-item>-->
475 <!--</el-col>--> 448 <!--</el-col>-->
476 </el-row> 449 </el-row>
477 - <div class="grid-content content"> 450 + <div class="grid-content content" style="font-size: 10px">
478 收货人信息 451 收货人信息
479 </div> 452 </div>
480 <el-row> 453 <el-row>
481 - <el-col :span="7.5">  
482 - <el-form-item label="收货人名称" prop="awbinfo.cnsnname"> 454 + <el-col :span="3">
  455 + <el-form-item label-width="95px" label="收货人名称" prop="awbinfo.cnsnname">
483 <el-input v-model="cnsnname" clearable/> 456 <el-input v-model="cnsnname" clearable/>
484 </el-form-item> 457 </el-form-item>
485 </el-col> 458 </el-col>
486 - <el-col :span="7.5"> 459 + <el-col :span="3">
487 <el-form-item label="地址" prop="awbinfo.cnsnaddress"> 460 <el-form-item label="地址" prop="awbinfo.cnsnaddress">
488 - <el-input v-model="cnsnaddress" clearable/> 461 + <el-input style="weight: 100px" v-model="cnsnaddress" clearable/>
489 </el-form-item> 462 </el-form-item>
490 </el-col> 463 </el-col>
491 - <el-col :span="7.5"> 464 + <el-col :span="3">
492 <el-form-item label="城市代码"> 465 <el-form-item label="城市代码">
493 - <el-input v-model="ecityid" clearable maxlength="5"/> 466 + <el-input style="width: 100px" v-model="ecityid" clearable maxlength="5"/>
494 </el-form-item> 467 </el-form-item>
495 </el-col> 468 </el-col>
496 - </el-row>  
497 - <el-row>  
498 - <el-col :span="7.5"> 469 + <el-col :span="3">
499 <el-form-item label="电话" prop="awbinfo.cnsntel"> 470 <el-form-item label="电话" prop="awbinfo.cnsntel">
500 - <el-input v-model="preModel.awbinfo.cnsntel" clearable/> 471 + <el-input style="weight: 150px" v-model="preModel.awbinfo.cnsntel" clearable/>
501 </el-form-item> 472 </el-form-item>
502 </el-col> 473 </el-col>
503 - <el-col :span="7.5"> 474 + <el-col :span="3">
504 <el-form-item label="传真"> 475 <el-form-item label="传真">
505 <el-input v-model="preModel.awbinfo.cnsrmobiletype" clearable/> 476 <el-input v-model="preModel.awbinfo.cnsrmobiletype" clearable/>
506 </el-form-item> 477 </el-form-item>
507 </el-col> 478 </el-col>
508 - <el-col :span="7.5">  
509 - <el-form-item label="收货人AEO编码" prop="awbinfo.cnsaeocode"> 479 + <el-col :span="3">
  480 + <el-form-item label-width="115px" label="收货人AEO编码" prop="awbinfo.cnsaeocode">
510 <el-input v-model="cnsaeocode" clearable/> 481 <el-input v-model="cnsaeocode" clearable/>
511 </el-form-item> 482 </el-form-item>
512 </el-col> 483 </el-col>
513 - </el-row>  
514 - <el-row>  
515 - <el-col :span="7.5"> 484 + <el-col :span="3">
516 <el-form-item label="国家代码" prop="awbinfo.cnscountyr"> 485 <el-form-item label="国家代码" prop="awbinfo.cnscountyr">
517 <el-select 486 <el-select
518 :remote-method="remoteMethod" 487 :remote-method="remoteMethod"
@@ -533,13 +502,13 @@ @@ -533,13 +502,13 @@
533 </el-select> 502 </el-select>
534 </el-form-item> 503 </el-form-item>
535 </el-col> 504 </el-col>
536 - <el-col :span="7.5">  
537 - <el-form-item label="具体收货人名称" prop="awbinfo.cnsrctcname"> 505 + <el-col :span="3">
  506 + <el-form-item label-width="115px" label="具体收货人名称" prop="awbinfo.cnsrctcname">
538 <el-input v-model="cnsrctcname" clearable/> 507 <el-input v-model="cnsrctcname" clearable/>
539 </el-form-item> 508 </el-form-item>
540 </el-col> 509 </el-col>
541 - <el-col :span="7.5">  
542 - <el-form-item label="具体收货人电话" prop="awbinfo.cnsrctctel"> 510 + <el-col :span="4">
  511 + <el-form-item label-width="115px" label="具体收货人电话" prop="awbinfo.cnsrctctel">
543 <el-input v-model="preModel.awbinfo.cnsrctctel" clearable/> 512 <el-input v-model="preModel.awbinfo.cnsrctctel" clearable/>
544 </el-form-item> 513 </el-form-item>
545 </el-col> 514 </el-col>
@@ -728,7 +697,7 @@ @@ -728,7 +697,7 @@
728 isAdmin: false, 697 isAdmin: false,
729 preQuery: { 698 preQuery: {
730 pageSize: 1, 699 pageSize: 1,
731 - limitSize: 100, 700 + limitSize: 30,
732 awba: undefined, 701 awba: undefined,
733 carrier: undefined, 702 carrier: undefined,
734 flightno: undefined, 703 flightno: undefined,
@@ -1122,8 +1091,6 @@ @@ -1122,8 +1091,6 @@
1122 getMt2201ListForParam(this.preQuery).then(res => { 1091 getMt2201ListForParam(this.preQuery).then(res => {
1123 this.preData = res.data.dataList 1092 this.preData = res.data.dataList
1124 this.total = res.data.count 1093 this.total = res.data.count
1125 - console.log("主单号不为空时打印")  
1126 - console.log(res.data)  
1127 if (res.data.dataList.length > 0) { 1094 if (res.data.dataList.length > 0) {
1128 this.preQuery.carrier = this.preData[0].carrier 1095 this.preQuery.carrier = this.preData[0].carrier
1129 this.preQuery.flightno = this.preData[0].flightno 1096 this.preQuery.flightno = this.preData[0].flightno
@@ -1209,6 +1176,8 @@ @@ -1209,6 +1176,8 @@
1209 }, 1176 },
1210 // >>>>>>>>>>>>>>>>新增主单<<<<<<<<<<<<<<<<<< 1177 // >>>>>>>>>>>>>>>>新增主单<<<<<<<<<<<<<<<<<<
1211 handleAddpreInfo() { 1178 handleAddpreInfo() {
  1179 +
  1180 + this.fenStatus=undefined;
1212 this.restModel() 1181 this.restModel()
1213 this.preModel.carrier = this.preQuery.carrier 1182 this.preModel.carrier = this.preQuery.carrier
1214 this.preModel.flightno = this.preQuery.flightno 1183 this.preModel.flightno = this.preQuery.flightno
@@ -416,7 +416,7 @@ @@ -416,7 +416,7 @@
416 airportCode:[], 416 airportCode:[],
417 tidyQuery: { 417 tidyQuery: {
418 pageSize: 1, 418 pageSize: 1,
419 - limitSize: 30, 419 + limitSize: 10,
420 awba: undefined, 420 awba: undefined,
421 carrier: undefined, 421 carrier: undefined,
422 flightno: undefined, 422 flightno: undefined,