作者 王勇

添加进度条

@@ -2,48 +2,48 @@ @@ -2,48 +2,48 @@
2 var path = require('path') 2 var path = require('path')
3 3
4 module.exports = { 4 module.exports = {
5 - build: {  
6 - env: require('./prod.env'),  
7 - index: path.resolve(__dirname, '../dist/index.html'),  
8 - assetsRoot: path.resolve(__dirname, '../dist'),  
9 - assetsSubDirectory: 'static',  
10 - assetsPublicPath: './',  
11 - productionSourceMap: true,  
12 - // Gzip off by default as many popular static hosts such as2.20202  
13 - // Surge or Netlify already gzip all static assets for you.  
14 - // Before setting to `true`, make sure to:  
15 - // npm install --save-dev compression-webpack-plugin  
16 - productionGzip: false, 5 + build: {
  6 + env: require('./prod.env'),
  7 + index: path.resolve(__dirname, '../dist/index.html'),
  8 + assetsRoot: path.resolve(__dirname, '../dist'),
  9 + assetsSubDirectory: 'static',
  10 + assetsPublicPath: './',
  11 + productionSourceMap: true,
  12 + // Gzip off by default as many popular static hosts such as2.20202
  13 + // Surge or Netlify already gzip all static assets for you.
  14 + // Before setting to `true`, make sure to:
  15 + // npm install --save-dev compression-webpack-plugin
  16 + productionGzip: false,
17 17
18 - productionGzipExtensions: ['js', 'css'],  
19 - // Run the build command with an extra argument to  
20 - // View the bundle analyzer report after build finishes:  
21 - // `npm run build --report`  
22 - // Set to `true` or `false` to always turn it on or off  
23 - bundleAnalyzerReport: process.env.npm_config_report  
24 - },  
25 - dev: {  
26 - env: require('./dev.env'),  
27 - port: 12020,  
28 - autoOpenBrowser: true,  
29 - assetsSubDirectory: 'static',  
30 - assetsPublicPath: '/',  
31 - proxyTable: {  
32 - '/api':{  
33 - // target: 'http://192.168.1.53:12343',//设置你调用的接口域名和端口号 别忘了加http  
34 - // target: 'http://127.0.0.1:12343',//设置你调用的接口域名和端口号 别忘了加http  
35 - target: 'http://10.50.3.82:22343',//设置你调用的接口域名和端口号 别忘了加http  
36 - changeOrigin: true,  
37 - pathRewrite: {  
38 - '^/api/': '/'//这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可  
39 - }  
40 - } 18 + productionGzipExtensions: ['js', 'css'],
  19 + // Run the build command with an extra argument to
  20 + // View the bundle analyzer report after build finishes:
  21 + // `npm run build --report`
  22 + // Set to `true` or `false` to always turn it on or off
  23 + bundleAnalyzerReport: process.env.npm_config_report
41 }, 24 },
42 - // CSS Sourcemaps off by default because relative paths are "buggy"  
43 - // with this option, according to the CSS-Loader README  
44 - // (https://github.com/webpack/css-loader#sourcemaps)  
45 - // In our experience, they generally work as expected,  
46 - // just be aware of this issue when enabling this option.  
47 - cssSourceMap: false  
48 - } 25 + dev: {
  26 + env: require('./dev.env'),
  27 + port: 12020,
  28 + autoOpenBrowser: true,
  29 + assetsSubDirectory: 'static',
  30 + assetsPublicPath: '/',
  31 + proxyTable: {
  32 + '/api': {
  33 + target: 'http://192.168.1.53:12343',//设置你调用的接口域名和端口号 别忘了加http
  34 + // target: 'http://127.0.0.1:12343',//设置你调用的接口域名和端口号 别忘了加http
  35 + //target: 'http://10.50.3.82:22343',//设置你调用的接口域名和端口号 别忘了加http
  36 + changeOrigin: true,
  37 + pathRewrite: {
  38 + '^/api/': '/'//这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可
  39 + }
  40 + }
  41 + },
  42 + // CSS Sourcemaps off by default because relative paths are "buggy"
  43 + // with this option, according to the CSS-Loader README
  44 + // (https://github.com/webpack/css-loader#sourcemaps)
  45 + // In our experience, they generally work as expected,
  46 + // just be aware of this issue when enabling this option.
  47 + cssSourceMap: false
  48 + }
49 } 49 }
@@ -92,12 +92,6 @@ @@ -92,12 +92,6 @@
92 "printj": "~1.1.0" 92 "printj": "~1.1.0"
93 } 93 }
94 }, 94 },
95 - "after": {  
96 - "version": "0.8.2",  
97 - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",  
98 - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=",  
99 - "dev": true  
100 - },  
101 "ajv": { 95 "ajv": {
102 "version": "6.10.2", 96 "version": "6.10.2",
103 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", 97 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
@@ -526,12 +520,6 @@ @@ -526,12 +520,6 @@
526 "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", 520 "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
527 "dev": true 521 "dev": true
528 }, 522 },
529 - "arraybuffer.slice": {  
530 - "version": "0.0.7",  
531 - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",  
532 - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==",  
533 - "dev": true  
534 - },  
535 "asn1": { 523 "asn1": {
536 "version": "0.2.4", 524 "version": "0.2.4",
537 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 525 "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
@@ -1550,12 +1538,6 @@ @@ -1550,12 +1538,6 @@
1550 "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", 1538 "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
1551 "dev": true 1539 "dev": true
1552 }, 1540 },
1553 - "backo2": {  
1554 - "version": "1.0.2",  
1555 - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz",  
1556 - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=",  
1557 - "dev": true  
1558 - },  
1559 "balanced-match": { 1541 "balanced-match": {
1560 "version": "1.0.0", 1542 "version": "1.0.0",
1561 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 1543 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
@@ -1628,12 +1610,6 @@ @@ -1628,12 +1610,6 @@
1628 } 1610 }
1629 } 1611 }
1630 }, 1612 },
1631 - "base64-arraybuffer": {  
1632 - "version": "0.1.5",  
1633 - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",  
1634 - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=",  
1635 - "dev": true  
1636 - },  
1637 "base64-js": { 1613 "base64-js": {
1638 "version": "1.3.1", 1614 "version": "1.3.1",
1639 "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", 1615 "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
@@ -1649,15 +1625,6 @@ @@ -1649,15 +1625,6 @@
1649 "tweetnacl": "^0.14.3" 1625 "tweetnacl": "^0.14.3"
1650 } 1626 }
1651 }, 1627 },
1652 - "better-assert": {  
1653 - "version": "1.0.2",  
1654 - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz",  
1655 - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=",  
1656 - "dev": true,  
1657 - "requires": {  
1658 - "callsite": "1.0.0"  
1659 - }  
1660 - },  
1661 "bfj": { 1628 "bfj": {
1662 "version": "6.1.2", 1629 "version": "6.1.2",
1663 "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", 1630 "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz",
@@ -1682,12 +1649,6 @@ @@ -1682,12 +1649,6 @@
1682 "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", 1649 "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
1683 "dev": true 1650 "dev": true
1684 }, 1651 },
1685 - "blob": {  
1686 - "version": "0.0.5",  
1687 - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz",  
1688 - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==",  
1689 - "dev": true  
1690 - },  
1691 "block-stream": { 1652 "block-stream": {
1692 "version": "0.0.9", 1653 "version": "0.0.9",
1693 "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", 1654 "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
@@ -1939,12 +1900,6 @@ @@ -1939,12 +1900,6 @@
1939 } 1900 }
1940 } 1901 }
1941 }, 1902 },
1942 - "callsite": {  
1943 - "version": "1.0.0",  
1944 - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",  
1945 - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=",  
1946 - "dev": true  
1947 - },  
1948 "callsites": { 1903 "callsites": {
1949 "version": "3.1.0", 1904 "version": "3.1.0",
1950 "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 1905 "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -2479,24 +2434,12 @@ @@ -2479,24 +2434,12 @@
2479 "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 2434 "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
2480 "dev": true 2435 "dev": true
2481 }, 2436 },
2482 - "component-bind": {  
2483 - "version": "1.0.0",  
2484 - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",  
2485 - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=",  
2486 - "dev": true  
2487 - },  
2488 "component-emitter": { 2437 "component-emitter": {
2489 "version": "1.3.0", 2438 "version": "1.3.0",
2490 "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", 2439 "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
2491 "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", 2440 "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
2492 "dev": true 2441 "dev": true
2493 }, 2442 },
2494 - "component-inherit": {  
2495 - "version": "0.0.3",  
2496 - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz",  
2497 - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=",  
2498 - "dev": true  
2499 - },  
2500 "concat-map": { 2443 "concat-map": {
2501 "version": "0.0.1", 2444 "version": "0.0.1",
2502 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 2445 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -3352,64 +3295,6 @@ @@ -3352,64 +3295,6 @@
3352 "once": "^1.4.0" 3295 "once": "^1.4.0"
3353 } 3296 }
3354 }, 3297 },
3355 - "engine.io-client": {  
3356 - "version": "3.4.2",  
3357 - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.2.tgz",  
3358 - "integrity": "sha512-AWjc1Xg06a6UPFOBAzJf48W1UR/qKYmv/ubgSCumo9GXgvL/xGIvo05dXoBL+2NTLMipDI7in8xK61C17L25xg==",  
3359 - "dev": true,  
3360 - "requires": {  
3361 - "component-emitter": "~1.3.0",  
3362 - "component-inherit": "0.0.3",  
3363 - "debug": "~4.1.0",  
3364 - "engine.io-parser": "~2.2.0",  
3365 - "has-cors": "1.1.0",  
3366 - "indexof": "0.0.1",  
3367 - "parseqs": "0.0.5",  
3368 - "parseuri": "0.0.5",  
3369 - "ws": "~6.1.0",  
3370 - "xmlhttprequest-ssl": "~1.5.4",  
3371 - "yeast": "0.1.2"  
3372 - },  
3373 - "dependencies": {  
3374 - "debug": {  
3375 - "version": "4.1.1",  
3376 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",  
3377 - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",  
3378 - "dev": true,  
3379 - "requires": {  
3380 - "ms": "^2.1.1"  
3381 - }  
3382 - },  
3383 - "ms": {  
3384 - "version": "2.1.2",  
3385 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",  
3386 - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",  
3387 - "dev": true  
3388 - },  
3389 - "ws": {  
3390 - "version": "6.1.4",  
3391 - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz",  
3392 - "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==",  
3393 - "dev": true,  
3394 - "requires": {  
3395 - "async-limiter": "~1.0.0"  
3396 - }  
3397 - }  
3398 - }  
3399 - },  
3400 - "engine.io-parser": {  
3401 - "version": "2.2.0",  
3402 - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz",  
3403 - "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==",  
3404 - "dev": true,  
3405 - "requires": {  
3406 - "after": "0.8.2",  
3407 - "arraybuffer.slice": "~0.0.7",  
3408 - "base64-arraybuffer": "0.1.5",  
3409 - "blob": "0.0.5",  
3410 - "has-binary2": "~1.0.2"  
3411 - }  
3412 - },  
3413 "enhanced-resolve": { 3298 "enhanced-resolve": {
3414 "version": "3.4.1", 3299 "version": "3.4.1",
3415 "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", 3300 "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
@@ -4955,29 +4840,6 @@ @@ -4955,29 +4840,6 @@
4955 } 4840 }
4956 } 4841 }
4957 }, 4842 },
4958 - "has-binary2": {  
4959 - "version": "1.0.3",  
4960 - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz",  
4961 - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==",  
4962 - "dev": true,  
4963 - "requires": {  
4964 - "isarray": "2.0.1"  
4965 - },  
4966 - "dependencies": {  
4967 - "isarray": {  
4968 - "version": "2.0.1",  
4969 - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",  
4970 - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",  
4971 - "dev": true  
4972 - }  
4973 - }  
4974 - },  
4975 - "has-cors": {  
4976 - "version": "1.1.0",  
4977 - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz",  
4978 - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=",  
4979 - "dev": true  
4980 - },  
4981 "has-flag": { 4843 "has-flag": {
4982 "version": "3.0.0", 4844 "version": "3.0.0",
4983 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 4845 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
@@ -5320,12 +5182,6 @@ @@ -5320,12 +5182,6 @@
5320 "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", 5182 "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
5321 "dev": true 5183 "dev": true
5322 }, 5184 },
5323 - "indexof": {  
5324 - "version": "0.0.1",  
5325 - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",  
5326 - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=",  
5327 - "dev": true  
5328 - },  
5329 "inflight": { 5185 "inflight": {
5330 "version": "1.0.6", 5186 "version": "1.0.6",
5331 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 5187 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -9555,12 +9411,6 @@ @@ -9555,12 +9411,6 @@
9555 "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", 9411 "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
9556 "dev": true 9412 "dev": true
9557 }, 9413 },
9558 - "object-component": {  
9559 - "version": "0.0.3",  
9560 - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz",  
9561 - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=",  
9562 - "dev": true  
9563 - },  
9564 "object-copy": { 9414 "object-copy": {
9565 "version": "0.1.0", 9415 "version": "0.1.0",
9566 "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", 9416 "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
@@ -9869,24 +9719,6 @@ @@ -9869,24 +9719,6 @@
9869 "error-ex": "^1.2.0" 9719 "error-ex": "^1.2.0"
9870 } 9720 }
9871 }, 9721 },
9872 - "parseqs": {  
9873 - "version": "0.0.5",  
9874 - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz",  
9875 - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=",  
9876 - "dev": true,  
9877 - "requires": {  
9878 - "better-assert": "~1.0.0"  
9879 - }  
9880 - },  
9881 - "parseuri": {  
9882 - "version": "0.0.5",  
9883 - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz",  
9884 - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=",  
9885 - "dev": true,  
9886 - "requires": {  
9887 - "better-assert": "~1.0.0"  
9888 - }  
9889 - },  
9890 "parseurl": { 9722 "parseurl": {
9891 "version": "1.3.3", 9723 "version": "1.3.3",
9892 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 9724 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
@@ -11843,85 +11675,6 @@ @@ -11843,85 +11675,6 @@
11843 "kind-of": "^3.2.0" 11675 "kind-of": "^3.2.0"
11844 } 11676 }
11845 }, 11677 },
11846 - "socket.io-client": {  
11847 - "version": "2.3.0",  
11848 - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz",  
11849 - "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==",  
11850 - "dev": true,  
11851 - "requires": {  
11852 - "backo2": "1.0.2",  
11853 - "base64-arraybuffer": "0.1.5",  
11854 - "component-bind": "1.0.0",  
11855 - "component-emitter": "1.2.1",  
11856 - "debug": "~4.1.0",  
11857 - "engine.io-client": "~3.4.0",  
11858 - "has-binary2": "~1.0.2",  
11859 - "has-cors": "1.1.0",  
11860 - "indexof": "0.0.1",  
11861 - "object-component": "0.0.3",  
11862 - "parseqs": "0.0.5",  
11863 - "parseuri": "0.0.5",  
11864 - "socket.io-parser": "~3.3.0",  
11865 - "to-array": "0.1.4"  
11866 - },  
11867 - "dependencies": {  
11868 - "component-emitter": {  
11869 - "version": "1.2.1",  
11870 - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",  
11871 - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",  
11872 - "dev": true  
11873 - },  
11874 - "debug": {  
11875 - "version": "4.1.1",  
11876 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",  
11877 - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",  
11878 - "dev": true,  
11879 - "requires": {  
11880 - "ms": "^2.1.1"  
11881 - }  
11882 - },  
11883 - "ms": {  
11884 - "version": "2.1.2",  
11885 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",  
11886 - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",  
11887 - "dev": true  
11888 - }  
11889 - }  
11890 - },  
11891 - "socket.io-parser": {  
11892 - "version": "3.3.0",  
11893 - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz",  
11894 - "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==",  
11895 - "dev": true,  
11896 - "requires": {  
11897 - "component-emitter": "1.2.1",  
11898 - "debug": "~3.1.0",  
11899 - "isarray": "2.0.1"  
11900 - },  
11901 - "dependencies": {  
11902 - "component-emitter": {  
11903 - "version": "1.2.1",  
11904 - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",  
11905 - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",  
11906 - "dev": true  
11907 - },  
11908 - "debug": {  
11909 - "version": "3.1.0",  
11910 - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",  
11911 - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",  
11912 - "dev": true,  
11913 - "requires": {  
11914 - "ms": "2.0.0"  
11915 - }  
11916 - },  
11917 - "isarray": {  
11918 - "version": "2.0.1",  
11919 - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz",  
11920 - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=",  
11921 - "dev": true  
11922 - }  
11923 - }  
11924 - },  
11925 "sort-keys": { 11678 "sort-keys": {
11926 "version": "1.1.2", 11679 "version": "1.1.2",
11927 "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", 11680 "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
@@ -12351,12 +12104,6 @@ @@ -12351,12 +12104,6 @@
12351 "os-tmpdir": "~1.0.2" 12104 "os-tmpdir": "~1.0.2"
12352 } 12105 }
12353 }, 12106 },
12354 - "to-array": {  
12355 - "version": "0.1.4",  
12356 - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz",  
12357 - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=",  
12358 - "dev": true  
12359 - },  
12360 "to-arraybuffer": { 12107 "to-arraybuffer": {
12361 "version": "1.0.1", 12108 "version": "1.0.1",
12362 "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", 12109 "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
@@ -12908,15 +12655,6 @@ @@ -12908,15 +12655,6 @@
12908 "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-2.8.1.tgz", 12655 "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-2.8.1.tgz",
12909 "integrity": "sha512-MC4jacHBhTPKtmcfzvaj2N7g6jgJ/Z/eIjZdt+yUaUOM1iKC0OUIlO/xCtz6OZFFTNUJs/1YNro2GN/lE+nOXA==" 12656 "integrity": "sha512-MC4jacHBhTPKtmcfzvaj2N7g6jgJ/Z/eIjZdt+yUaUOM1iKC0OUIlO/xCtz6OZFFTNUJs/1YNro2GN/lE+nOXA=="
12910 }, 12657 },
12911 - "vue-socket.io": {  
12912 - "version": "3.0.9",  
12913 - "resolved": "https://registry.npmjs.org/vue-socket.io/-/vue-socket.io-3.0.9.tgz",  
12914 - "integrity": "sha512-imgrZL+UuyMhEyOOD6Cl11eDtEaVn606e3mCD/2s/oUAB511Ckqon4U7y97t6dwQgLCKW+tfA8aFhF5d3Eogdw==",  
12915 - "dev": true,  
12916 - "requires": {  
12917 - "socket.io-client": "^2.1.1"  
12918 - }  
12919 - },  
12920 "vue-style-loader": { 12658 "vue-style-loader": {
12921 "version": "2.0.5", 12659 "version": "2.0.5",
12922 "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-2.0.5.tgz", 12660 "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-2.0.5.tgz",
@@ -13463,12 +13201,6 @@ @@ -13463,12 +13201,6 @@
13463 "wmf": "~1.0.1" 13201 "wmf": "~1.0.1"
13464 } 13202 }
13465 }, 13203 },
13466 - "xmlhttprequest-ssl": {  
13467 - "version": "1.5.5",  
13468 - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz",  
13469 - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=",  
13470 - "dev": true  
13471 - },  
13472 "xtend": { 13204 "xtend": {
13473 "version": "4.0.2", 13205 "version": "4.0.2",
13474 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 13206 "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
@@ -13574,12 +13306,6 @@ @@ -13574,12 +13306,6 @@
13574 } 13306 }
13575 } 13307 }
13576 }, 13308 },
13577 - "yeast": {  
13578 - "version": "0.1.2",  
13579 - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz",  
13580 - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",  
13581 - "dev": true  
13582 - },  
13583 "zrender": { 13309 "zrender": {
13584 "version": "3.7.4", 13310 "version": "3.7.4",
13585 "resolved": "https://registry.npmjs.org/zrender/-/zrender-3.7.4.tgz", 13311 "resolved": "https://registry.npmjs.org/zrender/-/zrender-3.7.4.tgz",
@@ -17,73 +17,36 @@ @@ -17,73 +17,36 @@
17 </el-date-picker> 17 </el-date-picker>
18 </el-col> 18 </el-col>
19 <el-col :span="10"> 19 <el-col :span="10">
20 - <el-button type="primary" @click="getExitInfoList">  
21 - 查询调度记录 20 + <el-button type="primary" @click="getExitInfoList" style="width: 160px;" icon="el-icon-search">
  21 + 数据统计查询
22 </el-button> 22 </el-button>
23 <el-button :loading="downloadLoading" type="success" icon="el-icon-s-home" 23 <el-button :loading="downloadLoading" type="success" icon="el-icon-s-home"
24 - :disabled="resultStatus!=='200'"  
25 - @click="downExcelExit">导出 Excel 24 + :disabled="socketResponse.socketStatus!=='200'" style="width: 160px;"
  25 + @click="downExcel">导出 Excel
26 </el-button> 26 </el-button>
27 </el-col> 27 </el-col>
28 </el-row> 28 </el-row>
29 - <el-input v-model="message" style="width: 460px;margin-top: 20px" type="textarea"  
30 - placeholder="获取数据进度" readonly>  
31 - </el-input>  
32 - </div>  
33 - <div>  
34 - 状态 :  
35 - </div>  
36 - <div>  
37 - 消息 :{{socketResponse.message}}  
38 - </div>  
39 - <!-- 列表显示区域 -->  
40 - <!--  
41 - <div style="margin-top: 20px;">  
42 - <el-table :data="exitInfoList" border stripe highlight-current-row  
43 - v-loading="listLoading"  
44 - max-height="300"  
45 - :element-loading-text="this.message">  
46 - <el-table-column type="index" align="center"></el-table-column>  
47 - <el-table-column label="航班号" prop="flightNo" align="center" width="130"></el-table-column>  
48 - <el-table-column label="航班日期" prop="flightDate" align="center" width="130"></el-table-column>  
49 - <el-table-column label="航班时间" prop="flightTime" align="center" width="200"></el-table-column>  
50 - <el-table-column label="运单号" prop="waybillNoMaster" align="center"  
51 - width="130"></el-table-column>  
52 - <el-table-column label="航段" prop="segment" align="center" width="130"></el-table-column>  
53 - <el-table-column label="起始站" prop="originatingStation" align="center"  
54 - width="130"></el-table-column>  
55 - <el-table-column label="目的站" prop="destinationStation" align="center"  
56 - width="130"></el-table-column>  
57 - <el-table-column label="理货件数" prop="tallyTotalPiece" align="center"  
58 - width="130"></el-table-column>  
59 - <el-table-column label="理货重量" prop="tallyTotalWeight" align="center"  
60 - width="130"></el-table-column>  
61 - <el-table-column label="承运人二字码" prop="carrier" align="center" width="130"></el-table-column>  
62 - <el-table-column label="发货人名称" prop="shipperName" align="center" width="130"></el-table-column>  
63 - <el-table-column label="收货人名称" prop="consigneeName" align="center"  
64 - width="130"></el-table-column>  
65 - <el-table-column label="货物目的站" prop="aimStation" align="center" width="130"></el-table-column>  
66 - <el-table-column label="国家代码" prop="country" align="center" width="130"></el-table-column>  
67 - <el-table-column label="所属洲" prop="areaDescChn" align="center" width="130"></el-table-column>  
68 - <el-table-column label="订舱代理人" prop="orderName" align="center" width="130"></el-table-column>  
69 - <el-table-column label="结算代理人" prop="countName" align="center"  
70 - width="130"></el-table-column>  
71 - <el-table-column label="品名" prop="sdCargoName" align="center" width="130"></el-table-column>  
72 - <el-table-column label="二级类名" prop="twoTypeName" align="center" width="130"></el-table-column>  
73 - <el-table-column label="一级类名" prop="typeName" align="center" width="130"></el-table-column>  
74 - <el-table-column label="航空公司" prop="airCompany" align="center" width="130"></el-table-column>  
75 - <el-table-column label="机型" prop="cfTp" align="center" width="130"></el-table-column>  
76 - <el-table-column label="机号" prop="cfNo" align="center" width="130"></el-table-column>  
77 - <el-table-column label="航班计划日期" prop="flightPlanDate" align="center"  
78 - width="130"></el-table-column>  
79 - <el-table-column label="航班计划时间" prop="flightPlanTime" align="center"  
80 - width="200"></el-table-column>  
81 - <el-table-column label="计费重量" prop="totalGrossWeightMeasure" align="center"  
82 - width="130"></el-table-column>  
83 - <el-table-column label="体积" prop="volumeMeasure" align="center" width="130"></el-table-column>  
84 - </el-table> 29 + <!-- 显示区域 -->
  30 + <el-row :gutter="24" style="margin-top: 30px">
  31 + <el-col :span="11" style="margin-top: 10px">
  32 + <el-progress :text-inside="true" :stroke-width="15" :percentage="proportion"
  33 + :color="customColors"
  34 + style="width: 455px"></el-progress>
  35 + <el-input v-model="message" type="textarea"
  36 + :autosize="{ minRows: 6, maxRows: 10}"
  37 + style="width: 455px;"
  38 + placeholder="获取数据进度" readonly>
  39 + </el-input>
  40 + </el-col>
  41 + <el-col :span="4" style="margin-left: 40px;margin-top: 20px">
  42 + <el-progress type="circle" :percentage="proportion"
  43 + :color="customColors"
  44 + :width="proportion>6?200:126"></el-progress>
  45 + </el-col>
  46 + </el-row>
  47 +
85 </div> 48 </div>
86 - --> 49 +
87 </el-card> 50 </el-card>
88 </el-main> 51 </el-main>
89 </el-container> 52 </el-container>
@@ -92,15 +55,10 @@ @@ -92,15 +55,10 @@
92 <script> 55 <script>
93 56
94 import {downExcel, getExitDataAnalysis} from "../../api/exit_data_analysis"; 57 import {downExcel, getExitDataAnalysis} from "../../api/exit_data_analysis";
95 - import FilenameOption from '../excel/components/FilenameOption'  
96 - import AutoWidthOption from '../excel/components/AutoWidthOption'  
97 - import BookTypeOption from '../excel/components/BookTypeOption'  
98 - import VueWebsocket from '@/utils/websocket'  
99 - import {msgJson, socketDataList, socketMessage, socketStatus} from "@/api/socket"; 58 + import VueWebsocket from '@/utils/websocket';
100 59
101 export default { 60 export default {
102 name: "ExitAnalysis", 61 name: "ExitAnalysis",
103 - components: {FilenameOption, AutoWidthOption, BookTypeOption},  
104 data() { 62 data() {
105 return { 63 return {
106 /** 64 /**
@@ -109,24 +67,35 @@ @@ -109,24 +67,35 @@
109 exitInfoList: [], 67 exitInfoList: [],
110 resultStatus: '0', 68 resultStatus: '0',
111 message: '', 69 message: '',
  70 +
  71 + proportion: 0,
112 socketResponse: { 72 socketResponse: {
113 - message: '',  
114 - data: '',  
115 - status: '' 73 + socketMessage: '',
  74 + socketStatus: '',
  75 + socketDataList: [],
  76 + socketCurrentNum: 1,
  77 + socketTotalNum: 1,
116 }, 78 },
117 /** 79 /**
118 * 查询列表 80 * 查询列表
119 */ 81 */
120 queryInfo: { 82 queryInfo: {
121 //航班号 83 //航班号
122 - flightNo: 'SL965', 84 + flightNo: 'RU186',
123 //航班日期 85 //航班日期
124 - flightDate: '2019-04-12', 86 + flightDate: '2019-10-31',
125 }, 87 },
126 88
127 /* 列表加载 */ 89 /* 列表加载 */
128 listLoading: false, 90 listLoading: false,
129 downloadLoading: false, 91 downloadLoading: false,
  92 + customColors: [
  93 + {color: '#6f7ad3', percentage: 20},
  94 + {color: '#f56c6c', percentage: 40},
  95 + {color: '#e6a23c', percentage: 60},
  96 + {color: '#5cb87a', percentage: 80},
  97 + {color: '#1989fa', percentage: 100},
  98 + ]
130 } 99 }
131 }, 100 },
132 methods: { 101 methods: {
@@ -136,59 +105,78 @@ @@ -136,59 +105,78 @@
136 getExitInfoList(onfulfilled) { 105 getExitInfoList(onfulfilled) {
137 let _this = this; 106 let _this = this;
138 _this.$message.success('开始获取统计数据'); 107 _this.$message.success('开始获取统计数据');
139 - getExitDataAnalysis(_this.queryInfo)  
140 - .then(  
141 - (response) => {  
142 - // _this.message = socketMessage;  
143 - // _this.status = socketStatus;  
144 - // if (_this.status === '200') {  
145 - // _this.exitInfoList = socketDataList;  
146 - // }  
147 - })  
148 - .catch(error => {  
149 - _this.$message.error(error.toString());  
150 - }); 108 + getExitDataAnalysis(_this.queryInfo).catch(error => {
  109 + _this.$message.info("即将结束!请您稍候");
  110 + });
151 }, 111 },
152 /** 112 /**
153 - * 导出excel到本地,功能 113 + * 下载excel
  114 + */
  115 + downExcel() {
  116 +
  117 + },
  118 + /**
  119 + * 生成excel
154 */ 120 */
155 downExcelExit() { 121 downExcelExit() {
156 - downExcel(this.exitInfoList).then((response) => {  
157 - this.$message.success("导出Excel成功,请您重命名") 122 + downExcel(this.socketResponse.socketDataList).then((response) => {
  123 + this.$message.success("Excel准备就绪")
158 }).catch(error => { 124 }).catch(error => {
159 this.$message.error(error.toString()); 125 this.$message.error(error.toString());
160 }); 126 });
161 }, 127 },
162 socket_onmessage: function (e) { 128 socket_onmessage: function (e) {
163 - // eslint-disable-next-line no-console  
164 - console.log("从websocket接收到新的消息-->>"+e.data);  
165 - this.message = this.message+e.data+"\n"; 129 + console.log("从websocket接收到新的消息-->>" + e.data);
  130 + //this.message = this.message + e.data + "\n";
166 let msgJson = JSON.parse(e.data); 131 let msgJson = JSON.parse(e.data);
  132 + this.message = this.message + this.dataFormat(new Date()) + " -> " + msgJson.message + "\n";
167 this.socketResponse = JSON.parse(e.data); 133 this.socketResponse = JSON.parse(e.data);
168 - let socketMessage = msgJson.message;  
169 - // eslint-disable-next-line no-console  
170 - console.log(socketMessage)  
171 - let socketStatus = msgJson.status;  
172 - let socketDataList = msgJson.data;  
173 - // eslint-disable-next-line no-console 134 + this.socketResponse.socketMessage = msgJson.message;
  135 + this.socketResponse.socketCurrentNum = msgJson.currentNum;
  136 + this.socketResponse.socketTotalNum = msgJson.totalNum;
  137 + console.log(this.socketMessage);
  138 + this.socketResponse.socketStatus = msgJson.status;
  139 + this.socketResponse.socketDataList = msgJson.data;
174 console.log(msgJson); 140 console.log(msgJson);
  141 + if (this.socketResponse.socketTotalNum !== null && this.socketResponse.socketTotalNum !== 0) {
  142 + this.proportion = this.toPercent(this.socketResponse.socketCurrentNum / this.socketResponse.socketTotalNum);
  143 + }
  144 + if (this.socketResponse.socketCurrentNum === this.socketResponse.socketTotalNum &&
  145 + this.socketResponse.socketTotalNum !== 0 && this.socketResponse.socketCurrentNum !== 0) {
  146 + this.downExcelExit();
  147 + }
175 }, 148 },
176 socket_onopen: function (e) { 149 socket_onopen: function (e) {
177 - // eslint-disable-next-line no-console  
178 console.log("websocket->>链接已链接"); 150 console.log("websocket->>链接已链接");
  151 + },
  152 + /**
  153 + * 重写日期函数格式化日期
  154 + */
  155 + dataFormat(time) {
  156 + return `${time.getFullYear()}-${time.getMonth() + 1 >= 10 ? (time.getMonth() + 1) : '0' + (time.getMonth() + 1)}-${time.getDate() >= 10 ? time.getDate() : '0' + time.getDate()} ${time.getHours() >= 10 ? time.getHours() : '0' + time.getHours()}:${time.getMinutes() >= 10 ? time.getMinutes() : '0' + time.getMinutes()}:${time.getSeconds() >= 10 ? time.getSeconds() : '0' + time.getSeconds()}`;
  157 + },
  158 + /**
  159 + * 将小数转换成百分比
  160 + * @param point
  161 + * @returns {string|number}
  162 + */
  163 + toPercent(point) {
  164 + if (point == 0) {
  165 + return 0;
  166 + }
  167 + let str = Number(point * 100).toFixed();
  168 + // str+="%";
  169 + return parseInt(str);
179 } 170 }
180 }, 171 },
181 created() { 172 created() {
182 VueWebsocket.onopen = this.socket_onopen; 173 VueWebsocket.onopen = this.socket_onopen;
183 VueWebsocket.onmessage = this.socket_onmessage; 174 VueWebsocket.onmessage = this.socket_onmessage;
184 VueWebsocket.init(); 175 VueWebsocket.init();
185 -  
186 -  
187 }, 176 },
188 destroyed() { 177 destroyed() {
189 }, 178 },
190 - watch: {  
191 - }, 179 + watch: {},
192 } 180 }
193 </script> 181 </script>
194 182