@@ -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); | ||||
} | } | ||||
}; | }; | ||||