| @@ -3,6 +3,7 @@ root: true | |||||
| extends: | extends: | ||||
| - eslint-config-airbnb-base | - eslint-config-airbnb-base | ||||
| - eslint:recommended | - eslint:recommended | ||||
| - plugin:vue/recommended | |||||
| ignorePatterns: | ignorePatterns: | ||||
| - /web_src/js/vendor | - /web_src/js/vendor | ||||
| @@ -1336,8 +1336,8 @@ | |||||
| }, | }, | ||||
| "acorn-jsx": { | "acorn-jsx": { | ||||
| "version": "5.2.0", | "version": "5.2.0", | ||||
| "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", | |||||
| "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", | |||||
| "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.2.0.tgz?cache=0&sync_timestamp=1589684116279&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn-jsx%2Fdownload%2Facorn-jsx-5.2.0.tgz", | |||||
| "integrity": "sha1-TGYGkXPW/daO2FI5/CViJhgrLr4=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "aggregate-error": { | "aggregate-error": { | ||||
| @@ -3665,8 +3665,8 @@ | |||||
| }, | }, | ||||
| "doctrine": { | "doctrine": { | ||||
| "version": "3.0.0", | "version": "3.0.0", | ||||
| "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", | |||||
| "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", | |||||
| "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz", | |||||
| "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "esutils": "^2.0.2" | "esutils": "^2.0.2" | ||||
| @@ -4022,8 +4022,8 @@ | |||||
| }, | }, | ||||
| "eslint": { | "eslint": { | ||||
| "version": "6.8.0", | "version": "6.8.0", | ||||
| "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", | |||||
| "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", | |||||
| "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-6.8.0.tgz", | |||||
| "integrity": "sha1-YiYtZylzn5J1cjgkMC+yJ8jJP/s=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "@babel/code-frame": "^7.0.0", | "@babel/code-frame": "^7.0.0", | ||||
| @@ -4067,8 +4067,8 @@ | |||||
| "dependencies": { | "dependencies": { | ||||
| "ansi-escapes": { | "ansi-escapes": { | ||||
| "version": "4.3.1", | "version": "4.3.1", | ||||
| "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", | |||||
| "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", | |||||
| "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-4.3.1.tgz", | |||||
| "integrity": "sha1-pcR8xDGB8fOP/XB2g3cA05VSKmE=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "type-fest": "^0.11.0" | "type-fest": "^0.11.0" | ||||
| @@ -4076,22 +4076,22 @@ | |||||
| "dependencies": { | "dependencies": { | ||||
| "type-fest": { | "type-fest": { | ||||
| "version": "0.11.0", | "version": "0.11.0", | ||||
| "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", | |||||
| "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", | |||||
| "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.11.0.tgz", | |||||
| "integrity": "sha1-l6vwhyMQ/tiKXEZrJWgVdhReM/E=", | |||||
| "dev": true | "dev": true | ||||
| } | } | ||||
| } | } | ||||
| }, | }, | ||||
| "ansi-regex": { | "ansi-regex": { | ||||
| "version": "5.0.0", | "version": "5.0.0", | ||||
| "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", | |||||
| "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", | |||||
| "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", | |||||
| "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "ansi-styles": { | "ansi-styles": { | ||||
| "version": "4.2.1", | "version": "4.2.1", | ||||
| "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", | |||||
| "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", | |||||
| "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz", | |||||
| "integrity": "sha1-kK51xCTQCNJiTFvynq0xd+v881k=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "@types/color-name": "^1.1.1", | "@types/color-name": "^1.1.1", | ||||
| @@ -4100,17 +4100,23 @@ | |||||
| }, | }, | ||||
| "cli-cursor": { | "cli-cursor": { | ||||
| "version": "3.1.0", | "version": "3.1.0", | ||||
| "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", | |||||
| "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", | |||||
| "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-3.1.0.tgz", | |||||
| "integrity": "sha1-JkMFp65JDR0Dvwybp8kl0XU68wc=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "restore-cursor": "^3.1.0" | "restore-cursor": "^3.1.0" | ||||
| } | } | ||||
| }, | }, | ||||
| "cli-width": { | |||||
| "version": "3.0.0", | |||||
| "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-3.0.0.tgz", | |||||
| "integrity": "sha1-ovSEN6LKqaIkNueUvwceyeYc7fY=", | |||||
| "dev": true | |||||
| }, | |||||
| "color-convert": { | "color-convert": { | ||||
| "version": "2.0.1", | "version": "2.0.1", | ||||
| "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", | |||||
| "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", | |||||
| "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", | |||||
| "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "color-name": "~1.1.4" | "color-name": "~1.1.4" | ||||
| @@ -4118,20 +4124,20 @@ | |||||
| }, | }, | ||||
| "color-name": { | "color-name": { | ||||
| "version": "1.1.4", | "version": "1.1.4", | ||||
| "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", | |||||
| "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | |||||
| "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", | |||||
| "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "emoji-regex": { | "emoji-regex": { | ||||
| "version": "8.0.0", | "version": "8.0.0", | ||||
| "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", | |||||
| "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", | |||||
| "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz", | |||||
| "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "eslint-scope": { | "eslint-scope": { | ||||
| "version": "5.0.0", | |||||
| "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", | |||||
| "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", | |||||
| "version": "5.1.0", | |||||
| "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.1.0.tgz?cache=0&sync_timestamp=1591269986906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.0.tgz", | |||||
| "integrity": "sha1-0Plx3+WcaeDK2mhLI9Sdv4JgDOU=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "esrecurse": "^4.1.0", | "esrecurse": "^4.1.0", | ||||
| @@ -4140,8 +4146,8 @@ | |||||
| }, | }, | ||||
| "figures": { | "figures": { | ||||
| "version": "3.2.0", | "version": "3.2.0", | ||||
| "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", | |||||
| "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", | |||||
| "resolved": "https://registry.npm.taobao.org/figures/download/figures-3.2.0.tgz", | |||||
| "integrity": "sha1-YlwYvSk8YE3EqN2y/r8MiDQXRq8=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "escape-string-regexp": "^1.0.5" | "escape-string-regexp": "^1.0.5" | ||||
| @@ -4149,8 +4155,8 @@ | |||||
| }, | }, | ||||
| "globals": { | "globals": { | ||||
| "version": "12.4.0", | "version": "12.4.0", | ||||
| "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", | |||||
| "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", | |||||
| "resolved": "https://registry.npm.taobao.org/globals/download/globals-12.4.0.tgz", | |||||
| "integrity": "sha1-oYgTV2pBsAokqX5/gVkYwuGZJfg=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "type-fest": "^0.8.1" | "type-fest": "^0.8.1" | ||||
| @@ -4158,14 +4164,14 @@ | |||||
| }, | }, | ||||
| "has-flag": { | "has-flag": { | ||||
| "version": "4.0.0", | "version": "4.0.0", | ||||
| "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", | |||||
| "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", | |||||
| "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", | |||||
| "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "import-fresh": { | "import-fresh": { | ||||
| "version": "3.2.1", | "version": "3.2.1", | ||||
| "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", | |||||
| "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", | |||||
| "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.1.tgz?cache=0&sync_timestamp=1589682760620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.1.tgz", | |||||
| "integrity": "sha1-Yz/2GFBueTr1rJG/SLcmd+FcvmY=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "parent-module": "^1.0.0", | "parent-module": "^1.0.0", | ||||
| @@ -4173,40 +4179,46 @@ | |||||
| } | } | ||||
| }, | }, | ||||
| "inquirer": { | "inquirer": { | ||||
| "version": "7.1.0", | |||||
| "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", | |||||
| "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", | |||||
| "version": "7.3.3", | |||||
| "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-7.3.3.tgz", | |||||
| "integrity": "sha1-BNF2sq8Er8FXqD/XwQDpjuCq0AM=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "ansi-escapes": "^4.2.1", | "ansi-escapes": "^4.2.1", | ||||
| "chalk": "^3.0.0", | |||||
| "chalk": "^4.1.0", | |||||
| "cli-cursor": "^3.1.0", | "cli-cursor": "^3.1.0", | ||||
| "cli-width": "^2.0.0", | |||||
| "cli-width": "^3.0.0", | |||||
| "external-editor": "^3.0.3", | "external-editor": "^3.0.3", | ||||
| "figures": "^3.0.0", | "figures": "^3.0.0", | ||||
| "lodash": "^4.17.15", | |||||
| "lodash": "^4.17.19", | |||||
| "mute-stream": "0.0.8", | "mute-stream": "0.0.8", | ||||
| "run-async": "^2.4.0", | "run-async": "^2.4.0", | ||||
| "rxjs": "^6.5.3", | |||||
| "rxjs": "^6.6.0", | |||||
| "string-width": "^4.1.0", | "string-width": "^4.1.0", | ||||
| "strip-ansi": "^6.0.0", | "strip-ansi": "^6.0.0", | ||||
| "through": "^2.3.6" | "through": "^2.3.6" | ||||
| }, | }, | ||||
| "dependencies": { | "dependencies": { | ||||
| "chalk": { | "chalk": { | ||||
| "version": "3.0.0", | |||||
| "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", | |||||
| "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", | |||||
| "version": "4.1.0", | |||||
| "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz", | |||||
| "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "ansi-styles": "^4.1.0", | "ansi-styles": "^4.1.0", | ||||
| "supports-color": "^7.1.0" | "supports-color": "^7.1.0" | ||||
| } | } | ||||
| }, | }, | ||||
| "lodash": { | |||||
| "version": "4.17.20", | |||||
| "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597335994883&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz", | |||||
| "integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=", | |||||
| "dev": true | |||||
| }, | |||||
| "strip-ansi": { | "strip-ansi": { | ||||
| "version": "6.0.0", | "version": "6.0.0", | ||||
| "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", | |||||
| "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", | |||||
| "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1589682795383&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", | |||||
| "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "ansi-regex": "^5.0.0" | "ansi-regex": "^5.0.0" | ||||
| @@ -4216,26 +4228,26 @@ | |||||
| }, | }, | ||||
| "is-fullwidth-code-point": { | "is-fullwidth-code-point": { | ||||
| "version": "3.0.0", | "version": "3.0.0", | ||||
| "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", | |||||
| "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", | |||||
| "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", | |||||
| "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "mimic-fn": { | "mimic-fn": { | ||||
| "version": "2.1.0", | "version": "2.1.0", | ||||
| "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", | |||||
| "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", | |||||
| "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz?cache=0&sync_timestamp=1596095644798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-2.1.0.tgz", | |||||
| "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "mute-stream": { | "mute-stream": { | ||||
| "version": "0.0.8", | "version": "0.0.8", | ||||
| "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", | |||||
| "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", | |||||
| "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.8.tgz", | |||||
| "integrity": "sha1-FjDEKyJR/4HiooPelqVJfqkuXg0=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "onetime": { | "onetime": { | ||||
| "version": "5.1.0", | |||||
| "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", | |||||
| "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", | |||||
| "version": "5.1.2", | |||||
| "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz?cache=0&sync_timestamp=1597005345612&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fonetime%2Fdownload%2Fonetime-5.1.2.tgz", | |||||
| "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "mimic-fn": "^2.1.0" | "mimic-fn": "^2.1.0" | ||||
| @@ -4243,30 +4255,39 @@ | |||||
| }, | }, | ||||
| "resolve-from": { | "resolve-from": { | ||||
| "version": "4.0.0", | "version": "4.0.0", | ||||
| "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", | |||||
| "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", | |||||
| "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz", | |||||
| "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "restore-cursor": { | "restore-cursor": { | ||||
| "version": "3.1.0", | "version": "3.1.0", | ||||
| "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", | |||||
| "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", | |||||
| "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-3.1.0.tgz", | |||||
| "integrity": "sha1-OfZ8VLOnpYzqUjbZXPADQjljH34=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "onetime": "^5.1.0", | "onetime": "^5.1.0", | ||||
| "signal-exit": "^3.0.2" | "signal-exit": "^3.0.2" | ||||
| } | } | ||||
| }, | }, | ||||
| "rxjs": { | |||||
| "version": "6.6.2", | |||||
| "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-6.6.2.tgz", | |||||
| "integrity": "sha1-gJanrAPyzE/lhg725XKBDZ4BwNI=", | |||||
| "dev": true, | |||||
| "requires": { | |||||
| "tslib": "^1.9.0" | |||||
| } | |||||
| }, | |||||
| "semver": { | "semver": { | ||||
| "version": "6.3.0", | "version": "6.3.0", | ||||
| "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", | |||||
| "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", | |||||
| "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1589682805026&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", | |||||
| "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "string-width": { | "string-width": { | ||||
| "version": "4.2.0", | "version": "4.2.0", | ||||
| "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", | |||||
| "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", | |||||
| "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", | |||||
| "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "emoji-regex": "^8.0.0", | "emoji-regex": "^8.0.0", | ||||
| @@ -4276,8 +4297,8 @@ | |||||
| "dependencies": { | "dependencies": { | ||||
| "strip-ansi": { | "strip-ansi": { | ||||
| "version": "6.0.0", | "version": "6.0.0", | ||||
| "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", | |||||
| "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", | |||||
| "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz?cache=0&sync_timestamp=1589682795383&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-6.0.0.tgz", | |||||
| "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "ansi-regex": "^5.0.0" | "ansi-regex": "^5.0.0" | ||||
| @@ -4287,8 +4308,8 @@ | |||||
| }, | }, | ||||
| "strip-ansi": { | "strip-ansi": { | ||||
| "version": "5.2.0", | "version": "5.2.0", | ||||
| "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | |||||
| "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | |||||
| "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1589682795383&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz", | |||||
| "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "ansi-regex": "^4.1.0" | "ansi-regex": "^4.1.0" | ||||
| @@ -4296,22 +4317,22 @@ | |||||
| "dependencies": { | "dependencies": { | ||||
| "ansi-regex": { | "ansi-regex": { | ||||
| "version": "4.1.0", | "version": "4.1.0", | ||||
| "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | |||||
| "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | |||||
| "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", | |||||
| "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", | |||||
| "dev": true | "dev": true | ||||
| } | } | ||||
| } | } | ||||
| }, | }, | ||||
| "strip-json-comments": { | "strip-json-comments": { | ||||
| "version": "3.1.0", | |||||
| "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", | |||||
| "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", | |||||
| "version": "3.1.1", | |||||
| "resolved": "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-3.1.1.tgz?cache=0&sync_timestamp=1594567532500&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-3.1.1.tgz", | |||||
| "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "supports-color": { | "supports-color": { | ||||
| "version": "7.1.0", | "version": "7.1.0", | ||||
| "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", | |||||
| "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", | |||||
| "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz", | |||||
| "integrity": "sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "has-flag": "^4.0.0" | "has-flag": "^4.0.0" | ||||
| @@ -4503,6 +4524,17 @@ | |||||
| } | } | ||||
| } | } | ||||
| }, | }, | ||||
| "eslint-plugin-vue": { | |||||
| "version": "6.2.2", | |||||
| "resolved": "https://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-6.2.2.tgz?cache=0&sync_timestamp=1597198168566&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-vue%2Fdownload%2Feslint-plugin-vue-6.2.2.tgz", | |||||
| "integrity": "sha1-J/7NmjokeJsPER7N1UCp5WGY4P4=", | |||||
| "dev": true, | |||||
| "requires": { | |||||
| "natural-compare": "^1.4.0", | |||||
| "semver": "^5.6.0", | |||||
| "vue-eslint-parser": "^7.0.0" | |||||
| } | |||||
| }, | |||||
| "eslint-scope": { | "eslint-scope": { | ||||
| "version": "4.0.3", | "version": "4.0.3", | ||||
| "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", | ||||
| @@ -4514,23 +4546,23 @@ | |||||
| }, | }, | ||||
| "eslint-utils": { | "eslint-utils": { | ||||
| "version": "1.4.3", | "version": "1.4.3", | ||||
| "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", | |||||
| "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", | |||||
| "resolved": "https://registry.npm.taobao.org/eslint-utils/download/eslint-utils-1.4.3.tgz", | |||||
| "integrity": "sha1-dP7HxU0Hdrb2fgJRBAtYBlZOmB8=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "eslint-visitor-keys": "^1.1.0" | "eslint-visitor-keys": "^1.1.0" | ||||
| } | } | ||||
| }, | }, | ||||
| "eslint-visitor-keys": { | "eslint-visitor-keys": { | ||||
| "version": "1.1.0", | |||||
| "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", | |||||
| "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", | |||||
| "version": "1.3.0", | |||||
| "resolved": "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz?cache=0&sync_timestamp=1597435068105&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-1.3.0.tgz", | |||||
| "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "espree": { | "espree": { | ||||
| "version": "6.2.1", | "version": "6.2.1", | ||||
| "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", | |||||
| "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", | |||||
| "resolved": "https://registry.npm.taobao.org/espree/download/espree-6.2.1.tgz?cache=0&sync_timestamp=1595034145062&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-6.2.1.tgz", | |||||
| "integrity": "sha1-d/xy4f10SiBSwg84pbV1gy6Cc0o=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "acorn": "^7.1.1", | "acorn": "^7.1.1", | ||||
| @@ -4539,9 +4571,9 @@ | |||||
| }, | }, | ||||
| "dependencies": { | "dependencies": { | ||||
| "acorn": { | "acorn": { | ||||
| "version": "7.2.0", | |||||
| "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", | |||||
| "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==", | |||||
| "version": "7.4.0", | |||||
| "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.4.0.tgz?cache=0&sync_timestamp=1597235774928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.4.0.tgz", | |||||
| "integrity": "sha1-4a1IbmxUUBY0xsOXxcEh2qODYHw=", | |||||
| "dev": true | "dev": true | ||||
| } | } | ||||
| } | } | ||||
| @@ -4553,17 +4585,17 @@ | |||||
| }, | }, | ||||
| "esquery": { | "esquery": { | ||||
| "version": "1.3.1", | "version": "1.3.1", | ||||
| "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", | |||||
| "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", | |||||
| "resolved": "https://registry.npm.taobao.org/esquery/download/esquery-1.3.1.tgz", | |||||
| "integrity": "sha1-t4tYKKqOIU4p+3TE1bdS4cAz2lc=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "estraverse": "^5.1.0" | "estraverse": "^5.1.0" | ||||
| }, | }, | ||||
| "dependencies": { | "dependencies": { | ||||
| "estraverse": { | "estraverse": { | ||||
| "version": "5.1.0", | |||||
| "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", | |||||
| "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", | |||||
| "version": "5.2.0", | |||||
| "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.2.0.tgz?cache=0&sync_timestamp=1596642998635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.2.0.tgz", | |||||
| "integrity": "sha1-MH30JUfmzHMk088DwVXVzbjFOIA=", | |||||
| "dev": true | "dev": true | ||||
| } | } | ||||
| } | } | ||||
| @@ -6909,8 +6941,8 @@ | |||||
| }, | }, | ||||
| "ignore": { | "ignore": { | ||||
| "version": "4.0.6", | "version": "4.0.6", | ||||
| "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", | |||||
| "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", | |||||
| "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz", | |||||
| "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "image-size": { | "image-size": { | ||||
| @@ -9363,8 +9395,8 @@ | |||||
| }, | }, | ||||
| "optionator": { | "optionator": { | ||||
| "version": "0.8.3", | "version": "0.8.3", | ||||
| "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", | |||||
| "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", | |||||
| "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz", | |||||
| "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", | |||||
| "dev": true, | "dev": true, | ||||
| "requires": { | "requires": { | ||||
| "deep-is": "~0.1.3", | "deep-is": "~0.1.3", | ||||
| @@ -10866,8 +10898,8 @@ | |||||
| }, | }, | ||||
| "progress": { | "progress": { | ||||
| "version": "2.0.3", | "version": "2.0.3", | ||||
| "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", | |||||
| "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", | |||||
| "resolved": "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz", | |||||
| "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "promise": { | "promise": { | ||||
| @@ -10975,9 +11007,9 @@ | |||||
| "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" | "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" | ||||
| }, | }, | ||||
| "qs": { | "qs": { | ||||
| "version": "6.5.2", | |||||
| "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", | |||||
| "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" | |||||
| "version": "6.9.4", | |||||
| "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.9.4.tgz", | |||||
| "integrity": "sha1-kJCykNH5FyjTwi5UhDykSupatoc=" | |||||
| }, | }, | ||||
| "query-string": { | "query-string": { | ||||
| "version": "4.3.4", | "version": "4.3.4", | ||||
| @@ -11377,8 +11409,8 @@ | |||||
| }, | }, | ||||
| "regexpp": { | "regexpp": { | ||||
| "version": "2.0.1", | "version": "2.0.1", | ||||
| "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", | |||||
| "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", | |||||
| "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz", | |||||
| "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "regexpu-core": { | "regexpu-core": { | ||||
| @@ -11609,6 +11641,14 @@ | |||||
| "tough-cookie": "~2.5.0", | "tough-cookie": "~2.5.0", | ||||
| "tunnel-agent": "^0.6.0", | "tunnel-agent": "^0.6.0", | ||||
| "uuid": "^3.3.2" | "uuid": "^3.3.2" | ||||
| }, | |||||
| "dependencies": { | |||||
| "qs": { | |||||
| "version": "6.5.2", | |||||
| "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz", | |||||
| "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", | |||||
| "optional": true | |||||
| } | |||||
| } | } | ||||
| }, | }, | ||||
| "require-dir": { | "require-dir": { | ||||
| @@ -13675,8 +13715,8 @@ | |||||
| }, | }, | ||||
| "type-fest": { | "type-fest": { | ||||
| "version": "0.8.1", | "version": "0.8.1", | ||||
| "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", | |||||
| "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", | |||||
| "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.8.1.tgz", | |||||
| "integrity": "sha1-CeJJ696FHTseSNJ8EFREZn8XuD0=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "typedarray": { | "typedarray": { | ||||
| @@ -14309,6 +14349,32 @@ | |||||
| "v-tooltip": "^2.0.0-rc.32" | "v-tooltip": "^2.0.0-rc.32" | ||||
| } | } | ||||
| }, | }, | ||||
| "vue-eslint-parser": { | |||||
| "version": "7.1.0", | |||||
| "resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-7.1.0.tgz?cache=0&sync_timestamp=1589684321779&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-eslint-parser%2Fdownload%2Fvue-eslint-parser-7.1.0.tgz", | |||||
| "integrity": "sha1-nNvMgj5lawh1B6GRFzK4Z6wQHoM=", | |||||
| "dev": true, | |||||
| "requires": { | |||||
| "debug": "^4.1.1", | |||||
| "eslint-scope": "^5.0.0", | |||||
| "eslint-visitor-keys": "^1.1.0", | |||||
| "espree": "^6.2.1", | |||||
| "esquery": "^1.0.1", | |||||
| "lodash": "^4.17.15" | |||||
| }, | |||||
| "dependencies": { | |||||
| "eslint-scope": { | |||||
| "version": "5.1.0", | |||||
| "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-5.1.0.tgz?cache=0&sync_timestamp=1591269986906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-scope%2Fdownload%2Feslint-scope-5.1.0.tgz", | |||||
| "integrity": "sha1-0Plx3+WcaeDK2mhLI9Sdv4JgDOU=", | |||||
| "dev": true, | |||||
| "requires": { | |||||
| "esrecurse": "^4.1.0", | |||||
| "estraverse": "^4.1.1" | |||||
| } | |||||
| } | |||||
| } | |||||
| }, | |||||
| "vue-hot-reload-api": { | "vue-hot-reload-api": { | ||||
| "version": "2.3.4", | "version": "2.3.4", | ||||
| "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", | "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", | ||||
| @@ -14884,8 +14950,8 @@ | |||||
| }, | }, | ||||
| "word-wrap": { | "word-wrap": { | ||||
| "version": "1.2.3", | "version": "1.2.3", | ||||
| "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", | |||||
| "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", | |||||
| "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz?cache=0&sync_timestamp=1589683603678&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fword-wrap%2Fdownload%2Fword-wrap-1.2.3.tgz", | |||||
| "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", | |||||
| "dev": true | "dev": true | ||||
| }, | }, | ||||
| "wordwrap": { | "wordwrap": { | ||||
| @@ -35,6 +35,7 @@ | |||||
| "postcss-loader": "3.0.0", | "postcss-loader": "3.0.0", | ||||
| "postcss-preset-env": "6.7.0", | "postcss-preset-env": "6.7.0", | ||||
| "postcss-safe-parser": "4.0.2", | "postcss-safe-parser": "4.0.2", | ||||
| "qs": "6.9.4", | |||||
| "spark-md5": "3.0.1", | "spark-md5": "3.0.1", | ||||
| "svg-sprite-loader": "5.0.0", | "svg-sprite-loader": "5.0.0", | ||||
| "svgo": "1.3.2", | "svgo": "1.3.2", | ||||
| @@ -56,6 +57,7 @@ | |||||
| "eslint": "6.8.0", | "eslint": "6.8.0", | ||||
| "eslint-config-airbnb-base": "14.1.0", | "eslint-config-airbnb-base": "14.1.0", | ||||
| "eslint-plugin-import": "2.20.2", | "eslint-plugin-import": "2.20.2", | ||||
| "eslint-plugin-vue": "6.2.2", | |||||
| "stylelint": "13.3.3", | "stylelint": "13.3.3", | ||||
| "stylelint-config-standard": "20.0.0", | "stylelint-config-standard": "20.0.0", | ||||
| "updates": "10.2.11" | "updates": "10.2.11" | ||||
| @@ -1,6 +1,9 @@ | |||||
| <template> | <template> | ||||
| <div class="dropzone-wrapper dataset-files"> | <div class="dropzone-wrapper dataset-files"> | ||||
| <div id="dataset" class="dropzone"></div> | |||||
| <div | |||||
| id="dataset" | |||||
| class="dropzone" | |||||
| /> | |||||
| <p class="upload-info"> | <p class="upload-info"> | ||||
| {{ file_status_text }} | {{ file_status_text }} | ||||
| <span class="success">{{ status }}</span> | <span class="success">{{ status }}</span> | ||||
| @@ -9,14 +12,15 @@ | |||||
| </template> | </template> | ||||
| <script> | <script> | ||||
| /* eslint-disable eqeqeq */ | |||||
| // import Dropzone from 'dropzone/dist/dropzone.js'; | // import Dropzone from 'dropzone/dist/dropzone.js'; | ||||
| // import 'dropzone/dist/dropzone.css' | // import 'dropzone/dist/dropzone.css' | ||||
| import createDropzone from "../features/dropzone.js"; | |||||
| import SparkMD5 from 'spark-md5'; | import SparkMD5 from 'spark-md5'; | ||||
| import axios from "axios"; | |||||
| import qs from "qs"; | |||||
| import axios from 'axios'; | |||||
| import qs from 'qs'; | |||||
| import createDropzone from '../features/dropzone.js'; | |||||
| const { AppSubUrl, StaticUrlPrefix, csrf } = window.config; | |||||
| const {_AppSubUrl, _StaticUrlPrefix, csrf} = window.config; | |||||
| export default { | export default { | ||||
| data() { | data() { | ||||
| @@ -24,63 +28,64 @@ export default { | |||||
| dropzoneUploader: null, | dropzoneUploader: null, | ||||
| maxFiles: 1, | maxFiles: 1, | ||||
| maxFilesize: 1 * 1024 * 1024 * 1024 * 1024, | maxFilesize: 1 * 1024 * 1024 * 1024 * 1024, | ||||
| acceptedFiles: "*/*", | |||||
| acceptedFiles: '*/*', | |||||
| progress: 0, | progress: 0, | ||||
| status: "", | |||||
| status: '', | |||||
| dropzoneParams: {}, | dropzoneParams: {}, | ||||
| file_status_text: "" | |||||
| file_status_text: '' | |||||
| }; | }; | ||||
| }, | }, | ||||
| async mounted() { | async mounted() { | ||||
| let previewTemplate = ""; | |||||
| let previewTemplate = ''; | |||||
| previewTemplate += '<div class="dz-preview dz-file-preview">\n '; | previewTemplate += '<div class="dz-preview dz-file-preview">\n '; | ||||
| previewTemplate += ' <div class="dz-details">\n '; | previewTemplate += ' <div class="dz-details">\n '; | ||||
| previewTemplate += ' <div class="dz-filename">'; | previewTemplate += ' <div class="dz-filename">'; | ||||
| previewTemplate += | previewTemplate += | ||||
| " <span data-dz-name data-dz-thumbnail></span>"; | |||||
| previewTemplate += " </div>\n "; | |||||
| ' <span data-dz-name data-dz-thumbnail></span>'; | |||||
| previewTemplate += ' </div>\n '; | |||||
| previewTemplate += ' <div class="dz-size" data-dz-size></div>\n '; | previewTemplate += ' <div class="dz-size" data-dz-size></div>\n '; | ||||
| previewTemplate += " </div>\n "; | |||||
| previewTemplate += ' </div>\n '; | |||||
| previewTemplate += ' <div class="dz-progress ui active progress">'; | previewTemplate += ' <div class="dz-progress ui active progress">'; | ||||
| previewTemplate += | previewTemplate += | ||||
| ' <div class="dz-upload bar" data-dz-uploadprogress><div class="progress"></div></div>\n '; | ' <div class="dz-upload bar" data-dz-uploadprogress><div class="progress"></div></div>\n '; | ||||
| previewTemplate += " </div>\n "; | |||||
| previewTemplate += ' </div>\n '; | |||||
| previewTemplate += ' <div class="dz-success-mark">'; | previewTemplate += ' <div class="dz-success-mark">'; | ||||
| previewTemplate += " <span>上传成功</span>"; | |||||
| previewTemplate += " </div>\n "; | |||||
| previewTemplate += ' <span>上传成功</span>'; | |||||
| previewTemplate += ' </div>\n '; | |||||
| previewTemplate += ' <div class="dz-error-mark">'; | previewTemplate += ' <div class="dz-error-mark">'; | ||||
| previewTemplate += " <span>上传失败</span>"; | |||||
| previewTemplate += " </div>\n "; | |||||
| previewTemplate += ' <span>上传失败</span>'; | |||||
| previewTemplate += ' </div>\n '; | |||||
| previewTemplate += ' <div class="dz-error-message">'; | previewTemplate += ' <div class="dz-error-message">'; | ||||
| previewTemplate += " <span data-dz-errormessage></span>"; | |||||
| previewTemplate += " </div>\n"; | |||||
| previewTemplate += "</div>"; | |||||
| previewTemplate += ' <span data-dz-errormessage></span>'; | |||||
| previewTemplate += ' </div>\n'; | |||||
| previewTemplate += '</div>'; | |||||
| this.dropzoneParams = $("div#minioUploader-params"); | |||||
| this.file_status_text = this.dropzoneParams.data("file-status"); | |||||
| this.status = this.dropzoneParams.data("file-init-status"); | |||||
| const $dropzone = $("div#dataset"); | |||||
| this.dropzoneParams = $('div#minioUploader-params'); | |||||
| this.file_status_text = this.dropzoneParams.data('file-status'); | |||||
| this.status = this.dropzoneParams.data('file-init-status'); | |||||
| const $dropzone = $('div#dataset'); | |||||
| const dropzoneUploader = await createDropzone($dropzone[0], { | const dropzoneUploader = await createDropzone($dropzone[0], { | ||||
| url: "/todouploader", | |||||
| url: '/todouploader', | |||||
| maxFiles: this.maxFiles, | maxFiles: this.maxFiles, | ||||
| maxFilesize: this.maxFileSize, | maxFilesize: this.maxFileSize, | ||||
| timeout: 0, | timeout: 0, | ||||
| autoQueue: false, | autoQueue: false, | ||||
| dictDefaultMessage: this.dropzoneParams.data("default-message"), | |||||
| dictInvalidFileType: this.dropzoneParams.data("invalid-input-type"), | |||||
| dictFileTooBig: this.dropzoneParams.data("file-too-big"), | |||||
| dictRemoveFile: this.dropzoneParams.data("remove-file"), | |||||
| dictDefaultMessage: this.dropzoneParams.data('default-message'), | |||||
| dictInvalidFileType: this.dropzoneParams.data('invalid-input-type'), | |||||
| dictFileTooBig: this.dropzoneParams.data('file-too-big'), | |||||
| dictRemoveFile: this.dropzoneParams.data('remove-file'), | |||||
| previewTemplate | previewTemplate | ||||
| }); | }); | ||||
| dropzoneUploader.on("addedfile", file => { | |||||
| dropzoneUploader.on('addedfile', (file) => { | |||||
| setTimeout(() => { | setTimeout(() => { | ||||
| // eslint-disable-next-line no-unused-expressions | |||||
| file.accepted && this.onFileAdded(file); | file.accepted && this.onFileAdded(file); | ||||
| }, 200); | }, 200); | ||||
| }); | }); | ||||
| dropzoneUploader.on("maxfilesexceeded", function(file) { | |||||
| if (this.files[0].status !== "success") { | |||||
| alert(this.dropzoneParams.data("waitting-uploading")); | |||||
| dropzoneUploader.on('maxfilesexceeded', function (file) { | |||||
| if (this.files[0].status !== 'success') { | |||||
| alert(this.dropzoneParams.data('waitting-uploading')); | |||||
| this.removeFile(file); | this.removeFile(file); | ||||
| return; | return; | ||||
| } | } | ||||
| @@ -93,22 +98,22 @@ export default { | |||||
| methods: { | methods: { | ||||
| resetStatus() { | resetStatus() { | ||||
| this.progress = 0; | this.progress = 0; | ||||
| this.status = ""; | |||||
| this.status = ''; | |||||
| }, | }, | ||||
| updateProgress(file, progress) { | updateProgress(file, progress) { | ||||
| file.previewTemplate.querySelector( | file.previewTemplate.querySelector( | ||||
| ".dz-upload" | |||||
| '.dz-upload' | |||||
| ).style.width = `${progress}%`; | ).style.width = `${progress}%`; | ||||
| }, | }, | ||||
| emitDropzoneSuccess(file) { | emitDropzoneSuccess(file) { | ||||
| file.status = "success"; | |||||
| this.dropzoneUploader.emit("success", file); | |||||
| this.dropzoneUploader.emit("complete", file); | |||||
| file.status = 'success'; | |||||
| this.dropzoneUploader.emit('success', file); | |||||
| this.dropzoneUploader.emit('complete', file); | |||||
| }, | }, | ||||
| onFileAdded(file) { | onFileAdded(file) { | ||||
| file.datasetId = document | file.datasetId = document | ||||
| .getElementById("datasetId") | |||||
| .getAttribute("datasetId"); | |||||
| .getElementById('datasetId') | |||||
| .getAttribute('datasetId'); | |||||
| this.resetStatus(); | this.resetStatus(); | ||||
| this.computeMD5(file); | this.computeMD5(file); | ||||
| }, | }, | ||||
| @@ -122,26 +127,27 @@ export default { | |||||
| computeMD5(file) { | computeMD5(file) { | ||||
| this.resetStatus(); | this.resetStatus(); | ||||
| let blobSlice = | |||||
| const blobSlice = | |||||
| File.prototype.slice || | File.prototype.slice || | ||||
| File.prototype.mozSlice || | File.prototype.mozSlice || | ||||
| File.prototype.webkitSlice, | File.prototype.webkitSlice, | ||||
| chunkSize = 1024 * 1024 * 64, | chunkSize = 1024 * 1024 * 64, | ||||
| chunks = Math.ceil(file.size / chunkSize), | chunks = Math.ceil(file.size / chunkSize), | ||||
| currentChunk = 0, | |||||
| spark = new SparkMD5.ArrayBuffer(), | spark = new SparkMD5.ArrayBuffer(), | ||||
| fileReader = new FileReader(); | fileReader = new FileReader(); | ||||
| let time = new Date().getTime(); | |||||
| let currentChunk = 0; | |||||
| const time = new Date().getTime(); | |||||
| // console.log('计算MD5...') | // console.log('计算MD5...') | ||||
| this.status = this.dropzoneParams.data("md5-computing"); | |||||
| this.status = this.dropzoneParams.data('md5-computing'); | |||||
| file.totalChunkCounts = chunks; | file.totalChunkCounts = chunks; | ||||
| loadNext(); | loadNext(); | ||||
| fileReader.onload = e => { | |||||
| fileReader.onload = (e) => { | |||||
| fileLoaded.call(this, e); | fileLoaded.call(this, e); | ||||
| }; | }; | ||||
| fileReader.onerror = err => { | |||||
| console.warn("oops, something went wrong.", err); | |||||
| fileReader.onerror = (err) => { | |||||
| console.warn('oops, something went wrong.', err); | |||||
| file.cancel(); | file.cancel(); | ||||
| }; | }; | ||||
| @@ -150,7 +156,7 @@ export default { | |||||
| currentChunk++; | currentChunk++; | ||||
| if (currentChunk < chunks) { | if (currentChunk < chunks) { | ||||
| // console.log(`第${currentChunk}分片解析完成, 开始第${currentChunk +1}/${chunks}分片解析`); | // console.log(`第${currentChunk}分片解析完成, 开始第${currentChunk +1}/${chunks}分片解析`); | ||||
| this.status = `${this.dropzoneParams.data("loading-file")} ${( | |||||
| this.status = `${this.dropzoneParams.data('loading-file')} ${( | |||||
| (currentChunk / chunks) * | (currentChunk / chunks) * | ||||
| 100 | 100 | ||||
| ).toFixed(2)}% (${currentChunk}/${chunks})`; | ).toFixed(2)}% (${currentChunk}/${chunks})`; | ||||
| @@ -159,21 +165,21 @@ export default { | |||||
| return; | return; | ||||
| } | } | ||||
| let md5 = spark.end(); | |||||
| const md5 = spark.end(); | |||||
| console.log( | console.log( | ||||
| `MD5计算完成:${file.name} \nMD5:${md5} \n分片:${chunks} 大小:${ | `MD5计算完成:${file.name} \nMD5:${md5} \n分片:${chunks} 大小:${ | ||||
| file.size | file.size | ||||
| } 用时:${(new Date().getTime() - time) / 1000} s` | } 用时:${(new Date().getTime() - time) / 1000} s` | ||||
| ); | ); | ||||
| spark.destroy(); //释放缓存 | |||||
| file.uniqueIdentifier = md5; //将文件md5赋值给文件唯一标识 | |||||
| file.cmd5 = false; //取消计算md5状态 | |||||
| spark.destroy(); // 释放缓存 | |||||
| file.uniqueIdentifier = md5; // 将文件md5赋值给文件唯一标识 | |||||
| file.cmd5 = false; // 取消计算md5状态 | |||||
| this.computeMD5Success(file); | this.computeMD5Success(file); | ||||
| } | } | ||||
| function loadNext() { | function loadNext() { | ||||
| let start = currentChunk * chunkSize; | |||||
| let end = | |||||
| const start = currentChunk * chunkSize; | |||||
| const end = | |||||
| start + chunkSize >= file.size ? file.size : start + chunkSize; | start + chunkSize >= file.size ? file.size : start + chunkSize; | ||||
| fileReader.readAsArrayBuffer(blobSlice.call(file, start, end)); | fileReader.readAsArrayBuffer(blobSlice.call(file, start, end)); | ||||
| } | } | ||||
| @@ -181,38 +187,38 @@ export default { | |||||
| async computeMD5Success(md5edFile) { | async computeMD5Success(md5edFile) { | ||||
| const file = await this.getSuccessChunks(md5edFile); | const file = await this.getSuccessChunks(md5edFile); | ||||
| if (file.uploadID == "" || file.uuid == "") { | |||||
| //未上传过 | |||||
| if (file.uploadID == '' || file.uuid == '') { | |||||
| // 未上传过 | |||||
| await this.newMultiUpload(file); | await this.newMultiUpload(file); | ||||
| if (file.uploadID != "" && file.uuid != "") { | |||||
| file.chunks = ""; | |||||
| if (file.uploadID != '' && file.uuid != '') { | |||||
| file.chunks = ''; | |||||
| this.multipartUpload(file); | this.multipartUpload(file); | ||||
| } else { | } else { | ||||
| //失败如何处理 | |||||
| // 失败如何处理 | |||||
| return; | return; | ||||
| } | } | ||||
| return; | return; | ||||
| } | } | ||||
| if (file.uploaded == "1") { | |||||
| //已上传成功 | |||||
| //秒传 | |||||
| if (file.attachID == "0") { | |||||
| //删除数据集记录,未删除文件 | |||||
| if (file.uploaded == '1') { | |||||
| // 已上传成功 | |||||
| // 秒传 | |||||
| if (file.attachID == '0') { | |||||
| // 删除数据集记录,未删除文件 | |||||
| await addAttachment(file); | await addAttachment(file); | ||||
| } | } | ||||
| console.log("文件已上传完成"); | |||||
| console.log('文件已上传完成'); | |||||
| this.progress = 100; | this.progress = 100; | ||||
| this.status = this.dropzoneParams.data("upload-complete"); | |||||
| this.status = this.dropzoneParams.data('upload-complete'); | |||||
| this.finishUpload(file); | this.finishUpload(file); | ||||
| } else { | } else { | ||||
| //断点续传 | |||||
| // 断点续传 | |||||
| this.multipartUpload(file); | this.multipartUpload(file); | ||||
| } | } | ||||
| async function addAttachment(file) { | async function addAttachment(file) { | ||||
| return await axios.post( | return await axios.post( | ||||
| "/attachments/add", | |||||
| '/attachments/add', | |||||
| qs.stringify({ | qs.stringify({ | ||||
| uuid: file.uuid, | uuid: file.uuid, | ||||
| file_name: file.name, | file_name: file.name, | ||||
| @@ -232,7 +238,7 @@ export default { | |||||
| } | } | ||||
| }; | }; | ||||
| try { | try { | ||||
| const response = await axios.get("/attachments/get_chunks", params); | |||||
| const response = await axios.get('/attachments/get_chunks', params); | |||||
| file.uploadID = response.data.uploadID; | file.uploadID = response.data.uploadID; | ||||
| file.uuid = response.data.uuid; | file.uuid = response.data.uuid; | ||||
| file.uploaded = response.data.uploaded; | file.uploaded = response.data.uploaded; | ||||
| @@ -240,13 +246,13 @@ export default { | |||||
| file.attachID = response.data.attachID; | file.attachID = response.data.attachID; | ||||
| return file; | return file; | ||||
| } catch (error) { | } catch (error) { | ||||
| console.log("getSuccessChunks catch: ", error); | |||||
| console.log('getSuccessChunks catch: ', error); | |||||
| return null; | return null; | ||||
| } | } | ||||
| }, | }, | ||||
| async newMultiUpload(file) { | async newMultiUpload(file) { | ||||
| const res = await axios.get("/attachments/new_multipart", { | |||||
| const res = await axios.get('/attachments/new_multipart', { | |||||
| params: { | params: { | ||||
| totalChunkCounts: file.totalChunkCounts, | totalChunkCounts: file.totalChunkCounts, | ||||
| md5: file.uniqueIdentifier, | md5: file.uniqueIdentifier, | ||||
| @@ -260,25 +266,25 @@ export default { | |||||
| }, | }, | ||||
| multipartUpload(file) { | multipartUpload(file) { | ||||
| let blobSlice = | |||||
| const blobSlice = | |||||
| File.prototype.slice || | File.prototype.slice || | ||||
| File.prototype.mozSlice || | File.prototype.mozSlice || | ||||
| File.prototype.webkitSlice, | File.prototype.webkitSlice, | ||||
| chunkSize = 1024 * 1024 * 64, | chunkSize = 1024 * 1024 * 64, | ||||
| chunks = Math.ceil(file.size / chunkSize), | chunks = Math.ceil(file.size / chunkSize), | ||||
| currentChunk = 0, | |||||
| fileReader = new FileReader(), | fileReader = new FileReader(), | ||||
| time = new Date().getTime(); | time = new Date().getTime(); | ||||
| let currentChunk = 0; | |||||
| function loadNext() { | function loadNext() { | ||||
| let start = currentChunk * chunkSize; | |||||
| let end = | |||||
| const start = currentChunk * chunkSize; | |||||
| const end = | |||||
| start + chunkSize >= file.size ? file.size : start + chunkSize; | start + chunkSize >= file.size ? file.size : start + chunkSize; | ||||
| fileReader.readAsArrayBuffer(blobSlice.call(file, start, end)); | fileReader.readAsArrayBuffer(blobSlice.call(file, start, end)); | ||||
| } | } | ||||
| function checkSuccessChunks() { | function checkSuccessChunks() { | ||||
| var index = successChunks.indexOf((currentChunk + 1).toString()); | |||||
| const index = successChunks.indexOf((currentChunk + 1).toString()); | |||||
| if (index == -1) { | if (index == -1) { | ||||
| return false; | return false; | ||||
| } | } | ||||
| @@ -286,7 +292,7 @@ export default { | |||||
| } | } | ||||
| async function getUploadChunkUrl(currentChunk, partSize) { | async function getUploadChunkUrl(currentChunk, partSize) { | ||||
| const res = await axios.get("/attachments/get_multipart_url", { | |||||
| const res = await axios.get('/attachments/get_multipart_url', { | |||||
| params: { | params: { | ||||
| uuid: file.uuid, | uuid: file.uuid, | ||||
| uploadID: file.uploadID, | uploadID: file.uploadID, | ||||
| @@ -295,7 +301,7 @@ export default { | |||||
| _csrf: csrf | _csrf: csrf | ||||
| } | } | ||||
| }); | }); | ||||
| console.log("getUploadChunkUrl: ", res); | |||||
| console.log('getUploadChunkUrl: ', res); | |||||
| urls[currentChunk] = res.data.url; | urls[currentChunk] = res.data.url; | ||||
| } | } | ||||
| @@ -306,7 +312,7 @@ export default { | |||||
| async function updateChunk(currentChunk) { | async function updateChunk(currentChunk) { | ||||
| await axios.post( | await axios.post( | ||||
| "/attachments/update_chunk", | |||||
| '/attachments/update_chunk', | |||||
| qs.stringify({ | qs.stringify({ | ||||
| uuid: file.uuid, | uuid: file.uuid, | ||||
| chunkNumber: currentChunk + 1, | chunkNumber: currentChunk + 1, | ||||
| @@ -317,29 +323,29 @@ export default { | |||||
| } | } | ||||
| async function uploadChunk(e) { | async function uploadChunk(e) { | ||||
| if (!checkSuccessChunks()) { | if (!checkSuccessChunks()) { | ||||
| let start = currentChunk * chunkSize; | |||||
| let partSize = | |||||
| const start = currentChunk * chunkSize; | |||||
| const partSize = | |||||
| start + chunkSize >= file.size ? file.size - start : chunkSize; | start + chunkSize >= file.size ? file.size - start : chunkSize; | ||||
| //获取分片上传url | |||||
| // 获取分片上传url | |||||
| await getUploadChunkUrl(currentChunk, partSize); | await getUploadChunkUrl(currentChunk, partSize); | ||||
| if (urls[currentChunk] != "") { | |||||
| //上传到minio | |||||
| if (urls[currentChunk] != '') { | |||||
| // 上传到minio | |||||
| await uploadMinio(urls[currentChunk], e); | await uploadMinio(urls[currentChunk], e); | ||||
| if (etags[currentChunk] != "") { | |||||
| //更新数据库:分片上传结果 | |||||
| if (etags[currentChunk] != '') { | |||||
| // 更新数据库:分片上传结果 | |||||
| await updateChunk(currentChunk); | await updateChunk(currentChunk); | ||||
| } else { | } else { | ||||
| return; | |||||
| console.log("上传到minio uploadChunk etags[currentChunk] == ''");// TODO | |||||
| } | } | ||||
| } else { | } else { | ||||
| return; | |||||
| console.log("uploadChunk urls[currentChunk] != ''");// TODO | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| async function completeUpload() { | async function completeUpload() { | ||||
| return await axios.post( | return await axios.post( | ||||
| "/attachments/complete_multipart", | |||||
| '/attachments/complete_multipart', | |||||
| qs.stringify({ | qs.stringify({ | ||||
| uuid: file.uuid, | uuid: file.uuid, | ||||
| uploadID: file.uploadID, | uploadID: file.uploadID, | ||||
| @@ -351,18 +357,18 @@ export default { | |||||
| ); | ); | ||||
| } | } | ||||
| var successChunks = new Array(); | |||||
| var successParts = new Array(); | |||||
| successParts = file.chunks.split(","); | |||||
| const successChunks = []; | |||||
| let successParts = []; | |||||
| successParts = file.chunks.split(','); | |||||
| for (let i = 0; i < successParts.length; i++) { | for (let i = 0; i < successParts.length; i++) { | ||||
| successChunks[i] = successParts[i].split("-")[0].split('"')[1]; | |||||
| successChunks[i] = successParts[i].split('-')[0].split('"')[1]; | |||||
| } | } | ||||
| var urls = new Array(); | |||||
| var etags = new Array(); | |||||
| console.log("上传分片..."); | |||||
| this.status = this.dropzoneParams.data("uploading"); | |||||
| const urls = []; // TODO const ? | |||||
| const etags = []; | |||||
| console.log('上传分片...'); | |||||
| this.status = this.dropzoneParams.data('uploading'); | |||||
| loadNext(); | loadNext(); | ||||
| fileReader.onload = async e => { | |||||
| fileReader.onload = async (e) => { | |||||
| await uploadChunk(e); | await uploadChunk(e); | ||||
| currentChunk++; | currentChunk++; | ||||
| if (currentChunk < chunks) { | if (currentChunk < chunks) { | ||||
| @@ -372,7 +378,7 @@ export default { | |||||
| ); | ); | ||||
| this.progress = Math.ceil((currentChunk / chunks) * 100); | this.progress = Math.ceil((currentChunk / chunks) * 100); | ||||
| this.updateProgress(file, ((currentChunk / chunks) * 100).toFixed(2)); | this.updateProgress(file, ((currentChunk / chunks) * 100).toFixed(2)); | ||||
| this.status = `${this.dropzoneParams.data("uploading")} ${( | |||||
| this.status = `${this.dropzoneParams.data('uploading')} ${( | |||||
| (currentChunk / chunks) * | (currentChunk / chunks) * | ||||
| 100 | 100 | ||||
| ).toFixed(2)}%`; | ).toFixed(2)}%`; | ||||
| @@ -385,7 +391,7 @@ export default { | |||||
| } 用时:${(new Date().getTime() - time) / 1000} s` | } 用时:${(new Date().getTime() - time) / 1000} s` | ||||
| ); | ); | ||||
| this.progress = 100; | this.progress = 100; | ||||
| this.status = this.dropzoneParams.data("upload-complete"); | |||||
| this.status = this.dropzoneParams.data('upload-complete'); | |||||
| this.finishUpload(file); | this.finishUpload(file); | ||||
| } | } | ||||
| }; | }; | ||||