diff --git a/.env b/.env index b5c472a6fd..e45891d04a 100644 --- a/.env +++ b/.env @@ -1,3 +1,5 @@ NODE_ENV=production VUE_APP_PREVIEW=false -VUE_APP_API_BASE_URL=/api \ No newline at end of file +VUE_APP_API_BASE_URL=http://www.chinabronchiectasis.com/ +VUE_APP_API_UPLOAD_URL=http://61.132.50.164:8788/file-server/file/uploadFile +VUE_APP_API_VIEW_PIC_URL=http://61.132.50.164:8788/attachs/ \ No newline at end of file diff --git a/.env.preview b/.env.preview index a9e44c82d9..a3c95efb63 100644 --- a/.env.preview +++ b/.env.preview @@ -1,3 +1,3 @@ NODE_ENV=production VUE_APP_PREVIEW=true -VUE_APP_API_BASE_URL=/api \ No newline at end of file +VUE_APP_API_BASE_URL=http://www.dtp-cloud.com:18780/file-server/file/uploadFile \ No newline at end of file diff --git a/.gitignore b/.gitignore index 185e663192..078a5b9e78 100644 --- a/.gitignore +++ b/.gitignore @@ -1,21 +1,18 @@ -.DS_Store -node_modules -/dist - -# local env files -.env.local -.env.*.local - -# Log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw* +.DS_Store +node_modules +/dist + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw* +*.bat diff --git a/README.md b/README.md index 18cbd24e37..c20645224f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ English | [简体中文](./README.zh-CN.md) -<h1 align="center">Ant Design Pro Vue</h1> +<h1 align="center">Ant Design P211ro Vu22212</h1> +<h1 align="center">提交测试</h1> <div align="center"> An out-of-box UI solution for enterprise applications as a Vue boilerplate. based on <a href="https://vuecomponent.github.io/ant-design-vue/docs/vue/introduce-cn/" target="_blank">Ant Design of Vue</a> </div> @@ -58,7 +59,7 @@ Overview - Clone repo ```bash git clone https://github.com/sendya/ant-design-pro-vue.git -cd ant-design-pro-vue +cd ant-design-pro-vue 121213123 ``` - Install dependencies diff --git a/commit.bat b/commit.bat new file mode 100644 index 0000000000..2474482cd5 --- /dev/null +++ b/commit.bat @@ -0,0 +1,3 @@ +git add . +git commit -m "df" +git push origin master \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 69c0244312..49a34d051b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,67 +5,81 @@ "requires": true, "dependencies": { "@ant-design/colors": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-3.1.0.tgz", - "integrity": "sha512-Td7g1P53sNFyT4Gya6836e70TrhoVZ+HjZs6mpWIHrxl4/VqsjjOyzj/8ktOuw0lCx+BfYu9UO1CiJ0MoYYfhg==", - "dev": true, + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-3.2.2.tgz", + "integrity": "sha512-YKgNbG2dlzqMhA9NtI3/pbY16m3Yl/EeWBRa+lB1X1YaYxHrxNexiQYCLTWO/uDvAjLFMEDU+zR901waBtMtjQ==", "requires": { "tinycolor2": "^1.4.1" } }, "@ant-design/icons": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-1.2.1.tgz", - "integrity": "sha512-gQx3nH6m1xvebOWh5xibhzVK02aoqHY7JUXUS4doAidSDRWsj5iwKC8Gq9DemDZ4T+bW6xO7jJZN1UsbvcW7Uw==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-2.1.1.tgz", + "integrity": "sha512-jCH+k2Vjlno4YWl6g535nHR09PwCEmTBKAG6VqF+rhkrSPRLfgpU2maagwbZPLjaHuU5Jd1DFQ2KJpQuI6uG8w==" }, "@ant-design/icons-vue": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@ant-design/icons-vue/-/icons-vue-1.0.1.tgz", - "integrity": "sha512-WRlfa3t9/e2wwVw9FPRgJ/pan4Ttzd+JvgounFsXdpuyDm0q6djAwhjj7W/ZxWWU3XkArbcaXTMSslnn25804w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@ant-design/icons-vue/-/icons-vue-2.0.0.tgz", + "integrity": "sha512-2c0QQE5hL4N48k5NkPG5sdpMl9YnvyNhf0U7YkdZYDlLnspoRU7vIA0UK9eHBs6OpFLcJB6o8eJrIl2ajBskPg==", "requires": { - "ant-design-palettes": "^1.1.3", + "@ant-design/colors": "^3.1.0", "babel-runtime": "^6.26.0" } }, "@antv/adjust": { "version": "0.1.1", - "resolved": "http://registry.npm.taobao.org/@antv/adjust/download/@antv/adjust-0.1.1.tgz", - "integrity": "sha1-4mOrDhoZQaZIhC/Ahs9lp+O3Xpg=", + "resolved": "https://registry.npmjs.org/@antv/adjust/-/adjust-0.1.1.tgz", + "integrity": "sha512-9FaMOyBlM4AgoRL0b5o0VhEKAYkexBNUrxV8XmpHU/9NBPJONBOB/NZUlQDqxtLItrt91tCfbAuMQmF529UX2Q==", "requires": { "@antv/util": "~1.3.1" } }, "@antv/attr": { "version": "0.1.2", - "resolved": "http://registry.npm.taobao.org/@antv/attr/download/@antv/attr-0.1.2.tgz", - "integrity": "sha1-LusSL8qvhRoth0mrx8YFGdP3fjc=", + "resolved": "https://registry.npmjs.org/@antv/attr/-/attr-0.1.2.tgz", + "integrity": "sha512-QXjP+T2I+pJQcwZx1oCA4tipG43vgeCeKcGGKahlcxb71OBAzjJZm1QbF4frKXcnOqRkxVXtCr70X9TRair3Ew==", "requires": { "@antv/util": "~1.3.1" } }, "@antv/component": { - "version": "0.3.2", - "resolved": "http://registry.npm.taobao.org/@antv/component/download/@antv/component-0.3.2.tgz", - "integrity": "sha1-QYvZYSwHIFYFNMEXr3S1fYUdNco=", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@antv/component/-/component-0.3.9.tgz", + "integrity": "sha512-Knh/Nq0S8UkTfZj4SL7XizagTfXYqjFAYIqFtOmUaKpRMgccUi7p1oA7fJdNPGktkndljy6fUmCWocEeBXRS2g==", "requires": { "@antv/attr": "~0.1.2", "@antv/g": "~3.3.5", "@antv/util": "~1.3.1", "wolfy87-eventemitter": "~5.1.0" + }, + "dependencies": { + "@antv/g": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@antv/g/-/g-3.3.6.tgz", + "integrity": "sha512-2GtyTz++s0BbN6s0ZL2/nrqGYCkd52pVoNH92YkrTdTOvpO6Z4DNoo6jGVgZdPX6Nzwli6yduC8MinVAhE8X6g==", + "requires": { + "@antv/gl-matrix": "~2.7.1", + "@antv/util": "~1.3.1", + "d3-ease": "~1.0.3", + "d3-interpolate": "~1.1.5", + "d3-timer": "~1.0.6", + "wolfy87-eventemitter": "~5.1.0" + } + } } }, "@antv/coord": { "version": "0.1.0", - "resolved": "http://registry.npm.taobao.org/@antv/coord/download/@antv/coord-0.1.0.tgz", - "integrity": "sha1-SKgK420HVS+WZX5/gJUifGPwwKk=", + "resolved": "https://registry.npmjs.org/@antv/coord/-/coord-0.1.0.tgz", + "integrity": "sha512-W1R8h3Jfb3AfMBVfCreFPMVetgEYuwHBIGn0+d3EgYXe2ckOF8XWjkpGF1fZhOMHREMr+Gt27NGiQh8yBdLUgg==", "requires": { "@antv/util": "~1.3.1" } }, "@antv/data-set": { "version": "0.10.2", - "resolved": "http://registry.npm.taobao.org/@antv/data-set/download/@antv/data-set-0.10.2.tgz", - "integrity": "sha1-WEqVdOfghThHy2WNUbn3NFoAAy8=", + "resolved": "https://registry.npmjs.org/@antv/data-set/-/data-set-0.10.2.tgz", + "integrity": "sha512-FFWG5tiTiFiUrLDRwulraU5XfOdDjkYOlZna+AMT9FJw406D/gfS8eXM9YibscBH28M/+KLAVO8xEwuD1sc3bw==", "requires": { "@antv/hierarchy": "~0.4.0", "@antv/util": "~1.3.1", @@ -87,28 +101,28 @@ } }, "@antv/g": { - "version": "3.3.6", - "resolved": "http://registry.npm.taobao.org/@antv/g/download/@antv/g-3.3.6.tgz", - "integrity": "sha1-Ef7Z3cntTloqokS3yKu5gqAD8gE=", + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/@antv/g/-/g-3.4.10.tgz", + "integrity": "sha512-pKy/L1SyRBsXuujdkggqrdBA0/ciAgHiArYBdIJsxHRxCneUP01wGwHdGfDayh2+S0gcSBHynjhoEahsaZaLkw==", "requires": { "@antv/gl-matrix": "~2.7.1", "@antv/util": "~1.3.1", "d3-ease": "~1.0.3", "d3-interpolate": "~1.1.5", "d3-timer": "~1.0.6", - "wolfy87-eventemitter": "~5.1.0" + "detect-browser": "^5.1.0" } }, "@antv/g2": { - "version": "3.5.3", - "resolved": "http://registry.npm.taobao.org/@antv/g2/download/@antv/g2-3.5.3.tgz", - "integrity": "sha1-hFFxmqyGBpC2ekCdX7ewaALErKY=", + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/@antv/g2/-/g2-3.5.17.tgz", + "integrity": "sha512-gOjfA6pwXYEC5mrLbvg1kA3jZI5J5T2kQeGse+iBBsNc1Vje7zs9G+BleUaI4MLXSnqwhsj/ohfkP7d+h4ArNg==", "requires": { "@antv/adjust": "~0.1.0", "@antv/attr": "~0.1.2", - "@antv/component": "~0.3.2", + "@antv/component": "~0.3.3", "@antv/coord": "~0.1.0", - "@antv/g": "~3.3.6", + "@antv/g": "~3.4.10", "@antv/scale": "~0.1.1", "@antv/util": "~1.3.1", "venn.js": "~0.2.20", @@ -117,31 +131,31 @@ }, "@antv/g2-brush": { "version": "0.0.2", - "resolved": "http://registry.npm.taobao.org/@antv/g2-brush/download/@antv/g2-brush-0.0.2.tgz", - "integrity": "sha1-C2Xz67+CaQICkT0LZ1mrKQD6qEE=" + "resolved": "https://registry.npmjs.org/@antv/g2-brush/-/g2-brush-0.0.2.tgz", + "integrity": "sha512-7O9szwem19nmEgReXhFB8kVLRaz8J5MHvrzDSDY36YaBOaHSWRGHnvYt2KkkPqgWtHtLY1srssk4X/UmP5govA==" }, "@antv/g2-plugin-slider": { "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/@antv/g2-plugin-slider/download/@antv/g2-plugin-slider-2.1.1.tgz", - "integrity": "sha1-wgxfHPCFvqR4+KsfyEg35FxGoGU=" + "resolved": "https://registry.npmjs.org/@antv/g2-plugin-slider/-/g2-plugin-slider-2.1.1.tgz", + "integrity": "sha512-nB678VEGG3FkrvkDDFADAKjLQIeXzITEYqey5oeOpbf0vT5jOa55lQDyJDZ79cK8PmU/Hz6VPeSb3CNQBA+/FQ==" }, "@antv/gl-matrix": { "version": "2.7.1", - "resolved": "http://registry.npm.taobao.org/@antv/gl-matrix/download/@antv/gl-matrix-2.7.1.tgz", - "integrity": "sha1-rLjjf3qz3wE0WrpDcteUK+QuuhQ=" + "resolved": "https://registry.npmjs.org/@antv/gl-matrix/-/gl-matrix-2.7.1.tgz", + "integrity": "sha512-oOWcVNlpELIKi9x+Mm1Vwbz8pXfkbJKykoCIOJ/dNK79hSIANbpXJ5d3Rra9/wZqK6MC961B7sybFhPlLraT3Q==" }, "@antv/hierarchy": { "version": "0.4.0", - "resolved": "http://registry.npm.taobao.org/@antv/hierarchy/download/@antv/hierarchy-0.4.0.tgz", - "integrity": "sha1-cStbRHfuC4uNsXTGgrU1awQRqrY=", + "resolved": "https://registry.npmjs.org/@antv/hierarchy/-/hierarchy-0.4.0.tgz", + "integrity": "sha512-ols+m+Z8QA4895SWMTOSjVImOX4tEbWQTwJ0NE+WATc0WLSKs6D9y2yaR+ZWt6P60BMGVIKS6lIfabO3CwGgnQ==", "requires": { "@antv/util": "~1.3.1" } }, "@antv/scale": { - "version": "0.1.2", - "resolved": "http://registry.npm.taobao.org/@antv/scale/download/@antv/scale-0.1.2.tgz", - "integrity": "sha1-vZyzMDPYlEtSw+DkrM/WBUHDwUc=", + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@antv/scale/-/scale-0.1.5.tgz", + "integrity": "sha512-7RAu4iH5+Hk21h6+aBMiDTfmLf4IibK2SWjx/+E4f4AXRpqucO+8u7IbZdFkakAWxvqhJtN3oePJuTKqOMcmlg==", "requires": { "@antv/util": "~1.3.1", "fecha": "~2.3.3" @@ -149,379 +163,321 @@ }, "@antv/util": { "version": "1.3.1", - "resolved": "http://registry.npm.taobao.org/@antv/util/download/@antv/util-1.3.1.tgz", - "integrity": "sha1-MKNLIB/5Em7A1YxyyBZqnD5kTM0=", + "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.3.1.tgz", + "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==", "requires": { "@antv/gl-matrix": "^2.7.1" } }, "@babel/code-frame": { - "version": "7.0.0", - "resolved": "http://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.0.0.tgz", - "integrity": "sha1-BuKrGb21NThVWaq7W6WXKUgoAPg=", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "requires": { - "@babel/highlight": "^7.0.0" + "@babel/highlight": "^7.10.4" } }, + "@babel/compat-data": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", + "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==" + }, "@babel/core": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/core/download/@babel/core-7.4.3.tgz", - "integrity": "sha1-GY1tOvRWe+OYlVDZfgaN6UUDB08=", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.0", - "@babel/helpers": "^7.4.3", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "convert-source-map": "^1.1.0", + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "json5": "^2.1.0", - "lodash": "^4.17.11", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, "source-map": { "version": "0.5.7", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, "@babel/generator": { - "version": "7.4.0", - "resolved": "http://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.4.0.tgz", - "integrity": "sha1-wjDnlYmuenKf1GMbne1NwiBBgZY=", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", "requires": { - "@babel/types": "^7.4.0", + "@babel/types": "^7.12.5", "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "source-map": "^0.5.0" }, "dependencies": { "source-map": { "version": "0.5.7", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, "@babel/helper-annotate-as-pure": { - "version": "7.0.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.0.0.tgz", - "integrity": "sha1-Mj053QtQ4Qx8Bsp9djjmhk2MXDI=", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.10.4" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.1.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", - "integrity": "sha1-a2lijf5Ah3mODE7Zjj1Kay+9L18=", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", "requires": { - "@babel/helper-explode-assignable-expression": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" } }, - "@babel/helper-call-delegate": { - "version": "7.4.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-call-delegate/download/@babel/helper-call-delegate-7.4.0.tgz", - "integrity": "sha1-8wjqvg1E9FEheFOu303qX2/jKU8=", + "@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", "requires": { - "@babel/helper-hoist-variables": "^7.4.0", - "@babel/traverse": "^7.4.0", - "@babel/types": "^7.4.0" + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.5.0" } }, "@babel/helper-create-class-features-plugin": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.4.tgz", - "integrity": "sha512-UbBHIa2qeAGgyiNR9RszVF7bUHEdgS4JAUNT8SiqrAN6YJVxlOxeLr5pBzb5kan302dejJ9nla4RyKcR1XT6XA==", - "dev": true, + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-member-expression-to-functions": "^7.0.0", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.4.4", - "@babel/helper-split-export-declaration": "^7.4.4" - }, - "dependencies": { - "@babel/generator": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", - "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", - "dev": true, - "requires": { - "@babel/types": "^7.4.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.11", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" - } - }, - "@babel/helper-replace-supers": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz", - "integrity": "sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.0.0", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/traverse": "^7.4.4", - "@babel/types": "^7.4.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", - "dev": true, - "requires": { - "@babel/types": "^7.4.4" - } - }, - "@babel/parser": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", - "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", - "dev": true - }, - "@babel/traverse": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz", - "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.4", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.4.5", - "@babel/types": "^7.4.4", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.11" - } - }, - "@babel/types": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", - "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", - "to-fast-properties": "^2.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", + "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "regexpu-core": "^4.7.1" } }, "@babel/helper-define-map": { - "version": "7.4.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.4.0.tgz", - "integrity": "sha1-y/2MGy8ScI4mLCb2AM0W7Wo7xsk=", + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/types": "^7.4.0", - "lodash": "^4.17.11" + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" } }, "@babel/helper-explode-assignable-expression": { - "version": "7.1.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.1.0.tgz", - "integrity": "sha1-U3+hP28WdN90WwwA7I/k6ZaByPY=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", "requires": { - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/types": "^7.12.1" } }, "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.1.0.tgz", - "integrity": "sha1-oM6wFoX3M1XUNgwSR/WCv6/I/1M=", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha1-g1ctQyDipGVyY3NBE8QoaLZOScM=", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.10.4" } }, "@babel/helper-hoist-variables": { - "version": "7.4.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.4.0.tgz", - "integrity": "sha1-JbYhOZriKYaTKXMKYgFbvrCm+9Y=", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", "requires": { - "@babel/types": "^7.4.0" + "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.0.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.0.0.tgz", - "integrity": "sha1-jNFLCg33/wDwCefXpDaUX0fHoW8=", + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.12.7" } }, "@babel/helper-module-imports": { - "version": "7.0.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.0.0.tgz", - "integrity": "sha1-lggbcRHkhtpNLNlxrRpP4hbMLj0=", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.12.5" } }, "@babel/helper-module-transforms": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.4.3.tgz", - "integrity": "sha1-seNXocSeWKRyEaaFOruOKq7+sGQ=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.0.0", - "@babel/template": "^7.2.2", - "@babel/types": "^7.2.2", - "lodash": "^4.17.11" + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { - "version": "7.0.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.0.0.tgz", - "integrity": "sha1-opIMVwKwc8Fd5REGIAqoytIEl9U=", + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz", + "integrity": "sha512-I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw==", "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.12.7" } }, "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha1-u7P77phmHFaQNCN8wDlnupm08lA=" - }, - "@babel/helper-regex": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.4.3.tgz", - "integrity": "sha1-nW5UKL/WOKtTs3rk7IyvBHdJUUc=", - "requires": { - "lodash": "^4.17.11" - } + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" }, "@babel/helper-remap-async-to-generator": { - "version": "7.1.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.1.0.tgz", - "integrity": "sha1-Nh2AghtvONp1vT8HheziCojF/n8=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-wrap-function": "^7.1.0", - "@babel/template": "^7.1.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" } }, "@babel/helper-replace-supers": { - "version": "7.4.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.4.0.tgz", - "integrity": "sha1-T1attq7c1EnS2pOZwtzwVFRjtkw=", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", + "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", "requires": { - "@babel/helper-member-expression-to-functions": "^7.0.0", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/traverse": "^7.4.0", - "@babel/types": "^7.4.0" + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/helper-simple-access": { - "version": "7.1.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.1.0.tgz", - "integrity": "sha1-Ze65VMjCRb6qToWdphiPOdceWFw=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", "requires": { - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/types": "^7.12.1" } }, "@babel/helper-split-export-declaration": { - "version": "7.4.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.4.0.tgz", - "integrity": "sha1-Vxv9UnAfSSkg1jt/c1Aw6aPhC1U=", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "requires": { - "@babel/types": "^7.4.0" + "@babel/types": "^7.11.0" } }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" + }, + "@babel/helper-validator-option": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz", + "integrity": "sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==" + }, "@babel/helper-wrap-function": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.2.0.tgz", - "integrity": "sha1-xOABJEV2nigVtVKW6tQ6lYVJ9vo=", + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/template": "^7.1.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.2.0" + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helpers": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.4.3.tgz", - "integrity": "sha1-ex01Q2NJSzHLmiQXroavMreFOjs=", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", "requires": { - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0" + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" } }, "@babel/highlight": { - "version": "7.0.0", - "resolved": "http://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.0.0.tgz", - "integrity": "sha1-9xDDjI1Fjm3ZogGvtjf8t4HOmeQ=", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "requires": { + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", - "esutils": "^2.0.2", "js-tokens": "^4.0.0" }, "dependencies": { "ansi-styles": { "version": "3.2.1", - "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "^1.9.0" } }, "chalk": { "version": "2.4.2", - "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -530,8 +486,8 @@ }, "supports-color": { "version": "5.5.0", - "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { "has-flag": "^3.0.0" } @@ -539,606 +495,771 @@ } }, "@babel/parser": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.4.3.tgz", - "integrity": "sha1-6zrID2SqEByQfUzlQGNg/nW3iVs=" + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz", + "integrity": "sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==" }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.2.0.tgz", - "integrity": "sha1-somzBmadzkrSCwJSiJoVdoydQX4=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0", - "@babel/plugin-syntax-async-generators": "^7.2.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.4.tgz", - "integrity": "sha512-WjKTI8g8d5w1Bc9zgwSz2nfrsNQsXcCf9J9cdCvrJV6RF56yztwm4TmJC0MgJ9tvwO9gUA/mcYe89bLdGfiXFg==", - "dev": true, + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.4.4", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-proposal-decorators": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.4.4.tgz", - "integrity": "sha512-z7MpQz3XC/iQJWXH9y+MaWcLPNSMY9RQSthrLzak8R8hCj0fuyNk+Dzi9kfNe/JxxlWQ2g7wkABbgWjW36MTcw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.1.tgz", + "integrity": "sha512-knNIuusychgYN8fGJHONL0RbFxLGawhXOJNLBk75TniTsZZeA+wdkDuv6wp4lGwzQEKjZi6/WYtnb3udNPmQmQ==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.4.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-decorators": "^7.2.0" + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-decorators": "^7.12.1" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.2.0.tgz", - "integrity": "sha1-Vo7MRGxhSK5rJn8CVREwiR4p8xc=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-json-strings": "^7.2.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz", + "integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.4.3.tgz", - "integrity": "sha1-vifNQW7O66hBQTBbk8KC9d4ju7Q=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.2.0.tgz", - "integrity": "sha1-E12B7baKCB5V5W7EhUHs6AZcOPU=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", + "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.4.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.4.0.tgz", - "integrity": "sha1-IC2R7pd9dg74P09BaygNVovoRiM=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0", - "regexpu-core": "^4.5.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-async-generators": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.2.0.tgz", - "integrity": "sha1-aeHw2zTG9aDPfiszI78VmnbIy38=", + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-decorators": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz", - "integrity": "sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.1.tgz", + "integrity": "sha512-ir9YW5daRrTYiy9UJ2TzdNIJEZu8KclVzDcfSt4iEmOtwQ4llPtWInNKJyKnVXp1vE4bbVd5S31M/im3mYMO1w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-dynamic-import": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", - "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", - "dev": true, + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-syntax-json-strings": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.2.0.tgz", - "integrity": "sha1-cr0T9v/h0lk4Ep0qGGsR/WKVFHA=", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-jsx": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz", - "integrity": "sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-object-rest-spread": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.2.0.tgz", - "integrity": "sha1-O3o+czUQxX6CC5FCpleayLDfrS4=", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.2.0.tgz", - "integrity": "sha1-qUAT1u2okI3+akd+f57ahWVuz1w=", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.2.0.tgz", - "integrity": "sha1-mur75Nb/xlY7+Pg3IJFijwB3lVA=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.4.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.4.0.tgz", - "integrity": "sha1-I0/j5Fjc6VhlwNFS0lYRmyN4NLA=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0" + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.2.0.tgz", - "integrity": "sha1-XTzBHo1d3XUqpkyRSNDbbLef0ZA=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.4.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.4.0.tgz", - "integrity": "sha1-Fk3zu0Hj3rlUxMoy/6n8qlbTC8s=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz", + "integrity": "sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "lodash": "^4.17.11" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-classes": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.4.3.tgz", - "integrity": "sha1-rcehE3q0KHpVXUKcxW7N6PQMBiw=", - "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-define-map": "^7.4.0", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.4.0", - "@babel/helper-split-export-declaration": "^7.4.0", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.2.0.tgz", - "integrity": "sha1-g6ffamWIZbHI9kHVEMbzryICFto=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-destructuring": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.4.3.tgz", - "integrity": "sha1-GpX1yivy+R7wZI1d44qNRy2kNQ8=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.4.3.tgz", - "integrity": "sha1-/O/xwW0AxT0y2YBEhgb4Es1tAr8=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.3", - "regexpu-core": "^4.5.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.2.0.tgz", - "integrity": "sha1-2VLEkw8xKk2//xjwspFOYMNVMLM=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.2.0.tgz", - "integrity": "sha1-pjhoKJ5bQAf3BU1GSRr1FDV2YAg=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-for-of": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.4.3.tgz", - "integrity": "sha1-w2/0DYk/K4NSIColWIJPcM116f4=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-function-name": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.4.3.tgz", - "integrity": "sha1-Ewwn7H+08MujDpWJiUSeXsjSK70=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-literals": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.2.0.tgz", - "integrity": "sha1-aQNT6B+SZ9rU/Yz9d+r6hqulPqE=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.2.0.tgz", - "integrity": "sha1-+hCqXFiiy2r88sn/qMtNiz1Imi0=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.2.0.tgz", - "integrity": "sha1-gqm85FuVRB9heiQBHcidEtp/TuY=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", "requires": { - "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.4.3.tgz", - "integrity": "sha1-ORfyYEY6wI+Ilqpb1UQD9uH+0WU=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", "requires": { - "@babel/helper-module-transforms": "^7.4.3", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0" + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.4.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.4.0.tgz", - "integrity": "sha1-wkleVVKBNXl7yBb11Q+FFpjFhqE=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", "requires": { - "@babel/helper-hoist-variables": "^7.4.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.2.0.tgz", - "integrity": "sha1-dnjOdRafCHe46yI1U4wHQmjdAa4=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", "requires": { - "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.4.2", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.4.2.tgz", - "integrity": "sha1-gAORE21svMgHKNvbo8HG5G+GwS4=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", "requires": { - "regexp-tree": "^0.1.0" + "@babel/helper-create-regexp-features-plugin": "^7.12.1" } }, "@babel/plugin-transform-new-target": { - "version": "7.4.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.4.0.tgz", - "integrity": "sha1-Z2WKHZRO21PI1PowBEc6DdeDgVA=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-object-super": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.2.0.tgz", - "integrity": "sha1-s11MEPVrq11lAEfa0PHY6IFLZZg=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.1.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" } }, "@babel/plugin-transform-parameters": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.4.3.tgz", - "integrity": "sha1-5f9ikp/fTPk+WLrbXiQwMDADgA0=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", "requires": { - "@babel/helper-call-delegate": "^7.4.0", - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-property-literals": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.2.0.tgz", - "integrity": "sha1-A+M/ZT9bJcTrVyyYuUhQVbOJ6QU=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-regenerator": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.4.3.tgz", - "integrity": "sha1-Kml6+WiH4rv10wOrAiHROd5ec5w=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", "requires": { - "regenerator-transform": "^0.13.4" + "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.2.0.tgz", - "integrity": "sha1-R5Kvh8mYpJNnWX0H/t8CY20uFjQ=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-runtime": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.4.3.tgz", - "integrity": "sha1-TWaRaQ7NyfXLjDqxcKFXbB9VY3E=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz", + "integrity": "sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg==", "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", "resolve": "^1.8.1", "semver": "^5.5.1" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.2.0.tgz", - "integrity": "sha1-YzOu4vjW7n4oYVRXKYk0o7RhmPA=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-spread": { - "version": "7.2.2", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.2.2.tgz", - "integrity": "sha1-MQOpq+IvdCttQG7NPNSbd0kZtAY=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.2.0.tgz", - "integrity": "sha1-oeRUtZlVYKnB4NU338FQYf0mh+E=", + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", + "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-template-literals": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.2.0.tgz", - "integrity": "sha1-2H7QG46qx6kkc/YIyXwIneK6Hls=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.2.0", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.2.0.tgz", - "integrity": "sha1-EX0rzsL79ktLWdH5gZiUaC0p8rI=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz", + "integrity": "sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.4.3.tgz", - "integrity": "sha1-OGhwP8Do9EPdplZUspjfV297hjs=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.3", - "regexpu-core": "^4.5.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/polyfill": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/polyfill/download/@babel/polyfill-7.4.3.tgz", - "integrity": "sha1-My3G9XtxgBfDqLN7TuqKpu6sEYc=", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz", + "integrity": "sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==", "dev": true, "requires": { "core-js": "^2.6.5", - "regenerator-runtime": "^0.13.2" + "regenerator-runtime": "^0.13.4" }, "dependencies": { "regenerator-runtime": { - "version": "0.13.2", - "resolved": "http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.2.tgz", - "integrity": "sha1-MuWcmm+5saSv8JtJMMotRHc0NEc=", + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", "dev": true } } }, "@babel/preset-env": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.4.3.tgz", - "integrity": "sha1-5x4W4SPcD79lpSy8vO/QcvvQKIA=", + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.7.tgz", + "integrity": "sha512-OnNdfAr1FUQg7ksb7bmbKoby4qFOHw6DKWWUNB9KqnnCldxhxJlP+21dpyaWFmf2h0rTbOkXJtAGevY3XW1eew==", + "requires": { + "@babel/compat-data": "^7.12.7", + "@babel/helper-compilation-targets": "^7.12.5", + "@babel/helper-module-imports": "^7.12.5", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.1", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.7", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.7", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.1", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.7", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.1", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.12.7", + "core-js-compat": "^3.7.0", + "semver": "^5.5.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", "requires": { - "@babel/helper-module-imports": "^7.0.0", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.2.0", - "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.4.3", - "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.0", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-json-strings": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", - "@babel/plugin-transform-arrow-functions": "^7.2.0", - "@babel/plugin-transform-async-to-generator": "^7.4.0", - "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.4.0", - "@babel/plugin-transform-classes": "^7.4.3", - "@babel/plugin-transform-computed-properties": "^7.2.0", - "@babel/plugin-transform-destructuring": "^7.4.3", - "@babel/plugin-transform-dotall-regex": "^7.4.3", - "@babel/plugin-transform-duplicate-keys": "^7.2.0", - "@babel/plugin-transform-exponentiation-operator": "^7.2.0", - "@babel/plugin-transform-for-of": "^7.4.3", - "@babel/plugin-transform-function-name": "^7.4.3", - "@babel/plugin-transform-literals": "^7.2.0", - "@babel/plugin-transform-member-expression-literals": "^7.2.0", - "@babel/plugin-transform-modules-amd": "^7.2.0", - "@babel/plugin-transform-modules-commonjs": "^7.4.3", - "@babel/plugin-transform-modules-systemjs": "^7.4.0", - "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.4.2", - "@babel/plugin-transform-new-target": "^7.4.0", - "@babel/plugin-transform-object-super": "^7.2.0", - "@babel/plugin-transform-parameters": "^7.4.3", - "@babel/plugin-transform-property-literals": "^7.2.0", - "@babel/plugin-transform-regenerator": "^7.4.3", - "@babel/plugin-transform-reserved-words": "^7.2.0", - "@babel/plugin-transform-shorthand-properties": "^7.2.0", - "@babel/plugin-transform-spread": "^7.2.0", - "@babel/plugin-transform-sticky-regex": "^7.2.0", - "@babel/plugin-transform-template-literals": "^7.2.0", - "@babel/plugin-transform-typeof-symbol": "^7.2.0", - "@babel/plugin-transform-unicode-regex": "^7.4.3", - "@babel/types": "^7.4.0", - "browserslist": "^4.5.2", - "core-js-compat": "^3.0.0", - "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", - "semver": "^5.5.0" + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" } }, "@babel/runtime": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.4.3.tgz", - "integrity": "sha1-eYiORSA0IjrZYJGHoK0f4NKtS9w=", - "dev": true, + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", "requires": { - "regenerator-runtime": "^0.13.2" + "regenerator-runtime": "^0.13.4" }, "dependencies": { "regenerator-runtime": { - "version": "0.13.2", - "resolved": "http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.2.tgz", - "integrity": "sha1-MuWcmm+5saSv8JtJMMotRHc0NEc=", - "dev": true + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" } } }, "@babel/runtime-corejs2": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.4.5.tgz", - "integrity": "sha512-5yLuwzvIDecKwYMzJtiarky4Fb5643H3Ao5jwX0HrMR5oM5mn2iHH9wSZonxwNK0oAjAFUQAiOd4jT7/9Y2jMQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.12.5.tgz", + "integrity": "sha512-kt5YpZ7F5A05LOgQuaMXXmcxakK/qttf5C/E1BJPA3Kf5PanbjPzDoXN+PIslUnjUxpuKblCsXyP0QfMiqyKqA==", "dev": true, "requires": { "core-js": "^2.6.5", - "regenerator-runtime": "^0.13.2" + "regenerator-runtime": "^0.13.4" }, "dependencies": { "regenerator-runtime": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz", - "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA==", + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", "dev": true } } }, "@babel/template": { - "version": "7.4.0", - "resolved": "http://registry.npm.taobao.org/@babel/template/download/@babel/template-7.4.0.tgz", - "integrity": "sha1-EkdOnAd7rlhcXYNalcCwt5DCXIs=", + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.4.0", - "@babel/types": "^7.4.0" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" } }, "@babel/traverse": { - "version": "7.4.3", - "resolved": "http://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.4.3.tgz", - "integrity": "sha1-GgHwePxXXVif8wwPcb88PZzLrYQ=", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.4.0", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/types": "^7.4.0", + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz", + "integrity": "sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.11" + "lodash": "^4.17.19" }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, "@babel/types": { - "version": "7.4.0", - "resolved": "http://registry.npm.taobao.org/@babel/types/download/@babel/types-7.4.0.tgz", - "integrity": "sha1-Zwck930kzObMfYz2RZnVEdFkiUw=", + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz", + "integrity": "sha512-MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==", "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.11", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, "@hapi/address": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.0.0.tgz", - "integrity": "sha512-mV6T0IYqb0xL1UALPFplXYQmR0twnXG0M6jUswpquqT2sD12BOiCiLy3EvMp/Fy7s3DZElC4/aPjEjo2jeZpvw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==", + "dev": true + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==", "dev": true }, "@hapi/hoek": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-6.2.4.tgz", - "integrity": "sha512-HOJ20Kc93DkDVvjwHyHawPwPkX44sIrbXazAUDiUXaY2R9JwQGo2PhFfnQtdrsIe4igjG2fPgMra7NYw7qhy0A==", + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==", "dev": true }, "@hapi/joi": { - "version": "15.0.3", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.0.3.tgz", - "integrity": "sha512-z6CesJ2YBwgVCi+ci8SI8zixoj8bGFn/vZb9MBPbSyoxsS2PnWYjHcyTM17VLK6tx64YVK38SDIh10hJypB+ig==", + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", "dev": true, "requires": { "@hapi/address": "2.x.x", - "@hapi/hoek": "6.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", "@hapi/topo": "3.x.x" } }, "@hapi/topo": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.0.tgz", - "integrity": "sha512-gZDI/eXOIk8kP2PkUKjWu9RW8GGVd2Hkgjxyr/S7Z+JF+0mr7bAlbw+DkTRxnD580o8Kqxlnba9wvqp5aOHBww==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", "dev": true, "requires": { - "@hapi/hoek": "6.x.x" + "@hapi/hoek": "^8.3.0" } }, "@intervolga/optimize-cssnano-plugin": { @@ -1184,9 +1305,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -1240,36 +1361,40 @@ }, "@types/anymatch": { "version": "1.3.1", - "resolved": "http://registry.npm.taobao.org/@types/anymatch/download/@types/anymatch-1.3.1.tgz", - "integrity": "sha1-M2utwb7sudrMOL6izzKt9ieoQho=", + "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", + "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==", "dev": true }, "@types/d3-format": { - "version": "1.3.1", - "resolved": "http://registry.npm.taobao.org/@types/d3-format/download/@types/d3-format-1.3.1.tgz", - "integrity": "sha1-Nb+IJkvWvNo5JRFlu4J/Z4ecQ4Q=" - }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-2.0.0.tgz", + "integrity": "sha512-uagdkftxnGkO4pZw5jEYOM5ZnZOEsh7z8j11Qxk85UkB2RzfUUxRl7R9VvvJZHwKn8l+x+rpS77Nusq7FkFmIg==" }, "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", "dev": true, "requires": { - "@types/events": "*", "@types/minimatch": "*", "@types/node": "*" } }, + "@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==" + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, "@types/loader-utils": { "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/@types/loader-utils/download/@types/loader-utils-1.1.3.tgz", - "integrity": "sha1-grkWPy6tWWxoqMA+RQ+9bgid9AE=", + "resolved": "https://registry.npmjs.org/@types/loader-utils/-/loader-utils-1.1.3.tgz", + "integrity": "sha512-euKGFr2oCB3ASBwG39CYJMR3N9T0nanVqXdiH7Zu/Nqddt6SmFRxytq/i2w9LQYNQekEtGBz+pE3qG6fQTNvRg==", "dev": true, "requires": { "@types/node": "*", @@ -1277,9 +1402,9 @@ } }, "@types/lodash": { - "version": "4.14.123", - "resolved": "http://registry.npm.taobao.org/@types/lodash/download/@types/lodash-4.14.123.tgz", - "integrity": "sha1-Ob5dIRR4yN072umO51u37+Sr/k0=" + "version": "4.14.165", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", + "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==" }, "@types/minimatch": { "version": "3.0.3", @@ -1288,9 +1413,9 @@ "dev": true }, "@types/node": { - "version": "11.13.6", - "resolved": "http://registry.npm.taobao.org/@types/node/download/@types/node-11.13.6.tgz", - "integrity": "sha1-N+x1aQgwrLDXTOPGxDyqt4cIHoU=" + "version": "14.14.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", + "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" }, "@types/normalize-package-data": { "version": "2.4.0", @@ -1299,9 +1424,15 @@ "dev": true }, "@types/q": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", - "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", "dev": true }, "@types/strip-bom": { @@ -1317,15 +1448,15 @@ "dev": true }, "@types/tapable": { - "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/@types/tapable/download/@types/tapable-1.0.4.tgz", - "integrity": "sha1-tP/H3Je0mMlps2CkHu4kf4JhY3A=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", + "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==", "dev": true }, "@types/uglify-js": { - "version": "3.0.4", - "resolved": "http://registry.npm.taobao.org/@types/uglify-js/download/@types/uglify-js-3.0.4.tgz", - "integrity": "sha1-lr6uI99vVhhiqDC0KIpJ6GuqwII=", + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.11.1.tgz", + "integrity": "sha512-7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q==", "dev": true, "requires": { "source-map": "^0.6.1" @@ -1333,57 +1464,77 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "@types/webpack": { - "version": "4.4.27", - "resolved": "http://registry.npm.taobao.org/@types/webpack/download/@types/webpack-4.4.27.tgz", - "integrity": "sha1-i7lCkYWXems7nm5hMvVhBmqn58I=", + "version": "4.41.25", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.25.tgz", + "integrity": "sha512-cr6kZ+4m9lp86ytQc1jPOJXgINQyz3kLLunZ57jznW+WIAL0JqZbGubQk4GlD42MuQL5JGOABrxdpqqWeovlVQ==", "dev": true, "requires": { "@types/anymatch": "*", "@types/node": "*", "@types/tapable": "*", "@types/uglify-js": "*", + "@types/webpack-sources": "*", "source-map": "^0.6.0" }, "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@types/webpack-sources": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.0.0.tgz", + "integrity": "sha512-a5kPx98CNFRKQ+wqawroFunvFqv7GHm/3KOI52NY9xWADgc8smu4R6prt4EU/M4QfVjvgBkMqU4fBhw3QfMVkg==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true } } }, "@vue/babel-helper-vue-jsx-merge-props": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz", - "integrity": "sha512-6tyf5Cqm4m6v7buITuwS+jHzPlIPxbFzEhXR5JGZpbrvOcp1hiQKckd305/3C7C36wFekNTQSxAtgeM0j0yoUw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz", + "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==", "dev": true }, "@vue/babel-plugin-transform-vue-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.0.0.tgz", - "integrity": "sha512-U+JNwVQSmaLKjO3lzCUC3cNXxprgezV1N+jOdqbP4xWNaqtWUCJnkjTVcgECM18A/AinDKPcUUeoyhU7yxUxXQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.2.1.tgz", + "integrity": "sha512-HJuqwACYehQwh1fNT8f4kyzqlNMpBuUK4rSiSES5D4QsYncv5fxFsLyrxFPG2ksO7t5WP+Vgix6tt6yKClwPzA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.0.0", "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", "html-tags": "^2.0.0", "lodash.kebabcase": "^4.1.1", "svg-tags": "^1.0.0" } }, "@vue/babel-preset-app": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.8.0.tgz", - "integrity": "sha512-A2NBzIVdtNq52foc+P+yQ/7rSm2q2oPpn2FJVW4hFgaWVOL+HaOLCjWDEQyEeMbRZvyOVHMuom097u3p2H2Rfw==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.12.1.tgz", + "integrity": "sha512-Zjy5jQaikV1Pz+ri0YgXFS7q4/5wCxB5tRkDOEIt5+4105u0Feb/pvH20nVL6nx9GyXrECFfcm7Yxr/z++OaPQ==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.0.0", @@ -1455,46 +1606,66 @@ } }, "@vue/babel-preset-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.0.0.tgz", - "integrity": "sha512-5CbDu/QHS+TtQNw5aYAffiMxBBB2Eo9+RJpS8X+6FJbdG5Rvc4TVipEqkrg0pJviWadNg7TEy0Uz4o7VNXeIZw==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.2.4.tgz", + "integrity": "sha512-oRVnmN2a77bYDJzeGSt92AuHXbkIxbf/XXSE3klINnh9AXBmVS1DGa1f0d+dDYpLfsAKElMnqKTQfKn7obcL4w==", + "dev": true, + "requires": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", + "@vue/babel-sugar-composition-api-inject-h": "^1.2.1", + "@vue/babel-sugar-composition-api-render-instance": "^1.2.4", + "@vue/babel-sugar-functional-vue": "^1.2.2", + "@vue/babel-sugar-inject-h": "^1.2.2", + "@vue/babel-sugar-v-model": "^1.2.3", + "@vue/babel-sugar-v-on": "^1.2.3" + } + }, + "@vue/babel-sugar-composition-api-inject-h": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.2.1.tgz", + "integrity": "sha512-4B3L5Z2G+7s+9Bwbf+zPIifkFNcKth7fQwekVbnOA3cr3Pq71q71goWr97sk4/yyzH8phfe5ODVzEjX7HU7ItQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-composition-api-render-instance": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.2.4.tgz", + "integrity": "sha512-joha4PZznQMsxQYXtR3MnTgCASC9u3zt9KfBxIeuI5g2gscpTsSKRDzWQt4aqNIpx6cv8On7/m6zmmovlNsG7Q==", "dev": true, "requires": { - "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.0.0", - "@vue/babel-sugar-functional-vue": "^1.0.0", - "@vue/babel-sugar-inject-h": "^1.0.0", - "@vue/babel-sugar-v-model": "^1.0.0", - "@vue/babel-sugar-v-on": "^1.0.0" + "@babel/plugin-syntax-jsx": "^7.2.0" } }, "@vue/babel-sugar-functional-vue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.0.0.tgz", - "integrity": "sha512-XE/jNaaorTuhWayCz+QClk5AB9OV5HzrwbzEC6sIUY0J60A28ONQKeTwxfidW42egOkqNH/UU6eE3KLfmiDj0Q==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.2.2.tgz", + "integrity": "sha512-JvbgGn1bjCLByIAU1VOoepHQ1vFsroSA/QkzdiSs657V79q6OwEWLCQtQnEXD/rLTA8rRit4rMOhFpbjRFm82w==", "dev": true, "requires": { "@babel/plugin-syntax-jsx": "^7.2.0" } }, "@vue/babel-sugar-inject-h": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.0.0.tgz", - "integrity": "sha512-NxWU+DqtbZgfGvd25GPoFMj+rvyQ8ZA1pHj8vIeqRij+vx3sXoKkObjA9ulZunvWw5F6uG9xYy4ytpxab/X+Hg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.2.2.tgz", + "integrity": "sha512-y8vTo00oRkzQTgufeotjCLPAvlhnpSkcHFEp60+LJUwygGcd5Chrpn5480AQp/thrxVm8m2ifAk0LyFel9oCnw==", "dev": true, "requires": { "@babel/plugin-syntax-jsx": "^7.2.0" } }, "@vue/babel-sugar-v-model": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.0.0.tgz", - "integrity": "sha512-Pfg2Al0io66P1eO6zUbRIgpyKCU2qTnumiE0lao/wA/uNdb7Dx5Tfd1W6tO5SsByETPnEs8i8+gawRIXX40rFw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.2.3.tgz", + "integrity": "sha512-A2jxx87mySr/ulAsSSyYE8un6SIH0NWHiLaCWpodPCVOlQVODCaSpiR4+IMsmBr73haG+oeCuSvMOM+ttWUqRQ==", "dev": true, "requires": { "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.0.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", "camelcase": "^5.0.0", "html-tags": "^2.0.0", "svg-tags": "^1.0.0" @@ -1509,13 +1680,13 @@ } }, "@vue/babel-sugar-v-on": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.0.0.tgz", - "integrity": "sha512-2aqJaDLKdSSGlxZU+GjFERaSNUaa6DQreV+V/K4W/6Lxj8520/r1lChWEa/zuAoPD2Vhy0D2QrqqO+I0D6CkKw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.2.3.tgz", + "integrity": "sha512-kt12VJdz/37D3N3eglBywV8GStKNUhNrsxChXIV+o0MwVXORYuhDTHJRKPgLJRb/EY3vM2aRFQdxJBp9CLikjw==", "dev": true, "requires": { "@babel/plugin-syntax-jsx": "^7.2.0", - "@vue/babel-plugin-transform-vue-jsx": "^1.0.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.2.1", "camelcase": "^5.0.0" }, "dependencies": { @@ -1528,469 +1699,40 @@ } }, "@vue/cli-overlay": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-3.8.0.tgz", - "integrity": "sha512-4hY/+r9OwpMb7BPFnQGKftMC8CrfbV00REEFOij52+L4swQw+m879+5zX3Z0xHfPftw6JyaqJB0rmQ0ILI6Ovw==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-3.12.1.tgz", + "integrity": "sha512-Bym92EN+lj+cNRN2ozbYyH+V8DMXWGbCDUk+hiJ4EYDBZfBkZKvalk1/mOBFwyxiopnnbOEBAAhL/UuMQ1xARg==", "dev": true }, "@vue/cli-plugin-babel": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-3.8.0.tgz", - "integrity": "sha512-VLWvpgDM+HN2FZu1x+r9pisombDTK1k+RPNPeslnwjGjrUXmKNAamXL1ZIsPwsj6k6PpWPN4jetBIMqcBzBu6Q==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-3.12.1.tgz", + "integrity": "sha512-Zetvz8PikLCGomeKOKu8pC9YQ7cfxs7pGpvEOzaxGdhMnebhjAYR6i6dOB57A6N5lhxQksXCtYTv26QgfiIpdg==", "dev": true, "requires": { "@babel/core": "^7.0.0", - "@vue/babel-preset-app": "^3.8.0", - "@vue/cli-shared-utils": "^3.8.0", + "@vue/babel-preset-app": "^3.12.1", + "@vue/cli-shared-utils": "^3.12.1", "babel-loader": "^8.0.5", - "webpack": ">=4 < 4.29" - }, - "dependencies": { - "@webassemblyjs/ast": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", - "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", - "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", - "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", - "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", - "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.7.11" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", - "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", - "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", - "dev": true - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", - "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", - "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", - "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", - "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/utf8": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", - "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", - "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/helper-wasm-section": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-opt": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "@webassemblyjs/wast-printer": "1.7.11" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", - "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", - "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", - "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", - "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/floating-point-hex-parser": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-code-frame": "1.7.11", - "@webassemblyjs/helper-fsm": "1.7.11", - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", - "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11", - "@xtuc/long": "4.2.1" - } - }, - "@xtuc/long": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", - "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", - "dev": true - }, - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", - "dev": true, - "requires": { - "acorn": "^5.0.0" - } - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - }, - "webpack": { - "version": "4.28.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.4.tgz", - "integrity": "sha512-NxjD61WsK/a3JIdwWjtIpimmvE6UrRi3yG54/74Hk9rwNj5FPkA4DJCf1z4ByDWLkvZhTZE+P3C/eh6UD5lDcw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/wasm-edit": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "acorn": "^5.6.2", - "acorn-dynamic-import": "^3.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^0.4.4", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" - } - } + "webpack": "^4.0.0" } }, "@vue/cli-plugin-eslint": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.8.0.tgz", - "integrity": "sha512-18LDJmjH0DDw9T4+RbrSVk4xkF8t8RDRsEPJLPurno1YVJodIkQ6lqVu82faVgtvPyCoqiaicoTq/iwi1avoLQ==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.12.1.tgz", + "integrity": "sha512-tVTZlEZsy3sQbO4LLWFK11yzlWwqVAqaM+IY+BeWHITBzEJKh2KmouG+x6x/reXiU3qROsMJ4Ej3Hs8buSMWyQ==", "dev": true, "requires": { - "@vue/cli-shared-utils": "^3.8.0", + "@vue/cli-shared-utils": "^3.12.1", "babel-eslint": "^10.0.1", "eslint": "^4.19.1", "eslint-loader": "^2.1.2", "eslint-plugin-vue": "^4.7.1", "globby": "^9.2.0", - "webpack": ">=4 < 4.29" + "webpack": "^4.0.0", + "yorkie": "^2.0.0" }, "dependencies": { - "@webassemblyjs/ast": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", - "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", - "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", - "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", - "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", - "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.7.11" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", - "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", - "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", - "dev": true - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", - "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", - "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", - "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", - "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/utf8": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", - "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", - "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/helper-wasm-section": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-opt": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "@webassemblyjs/wast-printer": "1.7.11" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", - "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", - "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", - "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", - "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/floating-point-hex-parser": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-code-frame": "1.7.11", - "@webassemblyjs/helper-fsm": "1.7.11", - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", - "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11", - "@xtuc/long": "4.2.1" - } - }, - "@xtuc/long": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", - "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", - "dev": true - }, - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", - "dev": true, - "requires": { - "acorn": "^5.0.0" - } - }, "ajv": { "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", @@ -2138,42 +1880,6 @@ "yallist": "^2.1.2" } }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - }, - "dependencies": { - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } - } - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -2194,74 +1900,6 @@ "has-flag": "^3.0.0" } }, - "webpack": { - "version": "4.28.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.4.tgz", - "integrity": "sha512-NxjD61WsK/a3JIdwWjtIpimmvE6UrRi3yG54/74Hk9rwNj5FPkA4DJCf1z4ByDWLkvZhTZE+P3C/eh6UD5lDcw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/wasm-edit": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "acorn": "^5.6.2", - "acorn-dynamic-import": "^3.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^0.4.4", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" - }, - "dependencies": { - "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } - } - }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", @@ -2272,12 +1910,12 @@ } }, "@vue/cli-plugin-unit-jest": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-3.8.0.tgz", - "integrity": "sha512-8kvoh6NZYY7FjuqRorqo47VTi62a3u69+oAxqBiIOkc28OGaju/FrL0Vm95vRB8tMkU6EPXKVRtCjPz8R2QeZA==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-3.12.1.tgz", + "integrity": "sha512-Cc9Kq4+RaUN1yfNVb7c9hVDNXo2tFTWHgwooCL3XWMu2iL+pDawQt8ZeSqauDY95JoMeEAVy2xBimjL+7jo/jw==", "dev": true, "requires": { - "@vue/cli-shared-utils": "^3.8.0", + "@vue/cli-shared-utils": "^3.12.1", "babel-jest": "^23.6.0", "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", "jest": "^23.6.0", @@ -2288,16 +1926,16 @@ } }, "@vue/cli-service": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.8.0.tgz", - "integrity": "sha512-ipJF4RHjyLyLC4oLx+JM1Jk6tiIG0KjCFAqfOscQ44K4CdyS03oFMAUR+SZYy/UXKccMnoeY6Ld4YrGXSytQsg==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.12.1.tgz", + "integrity": "sha512-PDxNrTGnSKzeV1ruFlsRIAO8JcPizwT0EJXq9GeyooU+p+sOkv7aKkCBJQVYNjZapD1NOGWx6CvAAC/wAW+gew==", "dev": true, "requires": { "@intervolga/optimize-cssnano-plugin": "^1.0.5", "@soda/friendly-errors-webpack-plugin": "^1.7.1", - "@vue/cli-overlay": "^3.8.0", - "@vue/cli-shared-utils": "^3.8.0", - "@vue/component-compiler-utils": "^2.6.0", + "@vue/cli-overlay": "^3.12.1", + "@vue/cli-shared-utils": "^3.12.1", + "@vue/component-compiler-utils": "^3.0.0", "@vue/preload-webpack-plugin": "^1.1.0", "@vue/web-component-wrapper": "^1.2.0", "acorn": "^6.1.1", @@ -2316,6 +1954,7 @@ "cssnano": "^4.1.10", "current-script-polyfill": "^1.0.0", "debug": "^4.1.1", + "default-gateway": "^5.0.2", "dotenv": "^7.0.0", "dotenv-expand": "^5.1.0", "escape-string-regexp": "^1.0.5", @@ -2325,10 +1964,10 @@ "hash-sum": "^1.0.2", "html-webpack-plugin": "^3.2.0", "launch-editor-middleware": "^2.2.1", - "lodash.defaultsdeep": "^4.6.0", + "lodash.defaultsdeep": "^4.6.1", "lodash.mapvalues": "^4.6.0", "lodash.transform": "^4.6.0", - "mini-css-extract-plugin": "^0.6.0", + "mini-css-extract-plugin": "^0.8.0", "minimist": "^1.2.0", "ora": "^3.4.0", "portfinder": "^1.0.20", @@ -2343,209 +1982,13 @@ "thread-loader": "^2.1.2", "url-loader": "^1.1.2", "vue-loader": "^15.7.0", - "webpack": ">=4 < 4.29", + "webpack": "^4.0.0", "webpack-bundle-analyzer": "^3.3.0", "webpack-chain": "^4.11.0", "webpack-dev-server": "^3.4.1", - "webpack-merge": "^4.2.1", - "yorkie": "^2.0.0" + "webpack-merge": "^4.2.1" }, "dependencies": { - "@webassemblyjs/ast": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", - "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", - "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", - "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", - "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", - "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.7.11" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", - "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", - "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", - "dev": true - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", - "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", - "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", - "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", - "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/utf8": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", - "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", - "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/helper-wasm-section": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-opt": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "@webassemblyjs/wast-printer": "1.7.11" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", - "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", - "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-buffer": "1.7.11", - "@webassemblyjs/wasm-gen": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", - "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-wasm-bytecode": "1.7.11", - "@webassemblyjs/ieee754": "1.7.11", - "@webassemblyjs/leb128": "1.7.11", - "@webassemblyjs/utf8": "1.7.11" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", - "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/floating-point-hex-parser": "1.7.11", - "@webassemblyjs/helper-api-error": "1.7.11", - "@webassemblyjs/helper-code-frame": "1.7.11", - "@webassemblyjs/helper-fsm": "1.7.11", - "@xtuc/long": "4.2.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.7.11", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", - "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/wast-parser": "1.7.11", - "@xtuc/long": "4.2.1" - } - }, - "@xtuc/long": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", - "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", - "dev": true, - "requires": { - "acorn": "^5.0.0" - }, - "dependencies": { - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", - "dev": true - } - } - }, "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", @@ -2584,50 +2027,54 @@ } }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { + "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" } }, "read-pkg": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.1.1.tgz", - "integrity": "sha512-dFcTLQi6BZ+aFUaICg7er+/usEoqFdQxiEBsEMNGoipenihtxxtdrQuBXvyANCEI8VuUIVYFgeHGx9sLLvim4w==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "requires": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", - "parse-json": "^4.0.0", - "type-fest": "^0.4.1" - } - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" } }, "semver": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz", - "integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "string-width": { @@ -2659,46 +2106,6 @@ "has-flag": "^3.0.0" } }, - "webpack": { - "version": "4.28.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.4.tgz", - "integrity": "sha512-NxjD61WsK/a3JIdwWjtIpimmvE6UrRi3yG54/74Hk9rwNj5FPkA4DJCf1z4ByDWLkvZhTZE+P3C/eh6UD5lDcw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.7.11", - "@webassemblyjs/helper-module-context": "1.7.11", - "@webassemblyjs/wasm-edit": "1.7.11", - "@webassemblyjs/wasm-parser": "1.7.11", - "acorn": "^5.6.2", - "acorn-dynamic-import": "^3.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", - "schema-utils": "^0.4.4", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" - }, - "dependencies": { - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", - "dev": true - } - } - }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", @@ -2713,9 +2120,9 @@ } }, "@vue/cli-shared-utils": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-3.8.0.tgz", - "integrity": "sha512-wn1L8pmQnotfftHOYm0VeXs2+cQTySd73uhWXwyO6pT0ehjqlY5c2RTipClmFF3Q+YCYjwlNpsV650F3l1tV8w==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-3.12.1.tgz", + "integrity": "sha512-jFblzRFjutGwu5utOKdVlPlsbA1lBUNNQlAThzNqej+JtTKJjnvjlhjKX0Gq0oOny5FjKWhoyfQ74p9h1qE6JQ==", "dev": true, "requires": { "@hapi/joi": "^15.0.1", @@ -2753,9 +2160,9 @@ } }, "semver": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz", - "integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "supports-color": { @@ -2770,9 +2177,9 @@ } }, "@vue/component-compiler-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-2.6.0.tgz", - "integrity": "sha512-IHjxt7LsOFYc0DkTncB7OXJL7UzwOLPPQCfEUNyxL2qt+tF12THV+EO33O1G2Uk4feMSWua3iD39Itszx0f0bw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz", + "integrity": "sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw==", "dev": true, "requires": { "consolidate": "^0.15.1", @@ -2780,8 +2187,8 @@ "lru-cache": "^4.1.2", "merge-source-map": "^1.1.0", "postcss": "^7.0.14", - "postcss-selector-parser": "^5.0.0", - "prettier": "1.16.3", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2", "source-map": "~0.6.1", "vue-template-es2015-compiler": "^1.9.0" }, @@ -2828,9 +2235,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -2863,8 +2270,8 @@ }, "@vue/eslint-config-standard": { "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/@vue/eslint-config-standard/download/@vue/eslint-config-standard-4.0.0.tgz", - "integrity": "sha1-a+RH7mdOOw9zPFhAmP2aIubXb80=", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-standard/-/eslint-config-standard-4.0.0.tgz", + "integrity": "sha512-bQghq1cw1BuMRHNhr3tRpAJx1tpGy0QtajQX873kLtA9YVuOIoXR7nAWnTN09bBHnSUh2N288vMsqPi2fI4Hzg==", "dev": true, "requires": { "eslint-config-standard": "^12.0.0", @@ -2875,19 +2282,20 @@ } }, "@vue/preload-webpack-plugin": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.0.tgz", - "integrity": "sha512-rcn2KhSHESBFMPj5vc5X2pI9bcBNQQixvJXhD5gZ4rN2iym/uH2qfDSQfUS5+qwiz0a85TCkeUs6w6jxFDudbw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz", + "integrity": "sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==", "dev": true }, "@vue/test-utils": { - "version": "1.0.0-beta.29", - "resolved": "http://registry.npm.taobao.org/@vue/test-utils/download/@vue/test-utils-1.0.0-beta.29.tgz", - "integrity": "sha1-yULPJeiRzwgbagMzK0rh70MHJvA=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.1.1.tgz", + "integrity": "sha512-/32538ilZ9qSiu1gui7zfBn+IFy+zoTaQTZ1qiLfQXzZtaeAD23kJMrnqaoe2w8JzJoXuqHUl2ruuStG8rwFYQ==", "dev": true, "requires": { "dom-event-types": "^1.0.0", - "lodash": "^4.17.4" + "lodash": "^4.17.15", + "pretty": "^2.0.0" } }, "@vue/web-component-wrapper": { @@ -2897,177 +2305,176 @@ "dev": true }, "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.8.5.tgz", - "integrity": "sha1-UbHF/mV2o0lTv0slPfnw1JDZ41k=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha1-G6kmopI2E+3OSW/VsC6M6KX0lyE=" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" }, "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.8.5.tgz", - "integrity": "sha1-xJ2tIvZFInxe22EL25aX8aq3Ifc=" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" }, "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.8.5.tgz", - "integrity": "sha1-/qk+Qphj3V5DOFVfQikjhaZT8gQ=" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" }, "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.8.5.tgz", - "integrity": "sha1-mnQP9I4/qjAisd/1RCPfmqKTwl4=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", "requires": { - "@webassemblyjs/wast-printer": "1.8.5" + "@webassemblyjs/wast-printer": "1.9.0" } }, "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.8.5.tgz", - "integrity": "sha1-ugt9Oz9+RzPaYFnJMyJ12GBwJFI=" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" }, "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.8.5.tgz", - "integrity": "sha1-3vS5knsBAdyMu9jR7bW3ucguskU=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" + "@webassemblyjs/ast": "1.9.0" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha1-U3p1Dt31weky83RCBlUckcG5PmE=" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" }, "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.8.5.tgz", - "integrity": "sha1-dMpqa8vhnlCjtrRihH5pUD5r/L8=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.8.5.tgz", - "integrity": "sha1-cSMp2+8kDza/V70ve4+5v0FUQh4=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.8.5.tgz", - "integrity": "sha1-BE7es06mefPgTNT9mCTV41dnrhA=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.8.5.tgz", - "integrity": "sha1-qL87XY/+mGx8Hjc8y9wqCRXwztw=" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" }, "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.8.5.tgz", - "integrity": "sha1-li2hKqWswcExyBxCMpkcgs5W4Bo=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" } }, "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.8.5.tgz", - "integrity": "sha1-VIQHZsLBAC62TtGr5yCt7XFPmLw=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.8.5.tgz", - "integrity": "sha1-sk2fa6UDlK8TSfUQr6j/y4pj0mQ=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.8.5.tgz", - "integrity": "sha1-IVdvDsiLkUJzV7hTY4NmjvfGa40=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.8.5.tgz", - "integrity": "sha1-4Q7s1ULQ5705T2gnxJ899tTu+4w=", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.8.5.tgz", - "integrity": "sha1-EUu8SB/RDKDiOzVg+oEnSLC65bw=", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", "@xtuc/long": "4.2.2" } }, "@xtuc/ieee754": { "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", - "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=" + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" }, "@xtuc/long": { "version": "4.2.2", - "resolved": "http://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz", - "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=" + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, "abab": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", - "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, "abbrev": { @@ -3078,7 +2485,7 @@ }, "abs-svg-path": { "version": "0.1.1", - "resolved": "http://registry.npm.taobao.org/abs-svg-path/download/abs-svg-path-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", "integrity": "sha1-32Acjo0roQ1KdtYl4japo5wnI78=" }, "accepts": { @@ -3092,19 +2499,14 @@ } }, "acorn": { - "version": "6.1.1", - "resolved": "http://registry.npm.taobao.org/acorn/download/acorn-6.1.1.tgz", - "integrity": "sha1-fSWuBbuK0fm2mRCOEJTs14hK3B8=" - }, - "acorn-dynamic-import": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/acorn-dynamic-import/download/acorn-dynamic-import-4.0.0.tgz", - "integrity": "sha1-SCIQFAWCo2uDw+NC4c/ryqkkCUg=" + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" }, "acorn-globals": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.2.tgz", - "integrity": "sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", "dev": true, "requires": { "acorn": "^6.0.1", @@ -3131,9 +2533,9 @@ } }, "acorn-walk": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", - "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", "dev": true }, "add-dom-event-listener": { @@ -3145,17 +2547,17 @@ } }, "address": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.0.tgz", - "integrity": "sha512-4diPfzWbLEIElVG4AnqP+00SULlPzNuyJFNnmMrLgyaxG6tZXJ1sn7mjBu4fHrJE+Yp/jgylOweJn2xsLMFggQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", "dev": true }, "ajv": { - "version": "6.10.0", - "resolved": "http://registry.npm.taobao.org/ajv/download/ajv-6.10.0.tgz", - "integrity": "sha1-kNDVRDnaWHzX6EO/twRfUL0ivfE=", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -3163,17 +2565,17 @@ }, "ajv-errors": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz", - "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=" + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" }, "ajv-keywords": { - "version": "3.4.0", - "resolved": "http://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.4.0.tgz", - "integrity": "sha1-S4Mee1MUFafMUYzUBOc/YZPGNJ0=" + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" }, "align-text": { "version": "0.1.4", - "resolved": "http://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "requires": { "kind-of": "^3.0.2", @@ -3189,7 +2591,7 @@ }, "amdefine": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" }, "ansi-colors": { @@ -3200,8 +2602,8 @@ }, "ansi-escapes": { "version": "3.2.0", - "resolved": "http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz", - "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, "ansi-html": { @@ -3212,32 +2614,24 @@ }, "ansi-regex": { "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "2.2.1", - "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "ant-design-palettes": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/ant-design-palettes/-/ant-design-palettes-1.1.3.tgz", - "integrity": "sha512-UpkkTp8egEN21KZNvY7sTcabLlkHvLvS71EVPk4CYi77Z9AaGGCaVn7i72tbOgWDrQp2wjIg8WgMbKBdK7GtWA==", - "requires": { - "tinycolor2": "^1.4.1" - } - }, "ant-design-vue": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-1.3.9.tgz", - "integrity": "sha512-Zw/5+4FyJI9PeOGW2uJ21/aaHAsyhAL+umNR2qHkKeTrmP2OJ6FXm00VNFTKeDdzSqAw8weiPfYT/0wJt1rqWw==", + "version": "1.3.17", + "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-1.3.17.tgz", + "integrity": "sha512-Yb19yCXmO/+lcJvZaiQs/J87xXZuweDEZkuKGACiW4UhcR8gP1d3q6wZGOekhys4ryqJvvuVZBQdbuxpH0btAw==", "requires": { - "@ant-design/icons": "^1.1.15", - "@ant-design/icons-vue": "^1.0.1", + "@ant-design/icons": "^2.1.1", + "@ant-design/icons-vue": "^2.0.0", "add-dom-event-listener": "^1.0.2", "array-tree-filter": "^2.1.0", - "async-validator": "^1.8.2", + "async-validator": "^3.0.3", "babel-helper-vue-jsx-merge-props": "^2.0.3", "babel-runtime": "6.x", "classnames": "^2.2.5", @@ -3253,6 +2647,7 @@ "lodash": "^4.17.5", "moment": "^2.21.0", "mutationobserver-shim": "^0.3.2", + "node-emoji": "^1.10.0", "omit.js": "^1.0.0", "raf": "^3.4.0", "resize-observer-polyfill": "^1.5.1", @@ -3269,22 +2664,13 @@ "dev": true }, "anymatch": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", - "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "optional": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, "append-transform": { @@ -3298,19 +2684,19 @@ }, "aproba": { "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", - "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "arch": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", - "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", "dev": true }, "argparse": { "version": "1.0.10", - "resolved": "http://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" @@ -3318,17 +2704,17 @@ }, "arr-diff": { "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "arr-flatten": { "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "arr-union": { "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-equal": { @@ -3337,12 +2723,6 @@ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", "dev": true }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", - "dev": true - }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -3350,27 +2730,55 @@ "dev": true }, "array-includes": { - "version": "3.0.3", - "resolved": "http://registry.npm.taobao.org/array-includes/download/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz", + "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "get-intrinsic": "^1.0.1", + "is-string": "^1.0.5" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + } } }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", - "dev": true - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", - "dev": true - }, "array-tree-filter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", @@ -3393,57 +2801,107 @@ }, "array-unique": { "version": "0.3.2", - "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, + "array.prototype.flat": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + } + } + }, "arrify": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/arrify/download/arrify-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, - "asap": { - "version": "2.0.6", - "resolved": "http://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true, - "optional": true - }, "asn1": { "version": "0.2.4", - "resolved": "http://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", - "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { "safer-buffer": "~2.1.0" } }, "asn1.js": { - "version": "4.10.1", - "resolved": "http://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz", - "integrity": "sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA=", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, "assert": { - "version": "1.4.1", - "resolved": "http://registry.npm.taobao.org/assert/download/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", "requires": { + "object-assign": "^4.1.1", "util": "0.10.3" }, "dependencies": { "inherits": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" }, "util": { "version": "0.10.3", - "resolved": "http://registry.npm.taobao.org/util/download/util-0.10.3.tgz", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "requires": { "inherits": "2.0.1" @@ -3453,72 +2911,70 @@ }, "assert-plus": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, "assign-symbols": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "astral-regex": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/astral-regex/download/astral-regex-1.0.0.tgz", - "integrity": "sha1-bIw/uCfdQ+45GPJ7gngqt2WKb9k=", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, "async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", - "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "dev": true, "requires": { - "lodash": "^4.17.11" + "lodash": "^4.17.14" } }, "async-each": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz", - "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=" + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" }, "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", "dev": true }, "async-validator": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.11.2.tgz", - "integrity": "sha512-KVbL4jU6ZRJA82D69oOCoyKqr99emuKNvG0axH3XpGZh0xy1wDHpdH4cGzvwJ9nXAM0j7k/waBId16CQVI8dlw==", - "requires": { - "babel-runtime": "6.x" - } + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-3.5.1.tgz", + "integrity": "sha512-DDmKA7sdSAJtTVeNZHrnr2yojfFaoeW8MfQN8CeuXg8DDQHTqKk9Fdv38dSvnesHoO8MUwMI2HphOeSyIF+wmQ==" }, "asynckit": { "version": "0.4.0", - "resolved": "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, "atob": { "version": "2.1.2", - "resolved": "http://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz", - "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=" + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "autoprefixer": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.5.1.tgz", - "integrity": "sha512-KJSzkStUl3wP0D5sdMlP82Q52JLy5+atf2MHAre48+ckWkXgixmfHyWmA77wFDy6jTHU6mIgXv6hAQ2mf1PjJQ==", + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", "dev": true, "requires": { - "browserslist": "^4.5.4", - "caniuse-lite": "^1.0.30000957", + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", - "postcss": "^7.0.14", - "postcss-value-parser": "^3.3.1" + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" }, "dependencies": { "ansi-styles": { @@ -3553,9 +3009,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -3563,6 +3019,12 @@ "supports-color": "^6.1.0" } }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -3582,35 +3044,27 @@ }, "aws-sign2": { "version": "0.7.0", - "resolved": "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", "dev": true }, "aws4": { - "version": "1.8.0", - "resolved": "http://registry.npm.taobao.org/aws4/download/aws4-1.8.0.tgz", - "integrity": "sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=", + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, "axios": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", - "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", "requires": { - "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" - } + "follow-redirects": "1.5.10" } }, "babel-code-frame": { "version": "6.26.0", - "resolved": "http://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { "chalk": "^1.1.3", @@ -3620,47 +3074,35 @@ "dependencies": { "js-tokens": { "version": "3.0.2", - "resolved": "http://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" } } }, "babel-core": { "version": "7.0.0-bridge.0", - "resolved": "http://registry.npm.taobao.org/babel-core/download/babel-core-7.0.0-bridge.0.tgz", - "integrity": "sha1-laSS3dkPm06aSh2hTrM1uHtjTs4=", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", "dev": true }, "babel-eslint": { - "version": "10.0.1", - "resolved": "http://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.0.1.tgz", - "integrity": "sha1-kZaB3AmWFM19MdRciQhpUJKh+u0=", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "^1.0.0" - }, - "dependencies": { - "eslint-scope": { - "version": "3.7.1", - "resolved": "http://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", - "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - } + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" } }, "babel-generator": { "version": "6.26.1", - "resolved": "http://registry.npm.taobao.org/babel-generator/download/babel-generator-6.26.1.tgz", - "integrity": "sha1-GERAjTuPDTWkBOp6wYDwh6YBvZA=", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { "babel-messages": "^6.23.0", @@ -3675,13 +3117,13 @@ "dependencies": { "jsesc": { "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/jsesc/download/jsesc-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, "source-map": { "version": "0.5.7", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } @@ -3704,8 +3146,8 @@ }, "babel-jest": { "version": "23.6.0", - "resolved": "http://registry.npm.taobao.org/babel-jest/download/babel-jest-23.6.0.tgz", - "integrity": "sha1-pkQjI2ZVeiJAoMCD2msleGGFovE=", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-23.6.0.tgz", + "integrity": "sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew==", "dev": true, "requires": { "babel-plugin-istanbul": "^4.1.6", @@ -3713,19 +3155,19 @@ } }, "babel-loader": { - "version": "8.0.5", - "resolved": "http://registry.npm.taobao.org/babel-loader/download/babel-loader-8.0.5.tgz", - "integrity": "sha1-IlMi11CcIVdlWEC7pS5GtsLy/jM=", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", + "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", "requires": { - "find-cache-dir": "^2.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1", - "util.promisify": "^1.0.0" + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" } }, "babel-messages": { "version": "6.23.0", - "resolved": "http://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { @@ -3733,18 +3175,17 @@ } }, "babel-plugin-dynamic-import-node": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.2.0.tgz", - "integrity": "sha512-fP899ELUnTaBcIzmrW7nniyqqdYWrWuJUyPWHxFa/c7r7hS6KC8FscNfLlBNIoPSc55kYMGEEKjPjJGCLbE1qA==", - "dev": true, + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "requires": { "object.assign": "^4.1.0" } }, "babel-plugin-import": { - "version": "1.11.0", - "resolved": "http://registry.npm.taobao.org/babel-plugin-import/download/babel-plugin-import-1.11.0.tgz", - "integrity": "sha1-eKyQjmsiUga6u3NOGerl941tEDU=", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/babel-plugin-import/-/babel-plugin-import-1.13.3.tgz", + "integrity": "sha512-1qCWdljJOrDRH/ybaCZuDgySii4yYrtQ8OJQwrcDqdt0y67N30ng3X3nABg6j7gR7qUJgcMa9OMhc4AGViDwWw==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.0.0", @@ -3753,8 +3194,8 @@ }, "babel-plugin-istanbul": { "version": "4.1.6", - "resolved": "http://registry.npm.taobao.org/babel-plugin-istanbul/download/babel-plugin-istanbul-4.1.6.tgz", - "integrity": "sha1-NsWbIZLvzoHFs3gyG3QXWt0cmkU=", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", + "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", "dev": true, "requires": { "babel-plugin-syntax-object-rest-spread": "^6.13.0", @@ -3765,7 +3206,7 @@ "dependencies": { "find-up": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { @@ -3774,7 +3215,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { @@ -3784,8 +3225,8 @@ }, "p-limit": { "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { "p-try": "^1.0.0" @@ -3793,7 +3234,7 @@ }, "p-locate": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { @@ -3802,15 +3243,21 @@ }, "p-try": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true } } }, "babel-plugin-jest-hoist": { "version": "23.2.0", - "resolved": "http://registry.npm.taobao.org/babel-plugin-jest-hoist/download/babel-plugin-jest-hoist-23.2.0.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz", "integrity": "sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=", "dev": true }, @@ -3829,7 +3276,7 @@ }, "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", - "resolved": "http://registry.npm.taobao.org/babel-plugin-syntax-object-rest-spread/download/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", "dev": true }, @@ -3847,7 +3294,7 @@ }, "babel-plugin-transform-runtime": { "version": "6.23.0", - "resolved": "http://registry.npm.taobao.org/babel-plugin-transform-runtime/download/babel-plugin-transform-runtime-6.23.0.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", "requires": { "babel-runtime": "^6.22.0" @@ -3865,7 +3312,7 @@ }, "babel-polyfill": { "version": "6.23.0", - "resolved": "http://registry.npm.taobao.org/babel-polyfill/download/babel-polyfill-6.23.0.tgz", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=", "dev": true, "requires": { @@ -3876,7 +3323,7 @@ "dependencies": { "regenerator-runtime": { "version": "0.10.5", - "resolved": "http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.10.5.tgz", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", "dev": true } @@ -3884,7 +3331,7 @@ }, "babel-preset-jest": { "version": "23.2.0", - "resolved": "http://registry.npm.taobao.org/babel-preset-jest/download/babel-preset-jest-23.2.0.tgz", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz", "integrity": "sha1-jsegOhOPABoaj7HoETZSvxpV2kY=", "dev": true, "requires": { @@ -3949,12 +3396,6 @@ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", @@ -3980,7 +3421,7 @@ }, "babel-runtime": { "version": "6.26.0", - "resolved": "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { "core-js": "^2.4.0", @@ -3989,7 +3430,7 @@ }, "babel-template": { "version": "6.26.0", - "resolved": "http://registry.npm.taobao.org/babel-template/download/babel-template-6.26.0.tgz", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { @@ -4002,7 +3443,7 @@ }, "babel-traverse": { "version": "6.26.0", - "resolved": "http://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { @@ -4019,8 +3460,8 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -4028,21 +3469,15 @@ }, "globals": { "version": "9.18.0", - "resolved": "http://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz", - "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true } } }, "babel-types": { "version": "6.26.0", - "resolved": "http://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { @@ -4054,7 +3489,7 @@ "dependencies": { "to-fast-properties": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true } @@ -4062,19 +3497,19 @@ }, "babylon": { "version": "6.18.0", - "resolved": "http://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz", - "integrity": "sha1-ry87iPpvXB5MY00aD46sT1WzleM=", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", "dev": true }, "balanced-match": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", - "resolved": "http://registry.npm.taobao.org/base/download/base-0.11.2.tgz", - "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -4087,7 +3522,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -4095,24 +3530,24 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -4120,16 +3555,16 @@ } }, "kind-of": { - "version": "6.0.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" } } }, "base64-js": { - "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/base64-js/download/base64-js-1.3.0.tgz", - "integrity": "sha1-yrHmEY8FEJXli1KBrqjBzSK/wOM=" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "batch": { "version": "0.6.1", @@ -4139,7 +3574,7 @@ }, "bcrypt-pbkdf": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { @@ -4147,36 +3582,45 @@ } }, "bfj": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.1.tgz", - "integrity": "sha512-+GUNvzHR4nRyGybQc2WpNJL4MJazMuvf92ueIyA0bIkPRwhhQu3IfZQ2PSoVPpCBJfmoSdOxu5rnotfFLlvYRQ==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz", + "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==", "dev": true, "requires": { - "bluebird": "^3.5.1", - "check-types": "^7.3.0", - "hoopy": "^0.1.2", - "tryer": "^1.0.0" + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" } }, "big.js": { "version": "5.2.2", - "resolved": "http://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz", - "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=" + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" }, "binary-extensions": { - "version": "1.13.1", - "resolved": "http://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz", - "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "optional": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } }, "bluebird": { - "version": "3.5.4", - "resolved": "http://registry.npm.taobao.org/bluebird/download/bluebird-3.5.4.tgz", - "integrity": "sha1-1sxmFZXeMNWzr1/O3TwLPvbsVxQ=" + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "bn.js": { - "version": "4.11.8", - "resolved": "http://registry.npm.taobao.org/bn.js/download/bn.js-4.11.8.tgz", - "integrity": "sha1-LN4J617jQfSEdGuwMJsyU7GxRC8=" + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==" }, "body-parser": { "version": "1.19.0", @@ -4205,12 +3649,6 @@ "ms": "2.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", @@ -4249,8 +3687,8 @@ }, "brace-expansion": { "version": "1.1.11", - "resolved": "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4258,8 +3696,8 @@ }, "braces": { "version": "2.3.2", - "resolved": "http://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", - "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -4275,7 +3713,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -4285,13 +3723,13 @@ }, "brorand": { "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, "browser-process-hrtime": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", - "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, "browser-resolve": { @@ -4313,8 +3751,8 @@ }, "browserify-aes": { "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", - "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", @@ -4326,8 +3764,8 @@ }, "browserify-cipher": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", - "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "requires": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", @@ -4336,8 +3774,8 @@ }, "browserify-des": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", - "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "requires": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", @@ -4346,59 +3784,80 @@ } }, "browserify-rsa": { - "version": "4.0.1", - "resolved": "http://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", "requires": { - "bn.js": "^4.1.0", + "bn.js": "^5.0.0", "randombytes": "^2.0.1" } }, "browserify-sign": { - "version": "4.0.4", - "resolved": "http://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } } }, "browserify-zlib": { "version": "0.2.0", - "resolved": "http://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", - "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "requires": { "pako": "~1.0.5" } }, "browserslist": { - "version": "4.5.5", - "resolved": "http://registry.npm.taobao.org/browserslist/download/browserslist-4.5.5.tgz", - "integrity": "sha1-/ho1IzDSSQ1XNVdMFJqFvBjvm4I=", + "version": "4.14.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz", + "integrity": "sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==", "requires": { - "caniuse-lite": "^1.0.30000960", - "electron-to-chromium": "^1.3.124", - "node-releases": "^1.1.14" + "caniuse-lite": "^1.0.30001157", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.591", + "escalade": "^3.1.1", + "node-releases": "^1.1.66" } }, "bser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", - "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "requires": { "node-int64": "^0.4.0" } }, "buffer": { - "version": "4.9.1", - "resolved": "http://registry.npm.taobao.org/buffer/download/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", @@ -4407,15 +3866,15 @@ "dependencies": { "isarray": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, "buffer-from": { "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", - "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "buffer-indexof": { "version": "1.1.1", @@ -4425,12 +3884,12 @@ }, "buffer-xor": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, "builtin-status-codes": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" }, "bytes": { @@ -4440,21 +3899,22 @@ "dev": true }, "cacache": { - "version": "11.3.2", - "resolved": "http://registry.npm.taobao.org/cacache/download/cacache-11.3.2.tgz", - "integrity": "sha1-LYHjCOPSWMo4Eltna5iyrJzmm/o=", + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", "requires": { - "bluebird": "^3.5.3", + "bluebird": "^3.5.5", "chownr": "^1.1.1", "figgy-pudding": "^3.5.1", - "glob": "^7.1.3", + "glob": "^7.1.4", "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "mkdirp": "^0.5.1", "move-concurrently": "^1.0.1", "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", + "rimraf": "^2.6.3", "ssri": "^6.0.1", "unique-filename": "^1.1.1", "y18n": "^4.0.0" @@ -4462,8 +3922,8 @@ }, "cache-base": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz", - "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -4487,6 +3947,28 @@ "neo-async": "^2.6.0", "normalize-path": "^3.0.0", "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" } }, "call-me-maybe": { @@ -4541,7 +4023,7 @@ }, "camelcase": { "version": "1.2.1", - "resolved": "http://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" }, "caniuse-api": { @@ -4557,9 +4039,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000962", - "resolved": "http://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30000962.tgz", - "integrity": "sha1-bBDDqzBLib6pBeZq35jAkFCI7kQ=" + "version": "1.0.30001162", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001162.tgz", + "integrity": "sha512-E9FktFxaNnp4ky3ucIGzEXLM+Knzlpuq1oN1sFAU0KeayygabGTmOsndpo8QrL4D9pcThlf4D2pUKaDxPCUmVw==" }, "capture-exit": { "version": "1.2.0", @@ -4571,20 +4053,20 @@ } }, "case-sensitive-paths-webpack-plugin": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.2.0.tgz", - "integrity": "sha512-u5ElzokS8A1pm9vM3/iDgTcI3xqHxuCao94Oz8etI3cf0Tio0p8izkDYbTIn09uP3yUUr6+veaE6IkjnTYS46g==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz", + "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==", "dev": true }, "caseless": { "version": "0.12.0", - "resolved": "http://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, "center-align": { "version": "0.1.3", - "resolved": "http://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "requires": { "align-text": "^0.1.3", @@ -4593,7 +4075,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { "ansi-styles": "^2.2.1", @@ -4605,49 +4087,81 @@ }, "chardet": { "version": "0.4.2", - "resolved": "http://registry.npm.taobao.org/chardet/download/chardet-0.4.2.tgz", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", "dev": true }, "charenc": { "version": "0.0.2", - "resolved": "http://registry.npm.taobao.org/charenc/download/charenc-0.0.2.tgz", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" }, "check-types": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-7.4.0.tgz", - "integrity": "sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz", + "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==", "dev": true }, "chokidar": { - "version": "2.1.5", - "resolved": "http://registry.npm.taobao.org/chokidar/download/chokidar-2.1.5.tgz", - "integrity": "sha1-CuhDTZYigaX1bHKGnnnLbZ2GrU0=", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "optional": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "optional": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } } }, "chownr": { - "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/chownr/download/chownr-1.1.1.tgz", - "integrity": "sha1-VHJri4//TfBTxCGH6AH7RBLfFJQ=" + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, "chrome-trace-event": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.0.tgz", - "integrity": "sha1-Rakb0sIMlBHwljtarrmhuV4JzEg=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", "requires": { "tslib": "^1.9.0" } @@ -4660,8 +4174,8 @@ }, "cipher-base": { "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", - "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" @@ -4676,8 +4190,8 @@ }, "class-utils": { "version": "0.3.6", - "resolved": "http://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", - "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -4687,7 +4201,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -4701,9 +4215,9 @@ "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" }, "clean-css": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", "dev": true, "requires": { "source-map": "~0.6.0" @@ -4719,7 +4233,7 @@ }, "cli-cursor": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { @@ -4727,31 +4241,32 @@ } }, "cli-highlight": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.1.tgz", - "integrity": "sha512-0y0VlNmdD99GXZHYnvrQcmHxP8Bi6T00qucGgBgGv4kJ0RyDthNnnFPupHV7PYv/OXSVk+azFbOeaW6+vGmx9A==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.8.tgz", + "integrity": "sha512-mFuTW5UOV3/S0wZE9/1b0EcAM0XOJIhoAWPhWm5voiJ6ugVBkvYBIEL7sbHo9sEtWdEmwDIWab32qpaRI3cfqQ==", "dev": true, "requires": { - "chalk": "^2.3.0", - "highlight.js": "^9.6.0", + "chalk": "^4.0.0", + "highlight.js": "^10.0.0", "mz": "^2.4.0", - "parse5": "^4.0.0", - "yargs": "^13.0.0" + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^15.0.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" } }, "camelcase": { @@ -4761,75 +4276,64 @@ "dev": true }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" } }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "is-fullwidth-code-point": { + "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==", "dev": true }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true }, "require-main-filename": { "version": "2.0.0", @@ -4838,68 +4342,68 @@ "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.0" } }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } }, "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } }, "yargs": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", - "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^3.0.0", + "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", - "yargs-parser": "^13.1.0" + "yargs-parser": "^18.1.2" } }, "yargs-parser": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.0.tgz", - "integrity": "sha512-Yq+32PrijHRri0vVKQEm+ys8mbqWjLiwQkMFNXEENutzLPP0bE4Lcd4iA3OQY5HF+GD3xXxf0MEHb8E4/SA3AA==", + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -4909,21 +4413,21 @@ } }, "cli-spinners": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.1.0.tgz", - "integrity": "sha512-8B00fJOEh1HPrx4fo5eW16XmE1PcL1tGpGrxy63CXGP9nHdPBN63X75hA1zhvQuhVztJWLqV58Roj2qlNM7cAA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", "dev": true }, "cli-width": { - "version": "2.2.0", - "resolved": "http://registry.npm.taobao.org/cli-width/download/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, "clipboard": { - "version": "2.0.4", - "resolved": "http://registry.npm.taobao.org/clipboard/download/clipboard-2.0.4.tgz", - "integrity": "sha1-g22v1mzw/qXXHOXVsL9ulYAJES0=", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", + "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", "requires": { "good-listener": "^1.2.2", "select": "^1.1.2", @@ -4931,18 +4435,30 @@ } }, "clipboardy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.0.0.tgz", - "integrity": "sha512-XbVjHMsss0giNUkp/tV/3eEAZe8i1fZTLzmPKqjE1RGIAWOTiF5D014f6R+g53ZAq0IK3cPrJXFvqE8eQjhFYQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", + "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", "dev": true, "requires": { "arch": "^2.1.1", - "execa": "^1.0.0" + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + } } }, "cliui": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "requires": { "center-align": "^0.1.1", @@ -4951,10 +4467,9 @@ } }, "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" }, "co": { "version": "4.6.0", @@ -5012,7 +4527,7 @@ }, "collection-visit": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { "map-visit": "^1.0.0", @@ -5020,55 +4535,60 @@ } }, "color": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.1.tgz", - "integrity": "sha512-PvUltIXRjehRKPSy89VnDWFKY58xyhTLyxIg21vwQBI6qLwZNPmC8k3C1uytIgFKEpOIzN4y32iPm8231zFHIg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", "dev": true, "requires": { "color-convert": "^1.9.1", - "color-string": "^1.5.2" + "color-string": "^1.5.4" } }, "color-convert": { "version": "1.9.3", - "resolved": "http://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", - "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "requires": { "color-name": "1.1.3" } }, "color-name": { "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", "dev": true, "requires": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" + }, "combined-stream": { - "version": "1.0.7", - "resolved": "http://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.7.tgz", - "integrity": "sha1-LR0kMXr7ir6V1tLAsHtXgTU52Cg=", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { "delayed-stream": "~1.0.0" } }, "commander": { - "version": "2.20.0", - "resolved": "http://registry.npm.taobao.org/commander/download/commander-2.20.0.tgz", - "integrity": "sha1-1YuytcHuj4ew00ACfp6U4iLFpCI=" + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "commondir": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, "component-classes": { @@ -5081,8 +4601,8 @@ }, "component-emitter": { "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz", - "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=" + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "component-indexof": { "version": "0.0.3", @@ -5090,12 +4610,12 @@ "integrity": "sha1-EdCRMSI5648yyPJa6csAL/6NPCQ=" }, "compressible": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", - "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, "requires": { - "mime-db": ">= 1.40.0 < 2" + "mime-db": ">= 1.43.0 < 2" } }, "compression": { @@ -5127,24 +4647,18 @@ "requires": { "ms": "2.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, "concat-map": { "version": "0.0.1", - "resolved": "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", - "resolved": "http://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", - "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -5191,12 +4705,9 @@ "dev": true }, "console-browserify": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/console-browserify/download/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "requires": { - "date-now": "^0.1.4" - } + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" }, "consolidate": { "version": "0.15.1", @@ -5209,12 +4720,12 @@ }, "constants-browserify": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" }, "contains-path": { "version": "0.1.0", - "resolved": "http://registry.npm.taobao.org/contains-path/download/contains-path-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", "dev": true }, @@ -5235,13 +4746,13 @@ }, "contour_plot": { "version": "0.0.1", - "resolved": "http://registry.npm.taobao.org/contour_plot/download/contour_plot-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/contour_plot/-/contour_plot-0.0.1.tgz", "integrity": "sha1-R1hw8DK44zhBKqX8UHiA8L9JXHc=" }, "convert-source-map": { - "version": "1.6.0", - "resolved": "http://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.6.0.tgz", - "integrity": "sha1-UbU3qMQ+DwTewZk7/83VBOdYrCA=", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "requires": { "safe-buffer": "~5.1.1" } @@ -5260,8 +4771,8 @@ }, "copy-concurrently": { "version": "1.0.5", - "resolved": "http://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", - "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "requires": { "aproba": "^1.1.1", "fs-write-stream-atomic": "^1.0.8", @@ -5273,7 +4784,7 @@ }, "copy-descriptor": { "version": "0.1.1", - "resolved": "http://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "copy-webpack-plugin": { @@ -5418,6 +4929,12 @@ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -5443,6 +4960,12 @@ "once": "^1.3.1" } }, + "serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", + "dev": true + }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", @@ -5467,41 +4990,29 @@ } }, "core-js": { - "version": "2.6.5", - "resolved": "http://registry.npm.taobao.org/core-js/download/core-js-2.6.5.tgz", - "integrity": "sha1-RLyNJJ5/sv9dAOA0Gn/7lPv2eJU=" + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "core-js-compat": { - "version": "3.0.1", - "resolved": "http://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.0.1.tgz", - "integrity": "sha1-v/c7oxyoaHQxuciPeNM2Jkb7dvA=", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.0.tgz", + "integrity": "sha512-o9QKelQSxQMYWHXc/Gc4L8bx/4F7TTraE5rhuN8I7mKBt5dBIUpXpIR3omv70ebr8ST5R3PqbDQr+ZI3+Tt1FQ==", "requires": { - "browserslist": "^4.5.4", - "core-js": "3.0.1", - "core-js-pure": "3.0.1", - "semver": "^6.0.0" + "browserslist": "^4.14.7", + "semver": "7.0.0" }, "dependencies": { - "core-js": { - "version": "3.0.1", - "resolved": "http://registry.npm.taobao.org/core-js/download/core-js-3.0.1.tgz", - "integrity": "sha1-E0MYJjQpj384Yi+V5z9U5I3fRzg=" - }, "semver": { - "version": "6.0.0", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-6.0.0.tgz", - "integrity": "sha1-BeNZ7lceWtftZBpu7B5Ue6Ut6mU=" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" } } }, - "core-js-pure": { - "version": "3.0.1", - "resolved": "http://registry.npm.taobao.org/core-js-pure/download/core-js-pure-3.0.1.tgz", - "integrity": "sha1-NzWPsNAk5rhtRD15T0436UkJjL4=" - }, "core-util-is": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { @@ -5529,18 +5040,25 @@ } }, "create-ecdh": { - "version": "4.0.3", - "resolved": "http://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz", - "integrity": "sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8=", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "requires": { "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, "create-hash": { "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", - "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", @@ -5551,8 +5069,8 @@ }, "create-hmac": { "version": "1.1.7", - "resolved": "http://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", - "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", @@ -5564,8 +5082,8 @@ }, "cross-spawn": { "version": "6.0.5", - "resolved": "http://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", - "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { "nice-try": "^1.0.4", @@ -5577,13 +5095,13 @@ }, "crypt": { "version": "0.0.2", - "resolved": "http://registry.npm.taobao.org/crypt/download/crypt-0.0.2.tgz", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" }, "crypto-browserify": { "version": "3.12.0", - "resolved": "http://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", - "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "requires": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", @@ -5666,9 +5184,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -5695,8 +5213,8 @@ }, "css-loader": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/css-loader/download/css-loader-1.0.1.tgz", - "integrity": "sha1-aIW7UjOzXsR7AGBX2gHMZAtref4=", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", + "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", "requires": { "babel-code-frame": "^6.26.0", "css-selector-tokenizer": "^0.7.0", @@ -5713,13 +5231,13 @@ } }, "css-select": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz", - "integrity": "sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", "dev": true, "requires": { "boolbase": "^1.0.0", - "css-what": "^2.1.2", + "css-what": "^3.2.1", "domutils": "^1.7.0", "nth-check": "^1.0.2" } @@ -5731,85 +5249,42 @@ "dev": true }, "css-selector-tokenizer": { - "version": "0.7.1", - "resolved": "http://registry.npm.taobao.org/css-selector-tokenizer/download/css-selector-tokenizer-0.7.1.tgz", - "integrity": "sha1-oXcnGovKUBkXL0+JH8bu2cv2jV0=", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", "requires": { - "cssesc": "^0.1.0", - "fastparse": "^1.1.1", - "regexpu-core": "^1.0.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "http://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - }, - "regexpu-core": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "http://registry.npm.taobao.org/regjsgen/download/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "http://registry.npm.taobao.org/regjsparser/download/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "requires": { - "jsesc": "~0.5.0" - } - } + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" } }, "css-tree": { - "version": "1.0.0-alpha.28", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.28.tgz", - "integrity": "sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w==", + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", "dev": true, "requires": { - "mdn-data": "~1.1.0", - "source-map": "^0.5.3" + "mdn-data": "2.0.4", + "source-map": "^0.6.1" }, "dependencies": { "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, - "css-unit-converter": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", - "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=", - "dev": true - }, - "css-url-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz", - "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=", - "dev": true - }, "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", "dev": true }, "cssesc": { - "version": "0.1.0", - "resolved": "http://registry.npm.taobao.org/cssesc/download/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" }, "cssnano": { "version": "4.1.10", @@ -5855,9 +5330,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -5952,9 +5427,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -6032,9 +5507,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -6066,42 +5541,48 @@ "dev": true }, "csso": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz", - "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", "dev": true, "requires": { - "css-tree": "1.0.0-alpha.29" + "css-tree": "^1.1.2" }, "dependencies": { "css-tree": { - "version": "1.0.0-alpha.29", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", - "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", + "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", "dev": true, "requires": { - "mdn-data": "~1.1.0", - "source-map": "^0.5.3" + "mdn-data": "2.0.14", + "source-map": "^0.6.1" } }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "cssom": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz", - "integrity": "sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true }, "cssstyle": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.2.tgz", - "integrity": "sha512-43wY3kl1CVQSvL7wUY1qXkxVGkStjpkDmVjiIKX8R97uhajy8Bybay78uOtqvh7Q5GK75dNPfW0geWjE6qQQow==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", + "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", "dev": true, "requires": { "cssom": "0.3.x" @@ -6114,38 +5595,38 @@ "dev": true }, "cyclist": { - "version": "0.2.2", - "resolved": "http://registry.npm.taobao.org/cyclist/download/cyclist-0.2.2.tgz", - "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" }, "d3-array": { "version": "1.2.4", - "resolved": "http://registry.npm.taobao.org/d3-array/download/d3-array-1.2.4.tgz", - "integrity": "sha1-Y1zk1e6nWfb2BYY9vPww7cc39x8=" + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" }, "d3-collection": { "version": "1.0.7", - "resolved": "http://registry.npm.taobao.org/d3-collection/download/d3-collection-1.0.7.tgz", - "integrity": "sha1-NJvSqpl32wcQkcExRNXk8WtbMQ4=" + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" }, "d3-color": { - "version": "1.2.3", - "resolved": "http://registry.npm.taobao.org/d3-color/download/d3-color-1.2.3.tgz", - "integrity": "sha1-bGe7KvbfPMjXnvzE06PoPijIBI8=" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", + "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" }, "d3-composite-projections": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/d3-composite-projections/download/d3-composite-projections-1.2.0.tgz", - "integrity": "sha1-+g5vFELxfQRkOEOjqIPH2U4MJ8A=", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/d3-composite-projections/-/d3-composite-projections-1.2.3.tgz", + "integrity": "sha512-RxNBoRGf3epTnQBUKeEpaXpD8BA/Ud0xRuLwWxyI7dWfuuYgJZMKw6ZsZOwfDNC0ZbMWaU0eBFlL05A2jlcsWg==", "requires": { - "d3-geo": "1.2.4", - "d3-path": "^1.0.1" + "d3-geo": "^1.11.6", + "d3-path": "^1.0.7" }, "dependencies": { "d3-geo": { - "version": "1.2.4", - "resolved": "http://registry.npm.taobao.org/d3-geo/download/d3-geo-1.2.4.tgz", - "integrity": "sha1-0XnzuqduYj7x4Ng2k9twW3xZkAY=", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", + "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", "requires": { "d3-array": "1" } @@ -6153,14 +5634,14 @@ } }, "d3-dispatch": { - "version": "1.0.5", - "resolved": "http://registry.npm.taobao.org/d3-dispatch/download/d3-dispatch-1.0.5.tgz", - "integrity": "sha1-4lwQoYZRfNbILdGeoBjwfgHjkBU=" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", + "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" }, "d3-dsv": { "version": "1.0.10", - "resolved": "http://registry.npm.taobao.org/d3-dsv/download/d3-dsv-1.0.10.tgz", - "integrity": "sha1-Q3HEiaKmVKKXrKFvyvYFpvMab1E=", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.0.10.tgz", + "integrity": "sha512-vqklfpxmtO2ZER3fq/B33R/BIz3A1PV0FaZRuFM8w6jLo7sUX1BZDh73fPlr0s327rzq4H6EN1q9U+eCBCSN8g==", "requires": { "commander": "2", "iconv-lite": "0.4", @@ -6168,18 +5649,18 @@ } }, "d3-ease": { - "version": "1.0.5", - "resolved": "http://registry.npm.taobao.org/d3-ease/download/d3-ease-1.0.5.tgz", - "integrity": "sha1-jOWSdtgSQbG3IELWry1A522Tb/s=" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", + "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" }, "d3-format": { - "version": "1.3.2", - "resolved": "http://registry.npm.taobao.org/d3-format/download/d3-format-1.3.2.tgz", - "integrity": "sha1-apa14xvLmBIqMIY/fZI2XABgNWI=" + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", + "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" }, "d3-geo": { "version": "1.6.4", - "resolved": "http://registry.npm.taobao.org/d3-geo/download/d3-geo-1.6.4.tgz", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.6.4.tgz", "integrity": "sha1-8g4eRhyxhF9ai+Vatvh2VCp+MZk=", "requires": { "d3-array": "1" @@ -6187,7 +5668,7 @@ }, "d3-geo-projection": { "version": "2.1.2", - "resolved": "http://registry.npm.taobao.org/d3-geo-projection/download/d3-geo-projection-2.1.2.tgz", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-2.1.2.tgz", "integrity": "sha1-ffjh6dBG1jHGUJ9+UxNX1K3CSqM=", "requires": { "commander": "2", @@ -6197,33 +5678,33 @@ }, "d3-hexjson": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/d3-hexjson/download/d3-hexjson-1.0.1.tgz", - "integrity": "sha1-aiMRHoNZ8eIU9dCvo3nAKytn3ws=", + "resolved": "https://registry.npmjs.org/d3-hexjson/-/d3-hexjson-1.0.1.tgz", + "integrity": "sha512-TeH4T0PSbDazMm3gHgc4ulO0PfrZpz0Uk3y5tCGz+NgC7HnX7KBdem7uAN+j9x3ZshTh7raN3V/bFhaLB2C8DA==", "requires": { "d3-array": "1" } }, "d3-hierarchy": { - "version": "1.1.8", - "resolved": "http://registry.npm.taobao.org/d3-hierarchy/download/d3-hierarchy-1.1.8.tgz", - "integrity": "sha1-emMXvT7STjJGQbbx526XiDawCMw=" + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", + "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" }, "d3-interpolate": { "version": "1.1.6", - "resolved": "http://registry.npm.taobao.org/d3-interpolate/download/d3-interpolate-1.1.6.tgz", - "integrity": "sha1-LPOVriOBgE3wiqG/dmt/l7X2j7Y=", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.1.6.tgz", + "integrity": "sha512-mOnv5a+pZzkNIHtw/V6I+w9Lqm9L5bG3OTXPM5A+QO0yyVMQ4W1uZhR+VOJmazaOZXri2ppbiZ5BUNWT0pFM9A==", "requires": { "d3-color": "1" } }, "d3-path": { - "version": "1.0.7", - "resolved": "http://registry.npm.taobao.org/d3-path/download/d3-path-1.0.7.tgz", - "integrity": "sha1-jefNaTp1rAtUgNOrrM2UeT5Yqug=" + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" }, "d3-sankey": { "version": "0.7.1", - "resolved": "http://registry.npm.taobao.org/d3-sankey/download/d3-sankey-0.7.1.tgz", + "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.7.1.tgz", "integrity": "sha1-0imDImj8aaf+yEgD6WwiVqYUxSE=", "requires": { "d3-array": "1", @@ -6232,27 +5713,27 @@ } }, "d3-selection": { - "version": "1.4.0", - "resolved": "http://registry.npm.taobao.org/d3-selection/download/d3-selection-1.4.0.tgz", - "integrity": "sha1-q5rB5mTPln6/G0ecwH4ozpkIxHQ=" + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", + "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" }, "d3-shape": { - "version": "1.3.5", - "resolved": "http://registry.npm.taobao.org/d3-shape/download/d3-shape-1.3.5.tgz", - "integrity": "sha1-6BrqWUD1nwp5z8ysASIyqJh8YDM=", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", "requires": { "d3-path": "1" } }, "d3-timer": { - "version": "1.0.9", - "resolved": "http://registry.npm.taobao.org/d3-timer/download/d3-timer-1.0.9.tgz", - "integrity": "sha1-97uMDVl9eS/3Ex4cJKNt1HGkcbo=" + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", + "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" }, "d3-transition": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/d3-transition/download/d3-transition-1.2.0.tgz", - "integrity": "sha1-9TjA4hsqofBfPpZfhWfoEoSzsrg=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", + "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", "requires": { "d3-color": "1", "d3-dispatch": "1", @@ -6264,21 +5745,21 @@ }, "d3-voronoi": { "version": "1.1.4", - "resolved": "http://registry.npm.taobao.org/d3-voronoi/download/d3-voronoi-1.1.4.tgz", - "integrity": "sha1-3Tx412U9K7NZKErkeGRdlZRMgpc=" + "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", + "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==" }, "dagre": { - "version": "0.8.4", - "resolved": "http://registry.npm.taobao.org/dagre/download/dagre-0.8.4.tgz", - "integrity": "sha1-Jrn7j3vcYMYRCgRYw3UmGDZ4YGE=", + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz", + "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", "requires": { - "graphlib": "^2.1.7", - "lodash": "^4.17.4" + "graphlib": "^2.1.8", + "lodash": "^4.17.15" } }, "dashdash": { "version": "1.14.1", - "resolved": "http://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { @@ -6297,9 +5778,9 @@ }, "dependencies": { "whatwg-url": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", - "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", "dev": true, "requires": { "lodash.sortby": "^4.7.0", @@ -6309,49 +5790,55 @@ } } }, - "date-now": { - "version": "0.1.4", - "resolved": "http://registry.npm.taobao.org/date-now/download/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" - }, "de-indent": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=" }, + "deasync": { + "version": "0.1.21", + "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.21.tgz", + "integrity": "sha512-kUmM8Y+PZpMpQ+B4AuOW9k2Pfx/mSupJtxOsLzmnHY2WqZUYRFccFn2RhzPAqt3Xb+sorK/badW2D4zNzqZz5w==", + "dev": true, + "requires": { + "bindings": "^1.5.0", + "node-addon-api": "^1.7.1" + } + }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "requires": { "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } } }, "decamelize": { "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { "version": "0.2.0", - "resolved": "http://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "deep-equal": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/deep-equal/download/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } }, "deep-is": { "version": "0.1.3", - "resolved": "http://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, @@ -6362,15 +5849,126 @@ "dev": true }, "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-5.0.5.tgz", + "integrity": "sha512-z2RnruVmj8hVMmAnEJMTIJNijhKCDiGjbLP+BHJFOT7ld3Bo5qcIBpVYDniqhbMIIf+jZDlkP2MkPXiQy/DBLA==", "dev": true, "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - } - }, + "execa": "^3.3.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "default-require-extensions": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", @@ -6387,20 +5985,28 @@ "dev": true, "requires": { "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + } } }, "define-properties": { "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", - "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { "object-keys": "^1.0.12" } }, "define-property": { "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz", - "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -6408,24 +6014,24 @@ "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -6433,15 +6039,15 @@ } }, "kind-of": { - "version": "6.0.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" } } }, "defined": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" }, "del": { @@ -6484,14 +6090,14 @@ }, "delayed-stream": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, "delegate": { "version": "3.2.0", - "resolved": "http://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz", - "integrity": "sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=" + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" }, "depd": { "version": "1.1.2", @@ -6500,9 +6106,9 @@ "dev": true }, "des.js": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/des.js/download/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "requires": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" @@ -6514,9 +6120,14 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, + "detect-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.2.0.tgz", + "integrity": "sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA==" + }, "detect-indent": { "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/detect-indent/download/detect-indent-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { @@ -6543,12 +6154,19 @@ }, "diffie-hellman": { "version": "5.0.3", - "resolved": "http://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", - "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "requires": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, "dir-glob": { @@ -6596,9 +6214,9 @@ } }, "dom-align": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.8.3.tgz", - "integrity": "sha512-thE1qB8mvtRZgwN4+IGFz1rv7zVsr08c2/IEYtOJIeTzW4YDadIOd5nQ4BpiiAvUWg55xTeGq7zLTDxDYWDrnw==" + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.0.tgz", + "integrity": "sha512-YkoezQuhp3SLFGdOlr5xkqZ640iXrnHAwVYcDg8ZKRUtO7mSzSC2BA5V0VuyAwPSJA4CLIc6EDDJh4bEsD2+zA==" }, "dom-closest": { "version": "0.2.0", @@ -6619,8 +6237,8 @@ }, "dom-event-types": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/dom-event-types/download/dom-event-types-1.0.0.tgz", - "integrity": "sha1-WDCgop4b+Df+UKcM2ApZcjKBPK4=", + "resolved": "https://registry.npmjs.org/dom-event-types/-/dom-event-types-1.0.0.tgz", + "integrity": "sha512-2G2Vwi2zXTHBGqXHsJ4+ak/iP0N8Ar+G8a7LiD2oup5o4sQWytwqqrZu/O6hIMV0KMID2PL69OhpshLO0n7UJQ==", "dev": true }, "dom-matches": { @@ -6634,24 +6252,32 @@ "integrity": "sha1-6PNnMt0ImwIBqI14Fdw/iObWbH4=" }, "dom-serializer": { - "version": "0.1.1", - "resolved": "http://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.1.1.tgz", - "integrity": "sha1-HsQFnihLq+027sKUHUqXChic58A=", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", "dev": true, "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.2.tgz", + "integrity": "sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==", + "dev": true + } } }, "domain-browser": { "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz", - "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=" + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" }, "domelementtype": { "version": "1.3.1", - "resolved": "http://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz", - "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, "domexception": { @@ -6665,8 +6291,8 @@ }, "domhandler": { "version": "2.4.2", - "resolved": "http://registry.npm.taobao.org/domhandler/download/domhandler-2.4.2.tgz", - "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { "domelementtype": "1" @@ -6674,8 +6300,8 @@ }, "domutils": { "version": "1.7.0", - "resolved": "http://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz", - "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { "dom-serializer": "0", @@ -6683,12 +6309,12 @@ } }, "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, "requires": { - "is-obj": "^1.0.0" + "is-obj": "^2.0.0" } }, "dotenv": { @@ -6703,16 +6329,24 @@ "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", "dev": true }, + "dotignore": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", + "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", + "requires": { + "minimatch": "^3.0.4" + } + }, "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, "duplexify": { "version": "3.7.1", - "resolved": "http://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz", - "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "requires": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -6721,14 +6355,14 @@ } }, "easy-stack": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.0.tgz", - "integrity": "sha1-EskbMIWjfwuqM26UhurEv5Tj54g=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.1.tgz", + "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==", "dev": true }, "ecc-jsbn": { "version": "0.1.2", - "resolved": "http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "requires": { @@ -6773,20 +6407,20 @@ "dev": true }, "ejs": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", - "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", "dev": true }, "electron-to-chromium": { - "version": "1.3.124", - "resolved": "http://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.124.tgz", - "integrity": "sha1-hh/AFIdIoRs+XM69+LeV/1E/oR8=" + "version": "1.3.610", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.610.tgz", + "integrity": "sha512-eFDC+yVQpEhtlapk4CYDPfV9ajF9cEof5TBcO49L1ETO+aYogrKWDmYpZyxBScMNe8Bo/gJamH4amQ4yyvXg4g==" }, "elliptic": { - "version": "6.4.1", - "resolved": "http://registry.npm.taobao.org/elliptic/download/elliptic-6.4.1.tgz", - "integrity": "sha1-wtC3d2kRuGcixjLDwGxg8vgZk5o=", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -6795,18 +6429,25 @@ "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "http://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz", - "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "emojis-list": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" }, "encodeurl": { "version": "1.0.2", @@ -6815,92 +6456,139 @@ "dev": true }, "encoding": { - "version": "0.1.12", - "resolved": "http://registry.npm.taobao.org/encoding/download/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "requires": { - "iconv-lite": "~0.4.13" + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } } }, "end-of-stream": { - "version": "1.4.1", - "resolved": "http://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.1.tgz", - "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { "once": "^1.4.0" } }, "enhanced-resolve": { - "version": "4.1.0", - "resolved": "http://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.1.0.tgz", - "integrity": "sha1-Qcfgv9/nSsH/4eV61qXGyfN0Kn8=", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", "requires": { "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", + "memory-fs": "^0.5.0", "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } } }, "enquire.js": { "version": "2.1.6", - "resolved": "http://registry.npm.taobao.org/enquire.js/download/enquire.js-2.1.6.tgz", + "resolved": "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz", "integrity": "sha1-PoeAybi4NQhMP2DhZtvDwqPImBQ=" }, "entities": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz", - "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", "dev": true }, "errno": { "version": "0.1.7", - "resolved": "http://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz", - "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "requires": { "prr": "~1.0.1" } }, "error-ex": { "version": "1.3.2", - "resolved": "http://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "error-stack-parser": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.2.tgz", - "integrity": "sha512-E1fPutRDdIj/hohG0UpT5mayXNCxXP9d+snxFsPU9X0XgccOumKraa3juDMwTUyi7+Bu5+mCGagjg4IYeNbOdw==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", "dev": true, "requires": { - "stackframe": "^1.0.4" + "stackframe": "^1.1.1" } }, "es-abstract": { - "version": "1.13.0", - "resolved": "http://registry.npm.taobao.org/es-abstract/download/es-abstract-1.13.0.tgz", - "integrity": "sha1-rIYUX91QmdjdSVWMy6Lq+biOJOk=", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", "requires": { - "es-to-primitive": "^1.2.0", + "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "dependencies": { + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" + } } }, "es-to-primitive": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.0.tgz", - "integrity": "sha1-7fckeAM0VujdqO8J4ArZZQcH83c=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" } }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -6909,28 +6597,22 @@ }, "escape-string-regexp": { "version": "1.0.5", - "resolved": "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz", - "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==", + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "dev": true, "requires": { - "esprima": "^3.1.3", + "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1", "source-map": "~0.6.1" }, "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -6942,8 +6624,8 @@ }, "eslint": { "version": "5.16.0", - "resolved": "http://registry.npm.taobao.org/eslint/download/eslint-5.16.0.tgz", - "integrity": "sha1-oeOsGq5KP72Clvz496tzFMu2q+o=", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", + "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -6985,21 +6667,21 @@ }, "dependencies": { "acorn-jsx": { - "version": "5.0.1", - "resolved": "http://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.0.1.tgz", - "integrity": "sha1-MqBk/ZJUKSFqCbFBECv90YX65A4=", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "dev": true }, "ansi-regex": { "version": "4.1.0", - "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", - "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "ansi-styles": { "version": "3.2.1", - "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" @@ -7007,8 +6689,8 @@ }, "chalk": { "version": "2.4.2", - "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", @@ -7018,32 +6700,38 @@ }, "chardet": { "version": "0.7.0", - "resolved": "http://registry.npm.taobao.org/chardet/download/chardet-0.7.0.tgz", - "integrity": "sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, "debug": { - "version": "4.1.1", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "doctrine": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/doctrine/download/doctrine-3.0.0.tgz", - "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { "esutils": "^2.0.2" } }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, "espree": { "version": "5.0.1", - "resolved": "http://registry.npm.taobao.org/espree/download/espree-5.0.1.tgz", - "integrity": "sha1-XWUm+k/H8HiKXPdbFfMDI+L4H3o=", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", + "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", "dev": true, "requires": { "acorn": "^6.0.7", @@ -7052,9 +6740,9 @@ } }, "external-editor": { - "version": "3.0.3", - "resolved": "http://registry.npm.taobao.org/external-editor/download/external-editor-3.0.3.tgz", - "integrity": "sha1-WGbbKal4Jtvkvzr9JAcOrZ6kOic=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { "chardet": "^0.7.0", @@ -7064,8 +6752,8 @@ }, "file-entry-cache": { "version": "5.0.1", - "resolved": "http://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-5.0.1.tgz", - "integrity": "sha1-yg9u+m3T1WEzP7FFFQZcL6/fQ5w=", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { "flat-cache": "^2.0.1" @@ -7073,8 +6761,8 @@ }, "flat-cache": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/flat-cache/download/flat-cache-2.0.1.tgz", - "integrity": "sha1-XSltbwS9pEpGMKMBQTvbwuwIXsA=", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { "flatted": "^2.0.0", @@ -7084,14 +6772,14 @@ }, "ignore": { "version": "4.0.6", - "resolved": "http://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz", - "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "import-fresh": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/import-fresh/download/import-fresh-3.0.0.tgz", - "integrity": "sha1-o9iX9CDKsOZxI2iX91vBS0iFw5A=", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -7099,9 +6787,9 @@ } }, "inquirer": { - "version": "6.3.1", - "resolved": "http://registry.npm.taobao.org/inquirer/download/inquirer-6.3.1.tgz", - "integrity": "sha1-ekE7XnlQgRATo9tJHGHR87d26Oc=", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "dev": true, "requires": { "ansi-escapes": "^3.2.0", @@ -7110,7 +6798,7 @@ "cli-width": "^2.0.0", "external-editor": "^3.0.3", "figures": "^2.0.0", - "lodash": "^4.17.11", + "lodash": "^4.17.12", "mute-stream": "0.0.7", "run-async": "^2.2.0", "rxjs": "^6.4.0", @@ -7121,8 +6809,8 @@ "dependencies": { "strip-ansi": { "version": "5.2.0", - "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -7130,22 +6818,37 @@ } } }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "regexpp": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz", - "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, "resolve-from": { "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz", - "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, "slice-ansi": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/slice-ansi/download/slice-ansi-2.1.0.tgz", - "integrity": "sha1-ys12k0YaY3pXiNkqfdT7oGjoFjY=", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { "ansi-styles": "^3.2.0", @@ -7155,7 +6858,7 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { @@ -7164,7 +6867,7 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true } @@ -7172,29 +6875,29 @@ }, "supports-color": { "version": "5.5.0", - "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" } }, "table": { - "version": "5.2.3", - "resolved": "http://registry.npm.taobao.org/table/download/table-5.2.3.tgz", - "integrity": "sha1-zeDMbrBnUcAJ76sn6Mggyltnt/I=", + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "requires": { - "ajv": "^6.9.1", - "lodash": "^4.17.11", + "ajv": "^6.10.2", + "lodash": "^4.17.14", "slice-ansi": "^2.1.0", "string-width": "^3.0.0" }, "dependencies": { "string-width": { "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", - "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", @@ -7204,8 +6907,8 @@ }, "strip-ansi": { "version": "5.2.0", - "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", - "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" @@ -7215,8 +6918,8 @@ }, "write": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/write/download/write-1.0.3.tgz", - "integrity": "sha1-CADhRSO5I6OH5BUSPIZWFqrg9cM=", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { "mkdirp": "^0.5.1" @@ -7226,41 +6929,35 @@ }, "eslint-config-standard": { "version": "12.0.0", - "resolved": "http://registry.npm.taobao.org/eslint-config-standard/download/eslint-config-standard-12.0.0.tgz", - "integrity": "sha1-Y4tMZdsL1aQTGflruh8V3a0hB9k=", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz", + "integrity": "sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==", "dev": true }, "eslint-import-resolver-node": { - "version": "0.3.2", - "resolved": "http://registry.npm.taobao.org/eslint-import-resolver-node/download/eslint-import-resolver-node-0.3.2.tgz", - "integrity": "sha1-WPFfuDm40FdsqYBBNHaqskcttmo=", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", "dev": true, "requires": { "debug": "^2.6.9", - "resolve": "^1.5.0" + "resolve": "^1.13.1" }, "dependencies": { "debug": { "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, "eslint-loader": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.1.2.tgz", - "integrity": "sha512-rA9XiXEOilLYPOIInvVH5S/hYfyTPyxag6DZhoQOduM+3TkghAEQ3VcFO8VnX4J4qg/UIBzp72aOf/xvYmpmsg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz", + "integrity": "sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==", "dev": true, "requires": { "loader-fs-cache": "^1.0.0", @@ -7271,19 +6968,19 @@ } }, "eslint-module-utils": { - "version": "2.4.0", - "resolved": "http://registry.npm.taobao.org/eslint-module-utils/download/eslint-module-utils-2.4.0.tgz", - "integrity": "sha1-i5NJnpsA6rgMy2YU5p8DZ46E4Jo=", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", "dev": true, "requires": { - "debug": "^2.6.8", + "debug": "^2.6.9", "pkg-dir": "^2.0.0" }, "dependencies": { "debug": { "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -7291,7 +6988,7 @@ }, "find-up": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { @@ -7300,7 +6997,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { @@ -7308,16 +7005,10 @@ "path-exists": "^3.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "p-limit": { "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { "p-try": "^1.0.0" @@ -7325,7 +7016,7 @@ }, "p-locate": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { @@ -7334,13 +7025,19 @@ }, "p-try": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, "pkg-dir": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { @@ -7350,55 +7047,57 @@ } }, "eslint-plugin-es": { - "version": "1.4.0", - "resolved": "http://registry.npm.taobao.org/eslint-plugin-es/download/eslint-plugin-es-1.4.0.tgz", - "integrity": "sha1-R19luyDJk/wQ6Mj+d9HWAGgHLaY=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz", + "integrity": "sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA==", "dev": true, "requires": { - "eslint-utils": "^1.3.0", + "eslint-utils": "^1.4.2", "regexpp": "^2.0.1" }, "dependencies": { "regexpp": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/regexpp/download/regexpp-2.0.1.tgz", - "integrity": "sha1-jRnTHPYySCtYkEn4KB+T28uk0H8=", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true } } }, "eslint-plugin-html": { - "version": "5.0.3", - "resolved": "http://registry.npm.taobao.org/eslint-plugin-html/download/eslint-plugin-html-5.0.3.tgz", - "integrity": "sha1-PbEzmV5JpzWW9qRzwWobg2NN7/0=", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-5.0.5.tgz", + "integrity": "sha512-v/33i3OD0fuXcRXexVyXXBOe4mLBLBQoF1UO1Uy9D+XLq4MC8K45GcQKfqjC/FnHAHp3pYUjpHHktYNCtShGmg==", "dev": true, "requires": { "htmlparser2": "^3.10.0" } }, "eslint-plugin-import": { - "version": "2.17.2", - "resolved": "http://registry.npm.taobao.org/eslint-plugin-import/download/eslint-plugin-import-2.17.2.tgz", - "integrity": "sha1-0ifVxtxn7KcetZDSu2L7ONhun8s=", + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", + "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", "dev": true, "requires": { - "array-includes": "^3.0.3", + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", "contains-path": "^0.1.0", "debug": "^2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.0", "has": "^1.0.3", - "lodash": "^4.17.11", "minimatch": "^3.0.4", + "object.values": "^1.1.1", "read-pkg-up": "^2.0.0", - "resolve": "^1.10.0" + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" }, "dependencies": { "debug": { "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" @@ -7406,7 +7105,7 @@ }, "doctrine": { "version": "1.5.0", - "resolved": "http://registry.npm.taobao.org/doctrine/download/doctrine-1.5.0.tgz", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "dev": true, "requires": { @@ -7416,7 +7115,7 @@ }, "find-up": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { @@ -7425,13 +7124,13 @@ }, "isarray": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "load-json-file": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/load-json-file/download/load-json-file-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { @@ -7443,7 +7142,7 @@ }, "locate-path": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { @@ -7451,16 +7150,10 @@ "path-exists": "^3.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "p-limit": { "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz", - "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { "p-try": "^1.0.0" @@ -7468,7 +7161,7 @@ }, "p-locate": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { @@ -7477,13 +7170,19 @@ }, "p-try": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, "path-type": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { @@ -7492,13 +7191,13 @@ }, "pify": { "version": "2.3.0", - "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "read-pkg": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { @@ -7509,7 +7208,7 @@ }, "read-pkg-up": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { @@ -7519,7 +7218,7 @@ }, "strip-bom": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true } @@ -7527,8 +7226,8 @@ }, "eslint-plugin-node": { "version": "8.0.1", - "resolved": "http://registry.npm.taobao.org/eslint-plugin-node/download/eslint-plugin-node-8.0.1.tgz", - "integrity": "sha1-Va41YAIoY9FB+noReZUyNApoWWQ=", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz", + "integrity": "sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w==", "dev": true, "requires": { "eslint-plugin-es": "^1.3.1", @@ -7540,53 +7239,53 @@ }, "dependencies": { "ignore": { - "version": "5.1.1", - "resolved": "http://registry.npm.taobao.org/ignore/download/ignore-5.1.1.tgz", - "integrity": "sha1-L8a49Riv9I/vZafzSO2FYyRI5KU=", + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true } } }, "eslint-plugin-promise": { - "version": "4.1.1", - "resolved": "http://registry.npm.taobao.org/eslint-plugin-promise/download/eslint-plugin-promise-4.1.1.tgz", - "integrity": "sha1-HgjLaLWyzYg5+NWGTHlvVtgnRts=", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", + "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", "dev": true }, "eslint-plugin-standard": { - "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/eslint-plugin-standard/download/eslint-plugin-standard-4.0.0.tgz", - "integrity": "sha1-+EW0UQnJnNkOd3lpQKNEVGyPa1w=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz", + "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==", "dev": true }, "eslint-plugin-vue": { - "version": "5.2.2", - "resolved": "http://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-5.2.2.tgz", - "integrity": "sha1-hmAYI7dyG3C8ktVPFyjPwDs2KDw=", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-5.2.3.tgz", + "integrity": "sha512-mGwMqbbJf0+VvpGR5Lllq0PMxvTdrZ/ZPjmhkacrCHbubJeJOt+T6E3HUzAifa2Mxi7RSdJfC9HFpOeSYVMMIw==", "dev": true, "requires": { "vue-eslint-parser": "^5.0.0" }, "dependencies": { "acorn-jsx": { - "version": "5.0.1", - "resolved": "http://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-5.0.1.tgz", - "integrity": "sha1-MqBk/ZJUKSFqCbFBECv90YX65A4=", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "dev": true }, "debug": { - "version": "4.1.1", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz", - "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "espree": { "version": "4.1.0", - "resolved": "http://registry.npm.taobao.org/espree/download/espree-4.1.0.tgz", - "integrity": "sha1-co1UUeD9FWwEOEp62J7VH/VOsl8=", + "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", + "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", "dev": true, "requires": { "acorn": "^6.0.2", @@ -7594,10 +7293,16 @@ "eslint-visitor-keys": "^1.0.0" } }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "vue-eslint-parser": { "version": "5.0.0", - "resolved": "http://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-5.0.0.tgz", - "integrity": "sha1-APTk2pTsl0uCGib/DtD3p4QCuKE=", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz", + "integrity": "sha512-JlHVZwBBTNVvzmifwjpZYn0oPWH2SgWv5dojlZBsrhablDu95VFD+hriB1rQGwbD+bms6g+rAFhQHk6+NyiS6g==", "dev": true, "requires": { "debug": "^4.1.0", @@ -7612,23 +7317,26 @@ }, "eslint-scope": { "version": "4.0.3", - "resolved": "http://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz", - "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "requires": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" } }, "eslint-utils": { - "version": "1.3.1", - "resolved": "http://registry.npm.taobao.org/eslint-utils/download/eslint-utils-1.3.1.tgz", - "integrity": "sha1-moUbqJ7nxGA0b5fPiTnHKYgn5RI=", - "dev": true + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } }, "eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha1-PzGA+y4pEBdxastMnW1bXDSmqB0=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true }, "espree": { @@ -7643,9 +7351,9 @@ }, "dependencies": { "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", "dev": true, "optional": true } @@ -7653,36 +7361,51 @@ }, "esprima": { "version": "4.0.1", - "resolved": "http://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esquery": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/esquery/download/esquery-1.0.1.tgz", - "integrity": "sha1-QGxRZYsfWZGl+bYrHcJbAOPlxwg=", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } } }, "esrecurse": { - "version": "4.2.1", - "resolved": "http://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz", - "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "requires": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + } } }, "estraverse": { - "version": "4.2.0", - "resolved": "http://registry.npm.taobao.org/estraverse/download/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" }, "esutils": { - "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "etag": { "version": "1.8.1", @@ -7697,15 +7420,14 @@ "dev": true }, "eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", - "dev": true + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", + "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=" }, "events": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/events/download/events-3.0.0.tgz", - "integrity": "sha1-mgoN+vYok9krh1uPJpjKQRSXPog=" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" }, "eventsource": { "version": "1.0.7", @@ -7718,8 +7440,8 @@ }, "evp_bytestokey": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", - "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" @@ -7757,7 +7479,7 @@ }, "expand-brackets": { "version": "2.1.4", - "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { "debug": "^2.3.3", @@ -7771,15 +7493,15 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { "ms": "2.0.0" } }, "define-property": { "version": "0.2.5", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -7787,22 +7509,17 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, "expand-range": { "version": "1.8.2", - "resolved": "http://registry.npm.taobao.org/expand-range/download/expand-range-1.8.2.tgz", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { @@ -7811,8 +7528,8 @@ "dependencies": { "fill-range": { "version": "2.2.4", - "resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-2.2.4.tgz", - "integrity": "sha1-6x53OrsFbc2N8r/favWbizqTZWU=", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { "is-number": "^2.1.0", @@ -7824,7 +7541,7 @@ }, "is-number": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { @@ -7833,13 +7550,13 @@ }, "isarray": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isobject": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { @@ -7920,12 +7637,6 @@ "ms": "2.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", @@ -7936,12 +7647,12 @@ }, "extend": { "version": "3.0.2", - "resolved": "http://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extend-shallow": { "version": "3.0.2", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { "assign-symbols": "^1.0.0", @@ -7950,8 +7661,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { "is-plain-object": "^2.0.4" } @@ -7960,8 +7671,8 @@ }, "external-editor": { "version": "2.2.0", - "resolved": "http://registry.npm.taobao.org/external-editor/download/external-editor-2.2.0.tgz", - "integrity": "sha1-BFURz9jRM/OEZnPRBHwVTiFK09U=", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { "chardet": "^0.4.0", @@ -7971,8 +7682,8 @@ }, "extglob": { "version": "2.0.4", - "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz", - "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -7986,7 +7697,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -7994,7 +7705,7 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -8002,24 +7713,24 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -8027,9 +7738,9 @@ } }, "kind-of": { - "version": "6.0.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" } } }, @@ -8044,14 +7755,14 @@ }, "extsprintf": { "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-diff": { "version": "1.1.2", @@ -8070,23 +7781,46 @@ "is-glob": "^4.0.0", "merge2": "^1.2.3", "micromatch": "^3.1.10" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + } } }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-levenshtein": { "version": "2.0.6", - "resolved": "http://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "fastparse": { "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/fastparse/download/fastparse-1.1.2.tgz", - "integrity": "sha1-kXKMWllC7O2FMSg8eUQe5BIsNak=" + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==" }, "faye-websocket": { "version": "0.10.0", @@ -8098,27 +7832,27 @@ } }, "fb-watchman": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", - "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", "dev": true, "requires": { - "bser": "^2.0.0" + "bser": "2.1.1" } }, "fecha": { "version": "2.3.3", - "resolved": "http://registry.npm.taobao.org/fecha/download/fecha-2.3.3.tgz", - "integrity": "sha1-lI50FX3xoy/RsSw6PDzctuydls0=" + "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz", + "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==" }, "figgy-pudding": { - "version": "3.5.1", - "resolved": "http://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.1.tgz", - "integrity": "sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A=" + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" }, "figures": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { @@ -8144,11 +7878,29 @@ "requires": { "loader-utils": "^1.0.2", "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, "filename-regex": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/filename-regex/download/filename-regex-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "dev": true }, @@ -8170,7 +7922,7 @@ }, "fill-range": { "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { "extend-shallow": "^2.0.1", @@ -8181,7 +7933,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -8212,12 +7964,6 @@ "requires": { "ms": "2.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, @@ -8236,25 +7982,32 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true } } }, "find-cache-dir": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz", - "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "requires": { "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" } }, "find-up": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", - "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "requires": { - "locate-path": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "flat-cache": { @@ -8268,18 +8021,30 @@ "graceful-fs": "^4.1.2", "rimraf": "~2.6.2", "write": "^0.2.1" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "flatted": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/flatted/download/flatted-2.0.0.tgz", - "integrity": "sha1-VRIrZTbqSWtLRIk+4mCBQdENmRY=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, "flush-write-stream": { "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", - "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", "requires": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" @@ -8287,7 +8052,7 @@ }, "fmin": { "version": "0.0.2", - "resolved": "http://registry.npm.taobao.org/fmin/download/fmin-0.0.2.tgz", + "resolved": "https://registry.npmjs.org/fmin/-/fmin-0.0.2.tgz", "integrity": "sha1-Wbu0DUP/3ByUzQClaMQflfGXMBc=", "requires": { "contour_plot": "^0.0.1", @@ -8307,20 +8072,20 @@ }, "for-each": { "version": "0.3.3", - "resolved": "http://registry.npm.taobao.org/for-each/download/for-each-0.3.3.tgz", - "integrity": "sha1-abRH6IoKXTLD5whPPxcQA0shN24=", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "requires": { "is-callable": "^1.1.3" } }, "for-in": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, "for-own": { "version": "0.1.5", - "resolved": "http://registry.npm.taobao.org/for-own/download/for-own-0.1.5.tgz", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { @@ -8329,14 +8094,14 @@ }, "forever-agent": { "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "dev": true }, "form-data": { "version": "2.3.3", - "resolved": "http://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz", - "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { "asynckit": "^0.4.0", @@ -8352,7 +8117,7 @@ }, "fragment-cache": { "version": "0.2.1", - "resolved": "http://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { "map-cache": "^0.2.2" @@ -8366,538 +8131,78 @@ }, "from2": { "version": "2.3.0", - "resolved": "http://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "http://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.8", - "resolved": "http://registry.npm.taobao.org/fsevents/download/fsevents-1.2.8.tgz", - "integrity": "sha1-V+pTIPdizUaW5ejocSDszIsRys8=", - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "bundled": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "bundled": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "bundled": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "bundled": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "bundled": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "bundled": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "bundled": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "bundled": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "optional": true - } + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" } }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "optional": true + }, "function-bind": { "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "functional-red-black-tree": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, + "get-intrinsic": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", + "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -8909,12 +8214,12 @@ }, "get-value": { "version": "2.0.6", - "resolved": "http://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "getpass": { "version": "0.1.7", - "resolved": "http://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { @@ -8922,9 +8227,9 @@ } }, "glob": { - "version": "7.1.3", - "resolved": "http://registry.npm.taobao.org/glob/download/glob-7.1.3.tgz", - "integrity": "sha1-OWCDLT8VdBCDQtr9OmezMsCWnfE=", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8936,7 +8241,7 @@ }, "glob-base": { "version": "0.3.0", - "resolved": "http://registry.npm.taobao.org/glob-base/download/glob-base-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { @@ -8946,7 +8251,7 @@ "dependencies": { "glob-parent": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/glob-parent/download/glob-parent-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { @@ -8955,13 +8260,13 @@ }, "is-extglob": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, "is-glob": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { @@ -8971,22 +8276,12 @@ } }, "glob-parent": { - "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "optional": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } + "is-glob": "^4.0.1" } }, "glob-to-regexp": { @@ -8996,9 +8291,9 @@ "dev": true }, "globals": { - "version": "11.11.0", - "resolved": "http://registry.npm.taobao.org/globals/download/globals-11.11.0.tgz", - "integrity": "sha1-3Pk3V/ot5Uhvvu1xGFOK33ienC4=" + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "globby": { "version": "9.2.0", @@ -9026,23 +8321,23 @@ }, "good-listener": { "version": "1.2.2", - "resolved": "http://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", "requires": { "delegate": "^3.1.2" } }, "graceful-fs": { - "version": "4.1.15", - "resolved": "http://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.1.15.tgz", - "integrity": "sha1-/7cD4QZuig7qpMi4C6klPu77+wA=" + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, "graphlib": { - "version": "2.1.7", - "resolved": "http://registry.npm.taobao.org/graphlib/download/graphlib-2.1.7.tgz", - "integrity": "sha1-tqafn0S9neOWPOaASi/J5z2Grsw=", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", + "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", "requires": { - "lodash": "^4.17.5" + "lodash": "^4.17.15" } }, "growly": { @@ -9062,21 +8357,22 @@ } }, "handle-thing": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", - "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, "handlebars": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", - "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", "dev": true, "requires": { + "minimist": "^1.2.5", "neo-async": "^2.6.0", - "optimist": "^0.6.1", "source-map": "^0.6.1", - "uglify-js": "^3.1.4" + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" }, "dependencies": { "source-map": { @@ -9086,45 +8382,47 @@ "dev": true }, "uglify-js": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", - "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.0.tgz", + "integrity": "sha512-8lBMSkFZuAK7gGF8LswsXmir8eX8d2AAMOnxSDWjKBx/fBR6MypQjs78m6ML9zQVp1/hD4TBdfeMZMC7nW1TAA==", "dev": true, - "optional": true, - "requires": { - "commander": "~2.20.0", - "source-map": "~0.6.1" - } + "optional": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true } } }, "har-schema": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", "dev": true }, "har-validator": { - "version": "5.1.3", - "resolved": "http://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz", - "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "dev": true, "requires": { - "ajv": "^6.5.5", + "ajv": "^6.12.3", "har-schema": "^2.0.0" } }, "has": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/has/download/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { "function-bind": "^1.1.1" } }, "has-ansi": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { "ansi-regex": "^2.0.0" @@ -9132,17 +8430,17 @@ }, "has-flag": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbols": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, "has-value": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { "get-value": "^2.0.6", @@ -9152,7 +8450,7 @@ }, "has-values": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { "is-number": "^3.0.0", @@ -9161,7 +8459,7 @@ "dependencies": { "kind-of": { "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { "is-buffer": "^1.1.5" @@ -9170,12 +8468,30 @@ } }, "hash-base": { - "version": "3.0.4", - "resolved": "http://registry.npm.taobao.org/hash-base/download/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } } }, "hash-sum": { @@ -9186,8 +8502,8 @@ }, "hash.js": { "version": "1.1.7", - "resolved": "http://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", - "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" @@ -9195,8 +8511,8 @@ }, "he": { "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/he/download/he-1.2.0.tgz", - "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=" + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" }, "hex-color-regex": { "version": "1.1.0", @@ -9205,14 +8521,14 @@ "dev": true }, "highlight.js": { - "version": "9.15.8", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.8.tgz", - "integrity": "sha512-RrapkKQWwE+wKdF73VsOa2RQdIoO3mxwJ4P8mhbI6KYJUraUHRKM5w5zQQKXNk0xNL4UVRdulV9SBJcmzJNzVA==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.0.tgz", + "integrity": "sha512-EfrUGcQ63oLJbj0J0RI9ebX6TAITbsDBLbsjr881L/X5fMO9+oadKzEF21C7R3ULKG6Gv3uoab2HiqVJa/4+oA==", "dev": true }, "hmac-drbg": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { "hash.js": "^1.0.3", @@ -9237,9 +8553,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.7.1", - "resolved": "http://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.7.1.tgz", - "integrity": "sha1-l/I2l3vW4SVAiTD/bePuxigewEc=", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", "dev": true }, "hpack.js": { @@ -9282,9 +8598,9 @@ } }, "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", "dev": true }, "html-minifier": { @@ -9361,6 +8677,12 @@ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", "dev": true }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", @@ -9378,13 +8700,23 @@ "json5": "^0.5.0", "object-assign": "^4.0.1" } + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } } } }, "htmlparser2": { "version": "3.10.1", - "resolved": "http://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz", - "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "dev": true, "requires": { "domelementtype": "^1.3.1", @@ -9395,10 +8727,16 @@ "readable-stream": "^3.1.1" }, "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, "readable-stream": { - "version": "3.3.0", - "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-3.3.0.tgz", - "integrity": "sha1-y4ARqtAC63F78EApH+uoVpyYb7k=", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -9425,23 +8763,33 @@ "setprototypeof": "1.1.1", "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } } }, - "http-parser-js": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz", - "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==", - "dev": true - }, "http-proxy": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", - "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "requires": { - "eventemitter3": "^3.0.0", + "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + } } }, "http-proxy-middleware": { @@ -9458,7 +8806,7 @@ }, "http-signature": { "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { @@ -9469,38 +8817,44 @@ }, "https-browserify": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, "iconv-lite": { "version": "0.4.24", - "resolved": "http://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz", - "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, "icss-replace-symbols": { "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" }, "icss-utils": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/icss-utils/download/icss-utils-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", "requires": { "postcss": "^6.0.1" } }, "ieee754": { - "version": "1.1.13", - "resolved": "http://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz", - "integrity": "sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q=" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "iferr": { "version": "0.1.5", - "resolved": "http://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" }, "ignore": { @@ -9511,7 +8865,7 @@ }, "image-size": { "version": "0.5.5", - "resolved": "http://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", "dev": true, "optional": true @@ -9622,6 +8976,12 @@ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, "pkg-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", @@ -9635,7 +8995,7 @@ }, "imurmurhash": { "version": "0.1.4", - "resolved": "http://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "indexes-of": { @@ -9644,14 +9004,14 @@ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "dev": true }, - "indexof": { - "version": "0.0.1", - "resolved": "http://registry.npm.taobao.org/indexof/download/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" }, "inflight": { "version": "1.0.6", - "resolved": "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "^1.3.0", @@ -9659,9 +9019,9 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.5", @@ -9751,6 +9111,18 @@ "requires": { "default-gateway": "^4.2.0", "ipaddr.js": "^1.9.0" + }, + "dependencies": { + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + } } }, "intersperse": { @@ -9760,16 +9132,17 @@ }, "invariant": { "version": "2.2.4", - "resolved": "http://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz", - "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, "requires": { "loose-envify": "^1.0.0" } }, "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, "ip": { @@ -9785,9 +9158,9 @@ "dev": true }, "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true }, "is-absolute-url": { @@ -9798,35 +9171,41 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { "kind-of": "^3.0.2" } }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" + }, "is-arrayish": { "version": "0.2.1", - "resolved": "http://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-binary-path": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "optional": true, "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "^2.0.0" } }, "is-buffer": { "version": "1.1.6", - "resolved": "http://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-callable": { - "version": "1.1.4", - "resolved": "http://registry.npm.taobao.org/is-callable/download/is-callable-1.1.4.tgz", - "integrity": "sha1-HhrfIZ4e62hNaR+dagX/DTCiTXU=" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" }, "is-ci": { "version": "1.2.1", @@ -9853,21 +9232,21 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { "kind-of": "^3.0.2" } }, "is-date-object": { - "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" }, "is-descriptor": { "version": "0.1.6", - "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", - "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -9876,8 +9255,8 @@ "dependencies": { "kind-of": { "version": "5.1.0", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", - "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=" + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -9887,15 +9266,21 @@ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", "dev": true }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "dev": true + }, "is-dotfile": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/is-dotfile/download/is-dotfile-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", "dev": true }, "is-equal-shallow": { "version": "0.1.3", - "resolved": "http://registry.npm.taobao.org/is-equal-shallow/download/is-equal-shallow-0.1.3.tgz", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { @@ -9904,26 +9289,23 @@ }, "is-extendable": { "version": "0.1.1", - "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" }, "is-extglob": { "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-finite": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, @@ -9935,8 +9317,8 @@ }, "is-glob": { "version": "4.0.1", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", - "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "requires": { "is-extglob": "^2.1.1" } @@ -9948,22 +9330,22 @@ }, "is-number": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { "kind-of": "^3.0.2" } }, "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true }, "is-path-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.1.0.tgz", - "integrity": "sha512-Sc5j3/YnM8tDeyCsVeKlm/0p95075DyLmDEIkSgQ7mXkrOX+uTCtmQFm0CYzVyJwcCCmO3k8qfJt17SxQwB5Zw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true }, "is-path-in-cwd": { @@ -9992,36 +9374,30 @@ }, "is-plain-object": { "version": "2.0.4", - "resolved": "http://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { "isobject": "^3.0.1" } }, "is-posix-bracket": { "version": "0.1.1", - "resolved": "http://registry.npm.taobao.org/is-posix-bracket/download/is-posix-bracket-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", "dev": true }, "is-primitive": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/is-primitive/download/is-primitive-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true }, - "is-promise": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/is-promise/download/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true - }, "is-regex": { - "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/is-regex/download/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", "requires": { - "has": "^1.0.1" + "has": "^1.0.3" } }, "is-resolvable": { @@ -10032,10 +9408,16 @@ }, "is-stream": { "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, "is-svg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", @@ -10046,22 +9428,22 @@ } }, "is-symbol": { - "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.2.tgz", - "integrity": "sha1-oFX2rlcZLK7jKeeoYBGLSXqVDzg=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "^1.0.1" } }, "is-typedarray": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, "is-utf8": { "version": "0.2.1", - "resolved": "http://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, @@ -10073,23 +9455,22 @@ }, "is-windows": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", - "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=" + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, "is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" }, "isarray": { "version": "0.0.1", - "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "isexe": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, @@ -10100,12 +9481,12 @@ }, "isobject": { "version": "3.0.1", - "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" }, "isstream": { "version": "0.1.2", - "resolved": "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, @@ -10130,8 +9511,8 @@ }, "istanbul-lib-coverage": { "version": "1.2.1", - "resolved": "http://registry.npm.taobao.org/istanbul-lib-coverage/download/istanbul-lib-coverage-1.2.1.tgz", - "integrity": "sha1-zPftzQoLubj3Kf7rCTBHD5r2ZPA=", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", + "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", "dev": true }, "istanbul-lib-hook": { @@ -10145,8 +9526,8 @@ }, "istanbul-lib-instrument": { "version": "1.10.2", - "resolved": "http://registry.npm.taobao.org/istanbul-lib-instrument/download/istanbul-lib-instrument-1.10.2.tgz", - "integrity": "sha1-H1XtEKw8R/K93dUweTUSZ1TQqco=", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", + "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", "dev": true, "requires": { "babel-generator": "^6.18.0", @@ -10446,6 +9827,12 @@ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", @@ -10477,16 +9864,16 @@ "dev": true }, "yargs": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.1.tgz", + "integrity": "sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw==", "dev": true, "requires": { "cliui": "^4.0.0", "decamelize": "^1.1.1", "find-up": "^2.1.0", "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", + "os-locale": "^3.1.0", "require-directory": "^2.1.1", "require-main-filename": "^1.0.1", "set-blocking": "^2.0.0", @@ -10671,12 +10058,6 @@ "regex-cache": "^0.4.2" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", @@ -11269,9 +10650,9 @@ "dev": true }, "source-map-support": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", - "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -11487,12 +10868,6 @@ "regex-cache": "^0.4.2" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", @@ -11526,6 +10901,12 @@ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", @@ -11569,16 +10950,16 @@ "dev": true }, "yargs": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.1.tgz", + "integrity": "sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw==", "dev": true, "requires": { "cliui": "^4.0.0", "decamelize": "^1.1.1", "find-up": "^2.1.0", "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", + "os-locale": "^3.1.0", "require-directory": "^2.1.1", "require-main-filename": "^1.0.1", "set-blocking": "^2.0.0", @@ -11879,53 +11260,67 @@ "merge-stream": "^1.0.1" } }, + "jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + }, "js-beautify": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.0.tgz", - "integrity": "sha512-OMwf/tPDpE/BLlYKqZOhqWsd3/z2N3KOlyn1wsCRGFwViE8LOQTcDtathQvHvZc+q+zWmcNAbwKSC+iJoMaH2Q==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.13.0.tgz", + "integrity": "sha512-/Tbp1OVzZjbwzwJQFIlYLm9eWQ+3aYbBXLSaqb1mEJzhcQAfrqMMQYtjb6io+U6KpD0ID4F+Id3/xcjH3l/sqA==", "dev": true, "requires": { "config-chain": "^1.1.12", "editorconfig": "^0.15.3", "glob": "^7.1.3", - "mkdirp": "~0.5.1", - "nopt": "~4.0.1" + "mkdirp": "^1.0.4", + "nopt": "^5.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } } }, "js-cookie": { - "version": "2.2.0", - "resolved": "http://registry.npm.taobao.org/js-cookie/download/js-cookie-2.2.0.tgz", - "integrity": "sha1-Gywnmm7s44ChIWi5JIUmWzWx7/s=" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" }, "js-levenshtein": { "version": "1.1.6", - "resolved": "http://registry.npm.taobao.org/js-levenshtein/download/js-levenshtein-1.1.6.tgz", - "integrity": "sha1-xs7ljrNVA3LfjeuF+tXOZs4B1Z0=" + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true }, "js-message": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.5.tgz", - "integrity": "sha1-IwDSSxrwjondCVvBpMnJz8uJLRU=", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.7.tgz", + "integrity": "sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==", "dev": true }, "js-queue": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/js-queue/-/js-queue-2.0.0.tgz", - "integrity": "sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/js-queue/-/js-queue-2.0.2.tgz", + "integrity": "sha512-pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA==", "dev": true, "requires": { - "easy-stack": "^1.0.0" + "easy-stack": "^1.0.1" } }, "js-tokens": { "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz", - "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=" + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { - "version": "3.13.1", - "resolved": "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz", - "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -11934,7 +11329,7 @@ }, "jsbn": { "version": "0.1.1", - "resolved": "http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, @@ -11973,49 +11368,55 @@ }, "dependencies": { "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", "dev": true } } }, "jsesc": { "version": "2.5.2", - "resolved": "http://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz", - "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=" + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, "json-parse-better-errors": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=" + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true }, "json-schema": { "version": "0.2.3", - "resolved": "http://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, "json-schema-traverse": { "version": "0.4.1", - "resolved": "http://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json-stringify-safe": { "version": "5.0.1", - "resolved": "http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, "json2module": { "version": "0.0.3", - "resolved": "http://registry.npm.taobao.org/json2module/download/json2module-0.0.3.tgz", + "resolved": "https://registry.npmjs.org/json2module/-/json2module-0.0.3.tgz", "integrity": "sha1-APtfSpt638PwZHwpyxe80Zeb6bI=", "requires": { "rw": "^1.3.2" @@ -12036,11 +11437,11 @@ "dev": true }, "json5": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/json5/download/json5-2.1.0.tgz", - "integrity": "sha1-56DGLEgoXGKNIKELhcibuAfDKFA=", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "requires": { - "minimist": "^1.2.0" + "minimist": "^1.2.5" } }, "jsonfile": { @@ -12052,15 +11453,9 @@ "graceful-fs": "^4.1.6" } }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, "jsprim": { "version": "1.4.1", - "resolved": "http://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "dev": true, "requires": { @@ -12078,7 +11473,7 @@ }, "kind-of": { "version": "3.2.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { "is-buffer": "^1.1.5" @@ -12142,16 +11537,16 @@ }, "lazy-cache": { "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" }, "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "^2.0.0" } }, "left-pad": { @@ -12161,39 +11556,43 @@ "dev": true }, "less": { - "version": "3.9.0", - "resolved": "http://registry.npm.taobao.org/less/download/less-3.9.0.tgz", - "integrity": "sha1-t1EcQ/N89X3Iff/ZiD7BISibFHQ=", + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/less/-/less-3.12.2.tgz", + "integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==", "dev": true, "requires": { - "clone": "^2.1.2", "errno": "^0.1.1", "graceful-fs": "^4.1.2", "image-size": "~0.5.0", + "make-dir": "^2.1.0", "mime": "^1.4.1", - "mkdirp": "^0.5.0", - "promise": "^7.1.1", - "request": "^2.83.0", - "source-map": "~0.6.0" + "native-request": "^1.0.5", + "source-map": "~0.6.0", + "tslib": "^1.10.0" }, "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "http://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } }, "mime": { "version": "1.6.0", - "resolved": "http://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz", - "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, "optional": true }, "source-map": { "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "optional": true } @@ -12201,8 +11600,8 @@ }, "less-loader": { "version": "4.1.0", - "resolved": "http://registry.npm.taobao.org/less-loader/download/less-loader-4.1.0.tgz", - "integrity": "sha1-LBNSxbCaT4QQFJAnT9UWdN5BNj4=", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.1.0.tgz", + "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", "dev": true, "requires": { "clone": "^2.1.1", @@ -12210,15 +11609,9 @@ "pify": "^3.0.0" }, "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "http://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, "pify": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true } @@ -12232,7 +11625,7 @@ }, "levn": { "version": "0.3.0", - "resolved": "http://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { @@ -12240,9 +11633,15 @@ "type-check": "~0.3.2" } }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, "load-json-file": { "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { @@ -12255,20 +11654,20 @@ "dependencies": { "pify": { "version": "2.3.0", - "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true } } }, "loader-fs-cache": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz", - "integrity": "sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", + "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", "dev": true, "requires": { "find-cache-dir": "^0.1.1", - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" }, "dependencies": { "find-cache-dir": { @@ -12314,23 +11713,23 @@ }, "loader-runner": { "version": "2.4.0", - "resolved": "http://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz", - "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=" + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" }, "loader-utils": { - "version": "1.2.3", - "resolved": "http://registry.npm.taobao.org/loader-utils/download/loader-utils-1.2.3.tgz", - "integrity": "sha1-H/XcaRHJ8KBiUxpMBLYJQGEIwsc=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "requires": { "big.js": "^5.2.2", - "emojis-list": "^2.0.0", + "emojis-list": "^3.0.0", "json5": "^1.0.1" }, "dependencies": { "json5": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz", - "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { "minimist": "^1.2.0" } @@ -12338,18 +11737,17 @@ } }, "locate-path": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", - "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==" + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, "lodash.defaultsdeep": { "version": "4.6.1", @@ -12359,7 +11757,7 @@ }, "lodash.get": { "version": "4.4.2", - "resolved": "http://registry.npm.taobao.org/lodash.get/download/lodash.get-4.4.2.tgz", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, "lodash.kebabcase": { @@ -12382,7 +11780,7 @@ }, "lodash.pick": { "version": "4.4.0", - "resolved": "http://registry.npm.taobao.org/lodash.pick/download/lodash.pick-4.4.0.tgz", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" }, "lodash.sortby": { @@ -12391,6 +11789,11 @@ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, + "lodash.toarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" + }, "lodash.transform": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz", @@ -12444,20 +11847,20 @@ } }, "loglevel": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.2.tgz", - "integrity": "sha512-Jt2MHrCNdtIe1W6co3tF5KXGRkzF+TYffiQstfXa04mrss9IKXzAAXYWak8LbZseAQY03sH2GzMCMU0ZOUc9bg==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", "dev": true }, "longest": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" }, "loose-envify": { "version": "1.4.0", - "resolved": "http://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz", - "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -12470,19 +11873,25 @@ }, "lru-cache": { "version": "5.1.1", - "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz", - "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { "yallist": "^3.0.2" } }, "make-dir": { - "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz", - "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "makeerror": { @@ -12494,11 +11903,6 @@ "tmpl": "1.0.x" } }, - "mamacro": { - "version": "0.0.3", - "resolved": "http://registry.npm.taobao.org/mamacro/download/mamacro-0.0.3.tgz", - "integrity": "sha1-rSyVdhl8nxq/MI0Hh4Zb2XWj8+Q=" - }, "map-age-cleaner": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", @@ -12510,12 +11914,12 @@ }, "map-cache": { "version": "0.2.2", - "resolved": "http://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-visit": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { "object-visit": "^1.0.0" @@ -12523,24 +11927,24 @@ }, "math-random": { "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/math-random/download/math-random-1.0.4.tgz", - "integrity": "sha1-XdaUPJOFSCZwFtTjTwV1gwgMUUw=", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", "dev": true }, "md5": { - "version": "2.2.1", - "resolved": "http://registry.npm.taobao.org/md5/download/md5-2.2.1.tgz", - "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", "requires": { - "charenc": "~0.0.1", - "crypt": "~0.0.1", - "is-buffer": "~1.1.1" + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" } }, "md5.js": { "version": "1.3.5", - "resolved": "http://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", - "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1", @@ -12548,9 +11952,9 @@ } }, "mdn-data": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", - "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", "dev": true }, "media-typer": { @@ -12560,17 +11964,27 @@ "dev": true }, "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + } } }, "memory-fs": { "version": "0.4.1", - "resolved": "http://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "requires": { "errno": "^0.1.3", @@ -12616,9 +12030,9 @@ } }, "merge2": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz", - "integrity": "sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, "methods": { @@ -12629,8 +12043,8 @@ }, "micromatch": { "version": "3.1.10", - "resolved": "http://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", - "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -12648,100 +12062,119 @@ }, "dependencies": { "kind-of": { - "version": "6.0.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" } } }, "miller-rabin": { "version": "4.0.1", - "resolved": "http://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", - "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, "mime": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.3.tgz", - "integrity": "sha512-QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", "dev": true }, "mime-db": { - "version": "1.40.0", - "resolved": "http://registry.npm.taobao.org/mime-db/download/mime-db-1.40.0.tgz", - "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=", + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { - "version": "2.1.24", - "resolved": "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.24.tgz", - "integrity": "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=", + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { - "mime-db": "1.40.0" + "mime-db": "1.44.0" } }, "mimic-fn": { "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz", - "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, "mini-css-extract-plugin": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz", - "integrity": "sha512-79q5P7YGI6rdnVyIAV4NXpBQJFWdkzJxCim3Kog4078fM0piAaFlwocqbejdWtLW1cEzCexPrh6EdyFsPgVdAw==", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz", + "integrity": "sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw==", "dev": true, "requires": { "loader-utils": "^1.1.0", - "normalize-url": "^2.0.1", + "normalize-url": "1.9.1", "schema-utils": "^1.0.0", "webpack-sources": "^1.1.0" }, "dependencies": { "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } } } }, "minimalistic-assert": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", - "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=" + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" }, "minimalistic-crypto-utils": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, "minimatch": { "version": "3.0.4", - "resolved": "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "mississippi": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", - "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", "requires": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", @@ -12756,9 +12189,9 @@ } }, "mixin-deep": { - "version": "1.3.1", - "resolved": "http://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.1.tgz", - "integrity": "sha1-pJ5yaNzhoNlpjkUybFYm3zVD0P4=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -12766,8 +12199,8 @@ "dependencies": { "is-extendable": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", - "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { "is-plain-object": "^2.0.4" } @@ -12775,36 +12208,29 @@ } }, "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } + "minimist": "^1.2.5" } }, "mockjs2": { - "version": "1.0.5", - "resolved": "http://registry.npm.taobao.org/mockjs2/download/mockjs2-1.0.5.tgz", - "integrity": "sha1-voD2cOBGgJKxVFQWlZHpNsO9Kfk=", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/mockjs2/-/mockjs2-1.0.8.tgz", + "integrity": "sha512-IXY9wzq3Pr2tybkJnT+dzrTz0GBRTtgXc7Cke/UUQyyWtbjDrck8uZ3NmMF4LaWgAD8vm8EMGcBk4Itc6nzpRg==", "requires": { "commander": "*" } }, "moment": { - "version": "2.24.0", - "resolved": "http://registry.npm.taobao.org/moment/download/moment-2.24.0.tgz", - "integrity": "sha1-DQVdU/UFKqZTyfbraLtdEr9cK1s=" + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" }, "move-concurrently": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "requires": { "aproba": "^1.1.1", @@ -12816,9 +12242,9 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", - "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "multicast-dns": { "version": "6.2.3", @@ -12837,13 +12263,13 @@ "dev": true }, "mutationobserver-shim": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz", - "integrity": "sha512-gciOLNN8Vsf7YzcqRjKzlAJ6y7e+B86u7i3KXes0xfxx/nfLmozlW1Vn+Sc9x3tPIePFgc1AeIFhtRgkqTjzDQ==" + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.7.tgz", + "integrity": "sha512-oRIDTyZQU96nAiz2AQyngwx1e89iApl2hN5AOYwyxLUB47UYsU3Wv9lJWqH5y/QdiYkc5HQLi23ZNB3fELdHcQ==" }, "mute-stream": { "version": "0.0.7", - "resolved": "http://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, @@ -12858,16 +12284,10 @@ "thenify-all": "^1.0.0" } }, - "nan": { - "version": "2.13.2", - "resolved": "http://registry.npm.taobao.org/nan/download/nan-2.13.2.tgz", - "integrity": "sha1-9R3Hrma6fV1V4ebU2AkugCya7+c=", - "optional": true - }, "nanomatch": { "version": "1.2.13", - "resolved": "http://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz", - "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -12883,15 +12303,22 @@ }, "dependencies": { "kind-of": { - "version": "6.0.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" } } }, + "native-request": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz", + "integrity": "sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==", + "dev": true, + "optional": true + }, "natural-compare": { "version": "1.4.0", - "resolved": "http://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, @@ -12902,14 +12329,14 @@ "dev": true }, "neo-async": { - "version": "2.6.0", - "resolved": "http://registry.npm.taobao.org/neo-async/download/neo-async-2.6.0.tgz", - "integrity": "sha1-udFeTXHGdikIZUtRg+04t1M0CDU=" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "nice-try": { "version": "1.0.5", - "resolved": "http://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", - "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "no-case": { @@ -12921,27 +12348,33 @@ "lower-case": "^1.1.1" } }, + "node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "dev": true + }, "node-cache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-4.2.0.tgz", - "integrity": "sha512-obRu6/f7S024ysheAjoYFEEBqqDWv4LOMNJEuO8vMeEw2AT4z+NCzO4hlc2lhI4vATzbCQv6kke9FVdx0RbCOw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-4.2.1.tgz", + "integrity": "sha512-BOb67bWg2dTyax5kdef5WfU3X8xu4wPg+zHzkvls0Q/QpYycIFRLEEIdAx9Wma43DxG6Qzn4illdZoYseKWa4A==", "dev": true, "requires": { "clone": "2.x", - "lodash": "4.x" - }, - "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - } + "lodash": "^4.17.15" + } + }, + "node-emoji": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", + "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", + "requires": { + "lodash.toarray": "^4.4.0" } }, "node-fetch": { "version": "1.6.3", - "resolved": "http://registry.npm.taobao.org/node-fetch/download/node-fetch-1.6.3.tgz", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz", "integrity": "sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ=", "dev": true, "requires": { @@ -12950,9 +12383,9 @@ } }, "node-forge": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", - "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", "dev": true }, "node-int64": { @@ -12962,20 +12395,20 @@ "dev": true }, "node-ipc": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/node-ipc/-/node-ipc-9.1.1.tgz", - "integrity": "sha512-FAyICv0sIRJxVp3GW5fzgaf9jwwRQxAKDJlmNFUL5hOy+W4X/I5AypyHoq0DXXbo9o/gt79gj++4cMr4jVWE/w==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/node-ipc/-/node-ipc-9.1.3.tgz", + "integrity": "sha512-8RS4RZyS/KMKKYG8mrje+cLxwATe9dBCuOiqKFSWND4oOuKytfuKCiR9yinvhoXF/nGdX/WnbywaUee+9U87zA==", "dev": true, "requires": { "event-pubsub": "4.3.0", - "js-message": "1.0.5", - "js-queue": "2.0.0" + "js-message": "1.0.7", + "js-queue": "2.0.2" } }, "node-libs-browser": { - "version": "2.2.0", - "resolved": "http://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.0.tgz", - "integrity": "sha1-xy9g2dRt4IqUDe27JfP/ovm7qnc=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", "requires": { "assert": "^1.1.1", "browserify-zlib": "^0.2.0", @@ -12987,7 +12420,7 @@ "events": "^3.0.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", - "path-browserify": "0.0.0", + "path-browserify": "0.0.1", "process": "^0.11.10", "punycode": "^1.2.4", "querystring-es3": "^0.2.0", @@ -12999,20 +12432,20 @@ "tty-browserify": "0.0.0", "url": "^0.11.0", "util": "^0.11.0", - "vm-browserify": "0.0.4" + "vm-browserify": "^1.0.1" }, "dependencies": { "punycode": { "version": "1.4.1", - "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" } } }, "node-notifier": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.0.tgz", - "integrity": "sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ==", + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", + "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", "dev": true, "requires": { "growly": "^1.3.0", @@ -13023,27 +12456,23 @@ } }, "node-releases": { - "version": "1.1.15", - "resolved": "http://registry.npm.taobao.org/node-releases/download/node-releases-1.1.15.tgz", - "integrity": "sha1-nnanOw7KO/eAGt2qDmzpDHlfK5o=", - "requires": { - "semver": "^5.3.0" - } + "version": "1.1.67", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", + "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==" }, "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1" } }, "normalize-package-data": { "version": "2.5.0", - "resolved": "http://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz", - "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { "hosted-git-info": "^2.1.4", @@ -13054,8 +12483,8 @@ }, "normalize-path": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", - "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=" + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "normalize-range": { "version": "0.1.2", @@ -13080,7 +12509,7 @@ }, "nprogress": { "version": "0.2.0", - "resolved": "http://registry.npm.taobao.org/nprogress/download/nprogress-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", "integrity": "sha1-y480xTIT2JVyP8urkH6UIq28r7E=" }, "nth-check": { @@ -13100,30 +12529,30 @@ }, "number-is-nan": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "nwsapi": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz", - "integrity": "sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, "oauth-sign": { "version": "0.9.0", - "resolved": "http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", - "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "http://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-copy": { "version": "0.1.0", - "resolved": "http://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { "copy-descriptor": "^0.1.0", @@ -13133,7 +12562,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -13148,47 +12577,94 @@ "dev": true }, "object-inspect": { - "version": "1.6.0", - "resolved": "http://registry.npm.taobao.org/object-inspect/download/object-inspect-1.6.0.tgz", - "integrity": "sha1-xwtsv3LydKq0w0wMgvUWe/gs8Vs=" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" + }, + "object-is": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", + "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } }, "object-keys": { "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", - "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=" + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, "object-visit": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { "isobject": "^3.0.0" } }, "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "http://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", + "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", + "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + } } }, "object.omit": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/object.omit/download/object.omit-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { @@ -13198,22 +12674,59 @@ }, "object.pick": { "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { "isobject": "^3.0.1" } }, "object.values": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", - "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", + "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", "dev": true, "requires": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", + "es-abstract": "^1.18.0-next.1", "has": "^1.0.3" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + } } }, "obuf": { @@ -13247,7 +12760,7 @@ }, "once": { "version": "1.4.0", - "resolved": "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1" @@ -13255,7 +12768,7 @@ }, "onetime": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { @@ -13263,9 +12776,9 @@ } }, "open": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.3.0.tgz", - "integrity": "sha512-6AHdrJxPvAXIowO/aIaeHZ8CeMdDf7qCyRNq8NwJpinmCdXhz+NZR7ie1Too94lpciCDsG+qHGO9Mt0svA4OqA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", "dev": true, "requires": { "is-wsl": "^1.1.0" @@ -13273,7 +12786,7 @@ }, "opencollective": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/opencollective/download/opencollective-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/opencollective/-/opencollective-1.0.3.tgz", "integrity": "sha1-ruY3K8KBRFg2kMPKja7PwSDdDvE=", "dev": true, "requires": { @@ -13287,13 +12800,13 @@ "dependencies": { "ansi-escapes": { "version": "1.4.0", - "resolved": "http://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", "dev": true }, "inquirer": { "version": "3.0.6", - "resolved": "http://registry.npm.taobao.org/inquirer/download/inquirer-3.0.6.tgz", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz", "integrity": "sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c=", "dev": true, "requires": { @@ -13312,9 +12825,15 @@ "through": "^2.3.6" } }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, "opn": { "version": "4.0.2", - "resolved": "http://registry.npm.taobao.org/opn/download/opn-4.0.2.tgz", + "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", "dev": true, "requires": { @@ -13325,15 +12844,15 @@ } }, "opencollective-postinstall": { - "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/opencollective-postinstall/download/opencollective-postinstall-2.0.2.tgz", - "integrity": "sha1-Vlfxvt5ptuM6RZObBh61PTxsOok=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", "dev": true }, "opener": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz", - "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true }, "opn": { @@ -13345,44 +12864,18 @@ "is-wsl": "^1.1.0" } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, - "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - } - } - }, "optionator": { - "version": "0.8.2", - "resolved": "http://registry.npm.taobao.org/optionator/download/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, "requires": { "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", + "fast-levenshtein": "~2.0.6", "levn": "~0.3.0", "prelude-ls": "~1.1.2", "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - }, - "dependencies": { - "wordwrap": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/wordwrap/download/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - } + "word-wrap": "~1.2.3" } }, "ora": { @@ -13456,7 +12949,7 @@ }, "os-browserify": { "version": "0.3.0", - "resolved": "http://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" }, "os-homedir": { @@ -13466,82 +12959,22 @@ "dev": true }, "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "dev": true, "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - } + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" } }, "os-tmpdir": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -13561,19 +12994,19 @@ "dev": true }, "p-limit": { - "version": "2.2.0", - "resolved": "http://registry.npm.taobao.org/p-limit/download/p-limit-2.2.0.tgz", - "integrity": "sha1-QXyZQeYCepq8ulCS3SkE4lW1+8I=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "requires": { "p-try": "^2.0.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", - "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "requires": { - "p-limit": "^2.0.0" + "p-limit": "^2.2.0" } }, "p-map": { @@ -13582,22 +13015,31 @@ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, "p-try": { "version": "2.2.0", - "resolved": "http://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=" + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "pako": { - "version": "1.0.10", - "resolved": "http://registry.npm.taobao.org/pako/download/pako-1.0.10.tgz", - "integrity": "sha1-Qyi621CGpCaqkPVBl31JVdpclzI=" + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, "parallel-transform": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.1.0.tgz", - "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", "requires": { - "cyclist": "~0.2.2", + "cyclist": "^1.0.1", "inherits": "^2.0.3", "readable-stream": "^2.1.5" } @@ -13618,8 +13060,8 @@ }, "parent-module": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/parent-module/download/parent-module-1.0.1.tgz", - "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { "callsites": "^3.0.0" @@ -13627,20 +13069,19 @@ "dependencies": { "callsites": { "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz", - "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true } } }, "parse-asn1": { - "version": "5.1.4", - "resolved": "http://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.4.tgz", - "integrity": "sha1-N/Zij4I/vesic7TVQENKIvPvH8w=", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", "requires": { - "asn1.js": "^4.0.0", + "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", "pbkdf2": "^3.0.3", "safe-buffer": "^5.1.1" @@ -13648,7 +13089,7 @@ }, "parse-glob": { "version": "3.0.4", - "resolved": "http://registry.npm.taobao.org/parse-glob/download/parse-glob-3.0.4.tgz", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { @@ -13660,13 +13101,13 @@ "dependencies": { "is-extglob": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, "is-glob": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { @@ -13677,7 +13118,7 @@ }, "parse-json": { "version": "2.2.0", - "resolved": "http://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { @@ -13686,7 +13127,7 @@ }, "parse-svg-path": { "version": "0.1.2", - "resolved": "http://registry.npm.taobao.org/parse-svg-path/download/parse-svg-path-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", "integrity": "sha1-en7A0esG+lMlx9PgCbhZoJtdSes=" }, "parse5": { @@ -13695,6 +13136,23 @@ "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", "dev": true }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + }, + "dependencies": { + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + } + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -13703,45 +13161,45 @@ }, "pascalcase": { "version": "0.1.1", - "resolved": "http://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-browserify": { - "version": "0.0.0", - "resolved": "http://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" }, "path-dirname": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" }, "path-exists": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" }, "path-is-absolute": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, "path-key": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { "version": "1.0.6", - "resolved": "http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz", - "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=" + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, "path-to-regexp": { "version": "0.1.7", @@ -13767,9 +13225,9 @@ } }, "pbkdf2": { - "version": "3.0.17", - "resolved": "http://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.17.tgz", - "integrity": "sha1-l2wgZTBhexTrsyEUI597CTNuk6Y=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -13780,23 +13238,29 @@ }, "performance-now": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "optional": true + }, "pify": { "version": "4.0.1", - "resolved": "http://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", - "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=" + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, "pinkie": { "version": "2.0.4", - "resolved": "http://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { @@ -13804,11 +13268,11 @@ } }, "pkg-dir": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", - "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "requires": { - "find-up": "^3.0.0" + "find-up": "^4.0.0" } }, "pkg-up": { @@ -13862,6 +13326,12 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true } } }, @@ -13880,7 +13350,7 @@ }, "point-at-length": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/point-at-length/download/point-at-length-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/point-at-length/-/point-at-length-1.0.2.tgz", "integrity": "sha1-kXbY1tfIFi8Stkb3B9ufDqcoEl4=", "requires": { "abs-svg-path": "~0.1.1", @@ -13889,48 +13359,42 @@ } }, "portfinder": { - "version": "1.0.20", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz", - "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==", + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", "dev": true, "requires": { - "async": "^1.5.2", - "debug": "^2.2.0", - "mkdirp": "0.5.x" + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "posix-character-classes": { "version": "0.1.1", - "resolved": "http://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { "version": "6.0.23", - "resolved": "http://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz", - "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "requires": { "chalk": "^2.4.1", "source-map": "^0.6.1", @@ -13939,16 +13403,16 @@ "dependencies": { "ansi-styles": { "version": "3.2.1", - "resolved": "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", - "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { "color-convert": "^1.9.0" } }, "chalk": { "version": "2.4.2", - "resolved": "http://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", - "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -13957,13 +13421,13 @@ }, "source-map": { "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "supports-color": { "version": "5.5.0", - "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { "has-flag": "^3.0.0" } @@ -13971,15 +13435,14 @@ } }, "postcss-calc": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.1.tgz", - "integrity": "sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", "dev": true, "requires": { - "css-unit-converter": "^1.1.1", - "postcss": "^7.0.5", - "postcss-selector-parser": "^5.0.0-rc.4", - "postcss-value-parser": "^3.3.1" + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" }, "dependencies": { "ansi-styles": { @@ -14014,9 +13477,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14024,6 +13487,12 @@ "supports-color": "^6.1.0" } }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -14086,9 +13555,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14155,9 +13624,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14223,9 +13692,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14291,9 +13760,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14359,9 +13828,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14427,9 +13896,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14455,37 +13924,13 @@ } }, "postcss-load-config": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", - "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", "dev": true, "requires": { - "cosmiconfig": "^4.0.0", + "cosmiconfig": "^5.0.0", "import-cwd": "^2.0.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", - "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", - "dev": true, - "requires": { - "is-directory": "^0.3.1", - "js-yaml": "^3.9.0", - "parse-json": "^4.0.0", - "require-from-string": "^2.0.1" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - } } }, "postcss-loader": { @@ -14532,9 +13977,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14542,6 +13987,17 @@ "supports-color": "^6.1.0" } }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -14603,9 +14059,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14676,9 +14132,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14687,12 +14143,12 @@ } }, "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", "dev": true, "requires": { - "dot-prop": "^4.1.1", + "dot-prop": "^5.2.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" } @@ -14756,9 +14212,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14827,9 +14283,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14900,9 +14356,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14971,9 +14427,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -14982,12 +14438,12 @@ } }, "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", "dev": true, "requires": { - "dot-prop": "^4.1.1", + "dot-prop": "^5.2.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" } @@ -15011,15 +14467,15 @@ }, "postcss-modules-extract-imports": { "version": "1.2.1", - "resolved": "http://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-1.2.1.tgz", - "integrity": "sha1-3IfjQUjsfqtfeR981YSYMzdbdBo=", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", + "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", "requires": { "postcss": "^6.0.1" } }, "postcss-modules-local-by-default": { "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", "requires": { "css-selector-tokenizer": "^0.7.0", @@ -15028,7 +14484,7 @@ }, "postcss-modules-scope": { "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", "requires": { "css-selector-tokenizer": "^0.7.0", @@ -15037,7 +14493,7 @@ }, "postcss-modules-values": { "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-1.3.0.tgz", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", "requires": { "icss-replace-symbols": "^1.1.0", @@ -15085,9 +14541,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15155,9 +14611,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15226,9 +14682,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15297,9 +14753,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15367,9 +14823,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15437,9 +14893,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15507,9 +14963,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15578,9 +15034,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15647,9 +15103,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15717,9 +15173,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15788,9 +15244,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15859,9 +15315,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -15887,22 +15343,15 @@ } }, "postcss-selector-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", - "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", "dev": true, "requires": { - "cssesc": "^2.0.0", + "cssesc": "^3.0.0", "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "dependencies": { - "cssesc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", - "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", - "dev": true - } + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" } }, "postcss-svgo": { @@ -15949,9 +15398,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -16019,9 +15468,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -16048,32 +15497,33 @@ }, "postcss-value-parser": { "version": "3.3.1", - "resolved": "http://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz", - "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=" + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" }, "prelude-ls": { "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, "preserve": { "version": "0.2.0", - "resolved": "http://registry.npm.taobao.org/preserve/download/preserve-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, "prettier": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.3.tgz", - "integrity": "sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw==", - "dev": true + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true, + "optional": true }, "pretty": { "version": "2.0.0", @@ -16098,13 +15548,13 @@ } }, "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", "dev": true, "requires": { - "renderkid": "^2.0.1", - "utila": "~0.4" + "lodash": "^4.17.20", + "renderkid": "^2.0.4" } }, "pretty-format": { @@ -16136,38 +15586,29 @@ }, "private": { "version": "0.1.8", - "resolved": "http://registry.npm.taobao.org/private/download/private-0.1.8.tgz", - "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=" + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true }, "process": { "version": "0.11.10", - "resolved": "http://registry.npm.taobao.org/process/download/process-0.11.10.tgz", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" }, "process-nextick-args": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.0.tgz", - "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "progress": { "version": "2.0.3", - "resolved": "http://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz", - "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "promise": { - "version": "7.3.1", - "resolved": "http://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz", - "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", - "dev": true, - "optional": true, - "requires": { - "asap": "~2.0.3" - } - }, "promise-inflight": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" }, "prompts": { @@ -16187,18 +15628,18 @@ "dev": true }, "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", "dev": true, "requires": { "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" + "ipaddr.js": "1.9.1" } }, "prr": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" }, "pseudomap": { @@ -16208,15 +15649,15 @@ "dev": true }, "psl": { - "version": "1.1.31", - "resolved": "http://registry.npm.taobao.org/psl/download/psl-1.1.31.tgz", - "integrity": "sha1-6aqG0BAbWxBcvpOsa3hM1UcnYYQ=", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", "dev": true }, "public-encrypt": { "version": "4.0.3", - "resolved": "http://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", - "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "requires": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", @@ -16224,12 +15665,19 @@ "parse-asn1": "^5.0.0", "randombytes": "^2.0.1", "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } }, "pump": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -16237,8 +15685,8 @@ }, "pumpify": { "version": "1.5.1", - "resolved": "http://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz", - "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "requires": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -16247,8 +15695,8 @@ "dependencies": { "pump": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", - "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -16258,8 +15706,8 @@ }, "punycode": { "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", - "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "q": { "version": "1.5.1", @@ -16269,60 +15717,47 @@ }, "qs": { "version": "6.5.2", - "resolved": "http://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz", - "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "dev": true, "requires": { - "decode-uri-component": "^0.2.0", "object-assign": "^4.1.0", "strict-uri-encode": "^1.0.0" } }, "querystring": { "version": "0.2.0", - "resolved": "http://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, "querystring-es3": { "version": "0.2.1", - "resolved": "http://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" }, "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, "quill": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.6.tgz", - "integrity": "sha512-K0mvhimWZN6s+9OQ249CH2IEPZ9JmkFuCQeHAOQax3EZ2nDJ3wfGh59mnlQaZV2i7u8eFarx6wAtvQKgShojug==", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz", + "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==", "requires": { "clone": "^2.1.1", "deep-equal": "^1.0.1", "eventemitter3": "^2.0.3", - "extend": "^3.0.1", + "extend": "^3.0.2", "parchment": "^1.1.4", "quill-delta": "^3.6.2" - }, - "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, - "eventemitter3": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", - "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=" - } } }, "quill-delta": { @@ -16345,8 +15780,8 @@ }, "randomatic": { "version": "3.1.1", - "resolved": "http://registry.npm.taobao.org/randomatic/download/randomatic-3.1.1.tgz", - "integrity": "sha1-t3bvxZN1mE42xTey9RofCv8Noe0=", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "dev": true, "requires": { "is-number": "^4.0.0", @@ -16356,30 +15791,30 @@ "dependencies": { "is-number": { "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/is-number/download/is-number-4.0.0.tgz", - "integrity": "sha1-ACbjf1RU1z41bf5lZGmYZ8an8P8=", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "dev": true }, "kind-of": { - "version": "6.0.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true } } }, "randombytes": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", - "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "requires": { "safe-buffer": "^5.1.0" } }, "randomfill": { "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz", - "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "requires": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" @@ -16405,7 +15840,7 @@ }, "read-pkg": { "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { @@ -16416,7 +15851,7 @@ "dependencies": { "path-type": { "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { @@ -16427,7 +15862,7 @@ }, "pify": { "version": "2.3.0", - "resolved": "http://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true } @@ -16435,7 +15870,7 @@ }, "read-pkg-up": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { @@ -16445,7 +15880,7 @@ "dependencies": { "find-up": { "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { @@ -16455,7 +15890,7 @@ }, "path-exists": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { @@ -16465,9 +15900,9 @@ } }, "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.6.tgz", - "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -16480,19 +15915,18 @@ "dependencies": { "isarray": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, "readdirp": { - "version": "2.2.1", - "resolved": "http://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz", - "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "optional": true, "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "picomatch": "^2.2.1" } }, "realpath-native": { @@ -16505,35 +15939,35 @@ } }, "regenerate": { - "version": "1.4.0", - "resolved": "http://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz", - "integrity": "sha1-SoVuxLVuQHfFV1icroXnpMiGmhE=" + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, "regenerate-unicode-properties": { - "version": "8.0.2", - "resolved": "http://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.0.2.tgz", - "integrity": "sha1-ezj6opYlI3bTY1WM+9qQyc5wlmI=", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", "requires": { "regenerate": "^1.4.0" } }, "regenerator-runtime": { "version": "0.11.1", - "resolved": "http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz", - "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" }, "regenerator-transform": { - "version": "0.13.4", - "resolved": "http://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.13.4.tgz", - "integrity": "sha1-GPZ2PPE4LGnDbfdsbOEizGlChPs=", + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", "requires": { - "private": "^0.1.6" + "@babel/runtime": "^7.8.4" } }, "regex-cache": { "version": "0.4.4", - "resolved": "http://registry.npm.taobao.org/regex-cache/download/regex-cache-0.4.4.tgz", - "integrity": "sha1-db3FiioUls7EihKDW8VMjVYjNt0=", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { "is-equal-shallow": "^0.1.3" @@ -16541,17 +15975,21 @@ }, "regex-not": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz", - "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" } }, - "regexp-tree": { - "version": "0.1.5", - "resolved": "http://registry.npm.taobao.org/regexp-tree/download/regexp-tree-0.1.5.tgz", - "integrity": "sha1-fNcfyhcZjQS0F279eXE/KZgAk5c=" + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } }, "regexpp": { "version": "1.1.0", @@ -16561,41 +15999,41 @@ "optional": true }, "regexpu-core": { - "version": "4.5.4", - "resolved": "http://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.5.4.tgz", - "integrity": "sha1-CA2dAiiaqH/hZnpPUTa8mKauuq4=", + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", "requires": { "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.0.2", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" + "unicode-match-property-value-ecmascript": "^1.2.0" } }, "regjsgen": { - "version": "0.5.0", - "resolved": "http://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.0.tgz", - "integrity": "sha1-p2NNwI+JIJwgSa3aNSVxH7lyZd0=" + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" }, "regjsparser": { - "version": "0.6.0", - "resolved": "http://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.0.tgz", - "integrity": "sha1-8eaui32iuulsmTmbhozWyTOiupw=", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", "requires": { "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "http://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" } } }, "regression": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/regression/download/regression-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/regression/-/regression-2.0.1.tgz", "integrity": "sha1-jSnD6CJKEIUMNeM36FqLL6w7DIc=" }, "relateurl": { @@ -16606,20 +16044,20 @@ }, "remove-trailing-separator": { "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" }, "renderkid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", - "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.4.tgz", + "integrity": "sha512-K2eXrSOJdq+HuKzlcjOlGoOarUu5SDguDEhE7+Ah4zuOWL40j8A/oHvLlLob9PSTNvVnBd+/q0Er1QfpEuem5g==", "dev": true, "requires": { "css-select": "^1.1.0", "dom-converter": "^0.2", "htmlparser2": "^3.3.0", - "strip-ansi": "^3.0.0", - "utila": "^0.4.0" + "lodash": "^4.17.20", + "strip-ansi": "^3.0.0" }, "dependencies": { "css-select": { @@ -16634,6 +16072,12 @@ "nth-check": "~1.0.1" } }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true + }, "domutils": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", @@ -16648,17 +16092,17 @@ }, "repeat-element": { "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz", - "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=" + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" }, "repeat-string": { "version": "1.6.1", - "resolved": "http://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "repeating": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { @@ -16666,9 +16110,9 @@ } }, "request": { - "version": "2.88.0", - "resolved": "http://registry.npm.taobao.org/request/download/request-2.88.0.tgz", - "integrity": "sha1-nC/KT301tZLv5Xx/ClXoEFIST+8=", + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "dev": true, "requires": { "aws-sign2": "~0.7.0", @@ -16678,7 +16122,7 @@ "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", - "har-validator": "~5.1.0", + "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", @@ -16688,27 +16132,27 @@ "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", + "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" } }, "request-promise-core": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", - "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", "dev": true, "requires": { - "lodash": "^4.17.11" + "lodash": "^4.17.19" } }, "request-promise-native": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", - "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", "dev": true, "requires": { - "request-promise-core": "1.1.2", + "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" } @@ -16719,15 +16163,9 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, "require-main-filename": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, @@ -16760,9 +16198,9 @@ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" }, "resolve": { - "version": "1.10.0", - "resolved": "http://registry.npm.taobao.org/resolve/download/resolve-1.10.0.tgz", - "integrity": "sha1-O9qur0XMB/N1ZW39LlTtCBCxAbo=", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "requires": { "path-parse": "^1.0.6" } @@ -16793,12 +16231,12 @@ }, "resolve-url": { "version": "0.2.1", - "resolved": "http://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "restore-cursor": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { @@ -16808,7 +16246,7 @@ }, "resumer": { "version": "0.0.0", - "resolved": "http://registry.npm.taobao.org/resumer/download/resumer-0.0.0.tgz", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", "requires": { "through": "~2.3.4" @@ -16816,8 +16254,14 @@ }, "ret": { "version": "0.1.15", - "resolved": "http://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz", - "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=" + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true }, "rgb-regex": { "version": "1.0.1", @@ -16833,24 +16277,24 @@ }, "right-align": { "version": "0.1.3", - "resolved": "http://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "requires": { "align-text": "^0.1.1" } }, "rimraf": { - "version": "2.6.3", - "resolved": "http://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz", - "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { "glob": "^7.1.3" } }, "ripemd160": { "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", - "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" @@ -16858,7 +16302,7 @@ }, "rollup": { "version": "0.25.8", - "resolved": "http://registry.npm.taobao.org/rollup/download/rollup-0.25.8.tgz", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.25.8.tgz", "integrity": "sha1-v2zoO4dRDRY0Ru6qV37WpvxYNeA=", "requires": { "chalk": "^1.1.1", @@ -16873,17 +16317,14 @@ "dev": true }, "run-async": { - "version": "2.3.0", - "resolved": "http://registry.npm.taobao.org/run-async/download/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", - "dev": true, - "requires": { - "is-promise": "^2.1.0" - } + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true }, "run-queue": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "requires": { "aproba": "^1.1.1" @@ -16891,12 +16332,12 @@ }, "rw": { "version": "1.3.3", - "resolved": "http://registry.npm.taobao.org/rw/download/rw-1.3.3.tgz", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" }, "rx": { "version": "4.1.0", - "resolved": "http://registry.npm.taobao.org/rx/download/rx-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", "dev": true }, @@ -16918,9 +16359,9 @@ } }, "rxjs": { - "version": "6.4.0", - "resolved": "http://registry.npm.taobao.org/rxjs/download/rxjs-6.4.0.tgz", - "integrity": "sha1-87sP572n+2nerAwW8XtQsLh5BQQ=", + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -16928,12 +16369,12 @@ }, "safe-buffer": { "version": "5.1.2", - "resolved": "http://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safe-regex": { "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { "ret": "~0.1.10" @@ -16941,8 +16382,8 @@ }, "safer-buffer": { "version": "2.1.2", - "resolved": "http://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sane": { "version": "2.5.2", @@ -16959,6 +16400,37 @@ "minimist": "^1.1.1", "walker": "~1.0.5", "watch": "~0.18.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } } }, "sax": { @@ -16968,18 +16440,18 @@ "dev": true }, "schema-utils": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", - "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" } }, "select": { "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/select/download/select-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" }, "select-hose": { @@ -16989,18 +16461,18 @@ "dev": true }, "selfsigned": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz", - "integrity": "sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==", + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", "dev": true, "requires": { - "node-forge": "0.7.5" + "node-forge": "^0.10.0" } }, "semver": { - "version": "5.7.0", - "resolved": "http://registry.npm.taobao.org/semver/download/semver-5.7.0.tgz", - "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=" + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "send": { "version": "0.17.1", @@ -17045,13 +16517,22 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true } } }, "serialize-javascript": { - "version": "1.7.0", - "resolved": "http://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.7.0.tgz", - "integrity": "sha1-1uDfsqODKoyURo5usduX5VoZKmU=" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.0" + } }, "serve-index": { "version": "1.9.1", @@ -17089,10 +16570,10 @@ "statuses": ">= 1.4.0 < 2" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "setprototypeof": { @@ -17122,9 +16603,9 @@ "dev": true }, "set-value": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/set-value/download/set-value-2.0.0.tgz", - "integrity": "sha1-ca5KiPD+77v1LR6mBPP7MV67YnQ=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -17134,7 +16615,7 @@ "dependencies": { "extend-shallow": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" @@ -17144,7 +16625,7 @@ }, "setimmediate": { "version": "1.0.5", - "resolved": "http://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "setprototypeof": { @@ -17155,17 +16636,17 @@ }, "sha.js": { "version": "2.4.11", - "resolved": "http://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz", - "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, "shallow-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.1.0.tgz", - "integrity": "sha512-0SW1nWo1hnabO62SEeHsl8nmTVVEzguVWZCj5gaQrgWAxz/BaCja4OWdJBWLVPDxdtE/WU7c98uUCCXyPHSCvw==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" }, "shallowequal": { "version": "1.1.0", @@ -17174,7 +16655,7 @@ }, "shebang-command": { "version": "1.2.0", - "resolved": "http://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { @@ -17183,21 +16664,15 @@ }, "shebang-regex": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "dev": true, - "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" - } + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "dev": true }, "shellwords": { "version": "0.1.1", @@ -17212,15 +16687,15 @@ "dev": true }, "signal-exit": { - "version": "3.0.2", - "resolved": "http://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, "simple-statistics": { "version": "6.1.1", - "resolved": "http://registry.npm.taobao.org/simple-statistics/download/simple-statistics-6.1.1.tgz", - "integrity": "sha1-46B5n/xJkU1vQhxaSsWF9qE+K60=" + "resolved": "https://registry.npmjs.org/simple-statistics/-/simple-statistics-6.1.1.tgz", + "integrity": "sha512-zGwn0DDRa9Zel4H4n2pjTFIyGoAGpnpjrGIctreCxj5XWrcx9v7Xy7270FkC967WMmcvuc8ZU7m0ZG+hGN7gAA==" }, "simple-swizzle": { "version": "0.2.2", @@ -17263,8 +16738,8 @@ }, "snapdragon": { "version": "0.8.2", - "resolved": "http://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz", - "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -17278,15 +16753,15 @@ "dependencies": { "debug": { "version": "2.6.9", - "resolved": "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { "ms": "2.0.0" } }, "define-property": { "version": "0.2.5", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -17294,28 +16769,23 @@ }, "extend-shallow": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { "is-extendable": "^0.1.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, "source-map": { "version": "0.5.7", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, "snapdragon-node": { "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", - "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -17324,7 +16794,7 @@ "dependencies": { "define-property": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { "is-descriptor": "^1.0.0" @@ -17332,24 +16802,24 @@ }, "is-accessor-descriptor": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", - "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", - "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -17357,34 +16827,35 @@ } }, "kind-of": { - "version": "6.0.2", - "resolved": "http://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz", - "integrity": "sha1-ARRrNqYhjmTljzqNZt5df8b20FE=" + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" } } }, "snapdragon-util": { "version": "3.0.1", - "resolved": "http://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz", - "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { "kind-of": "^3.2.0" } }, "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", "dev": true, "requires": { "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" } }, "sockjs-client": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", - "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", "dev": true, "requires": { "debug": "^3.2.5", @@ -17396,29 +16867,35 @@ }, "dependencies": { "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" } }, "faye-websocket": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", - "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", "dev": true, "requires": { "websocket-driver": ">=0.5.1" } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true } } }, "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", "dev": true, "requires": { "is-plain-obj": "^1.0.0" @@ -17426,23 +16903,23 @@ }, "source-list-map": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz", - "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=" + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" }, "source-map": { "version": "0.1.32", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.1.32.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=", "requires": { "amdefine": ">=0.0.4" } }, "source-map-resolve": { - "version": "0.5.2", - "resolved": "http://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.2.tgz", - "integrity": "sha1-cuLMNAlVQ+Q7LGKyxMENSpBU8lk=", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "requires": { - "atob": "^2.1.1", + "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", @@ -17451,7 +16928,7 @@ }, "source-map-support": { "version": "0.3.3", - "resolved": "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.3.3.tgz", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.3.3.tgz", "integrity": "sha1-NJAJd9W6PwfHdX7nLnO7GptTdU8=", "requires": { "source-map": "0.1.32" @@ -17459,13 +16936,13 @@ }, "source-map-url": { "version": "0.4.0", - "resolved": "http://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "spdx-correct": { - "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz", - "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -17473,15 +16950,15 @@ } }, "spdx-exceptions": { - "version": "2.2.0", - "resolved": "http://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.2.0.tgz", - "integrity": "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -17489,15 +16966,15 @@ } }, "spdx-license-ids": { - "version": "3.0.4", - "resolved": "http://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.4.tgz", - "integrity": "sha1-dezRqI3owYTvAV6vtRtbSL/RG7E=", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", "dev": true }, "spdy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.0.tgz", - "integrity": "sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, "requires": { "debug": "^4.1.0", @@ -17508,13 +16985,19 @@ }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true } } }, @@ -17533,18 +17016,24 @@ }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", @@ -17556,22 +17045,22 @@ }, "split-string": { "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz", - "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { "extend-shallow": "^3.0.0" } }, "sprintf-js": { "version": "1.0.3", - "resolved": "http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "sshpk": { "version": "1.16.1", - "resolved": "http://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz", - "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, "requires": { "asn1": "~0.2.3", @@ -17587,8 +17076,8 @@ }, "ssri": { "version": "6.0.1", - "resolved": "http://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz", - "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", "requires": { "figgy-pudding": "^3.5.1" } @@ -17600,20 +17089,31 @@ "dev": true }, "stack-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", - "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==", - "dev": true + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.4.tgz", + "integrity": "sha512-IPDJfugEGbfizBwBZRZ3xpccMdRyP5lqsBWXGQWimVjua/ccLCeMOAVjlc1R7LxFjo5sEDhyNIXd8mo/AiDS9w==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } }, "stackframe": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.0.4.tgz", - "integrity": "sha512-to7oADIniaYwS3MhtCa/sQhrxidCCQiF/qp4/m5iN3ipf0Y7Xlri0f6eG29r08aL7JYl8n32AF3Q5GYBZ7K8vw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", + "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==", "dev": true }, "static-extend": { "version": "0.1.2", - "resolved": "http://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { "define-property": "^0.2.5", @@ -17622,7 +17122,7 @@ "dependencies": { "define-property": { "version": "0.2.5", - "resolved": "http://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { "is-descriptor": "^0.1.0" @@ -17644,8 +17144,8 @@ }, "stream-browserify": { "version": "2.0.2", - "resolved": "http://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz", - "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "requires": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" @@ -17653,8 +17153,8 @@ }, "stream-each": { "version": "1.2.3", - "resolved": "http://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", - "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", "requires": { "end-of-stream": "^1.1.0", "stream-shift": "^1.0.0" @@ -17662,8 +17162,8 @@ }, "stream-http": { "version": "2.8.3", - "resolved": "http://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz", - "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "requires": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.1", @@ -17673,9 +17173,9 @@ } }, "stream-shift": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" }, "strict-uri-encode": { "version": "1.1.0", @@ -17717,8 +17217,8 @@ }, "string-width": { "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz", - "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", @@ -17727,64 +17227,190 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "strip-ansi": { "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.padend": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.1.tgz", + "integrity": "sha512-eCzTASPnoCr5Ht+Vn1YXgm8SB015hHKgEIMu9Nr9bQmLhRBxKRfmzSj/IQsxDFc8JInJDDFA0qXwK+xxI7wDkg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + } + } + }, + "string.prototype.padstart": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.1.tgz", + "integrity": "sha512-kcFjKhQYg40AK9MITCWYr/vIebruAD01sc/fxi8szHJaEG7Rke4XHw6LU9c1VWXh/+J/PxvWLLf/aIAGKhXkAQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true } } }, - "string.prototype.padend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", - "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", - "dev": true, + "string.prototype.trim": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.3.tgz", + "integrity": "sha512-16IL9pIBA5asNOSukPfxX2W68BaBvxyiRK16H3RA/lWW9BDosh+w7f+LhomPHpXJ82QEe7w7/rY/S1CV97raLg==", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.4.3", - "function-bind": "^1.0.2" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" + } } }, - "string.prototype.padstart": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.0.0.tgz", - "integrity": "sha1-W8+tOfRkm7LQMSkuGbzwtRDUskI=", - "dev": true, + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.4.3", - "function-bind": "^1.0.2" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" } }, - "string.prototype.trim": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/string.prototype.trim/download/string.prototype.trim-1.1.2.tgz", - "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.0", - "function-bind": "^1.0.2" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" } }, "string_decoder": { "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", - "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "^2.0.0" @@ -17792,7 +17418,7 @@ }, "strip-bom": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { @@ -17805,6 +17431,12 @@ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, "strip-indent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", @@ -17813,17 +17445,29 @@ }, "strip-json-comments": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, "style-loader": { "version": "0.23.1", - "resolved": "http://registry.npm.taobao.org/style-loader/download/style-loader-0.23.1.tgz", - "integrity": "sha1-y5FUYG8+dxq2xKtjcCahBJF02SU=", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", + "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", "requires": { "loader-utils": "^1.1.0", "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } } }, "stylehacks": { @@ -17869,9 +17513,9 @@ } }, "postcss": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz", - "integrity": "sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA==", + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -17880,12 +17524,12 @@ } }, "postcss-selector-parser": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", - "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", "dev": true, "requires": { - "dot-prop": "^4.1.1", + "dot-prop": "^5.2.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" } @@ -17909,7 +17553,7 @@ }, "supports-color": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, "svg-tags": { @@ -17919,18 +17563,17 @@ "dev": true }, "svgo": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.2.2.tgz", - "integrity": "sha512-rAfulcwp2D9jjdGu+0CuqlrAUin6bBWrpoqXWwKDZZZJfXcUXQSxLJOFJCQCSA0x0pP2U0TxSlJu2ROq5Bq6qA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", "dev": true, "requires": { "chalk": "^2.4.1", "coa": "^2.0.2", "css-select": "^2.0.0", "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.28", - "css-url-regex": "^1.1.0", - "csso": "^3.5.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", "js-yaml": "^3.13.1", "mkdirp": "~0.5.1", "object.values": "^1.1.0", @@ -17972,9 +17615,9 @@ } }, "symbol-tree": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", - "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, "table": { @@ -18062,48 +17705,50 @@ }, "tapable": { "version": "1.1.3", - "resolved": "http://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz", - "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=" + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" }, "tape": { - "version": "4.10.1", - "resolved": "http://registry.npm.taobao.org/tape/download/tape-4.10.1.tgz", - "integrity": "sha1-9zvmCIjcsSDwi1f5R69lqClQal8=", + "version": "4.13.3", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.3.tgz", + "integrity": "sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw==", "requires": { - "deep-equal": "~1.0.1", + "deep-equal": "~1.1.1", "defined": "~1.0.0", + "dotignore": "~0.1.2", "for-each": "~0.3.3", "function-bind": "~1.1.1", - "glob": "~7.1.3", + "glob": "~7.1.6", "has": "~1.0.3", - "inherits": "~2.0.3", - "minimist": "~1.2.0", - "object-inspect": "~1.6.0", - "resolve": "~1.10.0", + "inherits": "~2.0.4", + "is-regex": "~1.0.5", + "minimist": "~1.2.5", + "object-inspect": "~1.7.0", + "resolve": "~1.17.0", "resumer": "~0.0.0", - "string.prototype.trim": "~1.1.2", + "string.prototype.trim": "~1.2.1", "through": "~2.3.8" } }, "terser": { - "version": "3.17.0", - "resolved": "http://registry.npm.taobao.org/terser/download/terser-3.17.0.tgz", - "integrity": "sha1-+I/77aDetWN/nSSw2mb04VqxDLI=", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", "requires": { - "commander": "^2.19.0", + "commander": "^2.20.0", "source-map": "~0.6.1", - "source-map-support": "~0.5.10" + "source-map-support": "~0.5.12" }, "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-support": { - "version": "0.5.12", - "resolved": "http://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.12.tgz", - "integrity": "sha1-tPOxDVGFelrwE4086AA7IBYT1Zk=", + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -18112,31 +17757,99 @@ } }, "terser-webpack-plugin": { - "version": "1.2.3", - "resolved": "http://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.2.3.tgz", - "integrity": "sha1-P5i8kC+sPl0N5zCGn1BmhWEmLsg=", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", "requires": { - "cacache": "^11.0.2", - "find-cache-dir": "^2.0.0", + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", "schema-utils": "^1.0.0", - "serialize-javascript": "^1.4.0", + "serialize-javascript": "^4.0.0", "source-map": "^0.6.1", - "terser": "^3.16.1", - "webpack-sources": "^1.1.0", - "worker-farm": "^1.5.2" + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" }, "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, "source-map": { "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, "test-exclude": { "version": "4.2.3", - "resolved": "http://registry.npm.taobao.org/test-exclude/download/test-exclude-4.2.3.tgz", - "integrity": "sha1-qaXmRHTkOYM5JFoKdprXwvSpfCA=", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz", + "integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==", "dev": true, "requires": { "arrify": "^1.0.1", @@ -18148,7 +17861,7 @@ "dependencies": { "arr-diff": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/arr-diff/download/arr-diff-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { @@ -18157,13 +17870,13 @@ }, "array-unique": { "version": "0.2.1", - "resolved": "http://registry.npm.taobao.org/array-unique/download/array-unique-0.2.1.tgz", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true }, "braces": { "version": "1.8.5", - "resolved": "http://registry.npm.taobao.org/braces/download/braces-1.8.5.tgz", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { @@ -18174,7 +17887,7 @@ }, "expand-brackets": { "version": "0.1.5", - "resolved": "http://registry.npm.taobao.org/expand-brackets/download/expand-brackets-0.1.5.tgz", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { @@ -18183,7 +17896,7 @@ }, "extglob": { "version": "0.3.2", - "resolved": "http://registry.npm.taobao.org/extglob/download/extglob-0.3.2.tgz", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { @@ -18192,13 +17905,13 @@ }, "is-extglob": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/is-extglob/download/is-extglob-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, "is-glob": { "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/is-glob/download/is-glob-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { @@ -18207,7 +17920,7 @@ }, "micromatch": { "version": "2.3.11", - "resolved": "http://registry.npm.taobao.org/micromatch/download/micromatch-2.3.11.tgz", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { @@ -18228,7 +17941,7 @@ }, "normalize-path": { "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { @@ -18239,14 +17952,14 @@ }, "text-table": { "version": "0.2.0", - "resolved": "http://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "thenify": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", - "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", "dev": true, "requires": { "any-promise": "^1.0.0" @@ -18262,9 +17975,9 @@ } }, "thread-loader": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/thread-loader/-/thread-loader-2.1.2.tgz", - "integrity": "sha512-7xpuc9Ifg6WU+QYw/8uUqNdRwMD+N5gjwHKMqETrs96Qn+7BHwECpt2Brzr4HFlf4IAkZsayNhmGdbkBsTJ//w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/thread-loader/-/thread-loader-2.1.3.tgz", + "integrity": "sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg==", "dev": true, "requires": { "loader-runner": "^2.3.1", @@ -18278,30 +17991,35 @@ "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", "dev": true }, + "throttle-debounce": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.3.0.tgz", + "integrity": "sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ==" + }, "through": { "version": "2.3.8", - "resolved": "http://registry.npm.taobao.org/through/download/through-2.3.8.tgz", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "through2": { "version": "2.0.5", - "resolved": "http://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", - "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "thunky": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", - "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, "timers-browserify": { - "version": "2.0.10", - "resolved": "http://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.10.tgz", - "integrity": "sha1-HSjj0qrfHVpZlsTp+VYBzQU0gK4=", + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", "requires": { "setimmediate": "^1.0.4" } @@ -18314,18 +18032,18 @@ }, "tiny-emitter": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz", - "integrity": "sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=" + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" }, "tinycolor2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", - "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", + "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" }, "tmp": { "version": "0.0.33", - "resolved": "http://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz", - "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { "os-tmpdir": "~1.0.2" @@ -18339,17 +18057,17 @@ }, "to-arraybuffer": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" }, "to-fast-properties": { "version": "2.0.0", - "resolved": "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, "to-object-path": { "version": "0.3.0", - "resolved": "http://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { "kind-of": "^3.0.2" @@ -18357,8 +18075,8 @@ }, "to-regex": { "version": "3.0.2", - "resolved": "http://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz", - "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -18368,7 +18086,7 @@ }, "to-regex-range": { "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { "is-number": "^3.0.0", @@ -18382,9 +18100,9 @@ "dev": true }, "topojson-client": { - "version": "3.0.0", - "resolved": "http://registry.npm.taobao.org/topojson-client/download/topojson-client-3.0.0.tgz", - "integrity": "sha1-H5kpOnfvQqRI0DKoGqmCtz82DS8=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.0.1.tgz", + "integrity": "sha512-rfGGzyqefpxOaxvV9OTF9t+1g+WhjGEbAIuCcmKYrQkxr0nttjMMyzZsK+NhLW4cTl2g1bz2jQczPUtEshpbVQ==", "requires": { "commander": "2" } @@ -18396,21 +18114,13 @@ "dev": true }, "tough-cookie": { - "version": "2.4.3", - "resolved": "http://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.4.3.tgz", - "integrity": "sha1-U/Nto/R3g7CSWvoG/587FlKA94E=", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, "tr46": { @@ -18424,8 +18134,9 @@ }, "trim-right": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/trim-right/download/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true }, "tryer": { "version": "1.0.1", @@ -18453,19 +18164,48 @@ } } }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, "tslib": { - "version": "1.9.3", - "resolved": "http://registry.npm.taobao.org/tslib/download/tslib-1.9.3.tgz", - "integrity": "sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY=" + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "tty-browserify": { "version": "0.0.0", - "resolved": "http://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" }, "tunnel-agent": { "version": "0.6.0", - "resolved": "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { @@ -18474,13 +18214,13 @@ }, "tweetnacl": { "version": "0.14.5", - "resolved": "http://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, "type-check": { "version": "0.3.2", - "resolved": "http://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { @@ -18488,9 +18228,9 @@ } }, "type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true }, "type-is": { @@ -18505,12 +18245,12 @@ }, "typedarray": { "version": "0.0.6", - "resolved": "http://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "uglify-js": { "version": "2.8.29", - "resolved": "http://registry.npm.taobao.org/uglify-js/download/uglify-js-2.8.29.tgz", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "requires": { "source-map": "~0.5.1", @@ -18520,71 +18260,50 @@ "dependencies": { "source-map": { "version": "0.5.7", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, "uglify-to-browserify": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", "optional": true }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=" + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" }, "unicode-match-property-ecmascript": { "version": "1.0.4", - "resolved": "http://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", "requires": { "unicode-canonical-property-names-ecmascript": "^1.0.4", "unicode-property-aliases-ecmascript": "^1.0.4" } }, "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha1-W0tCbgjROoA2Xg1lesemwexGonc=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" }, "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "http://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha1-qcxsx85joKMCP8meNBuUQx1AWlc=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" }, "union-value": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/union-value/download/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "http://registry.npm.taobao.org/set-value/download/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } + "set-value": "^2.0.1" } }, "uniq": { @@ -18601,16 +18320,16 @@ }, "unique-filename": { "version": "1.1.1", - "resolved": "http://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz", - "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "requires": { "unique-slug": "^2.0.0" } }, "unique-slug": { - "version": "2.0.1", - "resolved": "http://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.1.tgz", - "integrity": "sha1-Xp7cbRzo+yZNsYpQfvm9hURFHKY=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "requires": { "imurmurhash": "^0.1.4" } @@ -18635,7 +18354,7 @@ }, "unset-value": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { "has-value": "^0.3.1", @@ -18644,7 +18363,7 @@ "dependencies": { "has-value": { "version": "0.3.1", - "resolved": "http://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { "get-value": "^2.0.3", @@ -18654,7 +18373,7 @@ "dependencies": { "isobject": { "version": "2.1.0", - "resolved": "http://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "requires": { "isarray": "1.0.0" @@ -18664,20 +18383,20 @@ }, "has-values": { "version": "0.1.4", - "resolved": "http://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" }, "isarray": { "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" } } }, "upath": { - "version": "1.1.2", - "resolved": "http://registry.npm.taobao.org/upath/download/upath-1.1.2.tgz", - "integrity": "sha1-PbZYYA7a7sy+bbXmhNZ+6MKs0Gg=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" }, "upper-case": { "version": "1.1.3", @@ -18686,21 +18405,21 @@ "dev": true }, "uri-js": { - "version": "4.2.2", - "resolved": "http://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz", - "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "requires": { "punycode": "^2.1.0" } }, "urix": { "version": "0.1.0", - "resolved": "http://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, "url": { "version": "0.11.0", - "resolved": "http://registry.npm.taobao.org/url/download/url-0.11.0.tgz", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "requires": { "punycode": "1.3.2", @@ -18709,7 +18428,7 @@ "dependencies": { "punycode": { "version": "1.3.2", - "resolved": "http://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" } } @@ -18723,6 +18442,19 @@ "loader-utils": "^1.1.0", "mime": "^2.0.3", "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } } }, "url-parse": { @@ -18735,31 +18467,46 @@ "requires-port": "^1.0.0" } }, + "url-search-params-polyfill": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/url-search-params-polyfill/-/url-search-params-polyfill-7.0.1.tgz", + "integrity": "sha512-bAw7L2E+jn9XHG5P9zrPnHdO0yJub4U+yXJOdpcpkr7OBd9T8oll4lUos0iSGRcDvfZoLUKfx9a6aNmIhJ4+mQ==" + }, "use": { "version": "3.1.1", - "resolved": "http://registry.npm.taobao.org/use/download/use-3.1.1.tgz", - "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=" + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, "util": { "version": "0.11.1", - "resolved": "http://registry.npm.taobao.org/util/download/util-0.11.1.tgz", - "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", "requires": { "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } } }, "util-deprecate": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util.promisify": { - "version": "1.0.0", - "resolved": "http://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz", - "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" } }, "utila": { @@ -18775,15 +18522,24 @@ "dev": true }, "uuid": { - "version": "3.3.2", - "resolved": "http://registry.npm.taobao.org/uuid/download/uuid-3.3.2.tgz", - "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true }, + "v-viewer": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/v-viewer/-/v-viewer-1.5.1.tgz", + "integrity": "sha512-Q5ICKzmYQD0qTf+hti2Lhgy6UYY2zgFr+YrN9a3yPgr7pOjYrG405Pz4+6Z6FXlhdhGysCWFJUNCI2tsIyvjWQ==", + "requires": { + "throttle-debounce": "^2.0.1", + "viewerjs": "^1.5.0" + } + }, "validate-npm-package-license": { "version": "3.0.4", - "resolved": "http://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { "spdx-correct": "^3.0.0", @@ -18797,15 +18553,15 @@ "dev": true }, "vendors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.3.tgz", - "integrity": "sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", "dev": true }, "venn.js": { "version": "0.2.20", - "resolved": "http://registry.npm.taobao.org/venn.js/download/venn.js-0.2.20.tgz", - "integrity": "sha1-Pw5QzHXLofWGkqijL2e9eq8apvo=", + "resolved": "https://registry.npmjs.org/venn.js/-/venn.js-0.2.20.tgz", + "integrity": "sha512-bb5SYq/wamY9fvcuErb9a0FJkgIFHJjkLZWonQ+DoKKuDX3WPH2B4ouI1ce4K2iejBklQy6r1ly8nOGIyOCO6w==", "requires": { "d3-selection": "^1.0.2", "d3-transition": "^1.0.1", @@ -18814,7 +18570,7 @@ }, "verror": { "version": "1.10.0", - "resolved": "http://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { @@ -18823,12 +18579,17 @@ "extsprintf": "^1.2.0" } }, + "viewerjs": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/viewerjs/-/viewerjs-1.8.0.tgz", + "integrity": "sha512-ck2geFG3Brg0FcfXIhs2kl3BMqInqW5ZFIFqKbTT/KKG2rS5UGC/47CfKQSBqwiyJVtEIe/dbt/Opu45sBz7Zw==" + }, "viser": { - "version": "2.4.5", - "resolved": "http://registry.npm.taobao.org/viser/download/viser-2.4.5.tgz", - "integrity": "sha1-eB9O8p/ciJMYnuiPdFCAvmqnfOw=", + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/viser/-/viser-2.4.9.tgz", + "integrity": "sha512-DKsqtMa3TZYQHEZ7jp4kpNp1Iqomda7d+3IkkIjIdKQvfL8OeksXfy/ECZUY1hTrGoOe7cq85+6PMS+MPn4mgQ==", "requires": { - "@antv/g2": "^3.4.0", + "@antv/g2": "~3.5.3", "@antv/g2-brush": "^0.0.2", "@antv/g2-plugin-slider": "^2.1.0", "@types/d3-format": "*", @@ -18839,16 +18600,16 @@ }, "dependencies": { "@types/node": { - "version": "8.10.46", - "resolved": "http://registry.npm.taobao.org/@types/node/download/@types/node-8.10.46.tgz", - "integrity": "sha1-EhYdtIp3Xoxpwc//K+VFYQOBBW8=" + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" } } }, "viser-vue": { - "version": "2.4.5", - "resolved": "http://registry.npm.taobao.org/viser-vue/download/viser-vue-2.4.5.tgz", - "integrity": "sha1-dzGLsyETxcEIaMhcecu7/0oW05Q=", + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/viser-vue/-/viser-vue-2.4.8.tgz", + "integrity": "sha512-ERAREN+6k/ywrwT+swcMo4CDIAq6dBjnB0+lhmsSfaip06BGHSBfNKg6yl7/4GJ9Nk2kioUw3llNhEboJuIKmQ==", "requires": { "@types/node": "*", "viser": "^2.0.0", @@ -18856,30 +18617,27 @@ } }, "vm-browserify": { - "version": "0.0.4", - "resolved": "http://registry.npm.taobao.org/vm-browserify/download/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "requires": { - "indexof": "0.0.1" - } + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" }, "vue": { - "version": "2.6.10", - "resolved": "http://registry.npm.taobao.org/vue/download/vue-2.6.10.tgz", - "integrity": "sha1-pysaQqTYKnIepDjRtr9V5mGVxjc=" + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz", + "integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==" }, "vue-clipboard2": { "version": "0.2.1", - "resolved": "http://registry.npm.taobao.org/vue-clipboard2/download/vue-clipboard2-0.2.1.tgz", - "integrity": "sha1-nwZpCvHJiu80S+H8S+sAzcUwfuE=", + "resolved": "https://registry.npmjs.org/vue-clipboard2/-/vue-clipboard2-0.2.1.tgz", + "integrity": "sha512-n6ie/0g0bKohmLlC/5ja1esq2Q0jQ5hWmhNSZcvCsWfDeDnVARjl6cBB9p72XV1nlVfuqsZcfV8HTjjZAIlLBA==", "requires": { "clipboard": "^2.0.0" } }, "vue-cropper": { "version": "0.4.4", - "resolved": "http://registry.npm.taobao.org/vue-cropper/download/vue-cropper-0.4.4.tgz", - "integrity": "sha1-Y8hbpcf52XeTcJMMhSK2HesXfJc=", + "resolved": "https://registry.npmjs.org/vue-cropper/-/vue-cropper-0.4.4.tgz", + "integrity": "sha512-5xJ3jWyTnsx3JM+lFV5mwdPjKfpYi2rvByEh4H0sFtCMILo3YTmMti2pq9YeoPLybJz04ho+wemYw5TqidYV5g==", "requires": { "@babel/core": "^7.1.2", "@babel/plugin-transform-runtime": "^7.1.0", @@ -18923,19 +18681,28 @@ } }, "vue-hot-reload-api": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.3.tgz", - "integrity": "sha512-KmvZVtmM26BQOMK1rwUZsrqxEGeKiYSZGA7SNWE6uExx8UX/cj9hq2MRV/wWC3Cq6AoeDGk57rL9YMFRel/q+g==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", "dev": true }, + "vue-input-tag": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/vue-input-tag/-/vue-input-tag-2.0.7.tgz", + "integrity": "sha512-MiTVXg/OQ0SEPmQRPBw77akCrANAn/MUvo8U5fXLEwwtzGAASpGSru2uBvCMakDB5zF0ZV3ynkX/V8tOfSU6qA==", + "requires": { + "vue": "^2.5.17" + } + }, "vue-jest": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/vue-jest/-/vue-jest-3.0.4.tgz", - "integrity": "sha512-PY9Rwt4OyaVlA+KDJJ0614CbEvNOkffDI9g9moLQC/2DDoo0YrqZm7dHi13Q10uoK5Nt5WCYFdeAheOExPah0w==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/vue-jest/-/vue-jest-3.0.7.tgz", + "integrity": "sha512-PIOxFM+wsBMry26ZpfBvUQ/DGH2hvp5khDQ1n51g3bN0TwFwTy4J85XVfxTRMukqHji/GnAoGUnlZ5Ao73K62w==", "dev": true, "requires": { "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0", "chalk": "^2.1.0", + "deasync": "^0.1.15", "extract-from-css": "^0.4.4", "find-babel-config": "^1.1.0", "js-beautify": "^1.6.14", @@ -18984,12 +18751,12 @@ } }, "vue-loader": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.7.0.tgz", - "integrity": "sha512-x+NZ4RIthQOxcFclEcs8sXGEWqnZHodL2J9Vq+hUz+TDZzBaDIh1j3d9M2IUlTjtrHTZy4uMuRdTi8BGws7jLA==", + "version": "15.9.5", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.5.tgz", + "integrity": "sha512-oeMOs2b5o5gRqkxfds10bCx6JeXYTwivRgbb8hzOrcThD2z1+GqEKE3EX9A2SGbsYDf4rXwRg6D5n1w0jO5SwA==", "dev": true, "requires": { - "@vue/component-compiler-utils": "^2.5.1", + "@vue/component-compiler-utils": "^3.1.0", "hash-sum": "^1.0.2", "loader-utils": "^1.1.0", "vue-hot-reload-api": "^2.3.0", @@ -18998,8 +18765,8 @@ }, "vue-ls": { "version": "3.2.1", - "resolved": "http://registry.npm.taobao.org/vue-ls/download/vue-ls-3.2.1.tgz", - "integrity": "sha1-JdHHWzpRwXAYEp3mB7RLsSCjOFo=" + "resolved": "https://registry.npmjs.org/vue-ls/-/vue-ls-3.2.1.tgz", + "integrity": "sha512-JoZDpSu0qV5AM50vspEzOut2lcm8R0tr5WG99jMHh14qFXkUes3ZdmDMG/p8iSQVQpg0pd/svGwM9Nd7OI2oaw==" }, "vue-quill-editor": { "version": "3.0.6", @@ -19016,9 +18783,9 @@ "integrity": "sha512-UzD8t1CG+aoWVOOpGd5KcaCNtCgUc0byaKhJMH+6N7H/p1ThVkYl/VCt7DmCrdhUlzZK+hT5JPTKAdrbWi0nNw==" }, "vue-router": { - "version": "3.0.6", - "resolved": "http://registry.npm.taobao.org/vue-router/download/vue-router-3.0.6.tgz", - "integrity": "sha1-Lk8PnLsLltAgWrJpDP5YiTUTasM=" + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.4.9.tgz", + "integrity": "sha512-CGAKWN44RqXW06oC+u4mPgHLQQi2t6vLD/JbGRDAXm0YpMv0bgpKuU5bBd7AvMgfTz9kXVRIWKHqRwGEb8xFkA==" }, "vue-style-loader": { "version": "4.1.2", @@ -19032,19 +18799,19 @@ }, "vue-svg-component-builder": { "version": "2.0.3", - "resolved": "http://registry.npm.taobao.org/vue-svg-component-builder/download/vue-svg-component-builder-2.0.3.tgz", - "integrity": "sha1-xOChkHNYeriC/W9yu3s7Y7Q5aAE=", + "resolved": "https://registry.npmjs.org/vue-svg-component-builder/-/vue-svg-component-builder-2.0.3.tgz", + "integrity": "sha512-We9ZLSYPQx9y3v5+HNWyjkGFaxZMlWPTqYBU08y4YT46f453BQ4JxIoS8rV0a8PIxnKap7m/YIzrdIfoHxrpaA==", "dev": true }, "vue-svg-component-runtime": { "version": "1.0.1", - "resolved": "http://registry.npm.taobao.org/vue-svg-component-runtime/download/vue-svg-component-runtime-1.0.1.tgz", - "integrity": "sha1-xMJBzfkv6tdC7zMTO5l/9C2LnuY=" + "resolved": "https://registry.npmjs.org/vue-svg-component-runtime/-/vue-svg-component-runtime-1.0.1.tgz", + "integrity": "sha512-TkmZ1qwFeFJSRH6b6KVqDU2f8DCSdoNoo/veKqog7FsyF0UETTI66ALKX1rrLXy/KT6LSaJB5IfZkuuSfaQsEA==" }, "vue-svg-icon-loader": { "version": "2.1.1", - "resolved": "http://registry.npm.taobao.org/vue-svg-icon-loader/download/vue-svg-icon-loader-2.1.1.tgz", - "integrity": "sha1-e5mcywZHzjs5A7+/U1/iR+EbAyo=", + "resolved": "https://registry.npmjs.org/vue-svg-icon-loader/-/vue-svg-icon-loader-2.1.1.tgz", + "integrity": "sha512-JOL4fyh9rnbcqMLTF5NVG8YVupnLIMHMY+3CLMaEb9xDUmfk6Cp3RqyI/8gBea7d51i4lyNdzZ3tQ/EJLQxQDA==", "dev": true, "requires": { "@types/loader-utils": "1.1.3", @@ -19055,25 +18822,31 @@ "dependencies": { "@types/node": { "version": "8.9.5", - "resolved": "http://registry.npm.taobao.org/@types/node/download/@types/node-8.9.5.tgz", - "integrity": "sha1-FiuGS8cL4Hfm2yErMidUkXkp6XY=", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.9.5.tgz", + "integrity": "sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ==", "dev": true }, "big.js": { "version": "3.2.0", - "resolved": "http://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz", - "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true }, "json5": { "version": "0.5.1", - "resolved": "http://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, "loader-utils": { "version": "1.1.0", - "resolved": "http://registry.npm.taobao.org/loader-utils/download/loader-utils-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", "dev": true, "requires": { @@ -19085,9 +18858,9 @@ } }, "vue-template-compiler": { - "version": "2.6.10", - "resolved": "http://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.10.tgz", - "integrity": "sha1-MjtPNJXwT6o1AzN6gvXWUHeZycw=", + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz", + "integrity": "sha512-OzzZ52zS41YUbkCBfdXShQTe69j1gQDZ9HIX8miuC9C3rBCk9wIRjLiZZLrmX9V+Ftq/YEyv1JaVr5Y/hNtByg==", "requires": { "de-indent": "^1.0.2", "he": "^1.1.0" @@ -19100,17 +18873,17 @@ "dev": true }, "vuex": { - "version": "3.1.0", - "resolved": "http://registry.npm.taobao.org/vuex/download/vuex-3.1.0.tgz", - "integrity": "sha1-Y0uBUVzwz+l2vR/+lgF1XlH4Q7k=" + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.0.tgz", + "integrity": "sha512-W74OO2vCJPs9/YjNjW8lLbj+jzT24waTo2KShI8jLvJW8OaIkgb3wuAMA7D+ZiUxDOx3ubwSZTaJBip9G8a3aQ==" }, "w3c-hr-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", - "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", "dev": true, "requires": { - "browser-process-hrtime": "^0.1.2" + "browser-process-hrtime": "^1.0.0" } }, "walker": { @@ -19146,13 +18919,122 @@ } }, "watchpack": { - "version": "1.6.0", - "resolved": "http://registry.npm.taobao.org/watchpack/download/watchpack-1.6.0.tgz", - "integrity": "sha1-S8EsLr6KonenHx0/FNaFx7RGzQA=", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", "requires": { - "chokidar": "^2.0.2", + "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "optional": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true, + "requires": { + "bindings": "^1.5.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } } }, "wbuf": { @@ -19180,44 +19062,55 @@ "dev": true }, "webpack": { - "version": "4.30.0", - "resolved": "http://registry.npm.taobao.org/webpack/download/webpack-4.30.0.tgz", - "integrity": "sha1-rKdu91YwoixJ/MI1s5tMV1kdM6k=", - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.0.5", - "acorn-dynamic-import": "^4.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "chrome-trace-event": "^1.0.0", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.0", + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", + "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "micromatch": "^3.1.8", - "mkdirp": "~0.5.0", - "neo-async": "^2.5.0", - "node-libs-browser": "^2.0.0", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", - "tapable": "^1.1.0", - "terser-webpack-plugin": "^1.1.0", - "watchpack": "^1.5.0", - "webpack-sources": "^1.3.0" + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } } }, "webpack-bundle-analyzer": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.3.2.tgz", - "integrity": "sha512-7qvJLPKB4rRWZGjVp5U1KEjwutbDHSKboAl0IfafnrdXMrgC0tOtZbQD6Rw0u4cmpgRN4O02Fc0t8eAT+FgGzA==", + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz", + "integrity": "sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA==", "dev": true, "requires": { - "acorn": "^6.0.7", - "acorn-walk": "^6.1.1", + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", "bfj": "^6.1.1", "chalk": "^2.4.1", "commander": "^2.18.0", @@ -19225,12 +19118,24 @@ "express": "^4.16.3", "filesize": "^3.6.1", "gzip-size": "^5.0.0", - "lodash": "^4.17.10", + "lodash": "^4.17.19", "mkdirp": "^0.5.1", "opener": "^1.5.1", "ws": "^6.0.0" }, "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -19282,59 +19187,99 @@ } }, "webpack-dev-middleware": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz", - "integrity": "sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", "dev": true, "requires": { "memory-fs": "^0.4.1", - "mime": "^2.4.2", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", "range-parser": "^1.2.1", "webpack-log": "^2.0.0" } }, "webpack-dev-server": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.4.1.tgz", - "integrity": "sha512-CRqZQX2ryMtrg0r3TXQPpNh76eM1HD3Wmu6zDBxIKi/d2y+4aa28Ia8weNT0bfgWpY6Vs3Oq/K8+DjfbR+tWYw==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", "dev": true, "requires": { "ansi-html": "0.0.7", "bonjour": "^3.5.0", - "chokidar": "^2.1.6", + "chokidar": "^2.1.8", "compression": "^1.7.4", "connect-history-api-fallback": "^1.6.0", "debug": "^4.1.1", "del": "^4.1.1", - "express": "^4.17.0", - "html-entities": "^1.2.1", - "http-proxy-middleware": "^0.19.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", "import-local": "^2.0.0", "internal-ip": "^4.3.0", "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", "killable": "^1.0.1", - "loglevel": "^1.6.1", + "loglevel": "^1.6.8", "opn": "^5.5.0", - "portfinder": "^1.0.20", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", "schema-utils": "^1.0.0", - "selfsigned": "^1.10.4", - "semver": "^6.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", "serve-index": "^1.9.1", - "sockjs": "0.3.19", - "sockjs-client": "1.3.0", - "spdy": "^4.0.0", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", "strip-ansi": "^3.0.1", "supports-color": "^6.1.0", "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.0", + "webpack-dev-middleware": "^3.7.2", "webpack-log": "^2.0.0", - "yargs": "12.0.5" + "ws": "^6.2.1", + "yargs": "^13.3.2" }, "dependencies": { "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, "camelcase": { @@ -19344,9 +19289,9 @@ "dev": true }, "chokidar": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", - "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "requires": { "anymatch": "^2.0.0", @@ -19364,34 +19309,86 @@ } }, "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" }, "dependencies": { "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "^4.1.0" } } } }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } } }, "import-local": { @@ -19404,55 +19401,117 @@ "resolve-cwd": "^2.0.0" } }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", "dev": true }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "invert-kv": "^2.0.0" + "binary-extensions": "^1.0.0" } }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } }, "semver": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz", - "integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", @@ -19462,30 +19521,59 @@ "has-flag": "^3.0.0" } }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", + "cliui": "^5.0.0", "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^3.0.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -19505,18 +19593,18 @@ } }, "webpack-merge": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz", - "integrity": "sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", "dev": true, "requires": { - "lodash": "^4.17.5" + "lodash": "^4.17.15" } }, "webpack-sources": { - "version": "1.3.0", - "resolved": "http://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.3.0.tgz", - "integrity": "sha1-KijcufH0X+lg2PFJMlK17mUw+oU=", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "requires": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -19524,31 +19612,33 @@ "dependencies": { "source-map": { "version": "0.6.1", - "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, "webpack-theme-color-replacer": { - "version": "1.2.15", - "resolved": "https://registry.npmjs.org/webpack-theme-color-replacer/-/webpack-theme-color-replacer-1.2.15.tgz", - "integrity": "sha512-tht5fk6ce6ZwXqPbvkLBJMS+iAM3H60pyexKvZHEbkHpQ1Onq2Y0u6+wUbNBQ/QfDEvCTX5MSkNfD2w/ZJEeKg==", - "dev": true + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/webpack-theme-color-replacer/-/webpack-theme-color-replacer-1.3.14.tgz", + "integrity": "sha512-PKT/OD2+iXxGuGDxH/MVkt36EKYtYckowzPlZBdPOgGIVk8MbvLfdRFYOmWz6vhVJpyIGWtpfpoP9ecWZP8qYg==", + "dev": true, + "requires": { + "webpack-sources": "*" + } }, "websocket-driver": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", "dev": true, "requires": { - "http-parser-js": ">=0.4.0", "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, "whatwg-encoding": { @@ -19579,8 +19669,8 @@ }, "which": { "version": "1.3.1", - "resolved": "http://registry.npm.taobao.org/which/download/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -19594,23 +19684,29 @@ }, "window-size": { "version": "0.1.0", - "resolved": "http://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" }, "wolfy87-eventemitter": { "version": "5.1.0", - "resolved": "http://registry.npm.taobao.org/wolfy87-eventemitter/download/wolfy87-eventemitter-5.1.0.tgz", + "resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-5.1.0.tgz", "integrity": "sha1-NcGsDdGsDBXjXZgVCPwiCEoToBE=" }, + "word-wrap": { + "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==", + "dev": true + }, "wordwrap": { "version": "0.0.2", - "resolved": "http://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" }, "worker-farm": { - "version": "1.6.0", - "resolved": "http://registry.npm.taobao.org/worker-farm/download/worker-farm-1.6.0.tgz", - "integrity": "sha1-rsxAWXb6talVJhgIRvDboojzpKA=", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", "requires": { "errno": "~0.1.7" } @@ -19649,7 +19745,7 @@ }, "wrappy": { "version": "1.0.2", - "resolved": "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { @@ -19689,23 +19785,23 @@ "dev": true }, "xtend": { - "version": "4.0.1", - "resolved": "http://registry.npm.taobao.org/xtend/download/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { "version": "4.0.0", - "resolved": "http://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz", - "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=" + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, "yallist": { - "version": "3.0.3", - "resolved": "http://registry.npm.taobao.org/yallist/download/yallist-3.0.3.tgz", - "integrity": "sha1-tLBJ4xS+VF486AIjbWzSLNkcPek=" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "yargs": { "version": "3.10.0", - "resolved": "http://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "requires": { "camelcase": "^1.0.2", diff --git a/package.json b/package.json index 10ac546f0f..36316a8a79 100644 --- a/package.json +++ b/package.json @@ -1,137 +1,142 @@ -{ - "name": "vue-antd-pro", - "version": "2.0.0", - "private": true, - "scripts": { - "serve": "vue-cli-service serve", - "build": "vue-cli-service build", - "build:preview": "vue-cli-service build --mode preview", - "lint": "vue-cli-service lint", - "lint:nofix": "vue-cli-service lint --no-fix", - "test:unit": "vue-cli-service test:unit", - "postinstall": "opencollective-postinstall" - }, - "dependencies": { - "@antv/data-set": "^0.10.1", - "ant-design-vue": "~1.3.9", - "axios": "^0.19.0", - "core-js": "^2.6.5", - "enquire.js": "^2.1.6", - "js-cookie": "^2.2.0", - "lodash.get": "^4.4.2", - "lodash.pick": "^4.4.0", - "md5": "^2.2.1", - "mockjs2": "^1.0.5", - "moment": "^2.24.0", - "nprogress": "^0.2.0", - "viser-vue": "^2.3.3", - "vue": "^2.5.22", - "vue-clipboard2": "^0.2.1", - "vue-cropper": "0.4.4", - "vue-ls": "^3.2.0", - "vue-quill-editor": "^3.0.6", - "vue-router": "^3.0.1", - "vue-svg-component-runtime": "^1.0.1", - "vuex": "^3.1.0", - "wangeditor": "^3.1.1" - }, - "devDependencies": { - "@ant-design/colors": "^3.1.0", - "@babel/polyfill": "^7.2.5", - "@vue/cli-plugin-babel": "^3.7.0", - "@vue/cli-plugin-eslint": "^3.7.0", - "@vue/cli-plugin-unit-jest": "^3.7.0", - "@vue/cli-service": "^3.7.0", - "@vue/eslint-config-standard": "^4.0.0", - "@vue/test-utils": "^1.0.0-beta.20", - "babel-core": "7.0.0-bridge.0", - "babel-eslint": "^10.0.1", - "babel-jest": "^23.6.0", - "babel-plugin-import": "^1.11.0", - "eslint": "^5.8.0", - "eslint-plugin-html": "^5.0.0", - "eslint-plugin-vue": "^5.0.0", - "less": "^3.8.1", - "less-loader": "^4.1.0", - "opencollective": "^1.0.3", - "opencollective-postinstall": "^2.0.2", - "vue-svg-icon-loader": "^2.1.1", - "vue-template-compiler": "^2.5.22", - "webpack-theme-color-replacer": "^1.2.15" - }, - "eslintConfig": { - "root": true, - "env": { - "node": true - }, - "extends": [ - "plugin:vue/strongly-recommended", - "@vue/standard" - ], - "parserOptions": { - "parser": "babel-eslint" - }, - "rules": { - "generator-star-spacing": "off", - "no-mixed-operators": 0, - "vue/max-attributes-per-line": [ - 2, - { - "singleline": 5, - "multiline": { - "max": 1, - "allowFirstLine": false - } - } - ], - "vue/attribute-hyphenation": 0, - "vue/html-self-closing": 0, - "vue/component-name-in-template-casing": 0, - "vue/html-closing-bracket-spacing": 0, - "vue/singleline-html-element-content-newline": 0, - "vue/no-unused-components": 0, - "vue/multiline-html-element-content-newline": 0, - "vue/no-use-v-if-with-v-for": 0, - "vue/html-closing-bracket-newline": 0, - "vue/no-parsing-error": 0, - "no-console": 0, - "no-tabs": 0, - "quotes": [ - 2, - "single", - { - "avoidEscape": true, - "allowTemplateLiterals": true - } - ], - "semi": [ - 2, - "never", - { - "beforeStatementContinuationChars": "never" - } - ], - "no-delete-var": 2, - "prefer-const": [ - 2, - { - "ignoreReadBeforeAssign": false - } - ] - } - }, - "postcss": { - "plugins": { - "autoprefixer": {} - } - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 10" - ], - "collective": { - "type": "opencollective", - "url": "https://opencollective.com/ant-design-pro-vue" - } -} +{ + "name": "vue-antd-pro", + "version": "2.0.0", + "private": true, + "scripts": { + "serve": "vue-cli-service serve", + "build": "vue-cli-service build", + "build:preview": "vue-cli-service build --mode preview", + "lint": "vue-cli-service lint", + "lint:nofix": "vue-cli-service lint --no-fix", + "test:unit": "vue-cli-service test:unit", + "postinstall": "opencollective-postinstall" + }, + "dependencies": { + "@ant-design/icons-vue": "^6.1.0", + "@antv/data-set": "^0.10.1", + "ant-design-vue": "~1.3.9", + "axios": "^0.19.0", + "core-js": "^2.6.5", + "enquire.js": "^2.1.6", + "jquery": "^3.4.1", + "js-cookie": "^2.2.0", + "lodash.get": "^4.4.2", + "lodash.pick": "^4.4.0", + "md5": "^2.2.1", + "mockjs2": "^1.0.5", + "moment": "^2.24.0", + "nprogress": "^0.2.0", + "url-search-params-polyfill": "^7.0.0", + "v-viewer": "^1.4.2", + "viser-vue": "^2.3.3", + "vue": "^2.5.22", + "vue-clipboard2": "^0.2.1", + "vue-cropper": "0.4.4", + "vue-input-tag": "^2.0.6", + "vue-ls": "^3.2.0", + "vue-quill-editor": "^3.0.6", + "vue-router": "^3.0.1", + "vue-svg-component-runtime": "^1.0.1", + "vuex": "^3.1.0", + "wangeditor": "^3.1.1" + }, + "devDependencies": { + "@ant-design/colors": "^3.1.0", + "@babel/polyfill": "^7.2.5", + "@vue/cli-plugin-babel": "^3.7.0", + "@vue/cli-plugin-eslint": "^3.7.0", + "@vue/cli-plugin-unit-jest": "^3.7.0", + "@vue/cli-service": "^3.7.0", + "@vue/eslint-config-standard": "^4.0.0", + "@vue/test-utils": "^1.0.0-beta.20", + "babel-core": "7.0.0-bridge.0", + "babel-eslint": "^10.0.1", + "babel-jest": "^23.6.0", + "babel-plugin-import": "^1.11.0", + "eslint": "^5.8.0", + "eslint-plugin-html": "^5.0.0", + "eslint-plugin-vue": "^5.0.0", + "less": "^3.8.1", + "less-loader": "^4.1.0", + "opencollective": "^1.0.3", + "opencollective-postinstall": "^2.0.2", + "vue-svg-icon-loader": "^2.1.1", + "vue-template-compiler": "^2.5.22", + "webpack-theme-color-replacer": "^1.2.15" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/strongly-recommended", + "@vue/standard" + ], + "parserOptions": { + "parser": "babel-eslint" + }, + "rules": { + "generator-star-spacing": "off", + "no-mixed-operators": 0, + "vue/max-attributes-per-line": [ + 2, + { + "singleline": 5, + "multiline": { + "max": 1, + "allowFirstLine": false + } + } + ], + "vue/attribute-hyphenation": 0, + "vue/html-self-closing": 0, + "vue/component-name-in-template-casing": 0, + "vue/html-closing-bracket-spacing": 0, + "vue/singleline-html-element-content-newline": 0, + "vue/no-unused-components": 0, + "vue/multiline-html-element-content-newline": 0, + "vue/no-use-v-if-with-v-for": 0, + "vue/html-closing-bracket-newline": 0, + "vue/no-parsing-error": 0, + "no-console": 0, + "no-tabs": 0, + "quotes": [ + 2, + "single", + { + "avoidEscape": true, + "allowTemplateLiterals": true + } + ], + "semi": [ + 2, + "never", + { + "beforeStatementContinuationChars": "never" + } + ], + "no-delete-var": 2, + "prefer-const": [ + 2, + { + "ignoreReadBeforeAssign": false + } + ] + } + }, + "postcss": { + "plugins": { + "autoprefixer": {} + } + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not ie <= 10" + ], + "collective": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design-pro-vue" + } +} diff --git a/public/color.less b/public/color.less index c7e6b1b23b..58ca0ffaa8 100644 --- a/public/color.less +++ b/public/color.less @@ -2342,8 +2342,6 @@ i.trigger:hover { border-radius: 2px; color: #fff; } -.logo { -} .logo h1 { color: white; } diff --git a/public/index.html b/public/index.html index a73a7821be..55be4e28d9 100644 --- a/public/index.html +++ b/public/index.html @@ -5,19 +5,115 @@ <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <link rel="icon" href="<%= BASE_URL %>logo.png"> - <title>Ant Design Pro</title> - <style>#loading-mask{position:fixed;left:0;top:0;height:100%;width:100%;background:#fff;user-select:none;z-index:9999;overflow:hidden}.loading-wrapper{position:absolute;top:50%;left:50%;transform:translate(-50%,-100%)}.loading-dot{animation:antRotate 1.2s infinite linear;transform:rotate(45deg);position:relative;display:inline-block;font-size:64px;width:64px;height:64px;box-sizing:border-box}.loading-dot i{width:22px;height:22px;position:absolute;display:block;background-color:#1890ff;border-radius:100%;transform:scale(.75);transform-origin:50% 50%;opacity:.3;animation:antSpinMove 1s infinite linear alternate}.loading-dot i:nth-child(1){top:0;left:0}.loading-dot i:nth-child(2){top:0;right:0;-webkit-animation-delay:.4s;animation-delay:.4s}.loading-dot i:nth-child(3){right:0;bottom:0;-webkit-animation-delay:.8s;animation-delay:.8s}.loading-dot i:nth-child(4){bottom:0;left:0;-webkit-animation-delay:1.2s;animation-delay:1.2s}@keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@-webkit-keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@keyframes antSpinMove{to{opacity:1}}@-webkit-keyframes antSpinMove{to{opacity:1}}</style> + <title>支扩中国</title> + <style> + #loading-mask { + position: fixed; + left: 0; + top: 0; + height: 100%; + width: 100%; + background: #fff; + user-select: none; + z-index: 9999; + overflow: hidden + } + + .loading-wrapper { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -100%) + } + + .loading-dot { + animation: antRotate 1.2s infinite linear; + transform: rotate(45deg); + position: relative; + display: inline-block; + font-size: 64px; + width: 64px; + height: 64px; + box-sizing: border-box + } + + .loading-dot i { + width: 22px; + height: 22px; + position: absolute; + display: block; + background-color: #1890ff; + border-radius: 100%; + transform: scale(.75); + transform-origin: 50% 50%; + opacity: .3; + animation: antSpinMove 1s infinite linear alternate + } + + .loading-dot i:nth-child(1) { + top: 0; + left: 0 + } + + .loading-dot i:nth-child(2) { + top: 0; + right: 0; + -webkit-animation-delay: .4s; + animation-delay: .4s + } + + .loading-dot i:nth-child(3) { + right: 0; + bottom: 0; + -webkit-animation-delay: .8s; + animation-delay: .8s + } + + .loading-dot i:nth-child(4) { + bottom: 0; + left: 0; + -webkit-animation-delay: 1.2s; + animation-delay: 1.2s + } + + @keyframes antRotate { + to { + -webkit-transform: rotate(405deg); + transform: rotate(405deg) + } + } + + @-webkit-keyframes antRotate { + to { + -webkit-transform: rotate(405deg); + transform: rotate(405deg) + } + } + + @keyframes antSpinMove { + to { + opacity: 1 + } + } + + @-webkit-keyframes antSpinMove { + to { + opacity: 1 + } + } + </style> </head> <body> <noscript> - <strong>We're sorry but vue-antd-pro doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> + <strong>We're sorry but vue-antd-pro doesn't work properly without JavaScript enabled. Please enable it to + continue.</strong> </noscript> <div id="app"> <div id="loading-mask"> - <div class="loading-wrapper"> - <span class="loading-dot loading-dot-spin"><i></i><i></i><i></i><i></i></span> - </div> + <div class="loading-wrapper"> + <span class="loading-dot loading-dot-spin"><i></i><i></i><i></i><i></i></span> </div> + </div> </div> <!-- built files will be auto injected --> </body> diff --git a/public/logo-old.png b/public/logo-old.png new file mode 100644 index 0000000000..443088971e Binary files /dev/null and b/public/logo-old.png differ diff --git a/public/logo.png b/public/logo.png index e887375c35..9f6716811a 100644 Binary files a/public/logo.png and b/public/logo.png differ diff --git a/public/logo1.png b/public/logo1.png new file mode 100644 index 0000000000..93a83f8886 Binary files /dev/null and b/public/logo1.png differ diff --git a/run.bat b/run.bat new file mode 100644 index 0000000000..01150790ec --- /dev/null +++ b/run.bat @@ -0,0 +1 @@ +yarn run serve \ No newline at end of file diff --git a/src/api/basis.js b/src/api/basis.js new file mode 100644 index 0000000000..76254cec56 --- /dev/null +++ b/src/api/basis.js @@ -0,0 +1,304 @@ +import api from './index' +import { axios } from '@/utils/request' + +export function saveBasis(params) { + return axios({ + url: '/basis/saveBasis', + method: 'post', + data: params + }) +} + +export function getElementsAnswer(params) { + return axios({ + url: '/basisMask/getElementsAnswer', + method: 'post', + data: params + }) +} +//获得省市 +export function getProvinceAndCity() { + return axios({ + url: '/dictionaryAttribute/getProvinceAndCity', + method: 'post' + }) +} +//获得民族 +export function getNation() { + return axios({ + url: '/dictionaryAttribute/getNation', + method: 'post' + }) +} +//根据字典ID获得内容 +export function getDictionaryAttributeByDictionaryId(params) { + return axios({ + url: '/dictionaryAttribute/getDictionaryAttributeByDictionaryId', + method: 'post', + data: params + }) +} +//提交患者信息 +export function addOrUpdate(params) { + return axios({ + url: '/patient/addOrUpdate', + method: 'post', + data: params + }) +} + +export function getPatientBasis(params) { + return axios({ + url: '/basis/getPatientBasis', + method: 'post', + data: params + }) +} + +export function computeScore(params) { + return axios({ + url: '/basis/computeScore', + method: 'post', + data: params + }) +} + +export function getMedicineAllergyList(params) { + return axios({ + url: '/basis/getMedicineAllergyList', + method: 'post', + data: params + }) +} + +export function getAllQuestionList(params) { + return axios({ + url: '/question/detail', + method: 'post', + data: params + }) +} + +export function getTaskDetail(params) { + return axios({ + url: '/visitTask/getVisitTaskDetail', + method: 'post', + data: params + }) +} + +export function saveQuestion(params) { + return axios({ + url: '/question/save', + method: 'post', + data: params + }) +} + +export function getCollectDetail(params) { + return axios({ + url: '/reportCollectBase/getByBasisElementId', + method: 'post', + data: params + }) +} + +export function addVasit(params) { + return axios({ + url: '/visitTask/addVasit', + method: 'post', + data: params + }) +} + +export function getCollectElements(params) { + return axios({ + url: '/reportCollectBase/getBasisElementById', + method: 'post', + data: params + }) +} + +export function saveReport(params) { + return axios({ + url: '/reportCollectBase/addOrEditReportResult', + method: 'post', + data: params + }) +} + +export function getVtList(params) { + return axios({ + url: '/visitTask/getVtList', + method: 'post', + data: params + }) +} + +export function importVtData(params) { + return axios({ + url: '/visitTask/importVtData', + method: 'post', + data: params + }) +} + +export function saveVisitTask(params) { + return axios({ + url: '/visitTask/save', + method: 'post', + data: params + }) +} + +export function getBasisForm(params) { + return axios({ + url: '/basis/getFormData', + method: 'post', + data: params + }) +} + +export function getSFJxDataList(params) { + return axios({ + url: '/basis/getSFJxDataList', + method: 'post', + params: params + }) +} + +export function createSFJx(params) { + return axios({ + url: '/basis/createSFJx', + method: 'post', + data: params + }) +} + +export function createNfs(params) { + return axios({ + url: '/basis/createNfs', + method: 'post', + data: params + }) +} + +export function getQuestionDetail(params) { + return axios({ + url: '/question/detail', + method: 'post', + data: params + }) +} + +export function validateCard(params) { + return axios({ + url: '/patient/getPatientDetailByCard', + method: 'post', + data: params + }) +} + +export function getFsImportDate(params) { + return axios({ + url: '/basis/getFsImportDate', + method: 'post', + data: params + }) +} + +export function getOcrResult(params) { + return axios({ + url: '/reportCollectBase/ocrResult', + method: 'post', + data: params + }) +} + +export function downLoadManual(id) { + return axios({ + url: '/index/downLoad?id=' + id, + method: 'get' + }) +} + +export function recoverSubmit(params) { + return axios({ + url: '/basis/recoverSubmit', + method: 'post', + data: params + }) +} + +export function outGroup(params) { + return axios({ + url: '/basis/outGroup', + method: 'post', + data: params + }) +} + +export function getJxDataList(params) { + return axios({ + url: '/basis/getJxDataList', + method: 'post', + data: params + }) +} + +export function submitCheck(params) { + return axios({ + url: '/basis/submitCheck', + method: 'post', + data: params + }) +} + +export function getCenterNum(params) { + return axios({ + url: '/basis/getCenterNum', + method: 'post', + params: params + }) +} + +export function patientReport(params) { + return axios({ + url: '/patientReport/getDataList', + method: 'post', + params: params + }) +} + +export function exportFormData(params) { + return axios({ + url: '/basis/exportFormData', + method: 'post', + data: params + }) +} + +// 获取入组人员详情 +export function getDataEcho (id) { + return axios({ + url: 'patientPending/' + id + '/view', + method: 'get' + }) +} + +// 入组提交请求 +export function updateDataEcho (patientPendingId, wxPatientId, params) { + return axios({ + url: 'patientPending/' + patientPendingId + '/' + wxPatientId + '/accessPatient', + method: 'post', + data: params + }) +} + +// 查询未读公告 +export function getUnReadAnnouncement () { + return axios({ + url: '/announcementSending/getUnReadAnnouncement', + method: 'get' + }) +} diff --git a/src/api/center.js b/src/api/center.js new file mode 100644 index 0000000000..1af545d6f5 --- /dev/null +++ b/src/api/center.js @@ -0,0 +1,68 @@ +import api from './index' +import { + axios +} from '@/utils/request' + +export function getCenterDataList(parameter) { + return axios({ + url: '/authority/getCenterDataList', + method: 'post', + params: parameter + }) +} + +export function selectCenterDataList(parameter) { + return axios({ + url: '/authority/selectCenterDataList', + method: 'post', + params: parameter + }) +} + +export function saveCenter(parameter) { + return axios({ + url: '/authority/saveCenter', + method: 'post', + params: parameter + }) +} + +export function getRoleDataList(parameter) { + return axios({ + url: '/authority/getRoleDataList', + method: 'post', + params: parameter + }) +} + +export function saveRole(parameter) { + return axios({ + url: '/authority/saveRole', + method: 'post', + params: parameter + }) +} + +export function getDoctorDataList(parameter) { + return axios({ + url: '/authority/getDoctorDataList', + method: 'post', + params: parameter + }) +} + +export function saveDoctor(parameter) { + return axios({ + url: '/authority/saveDoctor', + method: 'post', + params: parameter + }) +} + +export function getDoctorDetail(parameter) { + return axios({ + url: '/authority/getDoctorDetail', + method: 'post', + params: parameter + }) + } \ No newline at end of file diff --git a/src/api/distract.js b/src/api/distract.js new file mode 100644 index 0000000000..304b5b4019 --- /dev/null +++ b/src/api/distract.js @@ -0,0 +1,96 @@ +import { axios } from '@/utils/request' + +const api = { + distract: '/distract' +} + +export default api + +// 获取患者注册信息 +export function getZKDataList (parameter) { + return axios({ + url: '/patientPending/getDataList', + method: 'get', + params: parameter + }) +} + +export function getZyDataList (parameter) { + return axios({ + url: '/distract/getZyDataList', + method: 'post', + params: parameter + }) +} + +export function addDistract (data) { + return axios({ + url: '/distract/addDistract', + method: 'post', + data + }) +} + +export function getSqDataList (parameter) { + return axios({ + url: '/distract/getSqDataList', + method: 'post', + params: parameter + }) +} + +export function verifyDistract (data) { + return axios({ + url: '/distract/verifyDistract', + method: 'post', + data + }) +} + +export function getWxBingDataList (parameter) { + return axios({ + url: '/wxBusiness/getDataList', + method: 'post', + params: parameter + }) +} + +export function wxPatientReview (data) { + return axios({ + url: '/wxBusiness/wxPatientReview', + method: 'post', + data + }) +} + +export function wxBind (data) { + return axios({ + url: '/wxBusiness/bind', + method: 'post', + data + }) +} + +export function getWxQuestionList (parameter) { + return axios({ + url: '/question/getWxQuestionList', + method: 'post', + params: parameter + }) +} + +export function getWxQuestionDetail (data) { + return axios({ + url: '/question/detail', + method: 'post', + data + }) +} + +export function questionReview (data) { + return axios({ + url: '/question/questionReview', + method: 'post', + data + }) +} diff --git a/src/api/famousDoctor.js b/src/api/famousDoctor.js new file mode 100644 index 0000000000..9add01dac2 --- /dev/null +++ b/src/api/famousDoctor.js @@ -0,0 +1,35 @@ +import { + axios +} from '@/utils/request' + +export function getFamousDoctorList(parameter) { + return axios({ + url: '/famousDoctor/getDataList', + method: 'post', + params: parameter + }) +} + +export function getDoctorDetail(data) { + return axios({ + url: '/famousDoctor/getDoctorDetail', + method: 'post', + data + }) +} + +export function saveDoctor(data) { + return axios({ + url: '/famousDoctor/saveDoctorDetail', + method: 'post', + data + }) +} + +export function getCenter(data) { + return axios({ + url: '/famousDoctor/getCenter', + method: 'post', + data + }) +} diff --git a/src/api/group.js b/src/api/group.js new file mode 100644 index 0000000000..fc7c105d70 --- /dev/null +++ b/src/api/group.js @@ -0,0 +1,59 @@ +import { axios } from '@/utils/request' + +const api = { + user: '/user', + role: '/role', + patient: '/patient', + permission: '/permission', + permissionNoPager: '/permission/no-pager', + orgTree: '/org/tree' +} + +export default api + +export function getDatalList(parameter) { + return axios({ + url: '/project/getDataList', + method: 'post', + params: parameter + }) +} +export function getPatientList(parameter) { + return axios({ + url: '/project/getPatientList', + method: 'post', + params: parameter + }) +} +export function joinProject(parameter) { + return axios({ + url: '/project/joinProject', + method: 'post', + params: parameter + }) +} +export function deleteCase(parameter) { + return axios({ + url: '/project/deleteCase', + method: 'post', + params: parameter + }) +} + +// export function getPatientList (parameter) { +// return axios({ +// url: '/patient/getDataList', +// method: 'post', +// params: parameter +// }) +// } +// +// +// export function getPatientDetail (parameter) { +// return axios({ +// url: '/patient/detail', +// method: 'post', +// params: parameter +// }) +// } +// diff --git a/src/api/home.js b/src/api/home.js new file mode 100644 index 0000000000..78e9c0caa6 --- /dev/null +++ b/src/api/home.js @@ -0,0 +1,53 @@ +import api from './index' +import { + axios +} from '@/utils/request' + +export function getAllNumbers(params) { + return axios({ + url: '/index/getAllNumbers', + params: {isIcon: params}, + method: 'post' + }) +} +export function getMyWork() { + return axios({ + url: '/index/getMyWork', + method: 'post', + }) +} +export function getPatientsAndBasiss(params) { + return axios({ + url: '/index/getPatientsAndBasiss', + params: {isIcon: params}, + method: 'post', + }) +} +export function getProvinceCompare() { + return axios({ + url: '/index/getProvinceCompare', + method: 'post', + }) +} + +export function manualList(params) { + return axios({ + url: '/index/manual', + method: 'post' + }) +} + +export function uploadFlie(params) { + return axios({ + url: '/ethics/save', + method: 'post', + data: params + }) +} + +export function fileList() { + return axios({ + url: '/ethics/getEthics', + method: 'post' + }) +} \ No newline at end of file diff --git a/src/api/login.js b/src/api/login.js index 06f256b486..6875cd294c 100644 --- a/src/api/login.js +++ b/src/api/login.js @@ -14,9 +14,9 @@ import { axios } from '@/utils/request' */ export function login (parameter) { return axios({ - url: '/auth/login', + url: '/login/loginCheck', method: 'post', - data: parameter + params: parameter }) } @@ -40,11 +40,8 @@ export function getInfo () { export function logout () { return axios({ - url: '/auth/logout', - method: 'post', - headers: { - 'Content-Type': 'application/json;charset=UTF-8' - } + url: '/login/loginOut', + method: 'post' }) } @@ -59,3 +56,26 @@ export function get2step (parameter) { data: parameter }) } + +export function getDetailById (parameter) { + return axios({ + url: '/login/getDetailById', + method: 'post', + params: parameter + }) +} + +export function updatePwd (parameter) { + return axios({ + url: '/login/updatePwd', + method: 'post', + params: parameter + }) +} + +export function getVersion () { + return axios({ + url: '/text/getHtmlVersion', + method: 'post' + }) +} \ No newline at end of file diff --git a/src/api/message.js b/src/api/message.js new file mode 100644 index 0000000000..ff32dc62a3 --- /dev/null +++ b/src/api/message.js @@ -0,0 +1,55 @@ +// import api from './index' +import { axios } from '@/utils/request' + +// 查询所有消息 +export function getMessageList (parameter) { + return axios({ + url: '/announcement/getDataList', + method: 'get', + params: parameter + }) +} +// 撤回消息 +export function withdrawData (announcementId) { + return axios({ + url: '/announcement/revocation/' + announcementId, + method: 'post' + }) +} +// 发布消息 +export function publishData (announcementId) { + return axios({ + url: '/announcement/publish/' + announcementId, + method: 'post' + }) +} +// 编辑或者新增消息 +export function saveOrUpdateData (params) { + return axios({ + url: '/announcement/saveOrUpdate', + method: 'post', + data: params + }) +} +// 删除通知 +export function deleteData (id) { + return axios({ + url: '/announcement/' + id + '/cancel', + method: 'post' + }) +} +// 详情 +export function detailData (announcementId) { + return axios({ + url: '/announcement/' + announcementId + '/view', + method: 'get' + }) +} + +// 阅读公告 +export function isReadDetail (announcementId) { + return axios({ + url: '/announcement/readAnnouncement/' + announcementId, + method: 'post' + }) +} diff --git a/src/api/messageReply.js b/src/api/messageReply.js new file mode 100644 index 0000000000..bbc86ee43e --- /dev/null +++ b/src/api/messageReply.js @@ -0,0 +1,25 @@ +import { axios } from '@/utils/request' + +// 查询所有人员消息 +export function getMessageDataList (parameter) { + return axios({ + url: '/patientCenterMessage/getDataList', + method: 'get', + params: parameter + }) +} +// 查询当前患者消息 +export function getPatientMessageList (patientCenterMessageId) { + return axios({ + url: '/messageRecords/centerGetMessageRecords/' + patientCenterMessageId, + method: 'get' + }) +} +// 回复消息消息 +export function replyMessageData (params) { + return axios({ + url: '/patientCenterMessage/centerReplyMessage', + method: 'post', + data: params + }) +} diff --git a/src/api/patient.js b/src/api/patient.js new file mode 100644 index 0000000000..5c43acd559 --- /dev/null +++ b/src/api/patient.js @@ -0,0 +1,77 @@ +import { axios } from '@/utils/request' + +const api = { + user: '/user', + role: '/role', + patient: '/patient', + permission: '/permission', + permissionNoPager: '/permission/no-pager', + orgTree: '/org/tree' +} + +export default api + + +export function getPatientList(parameter) { + return axios({ + url: '/patient/getDataList', + method: 'post', + params: parameter + }) +} + +export function getPatientDataList(parameter) { + return axios({ + url: '/patient/getPatientDataList', + method: 'post', + params: parameter + }) +} + +export function deletePatient(parameter) { + return axios({ + url: '/patient/deletePatient', + method: 'post', + params: parameter + }) +} + +export function getPatientDetail(parameter) { + return axios({ + url: '/patient/detail', + method: 'post', + params: parameter + }) +} + +//根据身份证号获取患者详情 +export function getPatientDetailByCard(parameter) { + return axios({ + url: '/patient/getPatientDetailByCard', + method: 'post', + data: parameter + }) +} + +export function getSFDataList(parameter) { + return axios({ + url: '/patient/getSFDataList', + method: 'post', + data: parameter + }) +} + +export function exportPatient() { + return axios({ + url: '/patient/export', + method: 'get' + }) +} + +export function resetPwd(params) { + return axios({ + url: '/authority/resetPassword', + method: 'post', + data: params + }) +} \ No newline at end of file diff --git a/src/api/report.js b/src/api/report.js new file mode 100644 index 0000000000..0cfb43ec75 --- /dev/null +++ b/src/api/report.js @@ -0,0 +1,158 @@ +import { axios } from '@/utils/request' + +const api = { + reportCollectBase: '/reportCollectBase' +} + +export default api + + +export function getReportList(parameter) { + return axios({ + url: '/reportCollectBase/getDataList', + method: 'post', + params: parameter + }) +} + +//添加报告 +export function createReport(parameter) { + return axios({ + url: '/reportCollectBase/createReport', + method: 'post', + params: parameter + }) +} +//根据用户id获得用户自身带有的选项 +export function getChooseReportCollect(parameter) { + return axios({ + url: '/reportCollectBase/getChooseReportCollect', + method: 'post', + params: parameter + }) +} + +//ocr识别 +export function ocrResult(parameter) { + return axios({ + url: '/reportCollectBase/ocrResult', + method: 'post', + params: parameter + }) +} + +export function getReportType(parameter) { + return axios({ + url: '/reportCollectBase/getReportType', + method: 'post' + }) +} + +export function getReportTypeMark(parameter) { + return axios({ + url: '/reportCollectBase/getReportTypeMark', + method: 'post', + params: parameter + }) +} + +export function saveReport(parameter) { + return axios({ + url: '/reportCollectBase/saveReport', + method: 'post', + params: parameter + }) +} + +export function getReportFormData(parameter) { + return axios({ + url: '/reportCollectBase/getReportFormData', + method: 'post', + params: parameter + }) +} + +export function getImportDataList(parameter) { + return axios({ + url: '/reportCollectBase/getImportDataList', + method: 'post', + params: parameter + }) +} +export function getReporApplyList(params) { + return axios({ + url: '/reportApply/getDataList', + method: 'post', + params: params + }) +} +export function saveReporApply(params) { + return axios({ + url: '/reportApply/saveApply', + method: 'post', + data: params + }) +} +export function checReporApply(params) { + return axios({ + url: '/reportApply/checkApply', + method: 'post', + data: params + }) +} +export function getEthicsList(params) { + return axios({ + url: '/ethics/getDataList', + method: 'post', + params: params + }) +} + +export function ethicsDownload(params) { + return axios({ + url: '/ethics/download', + method: 'post', + data: params + }) +} + +export function getPatientEntry(params) { + return axios({ + url: '/patient/getPatientEntry', + method: 'post', + params: params + }) +} + +export function getIconJxDataList(params) { + return axios({ + url: '/patientReport/getIconJxDataList', + method: 'post', + params: params + }) +} + +export function getIconCgsfDataList(params) { + return axios({ + url: '/patientReport/getIconCgsfDataList', + method: 'post', + params: params + }) +} + +export function getIconJxjzDataList(params) { + return axios({ + url: '/patientReport/getIconJxjzDataList', + method: 'post', + params: params + }) +} + +export function getIconJxNumList(params) { + return axios({ + url: '/patientReport/getIconJxNumList', + method: 'post', + params: params + }) +} + diff --git a/src/api/reportCheck.js b/src/api/reportCheck.js new file mode 100644 index 0000000000..54ff980a31 --- /dev/null +++ b/src/api/reportCheck.js @@ -0,0 +1,27 @@ +import { + axios +} from '@/utils/request' + +export function getReportDataList(parameter) { + return axios({ + url: '/reportCheck/getDataList', + method: 'post', + params: parameter + }) +} + +export function getReportInfo(data) { + return axios({ + url: '/reportCheck/getReport', + method: 'post', + data + }) +} + +export function updateReport(data) { + return axios({ + url: '/reportCheck/updateReport', + method: 'post', + data + }) +} \ No newline at end of file diff --git a/src/api/task.js b/src/api/task.js new file mode 100644 index 0000000000..807b3b36c1 --- /dev/null +++ b/src/api/task.js @@ -0,0 +1,24 @@ +import api from './index' +import { axios } from '@/utils/request' + +export function getVisitTask(parameter) { + return axios({ + url: '/basis/getFsDataList', + method: 'post', + params: parameter + }) +} +export function ignoreTask(parameter) { + return axios({ + url: '/visitTask/ignoreTask', + method: 'post', + params: parameter + }) +} +export function ignoreBNTask(parameter) { + return axios({ + url: '/basis/ignore', + method: 'post', + params: parameter + }) +} \ No newline at end of file diff --git a/src/api/text.js b/src/api/text.js new file mode 100644 index 0000000000..514fe74839 --- /dev/null +++ b/src/api/text.js @@ -0,0 +1,35 @@ +import { + axios +} from '@/utils/request' + +export function getWXList(parameter) { + return axios({ + url: '/text/getWXList', + method: 'post', + params: parameter + }) +} + +export function getWebsiteList(parameter) { + return axios({ + url: '/text/getWebsiteList', + method: 'post', + params: parameter + }) + } + +export function getArticleDetail(parameter) { + return axios({ + url: '/text/viewAll', + method: 'get', + params: parameter + }) +} + +export function addOrEdit(data) { + return axios({ + url: `/text/addOrEdit`, + method: 'post', + data + }) +} diff --git a/src/api/textGwLb.js b/src/api/textGwLb.js new file mode 100644 index 0000000000..ee34f13746 --- /dev/null +++ b/src/api/textGwLb.js @@ -0,0 +1,19 @@ +import { + axios +} from '@/utils/request' + +export function getDataList(parameter) { + return axios({ + url: '/textGwLb/getDataList', + method: 'get', + params: parameter + }) +} + +export function saveData(data) { + return axios({ + url: '/textGwLb/save', + method: 'post', + data + }) +} \ No newline at end of file diff --git a/src/api/ticket.js b/src/api/ticket.js new file mode 100644 index 0000000000..5a739e98dd --- /dev/null +++ b/src/api/ticket.js @@ -0,0 +1,19 @@ +import { + axios +} from '@/utils/request' + +export function getTicketDataList(parameter) { + return axios({ + url: '/ticket/getDataList', + method: 'post', + params: parameter + }) +} + +export function logoutTicket(data) { + return axios({ + url: '/ticket/logoutTicket', + method: 'post', + data + }) +} \ No newline at end of file diff --git a/src/assets/avator.png b/src/assets/avator.png new file mode 100644 index 0000000000..b1bd2e100f Binary files /dev/null and b/src/assets/avator.png differ diff --git a/src/assets/bhalla.jpg b/src/assets/bhalla.jpg new file mode 100644 index 0000000000..de5173b36b Binary files /dev/null and b/src/assets/bhalla.jpg differ diff --git a/src/assets/bhalla.png b/src/assets/bhalla.png new file mode 100644 index 0000000000..8ff9ae3fc2 Binary files /dev/null and b/src/assets/bhalla.png differ diff --git a/src/assets/bkzy.png b/src/assets/bkzy.png new file mode 100644 index 0000000000..ec25356c93 Binary files /dev/null and b/src/assets/bkzy.png differ diff --git a/src/assets/duigou.png b/src/assets/duigou.png new file mode 100644 index 0000000000..8a663d5ac5 Binary files /dev/null and b/src/assets/duigou.png differ diff --git a/src/assets/file.png b/src/assets/file.png new file mode 100644 index 0000000000..e94161b0af Binary files /dev/null and b/src/assets/file.png differ diff --git a/src/assets/h-a.png b/src/assets/h-a.png new file mode 100644 index 0000000000..1d0f496856 Binary files /dev/null and b/src/assets/h-a.png differ diff --git a/src/assets/head-icon.png b/src/assets/head-icon.png new file mode 100644 index 0000000000..19815fa539 Binary files /dev/null and b/src/assets/head-icon.png differ diff --git a/src/assets/headerImg.png b/src/assets/headerImg.png new file mode 100644 index 0000000000..f73d81f726 Binary files /dev/null and b/src/assets/headerImg.png differ diff --git a/src/assets/home-5.png b/src/assets/home-5.png new file mode 100644 index 0000000000..279c20dfc7 Binary files /dev/null and b/src/assets/home-5.png differ diff --git a/src/assets/home1.png b/src/assets/home1.png new file mode 100644 index 0000000000..61671dcb24 Binary files /dev/null and b/src/assets/home1.png differ diff --git a/src/assets/home2.png b/src/assets/home2.png new file mode 100644 index 0000000000..91304a9879 Binary files /dev/null and b/src/assets/home2.png differ diff --git a/src/assets/home3.png b/src/assets/home3.png new file mode 100644 index 0000000000..acf91b66fe Binary files /dev/null and b/src/assets/home3.png differ diff --git a/src/assets/icons/baogao.svg b/src/assets/icons/baogao.svg new file mode 100644 index 0000000000..54168245c6 --- /dev/null +++ b/src/assets/icons/baogao.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1572416255329" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1576" width="200" height="200" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M568.32 921.6H281.6c-92.16 0-158.72-61.44-158.72-153.6V394.24c0-15.36-5.12-20.48-20.48-20.48C56.32 368.64 46.08 358.4 46.08 312.32V215.04C46.08 153.6 92.16 102.4 153.6 102.4h552.96C768 102.4 814.08 153.6 819.2 215.04v404.48c0 15.36 5.12 20.48 20.48 20.48h102.4c25.6 0 40.96 15.36 40.96 40.96v133.12c0 61.44-51.2 112.64-117.76 112.64-102.4-5.12-199.68-5.12-296.96-5.12z m189.44-66.56c-10.24-20.48-10.24-40.96-10.24-66.56V389.12 220.16c0-30.72-20.48-51.2-46.08-51.2s-46.08 20.48-46.08 51.2v97.28c0 40.96-10.24 51.2-51.2 51.2H209.92c-15.36 0-20.48 5.12-20.48 20.48V768c0 51.2 30.72 81.92 87.04 81.92h215.04c87.04 5.12 174.08 5.12 266.24 5.12zM599.04 174.08H163.84c-30.72 0-46.08 15.36-46.08 46.08v66.56c0 10.24 5.12 15.36 15.36 15.36h440.32c15.36 0 15.36-5.12 15.36-15.36 0-40.96-5.12-76.8 10.24-112.64z m307.2 588.8s5.12 0 0 0v-40.96c0-10.24 0-15.36-15.36-15.36h-66.56c-5.12-5.12-5.12 0-5.12 10.24v92.16c0 25.6 20.48 46.08 40.96 46.08 25.6 0 46.08-15.36 46.08-40.96 5.12-20.48 0-35.84 0-51.2z" p-id="1577"></path><path d="M471.04 471.04h158.72c25.6 0 40.96 15.36 40.96 35.84 0 20.48-15.36 35.84-40.96 35.84H307.2c-25.6 0-40.96-15.36-40.96-35.84 0-20.48 15.36-35.84 40.96-35.84h163.84zM471.04 706.56H312.32c-25.6 0-40.96-10.24-40.96-35.84 0-20.48 15.36-35.84 46.08-35.84h317.44c25.6 0 40.96 10.24 40.96 35.84 0 20.48-15.36 35.84-46.08 35.84H471.04z" p-id="1578"></path></svg> \ No newline at end of file diff --git a/src/assets/icons/bingli.svg b/src/assets/icons/bingli.svg new file mode 100644 index 0000000000..b8fe43fb37 --- /dev/null +++ b/src/assets/icons/bingli.svg @@ -0,0 +1 @@ +<svg t="1567411952052" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4295" width="300" height="300"><path d="M890.88 619.52v189.44c0 66.56-40.96 112.64-112.64 112.64H245.76c-66.56 0-112.64-46.08-112.64-112.64V317.44c0-66.56 46.08-107.52 107.52-107.52h92.16c15.36 0 25.6-5.12 30.72-15.36a168.96 168.96 0 0 1 296.96 0c5.12 10.24 15.36 15.36 30.72 15.36h92.16c66.56 0 107.52 40.96 107.52 107.52v302.08zM204.8 619.52v179.2c0 46.08 10.24 56.32 56.32 56.32H768c51.2 0 61.44-10.24 61.44-61.44v-266.24-189.44c0-10.24 0-25.6-5.12-35.84-10.24-25.6-35.84-20.48-51.2-20.48-20.48 0-10.24 20.48-10.24 30.72v51.2c-5.12 35.84-30.72 61.44-71.68 61.44H353.28c-40.96 0-71.68-30.72-71.68-71.68V296.96c0-5.12 0-15.36-10.24-15.36-46.08-10.24-66.56 10.24-66.56 46.08v291.84z m307.2-266.24h122.88c56.32 0 56.32 0 51.2-56.32 0-15.36-5.12-15.36-15.36-15.36h-25.6c-15.36 0-25.6-5.12-30.72-20.48-15.36-51.2-51.2-87.04-102.4-87.04S424.96 204.8 409.6 261.12c0 15.36-5.12 20.48-20.48 20.48-46.08 0-46.08 0-46.08 51.2 0 20.48 5.12 25.6 25.6 20.48H512z" p-id="4296"></path><path d="M512 711.68H384c-20.48 0-35.84-5.12-35.84-25.6s15.36-25.6 30.72-25.6h261.12c20.48 0 35.84 10.24 35.84 30.72 0 20.48-15.36 25.6-35.84 25.6-40.96-10.24-87.04-5.12-128-5.12zM512 573.44H384c-20.48 0-30.72-5.12-30.72-25.6s15.36-25.6 35.84-25.6h256c20.48 0 35.84 5.12 35.84 25.6s-15.36 25.6-35.84 25.6H512z" p-id="4297"></path></svg> \ No newline at end of file diff --git a/src/assets/icons/blzysh.svg b/src/assets/icons/blzysh.svg new file mode 100644 index 0000000000..6c29476ad7 --- /dev/null +++ b/src/assets/icons/blzysh.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1572235203886" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2007" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M468.48 423.90016H311.36256c-21.49888 0-38.99904 17.50016-38.99904 38.99904 0 21.4016 17.50016 38.99904 38.99904 38.99904H468.48c21.4016 0 38.99904-17.50016 38.99904-38.99904 0-21.4016-17.50016-38.99904-38.99904-38.99904zM311.36256 242.89792c-21.4016 0-38.99904 17.50016-38.99904 38.99904 0 21.4016 17.50016 38.99904 38.99904 38.99904h380.99968c21.4016 0 38.99904-17.50016 38.99904-38.99904 0-21.4016-17.50016-38.99904-38.99904-38.99904H311.36256z" p-id="2008"></path><path d="M432.1024 882.60096H192.79872V139.89888h639.69792v364.8c0 21.00224 16.9984 38.00064 38.00064 38.00064s38.00064-16.9984 38.00064-38.00064V113.89952c0-27.60192-22.4-50.00192-50.00192-50.00192H166.79936c-27.60192 0-50.00192 22.4-50.00192 50.00192v794.7008c0 27.60192 22.4 50.00192 50.00192 50.00192h265.29792c20.80256-0.30208 37.49888-17.19808 37.49888-38.00064s-16.7936-37.70368-37.49376-38.00064z" p-id="2009"></path><path d="M859.09504 815.08352l-68.49536-102.76864c30.1824-21.67808 49.9968-56.87296 49.9968-96.8448 0-65.93536-53.4528-119.38304-119.38304-119.38304-65.93536 0-119.38816 53.4528-119.38816 119.38304a119.05024 119.05024 0 0 0 49.9968 96.8448l-68.49536 102.76864h-77.0048v143.26272h429.78816v-143.26272h-77.01504z m-209.5616-199.56224c-0.01536-39.57248 32.05632-71.66464 71.6288-71.68 39.57248-0.01536 71.66464 32.05632 71.68 71.6288 0.01536 39.57248-32.05632 71.66464-71.6288 71.68-39.57248 0.01536-71.66464-32.05632-71.68-71.6288z m46.5152 116.56704a118.1696 118.1696 0 0 0 50.33472 0l65.52064 82.9952H630.528l65.52064-82.9952z" p-id="2010"></path></svg> \ No newline at end of file diff --git a/src/assets/icons/blzysq.svg b/src/assets/icons/blzysq.svg new file mode 100644 index 0000000000..0333c275ae --- /dev/null +++ b/src/assets/icons/blzysq.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1572235200327" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1894" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M327.08608 358.8352h354.21184c19.89632 0 36.25984-16.27136 36.25984-36.25984 0-19.89632-16.27136-36.25984-36.25984-36.25984H327.08608c-19.89632 0-36.25984 16.27136-36.25984 36.25984 0 19.89632 16.27136 36.25984 36.25984 36.25984z m-36.25984 132.01408c0 19.89632 16.27136 36.25984 36.25984 36.25984h355.51232c19.89632 0 36.25984-16.27136 36.25984-36.25984 0-19.89632-16.27136-36.25984-36.25984-36.25984H327.08608c-19.98848 0-36.25984 16.27136-36.25984 36.25984z" p-id="1895"></path><path d="M429.81376 857.23648H207.33952V166.76352h594.71872v339.1488c0 19.52256 15.80544 35.328 35.328 35.328s35.328-15.80544 35.328-35.328V142.58688c0-25.66144-20.82304-46.48448-46.48448-46.48448H183.168c-25.66144 0-46.48448 20.82304-46.48448 46.48448V881.408c0 25.66144 20.82304 46.48448 46.48448 46.48448h246.64576a35.328 35.328 0 0 0 34.86208-35.328c0-19.33312-15.616-35.0464-34.86208-35.328z" p-id="1896"></path><path d="M733.72672 803.87584h-138.24512l9.29792-9.29792 0.09216-0.09216c10.97216-11.43296 10.87488-29.75232-0.37376-41.00096-11.24864-11.24864-29.56288-11.3408-41.00096-0.37376l-59.40736 59.40736a29.29664 29.29664 0 0 0-8.45824 20.54656v0.09216c0 7.808 2.97472 15.06304 8.45824 20.54656l59.22304 59.22304a29.1328 29.1328 0 0 0 28.53888 8.27392c10.41408-2.60096 18.4064-10.69056 21.10464-21.10464a29.41952 29.41952 0 0 0-8.27392-28.53888l-9.20576-9.20576h138.24512c16.08192 0 29.2864-13.1072 29.2864-29.2864-0.08704-16.08192-13.19424-29.18912-29.28128-29.18912z m145.21856-138.89536l-59.3152-59.3152-0.18432-0.18432a29.1072 29.1072 0 0 0-40.6272 0.7424 29.18912 29.18912 0 0 0-0.7424 40.6272l9.48224 9.5744h-138.24512c-16.08192 0-29.2864 13.1072-29.2864 29.2864 0 16.08192 13.1072 29.2864 29.2864 29.2864h138.15296l-9.29792 9.29792-0.09216 0.09216c-10.97216 11.43296-10.87488 29.84448 0.37376 41.00096a29.11744 29.11744 0 0 0 20.63872 8.45824 29.17376 29.17376 0 0 0 20.36224-8.18176l59.40736-59.40736a29.67552 29.67552 0 0 0 8.45824-20.63872 29.03552 29.03552 0 0 0-8.3712-20.63872z" p-id="1897"></path></svg> \ No newline at end of file diff --git a/src/assets/icons/fangshi.svg b/src/assets/icons/fangshi.svg new file mode 100644 index 0000000000..e95cc732bf --- /dev/null +++ b/src/assets/icons/fangshi.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1567410672167" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3565" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512 921.6H199.68c-51.2 0-76.8-25.6-76.8-81.92V215.04c0-51.2 25.6-81.92 76.8-81.92h61.44c25.6 0 51.2 5.12 66.56-20.48 10.24-10.24 30.72-10.24 51.2-10.24h271.36c25.6 0 46.08 5.12 61.44 25.6 5.12 10.24 15.36 10.24 20.48 10.24h97.28c46.08 0 71.68 25.6 76.8 71.68v640c-5.12 46.08-30.72 71.68-76.8 71.68H512z m-322.56-394.24v296.96c0 20.48 5.12 25.6 25.6 25.6h593.92c20.48 0 25.6-5.12 25.6-25.6V281.6c0-25.6 10.24-56.32-5.12-71.68-15.36-15.36-46.08-5.12-71.68-5.12-30.72 0-30.72 0-30.72 30.72 0 46.08-25.6 71.68-71.68 76.8H368.64c-40.96 0-66.56-30.72-66.56-71.68v-20.48c0-10.24-5.12-15.36-15.36-15.36H215.04c-15.36 0-20.48 5.12-20.48 20.48-5.12 102.4-5.12 204.8-5.12 302.08zM512 245.76h92.16c51.2 0 51.2 0 51.2-51.2 0-20.48-5.12-20.48-20.48-20.48H419.84c-51.2 0-51.2 0-51.2 51.2 0 15.36 5.12 15.36 15.36 15.36 46.08 5.12 87.04 5.12 128 5.12z" p-id="3566"></path><path d="M460.8 711.68c-10.24 0-20.48-5.12-30.72-15.36-30.72-35.84-61.44-66.56-92.16-102.4-15.36-20.48-15.36-40.96 0-51.2 15.36-15.36 35.84-10.24 51.2 5.12 20.48 20.48 35.84 40.96 51.2 61.44 10.24 15.36 15.36 10.24 25.6 0 46.08-51.2 92.16-102.4 143.36-153.6l15.36-15.36c15.36-15.36 35.84-15.36 51.2-5.12 15.36 15.36 15.36 35.84 0 51.2-61.44 71.68-128 138.24-194.56 209.92 0 10.24-5.12 15.36-20.48 15.36z" p-id="3567"></path></svg> \ No newline at end of file diff --git a/src/assets/icons/home.svg b/src/assets/icons/home.svg new file mode 100644 index 0000000000..a870011a73 --- /dev/null +++ b/src/assets/icons/home.svg @@ -0,0 +1 @@ +<svg t="1567412051859" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4437" width="200" height="200"><path d="M148.48 517.12c-15.36 15.36-30.72 30.72-46.08 40.96-20.48 15.36-40.96 20.48-51.2 5.12-15.36-15.36-10.24-30.72 5.12-51.2 87.04-81.92 174.08-163.84 266.24-245.76 51.2-51.2 102.4-97.28 158.72-148.48 25.6-25.6 40.96-25.6 66.56 0 138.24 128 281.6 261.12 419.84 389.12 20.48 20.48 20.48 35.84 10.24 46.08-15.36 15.36-30.72 10.24-51.2-5.12-133.12-122.88-266.24-240.64-394.24-363.52-10.24-10.24-20.48-10.24-30.72 0C409.6 271.36 317.44 358.4 225.28 440.32c-5.12 10.24-10.24 15.36-10.24 25.6v348.16c0 30.72 15.36 46.08 46.08 46.08h92.16c15.36 0 20.48-5.12 20.48-20.48v-143.36c0-30.72 10.24-35.84 40.96-35.84H614.4c20.48 0 35.84 5.12 35.84 25.6 0 25.6-15.36 30.72-35.84 30.72H460.8c-25.6 0-30.72 5.12-25.6 30.72v138.24c0 25.6-10.24 35.84-35.84 35.84H250.88C189.44 921.6 153.6 880.64 153.6 824.32v-276.48c-5.12-10.24 0-20.48-5.12-30.72z" p-id="4438"></path><path d="M808.96 721.92v-102.4c0-20.48 10.24-35.84 30.72-35.84 20.48 0 30.72 10.24 30.72 35.84v209.92c0 56.32-40.96 97.28-97.28 97.28h-143.36c-25.6 0-35.84-10.24-35.84-25.6 0-25.6 20.48-25.6 35.84-25.6h133.12c35.84 0 46.08-10.24 46.08-46.08v-107.52z" p-id="4439"></path></svg> \ No newline at end of file diff --git a/src/assets/icons/huodongquan.svg b/src/assets/icons/huodongquan.svg new file mode 100644 index 0000000000..7ae456565a --- /dev/null +++ b/src/assets/icons/huodongquan.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1572235207437" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2120" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M900.67456 558.65344a33.7408 33.7408 0 0 0 33.7408-33.7408v-169.6256c0-28.19584-15.45728-52.82816-38.33344-65.93024l-32.97792-124.51328c-9.37984-35.4048-45.81376-56.58112-81.21344-47.20128L171.38688 279.35232h-5.86752c-41.87136 0-75.93472 34.06336-75.93472 75.93472v169.6256a33.7408 33.7408 0 0 0 33.7408 33.7408 35.3536 35.3536 0 0 1 35.31264 35.31264 35.3536 35.3536 0 0 1-35.31264 35.31264 33.7408 33.7408 0 0 0-33.7408 33.7408v169.6256c0 41.87136 34.06336 75.93472 75.93472 75.93472h692.96128c41.87136 0 75.93472-34.06336 75.93472-75.93472v-169.6256a33.7408 33.7408 0 0 0-33.7408-33.7408c-19.47136 0-35.31264-15.84128-35.31264-35.31264s15.84128-35.31264 35.31264-35.31264z m-105.21088-389.75488a13.42464 13.42464 0 0 1 16.38912 9.5232l26.73152 100.93056H378.46016l417.00352-110.45376zM157.06624 832.64v-141.57312c40.15616-13.99296 69.05344-52.23936 69.05344-97.10592S197.2224 510.85312 157.06624 496.86016V355.28704c0-4.6592 3.79392-8.45312 8.45312-8.45312h87.49056v494.26432H165.51936c-4.6592 0-8.45312-3.79392-8.45312-8.45824z m709.86752-335.77984c-40.15616 13.99296-69.05344 52.23936-69.05344 97.10592s28.89728 83.11296 69.05344 97.10592v141.57312c0 4.66432-3.79392 8.45312-8.45824 8.45312H301.2096V346.83392h557.27104c4.66432 0 8.45824 3.79392 8.45824 8.45312l-0.00512 141.57312z" p-id="2121"></path><path d="M673.28512 515.4304H443.8528a24.09984 24.09984 0 0 0 0 48.19968h229.43744a24.09472 24.09472 0 1 0-0.00512-48.19968z m0 115.67616H443.8528a24.09984 24.09984 0 0 0 0 48.19968h229.43744a24.09472 24.09472 0 1 0-0.00512-48.19968z" p-id="2122"></path></svg> \ No newline at end of file diff --git a/src/assets/icons/hzbgsy.svg b/src/assets/icons/hzbgsy.svg new file mode 100644 index 0000000000..9402b849e1 --- /dev/null +++ b/src/assets/icons/hzbgsy.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1572235180545" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1783" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M267.90912 756.00896h433.44896v-54.52288H267.90912v54.52288z m433.44896-189.4912H267.91424v53.64224h433.44384v-53.64224z m108.53376 325.04832H186.76736V159.5392h436.9408l54.20032-54.21568H132.56704v840.46848h731.49952V281.19552l-54.17472 59.40224v550.96832z m-297.68192-433.7664l99.16416-0.0768 178.90816-178.3552-96.65024-100.33152-181.34528 180.7872-0.0768 97.97632z m379.22304-279.27552l-96.57344-100.31616-56.89856 56.23808 97.0496 100.62336 56.4224-56.54528z m0 0" p-id="1784"></path></svg> \ No newline at end of file diff --git a/src/assets/icons/jixing.svg b/src/assets/icons/jixing.svg new file mode 100644 index 0000000000..a8f4b1bb30 --- /dev/null +++ b/src/assets/icons/jixing.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1572233331309" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1672" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M462.61248 483.5072v259.456c0 26.3424-13.16864 52.67968-32.92672 72.43776s-46.09536 32.92672-72.43776 32.92672c-19.75808 0-39.51104 0-52.67968 6.58432-32.92672 6.58432-59.26912 39.51104-92.19072 59.26912-65.85344 32.92672-111.9488-13.16864-118.53312-79.02208-6.58432-72.43776-6.58432-131.70688-6.58432-177.80224 6.58432-52.67968 13.16864-167.26528 26.3424-200.192 19.75808-52.67968 46.09536-92.19072 85.6064-131.70688s85.6064-65.85344 131.70688-85.6064c52.67968-19.75808 105.36448 0 111.9488 65.85344 0 26.3424 0 46.09536-6.58432 59.26912l19.75808-19.75808c13.16864-6.58432 13.16864-19.75808 13.16864-39.51104V141.07648c0-26.3424 19.75808-46.09536 46.09536-46.09536s46.09536 19.75808 46.09536 46.09536v177.80224c0 13.16864 6.58432 26.3424 13.16864 39.51104l6.58432 6.58432V312.2944c0-65.85344 52.67968-85.6064 111.9488-65.85344 52.67968 19.75808 98.78016 46.09536 131.70688 85.6064 39.51104 39.51104 65.85344 79.02208 85.6064 131.70688 13.16864 39.51104 19.75808 147.5072 26.3424 200.192 0 52.67968 0 111.9488-6.58432 177.80224s-46.09536 105.36448-118.53312 79.02208c-32.92672-13.16864-59.26912-46.09536-92.19072-59.26912-13.16864-6.58432-32.92672-6.58432-52.67968-6.58432-26.3424 0-52.67968-13.16864-72.43776-32.92672s-32.92672-46.09536-32.92672-72.43776V483.5072c0-26.3424 0-52.67968 13.16864-72.43776l-32.92672-39.51104c-6.58432-6.58432-13.16864-13.16864-19.75808-13.16864-6.58432 0-19.75808 0-26.3424 6.58432l-39.51104 46.09536c6.5792 26.3424 6.5792 46.10048 6.5792 72.43776z m414.86848 246.28736c-39.51104 6.58432-111.9488 13.16864-184.38656-32.92672-6.58432-6.58432-13.16864-19.75808-6.58432-26.3424 6.58432-6.58432 19.75808-13.16864 26.3424-6.58432 65.85344 39.51104 131.70688 32.92672 164.62848 26.3424v-32.92672c0-46.09536-6.58432-154.09664-19.75808-187.01824-13.16864-39.51104-39.51104-79.02208-65.85344-105.36448-32.92672-32.92672-65.85344-52.67968-111.9488-65.85344-39.51104-13.16864-19.75808 39.51104-19.75808 65.85344 6.58432 26.3424 6.58432 46.09536-13.16864 65.85344-13.16864 13.16864-13.16864 32.92672-13.16864 46.09536v266.04032c0 13.16864 6.58432 19.75808 13.16864 26.3424 6.58432 6.58432 19.75808 13.16864 26.3424 13.16864 19.75808 0 46.09536 0 65.85344 6.58432 46.09536 13.16864 59.26912 39.51104 105.36448 59.26912 19.75808 13.16864 26.3424 0 26.3424-19.75808 0-32.9216 6.58432-65.84832 6.58432-98.77504z m-724.3776-39.51104c32.92672 13.16864 98.78016 19.75808 171.21792-26.3424 6.58432-6.58432 19.75808 0 26.3424 6.58432 6.58432 6.58432 0 19.75808-6.58432 26.3424-72.43776 46.09536-144.87552 39.51104-184.38656 32.92672 0 32.92672 0 65.85344 6.58432 98.78016 0 19.75808 0 32.92672 26.3424 19.75808 39.51104-19.75808 59.26912-52.67968 105.36448-59.26912 19.75808-6.58432 46.09536-6.58432 65.85344-6.58432 13.16864 0 19.75808-6.58432 26.3424-13.16864 6.58432-6.58432 13.16864-19.75808 13.16864-26.3424V476.92288c0-13.16864 0-32.92672-6.58432-46.09536-19.75808-19.75808-19.75808-32.92672-13.16864-65.85344 6.58432-26.3424 19.75808-72.43776-19.75808-65.85344-52.6848 19.75808-85.61152 39.51616-118.53824 72.43776S192.6144 437.41184 179.44576 476.92288c-13.16864 32.92672-19.75808 140.92288-19.75808 187.01824-6.58432 6.58944-6.58432 19.75808-6.58432 26.3424z" p-id="1673"></path></svg> \ No newline at end of file diff --git a/src/assets/icons/jkzs.svg b/src/assets/icons/jkzs.svg new file mode 100644 index 0000000000..01eec7b14d --- /dev/null +++ b/src/assets/icons/jkzs.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1572235467519" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2454" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M785.81248 162.44224H728.5248l-7.1424 28.17024a53.69856 53.69856 0 0 1-52.13184 40.49408H372.55168a53.69344 53.69344 0 0 1-52.13184-40.49408l-7.1424-28.17024H238.18752c-86.03648 0-156.032 69.99552-156.032 156.032v448.91648c0 86.03648 69.99552 156.032 156.032 156.032h547.62496c86.03648 0 156.032-69.99552 156.032-156.032V318.47424c0-86.03648-69.99552-156.032-156.032-156.032z m81.3312 604.94336c0 44.84608-36.48512 81.3312-81.3312 81.3312H238.18752c-44.84608 0-81.3312-36.48512-81.3312-81.3312V318.47424c0-44.84608 36.48512-81.3312 81.3312-81.3312h20.59776a128.38912 128.38912 0 0 0 113.7664 68.66432h296.704a128.38912 128.38912 0 0 0 113.7664-68.66432h2.79552c44.84608 0 81.3312 36.48512 81.3312 81.3312v448.91136h-0.00512z" p-id="2455"></path><path d="M658.22208 515.84h-94.85312V430.7968c0-13.09696-9.51808-23.71584-21.25312-23.71584H485.67808c-11.74016 0-21.25312 10.61888-21.25312 23.71584v85.0432h-85.8624a23.71072 23.71072 0 0 0-23.71072 23.71584v51.51744a23.71584 23.71584 0 0 0 23.71072 23.71584h85.8624v95.67232c0 13.09696 9.51808 23.71072 21.25312 23.71072h56.43264c11.73504 0 21.25312-10.61888 21.25312-23.71072v-95.67232h94.85312a23.71072 23.71072 0 0 0 23.71072-23.71584v-51.51744a23.7056 23.7056 0 0 0-23.7056-23.71584zM393.28256 177.44384h250.21952a38.43072 38.43072 0 1 0 0-76.86144H393.28256a38.43072 38.43072 0 1 0 0 76.86144z" p-id="2456"></path></svg> \ No newline at end of file diff --git a/src/assets/icons/myzj.svg b/src/assets/icons/myzj.svg new file mode 100644 index 0000000000..dd6ab225bd --- /dev/null +++ b/src/assets/icons/myzj.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1572235462698" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2343" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M655.34464 617.61024c139.65312 51.39968 244.0448 175.54432 267.42784 326.5792H858.0608c-30.14144-163.88608-173.45024-288.12288-346.05568-288.12288-172.60544 0-315.91936 124.24192-346.05568 288.12288h-64.7168c23.38304-151.03488 127.77472-275.18464 267.39712-326.5792-86.41536-49.71008-144.74752-142.81216-144.74752-249.67168V79.81568h576.25088v288.12288c-0.00512 106.85952-58.3424 199.9616-144.78848 249.67168z m-47.30368-441.7536h-64.0256V111.82592H479.98976v64.0256H415.95904v64.0256h64.03072v64.0256h64.03072V239.88224h64.0256V175.85664zM287.90272 367.93856c0 123.77088 100.3264 224.09728 224.09728 224.09728s224.09728-100.3264 224.09728-224.09728H287.90272z" p-id="2344"></path></svg> \ No newline at end of file diff --git a/src/assets/icons/ocr.svg b/src/assets/icons/ocr.svg new file mode 100644 index 0000000000..d3c987a182 --- /dev/null +++ b/src/assets/icons/ocr.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1565772359823" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2271" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512 947.2H209.066667c-12.8 0-25.6 4.266667-34.133334 12.8-29.866667 34.133333-81.066667 29.866667-110.933333 0-29.866667-34.133333-29.866667-81.066667 4.266667-110.933333 8.533333-8.533333 12.8-17.066667 12.8-29.866667V204.8c0-12.8-4.266667-21.333333-12.8-29.866667-34.133333-29.866667-38.4-81.066667-4.266667-110.933333 34.133333-29.866667 81.066667-29.866667 110.933333 4.266667 8.533333 8.533333 17.066667 12.8 29.866667 12.8h614.4c12.8 0 21.333333-4.266667 29.866667-12.8 29.866667-34.133333 81.066667-38.4 115.2-4.266667 29.866667 34.133333 29.866667 81.066667-4.266667 110.933333-8.533333 8.533333-12.8 17.066667-12.8 29.866667v614.4c0 12.8 4.266667 21.333333 12.8 29.866667 34.133333 29.866667 38.4 76.8 4.266667 110.933333-29.866667 34.133333-81.066667 34.133333-110.933334 0-8.533333-12.8-21.333333-12.8-34.133333-12.8H512zM866.133333 512V204.8c0-21.333333-21.333333-46.933333-42.666666-46.933333H204.8c-21.333333 0-46.933333 25.6-46.933333 46.933333v614.4c0 21.333333 25.6 46.933333 46.933333 46.933333h610.133333c25.6 0 46.933333-25.6 46.933334-46.933333 4.266667-102.4 4.266667-204.8 4.266666-307.2z" p-id="2272"></path><path d="M563.2 524.8v123.733333c0 17.066667 4.266667 21.333333 21.333333 21.333334 34.133333 0 34.133333 0 34.133334 34.133333 0 46.933333 0 46.933333-42.666667 46.933333h-145.066667c-17.066667 0-25.6-4.266667-21.333333-21.333333v-12.8c0-38.4 0-42.666667 38.4-42.666667 12.8 0 12.8-4.266667 12.8-12.8V401.066667c0-12.8-4.266667-17.066667-12.8-17.066667H345.6c-12.8-4.266667-17.066667 0-17.066667 8.533333v46.933334c0 12.8 0 17.066667-17.066666 17.066666-59.733333 0-59.733333 0-59.733334-59.733333V315.733333c0-12.8 4.266667-17.066667 17.066667-17.066666h494.933333c12.8 0 17.066667 4.266667 17.066667 17.066666v123.733334c0 12.8-4.266667 17.066667-17.066667 17.066666-21.333333 0-46.933333 8.533333-59.733333-4.266666-12.8-12.8-4.266667-38.4-4.266667-55.466667s-4.266667-21.333333-21.333333-21.333333h-98.133333c-12.8 0-17.066667 4.266667-17.066667 17.066666v132.266667z" p-id="2273"></path></svg> \ No newline at end of file diff --git a/src/assets/icons/ruzhu.svg b/src/assets/icons/ruzhu.svg new file mode 100644 index 0000000000..568aad90e6 --- /dev/null +++ b/src/assets/icons/ruzhu.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1567410695912" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3901" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M506.88 465.92C491.52 460.8 476.16 460.8 460.8 450.56 373.76 404.48 286.72 358.4 199.68 317.44c-15.36-10.24-20.48-15.36-25.6-30.72 0-15.36 10.24-25.6 20.48-30.72 92.16-51.2 184.32-97.28 271.36-143.36 30.72-15.36 61.44-15.36 92.16 0 87.04 46.08 174.08 92.16 266.24 138.24 10.24 5.12 20.48 15.36 20.48 30.72s-5.12 25.6-20.48 30.72c-92.16 46.08-184.32 92.16-271.36 138.24-15.36 10.24-30.72 10.24-46.08 15.36zM271.36 286.72c76.8 40.96 148.48 76.8 225.28 112.64 10.24 5.12 25.6 5.12 35.84 0 51.2-25.6 102.4-51.2 153.6-81.92 20.48-10.24 40.96-20.48 61.44-35.84-71.68-35.84-143.36-76.8-215.04-112.64-15.36-5.12-25.6-5.12-40.96 0-25.6 15.36-51.2 25.6-76.8 35.84-46.08 30.72-92.16 56.32-143.36 81.92zM117.76 558.08V419.84c0-40.96 30.72-56.32 66.56-40.96 87.04 46.08 168.96 92.16 256 138.24 30.72 15.36 46.08 40.96 46.08 76.8v266.24c0 10.24 0 15.36-5.12 25.6-5.12 25.6-30.72 40.96-56.32 25.6-87.04-46.08-174.08-97.28-261.12-143.36-30.72-15.36-40.96-40.96-40.96-71.68-10.24-46.08-5.12-92.16-5.12-138.24z m61.44-107.52v245.76c0 10.24 5.12 20.48 15.36 25.6 71.68 35.84 138.24 76.8 209.92 112.64 15.36 10.24 15.36 5.12 15.36-10.24 0-56.32-5.12-112.64 0-174.08 5.12-51.2-10.24-76.8-56.32-102.4-61.44-25.6-122.88-61.44-184.32-97.28zM542.72 737.28v-138.24c0-35.84 15.36-61.44 46.08-76.8 87.04-46.08 174.08-92.16 256-143.36 30.72-15.36 61.44 0 61.44 35.84v281.6c0 30.72-15.36 51.2-40.96 66.56-87.04 46.08-174.08 97.28-266.24 143.36-30.72 15.36-61.44 0-61.44-35.84 5.12-40.96 5.12-87.04 5.12-133.12z m61.44 102.4h5.12c76.8-40.96 148.48-81.92 225.28-122.88 10.24-5.12 10.24-10.24 10.24-20.48V450.56h-5.12c-71.68 40.96-148.48 81.92-220.16 117.76-10.24 5.12-15.36 15.36-15.36 25.6v245.76z" p-id="3902"></path></svg> \ No newline at end of file diff --git a/src/assets/icons/webconfig.svg b/src/assets/icons/webconfig.svg new file mode 100644 index 0000000000..56354d06f2 --- /dev/null +++ b/src/assets/icons/webconfig.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1574057245614" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3091" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M960.2 155.3H454.5C435 93.2 377.5 47.7 309.3 47.7c-68.5 0-125.9 45.4-145.2 107.5H71.5c-25.1 0-45.3 20.3-45.3 45.3 0 24.9 20.3 45.2 45.3 45.2H164c19.4 62.2 76.8 107.5 145.2 107.5 68.2 0 125.7-45.3 145.2-107.5h505.7c24.9 0 45.1-20.3 45.1-45.2 0.1-25-20.1-45.2-45-45.2zM309.3 262.8c-34.3 0-62.3-27.9-62.3-62.2 0-34.4 28-62.3 62.3-62.3s62.3 27.9 62.3 62.3c0 34.3-28.1 62.2-62.3 62.2z m650.9 226.4H836.9c-19.5-62.2-76.8-107.6-145.2-107.6S566 427 546.5 489.2h-475c-25.1 0-45.3 20.2-45.3 45.1 0 25.1 20.3 45.5 45.3 45.5h475c19.5 62 76.8 107.4 145.2 107.4s125.7-45.5 145.2-107.4h123.2c24.9 0 45.1-20.4 45.1-45.5 0.1-24.9-20.1-45.1-45-45.1zM691.7 596.6c-34.3 0-62.3-27.8-62.3-62.3 0-34.2 28-62.1 62.3-62.1s62.3 27.9 62.3 62.1c0 34.5-28 62.3-62.3 62.3z m268.5 218.9H459.5c-11.7-72.4-74.3-128.1-150.2-128.1s-138.5 55.7-150.4 128.1H71.5c-25.1 0-45.3 20.4-45.3 45.3 0 25.1 20.3 45.3 45.3 45.3H172c24.8 51 76.8 86.8 137.3 86.8 60.5 0 112.4-35.8 137.1-86.8h513.8c24.9 0 45.1-20.3 45.1-45.3 0-24.9-20.2-45.3-45.1-45.3z m-650.9 86.9c-34.3 0-62.3-28-62.3-62.3s28-62.3 62.3-62.3 62.3 28 62.3 62.3-28.1 62.3-62.3 62.3z" p-id="3092"></path></svg> \ No newline at end of file diff --git a/src/assets/icons/wenjuan.svg b/src/assets/icons/wenjuan.svg new file mode 100644 index 0000000000..e7a5301514 --- /dev/null +++ b/src/assets/icons/wenjuan.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1567410683469" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3677" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.2 512v281.6c0 40.96 15.36 56.32 56.32 56.32h143.36c30.72 0 46.08 15.36 46.08 35.84 0 30.72-20.48 35.84-46.08 35.84H230.4c-61.44 0-107.52-40.96-117.76-102.4v-35.84V245.76v-35.84c5.12-61.44 51.2-102.4 112.64-102.4C394.24 102.4 563.2 102.4 737.28 102.4c71.68 0 117.76 46.08 117.76 117.76v143.36c0 25.6-5.12 40.96-35.84 40.96-25.6 0-35.84-20.48-35.84-40.96V235.52c0-40.96-15.36-56.32-56.32-56.32H235.52c-46.08 0-61.44 15.36-61.44 61.44 5.12 87.04 5.12 179.2 5.12 271.36z" p-id="3678"></path><path d="M517.12 906.24c-51.2 0-51.2 0-51.2-46.08 0-35.84 10.24-61.44 35.84-87.04 76.8-76.8 153.6-153.6 225.28-230.4 15.36-15.36 20.48-15.36 30.72 0 20.48 20.48 40.96 46.08 61.44 66.56 10.24 10.24 10.24 20.48 0 30.72-81.92 87.04-168.96 174.08-250.88 256-15.36 20.48-35.84 5.12-51.2 10.24zM476.16 343.04H302.08c-30.72 0-46.08-10.24-46.08-35.84 0-25.6 15.36-35.84 46.08-35.84h353.28c30.72 0 46.08 10.24 46.08 35.84 0 30.72-20.48 35.84-46.08 35.84H476.16zM424.96 491.52H302.08c-25.6 0-46.08-10.24-46.08-35.84 0-25.6 15.36-35.84 40.96-35.84h240.64c25.6 0 40.96 10.24 46.08 35.84 0 25.6-15.36 35.84-46.08 35.84H424.96zM363.52 645.12H296.96c-20.48 0-40.96-10.24-40.96-35.84 0-25.6 15.36-35.84 40.96-35.84h138.24c25.6 0 40.96 10.24 40.96 35.84 0 25.6-15.36 35.84-40.96 35.84-25.6 5.12-46.08 0-71.68 0zM870.4 593.92c-10.24 0-97.28-92.16-92.16-92.16 10.24-20.48 30.72-35.84 46.08-51.2 15.36-10.24 25.6 0 35.84 10.24l46.08 46.08c10.24 10.24 15.36 25.6 5.12 35.84-10.24 20.48-25.6 40.96-40.96 51.2z" p-id="3679"></path></svg> \ No newline at end of file diff --git a/src/assets/icons/wx.svg b/src/assets/icons/wx.svg new file mode 100644 index 0000000000..85b22b5b80 --- /dev/null +++ b/src/assets/icons/wx.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="400px" height="400.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#ffffff" d="M664.250054 368.541681c10.015098 0 19.892049 0.732687 29.67281 1.795902-26.647917-122.810047-159.358451-214.077703-310.826188-214.077703-169.353083 0-308.085774 114.232694-308.085774 259.274068 0 83.708494 46.165436 152.460344 123.281791 205.78483l-30.80868 91.730191 107.688651-53.455469c38.558178 7.53665 69.459978 15.308661 107.924012 15.308661 9.66308 0 19.230993-0.470721 28.752858-1.225921-6.025227-20.36584-9.521864-41.723264-9.521864-63.862493C402.328693 476.632491 517.908058 368.541681 664.250054 368.541681zM498.62897 285.87389c23.200398 0 38.557154 15.120372 38.557154 38.061874 0 22.846334-15.356756 38.156018-38.557154 38.156018-23.107277 0-46.260603-15.309684-46.260603-38.156018C452.368366 300.994262 475.522716 285.87389 498.62897 285.87389zM283.016307 362.090758c-23.107277 0-46.402843-15.309684-46.402843-38.156018 0-22.941502 23.295566-38.061874 46.402843-38.061874 23.081695 0 38.46301 15.120372 38.46301 38.061874C321.479317 346.782098 306.098002 362.090758 283.016307 362.090758zM945.448458 606.151333c0-121.888048-123.258255-221.236753-261.683954-221.236753-146.57838 0-262.015505 99.348706-262.015505 221.236753 0 122.06508 115.437126 221.200938 262.015505 221.200938 30.66644 0 61.617359-7.609305 92.423993-15.262612l84.513836 45.786813-23.178909-76.17082C899.379213 735.776599 945.448458 674.90216 945.448458 606.151333zM598.803483 567.994292c-15.332197 0-30.807656-15.096836-30.807656-30.501688 0-15.190981 15.47546-30.477129 30.807656-30.477129 23.295566 0 38.558178 15.286148 38.558178 30.477129C637.361661 552.897456 622.099049 567.994292 598.803483 567.994292zM768.25071 567.994292c-15.213493 0-30.594809-15.096836-30.594809-30.501688 0-15.190981 15.381315-30.477129 30.594809-30.477129 23.107277 0 38.558178 15.286148 38.558178 30.477129C806.808888 552.897456 791.357987 567.994292 768.25071 567.994292z" /></svg> \ No newline at end of file diff --git a/src/assets/icons/wxyhbd.svg b/src/assets/icons/wxyhbd.svg new file mode 100644 index 0000000000..bdc5013eae --- /dev/null +++ b/src/assets/icons/wxyhbd.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1572235362533" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2232" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M343.12192 490.72128C222.64832 385.50016 235.6224 227.2768 329.61536 139.27424c94.464-88.448 242.66752-85.02784 329.5488 5.90848 91.49952 95.76448 91.79136 250.14784-22.34368 345.56928 21.48864 9.98912 42.27584 20.3776 61.23008 33.9456 7.6288 5.45792 15.744 10.42432 22.56896 16.768 6.8864 6.4 33.90976 30.86848 39.05536 24.2944 21.83168-27.89376 47.42656-67.2256 69.76-94.72 17.72032-21.81632 12.53888-27.52 36.95616-13.2096 24.99072 14.63808 34.4064 19.42016 58.95168 34.79552 23.92576 14.98624 25.67168 28.03712 6.30272 48.03072a9445.6576 9445.6576 0 0 1-99.70176 101.34016c-5.57568 5.58592-7.36768 9.04192-2.45248 16.6656 46.6688 72.36096 68.86912 152.32 72.2176 237.9008 0.43008 11.05408 1.8432 22.08256 0.18944 33.2032-1.60256 10.76224-7.23968 17.01888-18.16576 18.06848-5.07904 0.4864-10.19392 0.86528-15.29344 0.8704-114.02752 0.04608-228.06528 0.94208-342.08256-0.19456-138.11712-1.37728-276.22912 0.15872-414.336-0.63488-27.51488-0.15872-33.32608-5.53472-32.87552-32.93184 2.06336-126.02368 40.77568-237.87008 130.3296-329.00608 37.21216-37.86752 78.85824-70.40512 127.9232-92.2368 1.92-0.85504 3.73248-1.94048 5.72416-2.97984z m163.8912 376.7552c-47.54944-40.68864-93.824-80.18432-139.93472-119.87456-5.77536-4.97152-11.3152-10.48064-15.8464-16.57344-6.0928-8.19712-4.75136-16.3072 4.01408-21.95456 5.30944-3.42016 11.18208-6.17472 17.11616-8.3712 21.91872-8.1152 29.27104-6.66624 51.19488-14.76608 19.31264-7.13216 27.20256-4.87424 39.808 11.02848 16.6912 21.05344 39.25504 39.89504 58.24 60.8 15.37536 16.93184 45.09184 30.81728 59.44832 13.3376 45.51168-42.7776 88.25344-90.2656 124.70272-135.39328 3.09248-3.82976-26.14272-26.9568-31.34464-30.61248-58.52672-41.13408-123.99104-66.25792-194.93376-62.0288-107.50976 6.41024-192.67072 57.75872-253.72672 147.26144-34.28352 50.25792-53.56544 106.08128-60.01152 166.43072-0.59392 5.57568-2.81088 11.42272 7.7312 11.37152 98.59584-0.51712 197.19168-0.38912 295.78752-0.67584 11.8784-0.03584 23.71072 2.95424 37.75488 0.02048zM342.64064 308.20864c-1.99168 97.74592 80.07168 155.68384 146.91328 155.16672 84.32128-0.65536 149.9392-69.4016 149.92896-158.22848-0.01024-83.56864-63.58528-147.16928-147.15392-147.22048-86.656-0.05632-149.70368 63.24736-149.68832 150.28224z m426.88512 404.4544l-159.04256 155.75552c66.048 0 132.10112-0.22528 198.14912 0.256 9.15456 0.06656 8.53504-4.34688 7.85408-10.09664-6.27712-52.93568-21.23776-103.01952-46.96064-145.91488z" p-id="2233"></path></svg> \ No newline at end of file diff --git a/src/assets/icons/zhanghao.svg b/src/assets/icons/zhanghao.svg new file mode 100644 index 0000000000..3761eb11fd --- /dev/null +++ b/src/assets/icons/zhanghao.svg @@ -0,0 +1 @@ +<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1567410701711" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4012" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M363.52 491.52C307.2 450.56 276.48 399.36 271.36 327.68 261.12 199.68 389.12 87.04 517.12 102.4c117.76 15.36 194.56 117.76 189.44 225.28-5.12 107.52-92.16 199.68-199.68 204.8-71.68 5.12-138.24 20.48-199.68 66.56-76.8 61.44-122.88 143.36-133.12 245.76 0 15.36 10.24 10.24 15.36 10.24h286.72c15.36 0 20.48 5.12 20.48 20.48 0 46.08 0 46.08-46.08 46.08H122.88c-15.36 0-20.48-5.12-20.48-20.48 0-138.24 51.2-261.12 158.72-348.16 30.72-25.6 61.44-46.08 102.4-61.44z m122.88-322.56c-81.92 0-153.6 66.56-153.6 153.6 0 76.8 71.68 148.48 148.48 148.48 87.04 0 153.6-66.56 153.6-148.48 5.12-87.04-61.44-153.6-148.48-153.6zM803.84 419.84h71.68c10.24 0 10.24 5.12 10.24 10.24 0 51.2 5.12 51.2-51.2 51.2h-46.08c-15.36 0-10.24 5.12-10.24 15.36 0 10.24-5.12 20.48 10.24 15.36H870.4c10.24 0 15.36 5.12 15.36 15.36 0 51.2 0 51.2-46.08 51.2h-35.84c-5.12 0-20.48-5.12-20.48 5.12-5.12 10.24 0 20.48 0 35.84 0 5.12 5.12 5.12 10.24 5.12 76.8 10.24 128 66.56 128 143.36 0 66.56-40.96 128-112.64 148.48-66.56 15.36-143.36-20.48-168.96-87.04-25.6-66.56 0-148.48 61.44-184.32 15.36-5.12 15.36-15.36 15.36-30.72V445.44c0-20.48 5.12-25.6 25.6-25.6 20.48 5.12 40.96 0 61.44 0z m51.2 353.28c0-46.08-35.84-81.92-81.92-81.92-46.08 0-81.92 35.84-81.92 81.92 0 46.08 40.96 87.04 87.04 87.04 40.96-5.12 76.8-40.96 76.8-87.04z" p-id="4013"></path></svg> \ No newline at end of file diff --git a/src/assets/loginBg.jpg b/src/assets/loginBg.jpg new file mode 100644 index 0000000000..f73fcd95c3 Binary files /dev/null and b/src/assets/loginBg.jpg differ diff --git a/src/assets/logo.png b/src/assets/logo.png index e887375c35..9f6716811a 100644 Binary files a/src/assets/logo.png and b/src/assets/logo.png differ diff --git a/src/assets/logo1.png b/src/assets/logo1.png new file mode 100644 index 0000000000..1a29f96cc1 Binary files /dev/null and b/src/assets/logo1.png differ diff --git a/src/assets/logowords.png b/src/assets/logowords.png new file mode 100644 index 0000000000..3bcbc832cd Binary files /dev/null and b/src/assets/logowords.png differ diff --git a/src/assets/man.png b/src/assets/man.png new file mode 100644 index 0000000000..f365ee63f9 Binary files /dev/null and b/src/assets/man.png differ diff --git a/src/assets/murry.png b/src/assets/murry.png new file mode 100644 index 0000000000..afdb3cc931 Binary files /dev/null and b/src/assets/murry.png differ diff --git a/src/assets/noData.png b/src/assets/noData.png new file mode 100644 index 0000000000..9b35598b75 Binary files /dev/null and b/src/assets/noData.png differ diff --git a/src/assets/notice.png b/src/assets/notice.png new file mode 100644 index 0000000000..9939a0197c Binary files /dev/null and b/src/assets/notice.png differ diff --git a/src/assets/p-a.png b/src/assets/p-a.png new file mode 100644 index 0000000000..874f924715 Binary files /dev/null and b/src/assets/p-a.png differ diff --git a/src/assets/pdf.png b/src/assets/pdf.png new file mode 100644 index 0000000000..b636364fc0 Binary files /dev/null and b/src/assets/pdf.png differ diff --git a/src/assets/proTitle.png b/src/assets/proTitle.png new file mode 100644 index 0000000000..f2fc6b5d76 Binary files /dev/null and b/src/assets/proTitle.png differ diff --git a/src/assets/question-icon.png b/src/assets/question-icon.png new file mode 100644 index 0000000000..7847c777de Binary files /dev/null and b/src/assets/question-icon.png differ diff --git a/src/assets/tip-icon.png b/src/assets/tip-icon.png new file mode 100644 index 0000000000..157ca8d613 Binary files /dev/null and b/src/assets/tip-icon.png differ diff --git a/src/assets/treeCard.png b/src/assets/treeCard.png new file mode 100644 index 0000000000..190577573f Binary files /dev/null and b/src/assets/treeCard.png differ diff --git a/src/assets/treeTop.png b/src/assets/treeTop.png new file mode 100644 index 0000000000..0f0d70dc8b Binary files /dev/null and b/src/assets/treeTop.png differ diff --git a/src/assets/treeUser.png b/src/assets/treeUser.png new file mode 100644 index 0000000000..b808e3d3ae Binary files /dev/null and b/src/assets/treeUser.png differ diff --git a/src/assets/userCenerHeader.png b/src/assets/userCenerHeader.png new file mode 100644 index 0000000000..8bcc5e5a5b Binary files /dev/null and b/src/assets/userCenerHeader.png differ diff --git a/src/assets/userHeardImg.png b/src/assets/userHeardImg.png new file mode 100644 index 0000000000..f73d81f726 Binary files /dev/null and b/src/assets/userHeardImg.png differ diff --git a/src/assets/warn-1.png b/src/assets/warn-1.png new file mode 100644 index 0000000000..6b88e244eb Binary files /dev/null and b/src/assets/warn-1.png differ diff --git a/src/assets/warn-2.png b/src/assets/warn-2.png new file mode 100644 index 0000000000..9d582f8d4f Binary files /dev/null and b/src/assets/warn-2.png differ diff --git a/src/assets/warn-3.png b/src/assets/warn-3.png new file mode 100644 index 0000000000..f6c2ca2306 Binary files /dev/null and b/src/assets/warn-3.png differ diff --git a/src/assets/woman.png b/src/assets/woman.png new file mode 100644 index 0000000000..334d6e736f Binary files /dev/null and b/src/assets/woman.png differ diff --git a/src/assets/zwhz.png b/src/assets/zwhz.png new file mode 100644 index 0000000000..ca94bd69f5 Binary files /dev/null and b/src/assets/zwhz.png differ diff --git a/src/components/Charts/Bar.vue b/src/components/Charts/Bar.vue index 4482845330..98681300ea 100644 --- a/src/components/Charts/Bar.vue +++ b/src/components/Charts/Bar.vue @@ -2,7 +2,7 @@ <div :style="{ padding: '0 0 32px 32px' }"> <h4 :style="{ marginBottom: '20px' }">{{ title }}</h4> <v-chart - height="254" + height="224" :data="data" :forceFit="true" :padding="['auto', 'auto', '40', '50']"> diff --git a/src/components/Charts/MiniArea.vue b/src/components/Charts/MiniArea.vue index 58fe92c7e7..1172ea6b10 100644 --- a/src/components/Charts/MiniArea.vue +++ b/src/components/Charts/MiniArea.vue @@ -2,8 +2,7 @@ <div class="antv-chart-mini"> <div class="chart-wrapper" :style="{ height: 46 }"> <v-chart :force-fit="true" :height="height" :data="data" :padding="[36, 0, 18, 0]"> - <v-tooltip /> - <v-smooth-area position="x*y" /> + <v-smooth-area position="x*本月访视" /> </v-chart> </div> </div> @@ -17,7 +16,7 @@ const beginDay = new Date().getTime() for (let i = 0; i < 10; i++) { data.push({ x: moment(new Date(beginDay + 1000 * 60 * 60 * 24 * i)).format('YYYY-MM-DD'), - y: Math.round(Math.random() * 10) + '本月访视': Math.round(Math.random() * 10) }) } @@ -31,11 +30,6 @@ const tooltip = [ const scale = [{ dataKey: 'x', min: 2 -}, { - dataKey: 'y', - title: '时间', - min: 1, - max: 22 }] export default { diff --git a/src/components/Charts/MiniBar.vue b/src/components/Charts/MiniBar.vue index beac404bfb..bb9d7ce694 100644 --- a/src/components/Charts/MiniBar.vue +++ b/src/components/Charts/MiniBar.vue @@ -2,8 +2,7 @@ <div class="antv-chart-mini"> <div class="chart-wrapper" :style="{ height: 46 }"> <v-chart :force-fit="true" :height="height" :data="data" :padding="[36, 5, 18, 5]"> - <v-tooltip /> - <v-bar position="x*y" /> + <v-bar position="x*本年患者" /> </v-chart> </div> </div> @@ -17,7 +16,7 @@ const beginDay = new Date().getTime() for (let i = 0; i < 10; i++) { data.push({ x: moment(new Date(beginDay + 1000 * 60 * 60 * 24 * i)).format('YYYY-MM-DD'), - y: Math.round(Math.random() * 10) + 本年患者: Math.round(Math.random() * 10) }) } @@ -33,7 +32,7 @@ const scale = [{ dataKey: 'x', min: 2 }, { - dataKey: 'y', + dataKey: '本年患者', title: '时间', min: 1, max: 30 diff --git a/src/components/Charts/MiniProgress.vue b/src/components/Charts/MiniProgress.vue index e6913631c3..ae070cba76 100644 --- a/src/components/Charts/MiniProgress.vue +++ b/src/components/Charts/MiniProgress.vue @@ -15,8 +15,8 @@ export default { name: 'MiniProgress', props: { target: { - type: Number, - default: 0 + type: String, + default: '0' }, height: { type: String, @@ -27,8 +27,8 @@ export default { default: '#13C2C2' }, percentage: { - type: Number, - default: 0 + type: String, + default: '0' } } } diff --git a/src/components/Charts/Pie.vue b/src/components/Charts/Pie.vue new file mode 100644 index 0000000000..65713c23ab --- /dev/null +++ b/src/components/Charts/Pie.vue @@ -0,0 +1,171 @@ +<template> + <v-chart :forceFit="true" :height="175" :padding="padding" :data="pieData" :scale="scale"> + <v-coord type="theta" :innerRadius="0.8" :radius="0.95"></v-coord> + <v-axis :show="true" /> + <v-tooltip :showTitle="showTitle"></v-tooltip> + <v-legend :useHtml="true" position="right" :reactive="true" :width="250" :containerTpl="containerTplLegend" :itemTpl="itemTpl" :offset="offset"></v-legend> + <v-pie position="percent" color="item" :vStyle="pieStyle" /> + <v-stack-interval position="percent" :color="color" ></v-stack-interval> + </v-chart> +</template> + +<script> + import {getProvinceCompare} from '@/api/home'; +const DataSet = require('@antv/data-set'); + +const setStyle = () => { + const id = 'legend-html'; + if (document.getElementById(id)) { + return; + } + const styleTxt = ` + #canvas .g2-tooltip { + position:absolute; + visibility:hidden; + border-style:solid; + white-space:nowrap; + z-index:9; + transition:left 0.4s cubic-bezier(0.23, 1, 0.32, 1), top 0.4s cubic-bezier(0.23, 1, 0.32, 1); + background-color:rgb(255, 255, 255); + border-width:1px; + border-color: #999; + border-radius:4px; + color: #444; + font-style:normal; + font-variant:normal; + font-weight:normal; + font-stretch:normal; + font-size:14px; + font-family:sans-serif; + line-height:21px; + padding:5px; + } + + #canvas .g2-tooltip-list { + margin: 5px ; + list-style-type:none; + padding:0; + } + #canvas .g2-legend { + top: 45%!important; + } + .g2-legend{ + max-width: 220px!important; + } + .g2-legend-list{ + list-style:none; + margin:0; + padding:0; + } + .g2-legend-list-item{ + cursor:pointer; + font-size:14px; + margin-top:5px; + } + `; + const style = document.createElement('style'); + style.setAttribute('id', id); + style.innerHTML = styleTxt; + document.getElementsByTagName('head')[0].appendChild(style); +}; +setStyle(); +const data = [ + { + country: 'Lithuania', + litres: 501.9 + }, + { + country: 'Czech', + litres: 301.9 + }, + { + country: 'Ireland', + litres: 201.1 + }, + { + country: 'Germany', + litres: 165.8 + }, + { + country: 'Australia', + litres: 139.9 + }, + { + country: 'Austria', + litres: 128.3 + }, + { + country: 'UK', + litres: 99 + } +]; + +export default { + data() { + return { + pieData:{}, + pieStyle: { + stroke: '#fff', + lineWidth: 1 + }, + padding: [0, 300, 0, 0], + offset: [15, 0], + showTitle: false, + scale: [ + { + dataKey: 'percent', + min: 0, + formatter: '.0%' + } + ], + containerTplTooltip: `<div class="g2-tooltip"><ul class="g2-tooltip-list"></ul></div>`, + itemTplTooltip: '<li data-index={index}><span style="color:{color}">{name}:</span>{value}</li>', + containerTplLegend: `<div class="g2-legend"> <table class="g2-legend-list"></table> </div>`, + color: ['provinceName', ['#9760E3', '#3CA0FE', '#38CBCB', '#4FCB74', '#F9D339', '#F1647C']], + }; + }, + created(){ + const that=this; + getProvinceCompare().then(res => { + const ds = new DataSet(); + that.pieData = ds + .createView() + .source(res.data.provinceCompare) + .transform({ + type: 'percent', + field: 'numPatient', + dimension: 'provinceName', + as: 'percent' + }); + }); + }, + methods:{ + itemTpl(value, color, checked, index) { + const obj = this.pieData.rows[index]; + const percent = (obj.percent * 100).toFixed(2) + '%'; + checked = checked ? 'checked' : 'unChecked'; + return ( + '<tr class="g2-legend-list-item item-' + + index + + ' ' + + checked + + '" data-value="' + + value + + '" data-color=' + + color + + ' >' + + '<td style="width:180px;"><i class="g2-legend-marker" style="width:10px;height:10px;display:inline-block;margin-right:10px;background-color:' + + color + + ';"></i>' + + '<span class="g2-legend-text" style="color: #666">' + + value + + '</span></td>' + + '<td style="text-align: right">' + + percent + + '</td>' + + '</tr>' + ); + } + } +}; +</script> diff --git a/src/components/Charts/RankList.vue b/src/components/Charts/RankList.vue index afb56a1af1..4cd9626311 100644 --- a/src/components/Charts/RankList.vue +++ b/src/components/Charts/RankList.vue @@ -3,14 +3,13 @@ <h4 class="title">{{ title }}</h4> <ul class="list"> <li :key="index" v-for="(item, index) in list"> - <span :class="index < 3 ? 'active' : null">{{ index + 1 }}</span> - <span>{{ item.name }}</span> - <span>{{ item.total }}</span> + <span>{{ index + 1 }}</span> + <span class="download" @click="download(item.id)">{{ item.name }}</span> + <span>{{ item.downloads }}</span> </li> </ul> </div> </template> - <script> export default { name: 'RankList', @@ -24,54 +23,68 @@ export default { type: Array, default: null } + }, + data(){ + return { + baseUrl: process.env.VUE_APP_API_BASE_URL + } + }, + methods: { + download(id) { + window.open(this.baseUrl + '/index/downLoad?id=' + id) + } } } </script> - <style lang="less" scoped> +.rank { + padding: 0 32px 32px 72px; - .rank { - padding: 0 32px 32px 72px; + .list { + margin: 16px 0 0; + padding: 0; + list-style: none; - .list { - margin: 25px 0 0; - padding: 0; - list-style: none; + li { + margin-top: 16px; - li { - margin-top: 16px; + span { + color: rgba(0, 0, 0, .65); + font-size: 14px; + line-height: 22px; - span { - color: rgba(0, 0, 0, .65); - font-size: 14px; - line-height: 22px; + &.download { + cursor: pointer; + color: #39f; + } + + &:first-child { + background-color: #f5f5f5; + border-radius: 20px; + display: inline-block; + font-size: 12px; + font-weight: 600; + margin-right: 24px; + height: 20px; + line-height: 20px; + width: 20px; + text-align: center; + } - &:first-child { - background-color: #f5f5f5; - border-radius: 20px; - display: inline-block; - font-size: 12px; - font-weight: 600; - margin-right: 24px; - height: 20px; - line-height: 20px; - width: 20px; - text-align: center; - } - &.active { - background-color: #314659; - color: #fff; - } - &:last-child { - float: right; - } + &.active { + background-color: #314659; + color: #fff; + } + + &:last-child { + float: right; } } } } +} - .mobile .rank { - padding: 0 32px 32px 32px; - } - -</style> +.mobile .rank { + padding: 0 32px 32px 32px; +} +</style> \ No newline at end of file diff --git a/src/components/Editor/QuillEditor.vue b/src/components/Editor/QuillEditor.vue index 731701c883..360a4f09b3 100644 --- a/src/components/Editor/QuillEditor.vue +++ b/src/components/Editor/QuillEditor.vue @@ -1,82 +1,57 @@ <template> - <div :class="prefixCls"> - <quill-editor - v-model="content" - ref="myQuillEditor" - :options="editorOption" - @blur="onEditorBlur($event)" - @focus="onEditorFocus($event)" - @ready="onEditorReady($event)" - @change="onEditorChange($event)"> - </quill-editor> - - </div> + <quill-editor ref="myQuillEditor" v-model="content" :options="editorOption"></quill-editor> </template> <script> -import 'quill/dist/quill.core.css' -import 'quill/dist/quill.snow.css' -import 'quill/dist/quill.bubble.css' - -import { quillEditor } from 'vue-quill-editor' - -export default { - name: 'QuillEditor', - components: { - quillEditor - }, - props: { - prefixCls: { - type: String, - default: 'ant-editor-quill' + import { quillEditor } from 'vue-quill-editor' + import 'quill/dist/quill.snow.css' + import quillConfig from '@/utils/quillConfig' + export default { + name: 'QuillEditor', + components: { + quillEditor }, - // 表单校验用字段 - // eslint-disable-next-line - value: { - type: String - } - }, - data () { - return { - content: null, - editorOption: { - // some quill options + props: { + value: { + type: String } - } - }, - methods: { - onEditorBlur (quill) { - console.log('editor blur!', quill) }, - onEditorFocus (quill) { - console.log('editor focus!', quill) + data() { + return { + content: null, + editorOption: quillConfig + } }, - onEditorReady (quill) { - console.log('editor ready!', quill) + watch: { + value(val) { + this.content = val + } }, - onEditorChange ({ quill, html, text }) { - console.log('editor change!', quill, html, text) - this.$emit('change', html) - } - }, - watch: { - value (val) { - this.content = val + computed: { + editor() { + return this.$refs.myQuillEditor.quill + } + }, + methods: { + onEditorBlur(quill) { + console.log('editor blur!', quill) + }, + onEditorFocus(quill) { + console.log('editor focus!', quill) + }, + onEditorReady(quill) { + console.log('editor ready!', quill) + }, + onEditorChange({ quill, html, text }) { + console.log('editor change!', quill, html, text) + this.$emit('change', html) + } } } -} </script> <style lang="less" scoped> -@import url('../index.less'); - -/* 覆盖 quill 默认边框圆角为 ant 默认圆角,用于统一 ant 组件风格 */ -.ant-editor-quill { - /deep/ .ql-toolbar.ql-snow { - border-radius: @border-radius-base @border-radius-base 0 0; - } - /deep/ .ql-container.ql-snow { - border-radius: 0 0 @border-radius-base @border-radius-base; + .ql-editor { + height: 350px; } -} </style> diff --git a/src/components/GlobalHeader/GlobalHeader.vue b/src/components/GlobalHeader/GlobalHeader.vue index f4490ec169..ecb238ec05 100644 --- a/src/components/GlobalHeader/GlobalHeader.vue +++ b/src/components/GlobalHeader/GlobalHeader.vue @@ -1,19 +1,19 @@ <template> <transition name="showHeader"> <div v-if="visible" class="header-animat"> - <a-layout-header - v-if="visible" - :class="[fixedHeader && 'ant-header-fixedHeader', sidebarOpened ? 'ant-header-side-opened' : 'ant-header-side-closed', ]" - :style="{ padding: '0' }"> + <a-layout-header v-if="visible" :class="[fixedHeader && 'ant-header-fixedHeader', sidebarOpened ? 'ant-header-side-opened' : 'ant-header-side-closed', ]" :style="{ padding: '0' }"> <div v-if="mode === 'sidemenu'" class="header"> - <a-icon v-if="device==='mobile'" class="trigger" :type="collapsed ? 'menu-fold' : 'menu-unfold'" @click="toggle"/> - <a-icon v-else class="trigger" :type="collapsed ? 'menu-unfold' : 'menu-fold'" @click="toggle"/> - <user-menu></user-menu> + <a-icon v-if="device==='mobile'" class="trigger" :type="collapsed ? 'menu-fold' : 'menu-unfold'" @click="toggle" /> + <a-icon v-else class="trigger" :type="collapsed ? 'menu-unfold' : 'menu-fold'" @click="toggle" /> + <span class="right"> + <user-menu ></user-menu> + <header-notice ref="headerNotice" style="float: right; padding-top: 2px;margin-right: 16px;cursor: pointer;"></header-notice> + </span> </div> <div v-else :class="['top-nav-header-index', theme]"> <div class="header-index-wide"> <div class="header-index-left"> - <logo class="top-nav-header" :show-title="device !== 'mobile'"/> + <logo class="top-nav-header" :show-title="device !== 'mobile'" /> <s-menu v-if="device !== 'mobile'" mode="horizontal" :menu="menus" :theme="theme" /> <a-icon v-else class="trigger" :type="collapsed ? 'menu-fold' : 'menu-unfold'" @click="toggle" /> </div> @@ -24,19 +24,21 @@ </div> </transition> </template> - <script> import UserMenu from '../tools/UserMenu' +import HeaderNotice from '@/components/newsMessage/DropDownInfo.vue' import SMenu from '../Menu/' import Logo from '../tools/Logo' import { mixin } from '@/utils/mixin' +import { ACCESS_TOKEN } from '@/store/mutation-types' export default { name: 'GlobalHeader', components: { UserMenu, SMenu, - Logo + Logo, + HeaderNotice }, mixins: [mixin], props: { @@ -68,18 +70,19 @@ export default { data () { return { visible: true, - oldScrollTop: 0 + oldScrollTop: 0, + displayAll: this.$ls.get(ACCESS_TOKEN).purviewType === 1 || false } }, mounted () { document.addEventListener('scroll', this.handleScroll, { passive: true }) + // this.$refs.HeaderNotice.fetchNotice() }, methods: { handleScroll () { if (!this.autoHideHeader) { return } - const scrollTop = document.body.scrollTop + document.documentElement.scrollTop if (!this.ticking) { this.ticking = true @@ -98,6 +101,9 @@ export default { }, toggle () { this.$emit('toggle') + }, + jumpReport () { + this.$router.push('/report/index') } }, beforeDestroy () { @@ -105,21 +111,24 @@ export default { } } </script> - <style lang="less"> @import '../index.less'; -.header-animat{ +.header-animat { position: relative; z-index: @ant-global-header-zindex; } + .showHeader-enter-active { transition: all 0.25s ease; } + .showHeader-leave-active { transition: all 0.5s ease; } -.showHeader-enter, .showHeader-leave-to { + +.showHeader-enter, +.showHeader-leave-to { opacity: 0; } </style> diff --git a/src/components/Menu/SideMenu.vue b/src/components/Menu/SideMenu.vue index 62fb01d9e9..de34d30310 100644 --- a/src/components/Menu/SideMenu.vue +++ b/src/components/Menu/SideMenu.vue @@ -1,7 +1,7 @@ <template> <a-layout-sider :class="['sider', isDesktop() ? null : 'shadow', theme, fixSiderbar ? 'ant-fixed-sidemenu' : null ]" - width="256px" + width="190px" :collapsible="collapsible" v-model="collapsed" :trigger="null"> @@ -59,3 +59,12 @@ export default { } } </script> +<style leng="less"> + /* .ant-layout-sider-children .ant-menu .ant-menu-item .anticon{ + font-size: 14px; + } */ + .ant-menu-root > .ant-menu-item .anticon, + .ant-menu-submenu-title .anticon { + font-size: 20px!important; + } +</style> diff --git a/src/components/SettingDrawer/SettingDrawer.vue b/src/components/SettingDrawer/SettingDrawer.vue index 52ed726a38..14c1efafe3 100644 --- a/src/components/SettingDrawer/SettingDrawer.vue +++ b/src/components/SettingDrawer/SettingDrawer.vue @@ -6,6 +6,7 @@ @close="onClose" :closable="false" :visible="visible" + :handle="handle" > <div class="setting-drawer-index-content"> @@ -183,18 +184,15 @@ export default { mixins: [mixin, mixinDevice], data () { return { - visible: true, - colorList + visible: false, + colorList, + handle: <div/> } }, watch: { }, mounted () { - const vm = this - setTimeout(() => { - vm.visible = false - }, 16) updateTheme(this.primaryColor) if (this.colorWeak !== config.colorWeak) { updateColorWeak(this.colorWeak) diff --git a/src/components/Table/index.js b/src/components/Table/index.js index 591fe0898f..aad0aa5f44 100644 --- a/src/components/Table/index.js +++ b/src/components/Table/index.js @@ -2,7 +2,7 @@ import T from 'ant-design-vue/es/table/Table' import get from 'lodash.get' export default { - data () { + data() { return { needTotalList: [], @@ -23,13 +23,21 @@ export default { type: Function, required: true }, + pageSizeOptions: { + type: Array, + default: () => ['10', '15', '20', '30'] + }, pageNum: { type: Number, default: 1 }, pageSize: { type: Number, - default: 10 + default: 20 + }, + showQuickJumper: { + type: Boolean, + default: true }, showSizeChanger: { type: Boolean, @@ -62,6 +70,15 @@ export default { type: String | Boolean, default: 'auto' }, + scroll: { + type:Object, + default: function(){ + return { + x: 'calc(1600px + 50%)', + y: window.screen.height - 368 + 'px' + } + } + }, /** * enable page URI mode * @@ -77,7 +94,7 @@ export default { } }), watch: { - 'localPagination.current' (val) { + 'localPagination.current'(val) { this.pageURI && this.$router.push({ ...this.$route, name: this.$route.name, @@ -86,28 +103,27 @@ export default { }) }) }, - pageNum (val) { + pageNum(val) { Object.assign(this.localPagination, { current: val }) }, - pageSize (val) { + pageSize(val) { Object.assign(this.localPagination, { pageSize: val }) - }, - showSizeChanger (val) { - Object.assign(this.localPagination, { - showSizeChanger: val - }) } }, - created () { - const { pageNo } = this.$route.params + created() { + const { + pageNo + } = this.$route.params const localPageNum = this.pageURI && (pageNo && parseInt(pageNo)) || this.pageNum this.localPagination = ['auto', true].includes(this.showPagination) && Object.assign({}, this.localPagination, { current: localPageNum, pageSize: this.pageSize, + pageSizeOptions: this.pageSizeOptions, + showQuickJumper : this.showQuickJumper, showSizeChanger: this.showSizeChanger }) || false console.log('this.localPagination', this.localPagination) @@ -120,34 +136,46 @@ export default { * 如果参数为 true, 则强制刷新到第一页 * @param Boolean bool */ - refresh (bool = false) { + refresh(bool = false, keyword) { bool && (this.localPagination = Object.assign({}, { - current: 1, pageSize: this.pageSize + current: 1, + pageSize: this.pageSize, + keyWord: keyword })) this.loadData() }, + //添加搜索项 + search(keyword) { + const pagination = Object.assign({ + current: 1, + pageSize: this.pageSize + }) + const filters = Object.assign({}, keyword) + this.loadData(pagination, filters) + }, /** * 加载数据方法 * @param {Object} pagination 分页选项器 * @param {Object} filters 过滤条件 * @param {Object} sorter 排序条件 */ - loadData (pagination, filters, sorter) { + loadData(pagination, filters, sorter) { this.localLoading = true + console.log("filters", filters) const parameter = Object.assign({ - pageNo: (pagination && pagination.current) || - this.showPagination && this.localPagination.current || this.pageNum, - pageSize: (pagination && pagination.pageSize) || - this.showPagination && this.localPagination.pageSize || this.pageSize - }, - (sorter && sorter.field && { - sortField: sorter.field - }) || {}, - (sorter && sorter.order && { - sortOrder: sorter.order - }) || {}, { - ...filters - } + pageNumber: (pagination && pagination.current) || + this.showPagination && this.localPagination.current || this.pageNum, + pageSize: (pagination && pagination.pageSize) || + this.showPagination && this.localPagination.pageSize || this.pageSize + }, + (sorter && sorter.field && { + sortField: sorter.field + }) || {}, + (sorter && sorter.order && { + sortOrder: sorter.order + }) || {}, { + ...filters + } ) console.log('parameter', parameter) const result = this.data(parameter) @@ -156,9 +184,9 @@ export default { if ((typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function') { result.then(r => { this.localPagination = this.showPagination && Object.assign({}, this.localPagination, { - current: r.pageNo, // 返回结果中的当前分页数 - total: r.totalCount, // 返回结果中的总记录数 - showSizeChanger: this.showSizeChanger, + current: r.current, // 返回结果中的当前分页数 + total: r.total, // 返回结果中的总记录数 + showTotal: total => `总计 ${total} 条`, pageSize: (pagination && pagination.pageSize) || this.localPagination.pageSize }) || false @@ -171,20 +199,20 @@ export default { // 这里用于判断接口是否有返回 r.totalCount 且 this.showPagination = true 且 pageNo 和 pageSize 存在 且 totalCount 小于等于 pageNo * pageSize 的大小 // 当情况满足时,表示数据不满足分页大小,关闭 table 分页功能 - try { - if ((['auto', true].includes(this.showPagination) && r.totalCount <= (r.pageNo * this.localPagination.pageSize))) { - this.localPagination.hideOnSinglePage = true - } - } catch (e) { - this.localPagination = false - } + // try { + // if ((['auto', true].includes(this.showPagination) && r.total <= (r.current * this.localPagination.pageSize))) { + // this.localPagination.hideOnSinglePage = true + // } + // } catch (e) { + // this.localPagination = false + // } console.log('loadData -> this.localPagination', this.localPagination) this.localDataSource = r.data // 返回结果中的数组数据 this.localLoading = false }) } }, - initTotalList (columns) { + initTotalList(columns) { const totalList = [] columns && columns instanceof Array && columns.forEach(column => { if (column.needTotal) { @@ -196,12 +224,30 @@ export default { }) return totalList }, + selectAll() { + const data = this.localDataSource; + const selectedRows = this.selectedRows; + if(data.length === selectedRows.length){ + return + }else{ + const index = []; + data.forEach(item => { + index.push(Number(item.patientId)) + }); + console.log('index', index); + console.log('data', data); + this.rowSelection.onChange(index, data) + // // + this.updateSelect(index, data) + } + }, /** * 用于更新已选中的列表数据 total 统计 * @param selectedRowKeys * @param selectedRows */ - updateSelect (selectedRowKeys, selectedRows) { + + updateSelect(selectedRowKeys, selectedRows) { this.selectedRows = selectedRows this.selectedRowKeys = selectedRowKeys const list = this.needTotalList @@ -218,7 +264,7 @@ export default { /** * 清空 table 已选中项 */ - clearSelected () { + clearSelected() { if (this.rowSelection) { this.rowSelection.onChange([], []) this.updateSelect([], []) @@ -229,88 +275,109 @@ export default { * @param callback * @returns {*} */ - renderClear (callback) { + renderClear(callback) { if (this.selectedRowKeys.length <= 0) return null - return ( - <a style="margin-left: 24px" onClick={() => { - callback() - this.clearSelected() - }}>清空</a> + return ( < + a style = "margin-left: 24px" + onClick = { + () => { + callback() + this.clearSelected() + } + } > 清空 < /a> ) }, - renderAlert () { + renderAlert() { // 绘制统计列数据 const needTotalItems = this.needTotalList.map((item) => { - return (<span style="margin-right: 12px"> - {item.title}总计 <a style="font-weight: 600">{!item.customRender ? item.total : item.customRender(item.total)}</a> - </span>) - }) + return ( < span style = "margin-right: 12px" > { + item.title + } + 总计 < a style = "font-weight: 600" > {!item.customRender ? item.total : item.customRender(item.total) + } < /a> < + /span>) + }) - // 绘制 清空 按钮 - const clearItem = (typeof this.alert.clear === 'boolean' && this.alert.clear) ? ( - this.renderClear(this.clearSelected) - ) : (this.alert !== null && typeof this.alert.clear === 'function') ? ( - this.renderClear(this.alert.clear) - ) : null + // 绘制 清空 按钮 + const clearItem = (typeof this.alert.clear === 'boolean' && this.alert.clear) ? ( + this.renderClear(this.clearSelected) + ) : (this.alert !== null && typeof this.alert.clear === 'function') ? ( + this.renderClear(this.alert.clear) + ) : null - // 绘制 alert 组件 - return ( - <a-alert showIcon={true} style="margin-bottom: 16px"> - <template slot="message"> - <span style="margin-right: 12px">已选择: <a style="font-weight: 600">{this.selectedRows.length}</a></span> - {needTotalItems} - {clearItem} - </template> - </a-alert> - ) - } - }, + // 绘制 alert 组件 + if (this.alert.show) { + return ( < + a-alert showIcon = { + true + } + style = "margin-bottom: 16px" > + < + template slot = "message" > + < + span style = "margin-right: 12px" > 已选择: < a style = "font-weight: 600" > { + this.selectedRows.length + } < /a></span > { + needTotalItems + } { + clearItem + } < + /template> < + /a-alert> + ) + } + } + }, - render () { - const props = {} - const localKeys = Object.keys(this.$data) - const showAlert = (typeof this.alert === 'object' && this.alert !== null && this.alert.show) && typeof this.rowSelection.selectedRowKeys !== 'undefined' || this.alert + render() { + const props = {} + const localKeys = Object.keys(this.$data) + const showAlert = (typeof this.alert === 'object' && this.alert !== null && this.alert.show) && typeof this.rowSelection + .selectedRowKeys !== 'undefined' || this.alert - Object.keys(T.props).forEach(k => { - const localKey = `local${k.substring(0, 1).toUpperCase()}${k.substring(1)}` - if (localKeys.includes(localKey)) { - props[k] = this[localKey] - return props[k] - } - if (k === 'rowSelection') { - if (showAlert && this.rowSelection) { - // 如果需要使用alert,则重新绑定 rowSelection 事件 - console.log('this.rowSelection', this.rowSelection) - props[k] = { - ...this.rowSelection, - selectedRows: this.selectedRows, - selectedRowKeys: this.selectedRowKeys, - onChange: (selectedRowKeys, selectedRows) => { - this.updateSelect(selectedRowKeys, selectedRows) - typeof this[k].onChange !== 'undefined' && this[k].onChange(selectedRowKeys, selectedRows) + Object.keys(T.props).forEach(k => { + const localKey = `local${k.substring(0, 1).toUpperCase()}${k.substring(1)}` + if (localKeys.includes(localKey)) { + props[k] = this[localKey] + return props[k] + } + if (k === 'rowSelection') { + if (showAlert && this.rowSelection) { + // 如果需要使用alert,则重新绑定 rowSelection 事件 + console.log('this.rowSelection', this.rowSelection) + props[k] = { + ...this.rowSelection, + selectedRows: this.selectedRows, + selectedRowKeys: this.selectedRowKeys, + onChange: (selectedRowKeys, selectedRows) => { + this.updateSelect(selectedRowKeys, selectedRows) + typeof this[k].onChange !== 'undefined' && this[k].onChange(selectedRowKeys, selectedRows) + } } + return props[k] + } else if (!this.rowSelection) { + // 如果没打算开启 rowSelection 则清空默认的选择项 + props[k] = null + return props[k] } - return props[k] - } else if (!this.rowSelection) { - // 如果没打算开启 rowSelection 则清空默认的选择项 - props[k] = null - return props[k] } - } - this[k] && (props[k] = this[k]) - return props[k] - }) - const table = ( - <a-table {...{ props, scopedSlots: { ...this.$scopedSlots } }} onChange={this.loadData}> - { Object.keys(this.$slots).map(name => (<template slot={name}>{this.$slots[name]}</template>)) } - </a-table> - ) + this[k] && (props[k] = this[k]) + return props[k] + }) + console.log("props",props) + const table = ( <a-table { ...{ props,scopedSlots: { ...this.$scopedSlots} } } onChange = { this.loadData } > { + Object.keys(this.$slots).map(name => ( < template slot = {name } > {this.$slots[name] + } < /template>)) } < + /a-table> + ) - return ( - <div class="table-wrapper"> - { showAlert ? this.renderAlert() : null } - { table } - </div> - ) - } -} + return ( < + div class = "table-wrapper" > { + showAlert ? this.renderAlert() : null + } { + table + } < + /div> + ) + } + } diff --git a/src/components/Tree/Tree.jsx b/src/components/Tree/Tree.jsx index e5a2a11391..67c725c1d7 100644 --- a/src/components/Tree/Tree.jsx +++ b/src/components/Tree/Tree.jsx @@ -1,8 +1,7 @@ import { Menu, Icon, Input } from 'ant-design-vue' - +import _ from 'lodash' const { Item, ItemGroup, SubMenu } = Menu const { Search } = Input - export default { name: 'Tree', props: { @@ -17,24 +16,53 @@ export default { search: { type: Boolean, default: false - } + }, + treeTitle: { + type: String, + default: '' + }, + defaultSelectedKeys:{ + type: Array, + default: () => [] + }, }, created () { - this.localOpenKeys = this.openKeys.slice(0) + + }, + activated() { + this.selectedKeys = this.defaultSelectedKeys }, data () { return { - localOpenKeys: [] + localOpenKeys: [], + selectedKeys:[] } }, methods: { handlePlus (item) { this.$emit('add', item) }, + clickItem(item){ + this.selectedKeys=[item.key] + this.$emit('click', item) + }, handleTitleClick (...args) { this.$emit('titleClick', { args }) }, - + onOpenChange (openKeys) { + const latestOpenKey = openKeys.find(key => this.localOpenKeys.indexOf(key) === -1) + const dataSource=[]; + _.each(this.dataSource,function(item) { + if(item.childList){ + dataSource.push(item.basisMarkId) + } + }) + if (dataSource.indexOf(latestOpenKey) === -1) { + this.localOpenKeys = openKeys + } else { + this.localOpenKeys = latestOpenKey ? [latestOpenKey] :[] + } + }, renderSearch () { return ( <Search @@ -46,27 +74,34 @@ export default { renderIcon (icon) { return icon && (<Icon type={icon} />) || null }, + renderTreeIcon(executeStatus){ + if(!executeStatus) return (<i class="placeholderI"></i>) + if(executeStatus === 1) return (<Icon type="clock-circle" theme="filled" />) + if(executeStatus === 2) return (<Icon type="check-circle" theme="filled" />) + }, renderMenuItem (item) { return ( - <Item key={item.key}> + <Item key={item.basisMarkId}> + <div style="padding-left:20px;"> + {this.renderTreeIcon(item.executeStatus)} { this.renderIcon(item.icon) } - { item.title } - <a class="btn" style="width: 20px;z-index:1300" {...{ on: { click: () => this.handlePlus(item) } }}><a-icon type="plus"/></a> + <span class="treeSubTitle">{ item.basisMarkName }</span> + </div> </Item> ) }, renderItem (item) { - return item.children ? this.renderSubItem(item, item.key) : this.renderMenuItem(item, item.key) + return item.childList ? this.renderSubItem(item, item.basisMarkId) : this.renderMenuItem(item, item.basisMarkId) }, renderItemGroup (item) { - const childrenItems = item.children.map(o => { - return this.renderItem(o, o.key) + const childrenItems = item.childList.map(o => { + return this.renderItem(o, o.basisMarkId) }) return ( - <ItemGroup key={item.key}> + <ItemGroup key={item.basisMarkId}> <template slot="title"> - <span>{ item.title }</span> + <span>{ item.basisMarkName }</span> <a-dropdown> <a class="btn"><a-icon type="ellipsis" /></a> <a-menu slot="overlay"> @@ -81,14 +116,16 @@ export default { ) }, renderSubItem (item, key) { - const childrenItems = item.children && item.children.map(o => { - return this.renderItem(o, o.key) + const childrenItems = item.childList && item.childList.map(o => { + return this.renderItem(o, o.basisMarkId) }) const title = ( - <span slot="title"> + <span slot="title" style="padding-left:20px;"> + {/*<Icon type="clock-circle" theme="filled" />*/} + {this.renderTreeIcon(item.executeStatus)} { this.renderIcon(item.icon) } - <span>{ item.title }</span> + <span class="treeSubTitle">{ item.basisMarkName }</span> </span> ) @@ -104,10 +141,41 @@ export default { ) } }, + watch:{ + dataSource(newValue,old){ + const newData=[]; + const that=this; + if(this.defaultSelectedKeys.length==0){ + this.selectedKeys=[newValue[0].basisMarkId] + return false + } + _.each(newValue,function(item){ + newData.push(item.basisMarkId) + }) + if(newData.indexOf(this.defaultSelectedKeys[0])>-1){ + this.selectedKeys=this.defaultSelectedKeys; + }else{ + _.each(newValue,function(item){ + if(item.childList){ + const childList=[] + _.each(item.childList,function(v){ + childList.push(v.basisMarkId) + }) + if(childList.indexOf(that.defaultSelectedKeys[0])>-1){ + that.selectedKeys=that.defaultSelectedKeys; + that.localOpenKeys=[item.basisMarkId]; + return false + } + } + }) + } + } + }, render () { - const { dataSource, search } = this.$props + const { dataSource, search, treeTitle } = this.$props - // this.localOpenKeys = openKeys.slice(0) + // // this.localOpenKeys =this.openKeys.slice(0) + console.log("确定",this.localOpenKeys) const list = dataSource.map(item => { return this.renderItem(item) }) @@ -115,7 +183,8 @@ export default { return ( <div class="tree-wrapper"> { search ? this.renderSearch() : null } - <Menu mode="inline" class="custom-tree" {...{ on: { click: item => this.$emit('click', item), 'update:openKeys': val => { this.localOpenKeys = val } } }} openKeys={this.localOpenKeys}> + <div class="tree-title">{ treeTitle }</div> + <Menu mode="inline" inlineIndent={0} class="custom-tree" {...{ on: { click: this.clickItem,openChange:this.onOpenChange } }} selectedKeys={this.selectedKeys} openKeys={this.localOpenKeys}> { list } </Menu> </div> diff --git a/src/components/Tree/Tree2.jsx b/src/components/Tree/Tree2.jsx new file mode 100644 index 0000000000..674b7b4299 --- /dev/null +++ b/src/components/Tree/Tree2.jsx @@ -0,0 +1,193 @@ +import { Menu, Icon, Input } from 'ant-design-vue' +import _ from 'lodash' +const { Item, ItemGroup, SubMenu } = Menu +const { Search } = Input +export default { + name: 'Tree2', + props: { + dataSource: { + type: Array, + required: true + }, + openKeys: { + type: Array, + default: () => [] + }, + search: { + type: Boolean, + default: false + }, + treeTitle: { + type: String, + default: '' + }, + defaultSelectedKeys:{ + type: Array, + default: () => [] + }, + }, + created () { + + }, + activated() { + this.selectedKeys = this.defaultSelectedKeys + }, + data () { + return { + localOpenKeys: [], + selectedKeys:[] + } + }, + methods: { + handlePlus (item) { + this.$emit('add', item) + }, + clickItem(item){ + this.selectedKeys=[item.key] + this.$emit('click', item) + }, + handleTitleClick (...args) { + this.$emit('titleClick', { args }) + }, + onOpenChange (openKeys) { + const latestOpenKey = openKeys.find(key => this.localOpenKeys.indexOf(key) === -1) + const dataSource=[]; + _.each(this.dataSource,function(item) { + if(item.childList){ + dataSource.push(item.reportTypeId) + } + }) + if (dataSource.indexOf(latestOpenKey) === -1) { + this.localOpenKeys = openKeys + } else { + this.localOpenKeys = latestOpenKey ? [latestOpenKey] :[] + } + }, + renderSearch () { + return ( + <Search + placeholder="input search text" + style="width: 100%; margin-bottom: 1rem" + /> + ) + }, + renderIcon (icon) { + return icon && (<Icon type={icon} />) || null + }, + renderTreeIcon(executeStatus){ + if(!executeStatus) return (<i class="placeholderI"></i>) + if(executeStatus === 1) return (<Icon type="clock-circle" theme="filled" />) + if(executeStatus === 2) return (<Icon type="check-circle" theme="filled" />) + }, + renderMenuItem (item) { + return ( + <Item key={item.reportTypeId}> + <div style="padding-left:40px;"> + {this.renderTreeIcon(item.executeStatus)} + { this.renderIcon(item.icon) } + <span class="treeSubTitle">{ item.reportTypeName }</span> + </div> + </Item> + ) + }, + renderItem (item) { + return item.childList ? this.renderSubItem(item, item.reportTypeId) : this.renderMenuItem(item, item.reportTypeId) + }, + renderItemGroup (item) { + const childrenItems = item.childList.map(o => { + return this.renderItem(o, o.reportTypeId) + }) + + return ( + <ItemGroup key={item.reportTypeId}> + <template slot="title"> + <span>{ item.reportTypeName }</span> + <a-dropdown> + <a class="btn"><a-icon type="ellipsis" /></a> + <a-menu slot="overlay"> + <a-menu-item key="1">新增</a-menu-item> + <a-menu-item key="2">合并</a-menu-item> + <a-menu-item key="3">移除</a-menu-item> + </a-menu> + </a-dropdown> + </template> + { childrenItems } + </ItemGroup> + ) + }, + renderSubItem (item, key) { + const childrenItems = item.childList && item.childList.map(o => { + return this.renderItem(o, o.reportTypeId) + }) + + const title = ( + <span slot="title" style="padding-left:40px;"> + {/*<Icon type="clock-circle" theme="filled" />*/} + {this.renderTreeIcon(item.executeStatus)} + { this.renderIcon(item.icon) } + <span class="treeSubTitle">{ item.reportTypeName }</span> + </span> + ) + + if (item.group) { + return this.renderItemGroup(item) + } + // titleClick={this.handleTitleClick(item)} + return ( + <SubMenu key={key}> + { title } + { childrenItems } + </SubMenu> + ) + } + }, + watch:{ + dataSource(newValue,old){ + const newData=[]; + const that=this; + if(this.defaultSelectedKeys.length==0){ + this.selectedKeys=[newValue[0].reportTypeId] + return false + } + _.each(newValue,function(item){ + newData.push(item.reportTypeId) + }) + if(newData.indexOf(this.defaultSelectedKeys[0])>-1){ + this.selectedKeys=this.defaultSelectedKeys; + }else{ + _.each(newValue,function(item){ + if(item.childList){ + const childList=[] + _.each(item.childList,function(v){ + childList.push(v.reportTypeId) + }) + if(childList.indexOf(that.defaultSelectedKeys[0])>-1){ + that.selectedKeys=that.defaultSelectedKeys; + that.localOpenKeys=[item.reportTypeId]; + return false + } + } + }) + } + } + }, + render () { + const { dataSource, search, treeTitle } = this.$props + + // // this.localOpenKeys =this.openKeys.slice(0) + console.log("确定",this.localOpenKeys) + const list = dataSource.map(item => { + return this.renderItem(item) + }) + + return ( + <div class="tree-wrapper"> + { search ? this.renderSearch() : null } + <div class="tree-title">{ treeTitle }</div> + <Menu mode="inline" inlineIndent={0} class="custom-tree" {...{ on: { click: this.clickItem,openChange:this.onOpenChange } }} selectedKeys={this.selectedKeys} openKeys={this.localOpenKeys}> + { list } + </Menu> + </div> + ) + } +} diff --git a/src/components/_util/util.js b/src/components/_util/util.js index dd33231f64..07af5c1681 100644 --- a/src/components/_util/util.js +++ b/src/components/_util/util.js @@ -2,6 +2,13 @@ * components util */ +import { Icon } from 'ant-design-vue'; + +export const MyIcon = Icon.createFromIconfontCN({ + scriptUrl: '//at.alicdn.com/t/font_1349368_jc6uwyeext.js', +}) + + /** * 清理空值,对象 * @param children diff --git a/src/components/global.less b/src/components/global.less index fb1124d02d..164561c60d 100644 --- a/src/components/global.less +++ b/src/components/global.less @@ -17,6 +17,7 @@ body { &.mobile, &.tablet { .ant-layout-content { + margin: 10px; .content { margin: 24px 0 0; } @@ -289,6 +290,11 @@ body { float: right; } } + // .header-notice .headerNotice .ant-dropdown-trigger{ + // position: absolute; + // right: 165px; + // top: 3px; + // } } &.light { @@ -355,7 +361,8 @@ body { box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35); position: relative; z-index: 10; - min-height: 100vh; + // min-height: 100vh; + height: 625px; .ant-layout-sider-children { overflow-y: hidden; @@ -376,7 +383,8 @@ body { padding-left: 24px; overflow: hidden; line-height: 64px; - background: #002140; + // background: #818486; + background: #00284d; transition: all .3s; img, @@ -388,17 +396,17 @@ body { img, svg { - height: 32px; - width: 32px; + height: 40px; + width: 46px; } h1 { color: #fff; font-size: 20px; - margin: 0 0 0 12px; + margin: 0; + margin-left: 10px; font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; font-weight: 600; - vertical-align: middle; } } @@ -488,3 +496,53 @@ body { } } } +/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/ +::-webkit-scrollbar +{ + width: 6px; + height: 6px; + background-color: #F5F5F5; +} + +/*定义滚动条轨道 内阴影+圆角*/ +::-webkit-scrollbar-track +{ + -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); + border-radius: 10px; + background-color: #FFF; +} + +/*定义滑块 内阴影+圆角*/ +::-webkit-scrollbar-thumb +{ + border-radius: 10px; + -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3); + background-color: #AAA; +} + +/* 定义全局模态框样式 */ +.ant-modal-header { + background-color: #1890ff!important; +} + +.ant-modal-title { + font-size: 20px!important; + color: #fff!important; +} + +.ant-modal-close { + color: #fff!important; +} + +.ant-modal-close-x { + font-size: 20px!important; +} + +.ant-table-pagination.ant-pagination { + float: left!important; +} +.card-box .tip{ + color: red; + font-weight: bold; + margin: 10px; +} \ No newline at end of file diff --git a/src/components/index.js b/src/components/index.js index 6004742a5e..7da0f74fd7 100644 --- a/src/components/index.js +++ b/src/components/index.js @@ -1,5 +1,6 @@ // chart import Bar from '@/components/Charts/Bar' +import Pie from '@/components/Charts/Pie' import ChartCard from '@/components/Charts/ChartCard' import Liquid from '@/components/Charts/Liquid' import MiniArea from '@/components/Charts/MiniArea' @@ -28,10 +29,10 @@ import TagSelect from '@/components/TagSelect' import ExceptionPage from '@/components/Exception' import StandardFormRow from '@/components/StandardFormRow' import ArticleListContent from '@/components/ArticleListContent' - export { AvatarList, Bar, + Pie, ChartCard, Liquid, MiniArea, diff --git a/src/components/newsMessage/DropDownInfo.vue b/src/components/newsMessage/DropDownInfo.vue new file mode 100644 index 0000000000..725f2bdbe9 --- /dev/null +++ b/src/components/newsMessage/DropDownInfo.vue @@ -0,0 +1,190 @@ +<template> + <a-dropdown :trigger="['click']" v-model="show"> + <div slot="overlay"> + <a-spin :spinning="loading"> + <a-tabs class="dropdown-tabs" :style="{width: '350px'}"> + <a-tab-pane tab="消息中心"> + <a-list class="tab-pane" v-for="(item, index) in (showDisplay? unReadMessage : textList)" :key="index"> + <div class="titleTime"> + <img src="../../assets/notice.png" /> + <span>{{ item.updatedDate | formDate }}</span> + <p>{{ item.content }}</p> + </div> + </a-list> + <div v-if="unReadMessage.length == 0? true : false" class="info">暂无新的消息</div> + <!-- <div @click="showDisplay = !showDisplay" class="show" v-if="unReadMessage.length > 3"> + <span> + {{ !showDisplay? '展开' : '收起' }} + </span> + </div> --> + <button type="button" @click="homeToInfo()" class="btn" v-if="unReadMessage.length > 0">查看所有消息 >>></button> + </a-tab-pane> + </a-tabs> + </a-spin> + </div> + <span @click="fetchNotice" class="header-notice"> + <a-badge class="notice-badge" :count="messageNum"> + <a-icon :class="['header-notice-icon']" type="bell" /> + </a-badge> + </span> + </a-dropdown> +</template> + +<script> +import { getUnReadAnnouncement } from '@/api/basis' +import moment from 'moment' +import { mapGetters } from 'vuex' +export default { + name: 'HeaderNotice', + data () { + return { + loading: false, + show: false, + unReadMessage: [], + showDisplay: false + } + }, + created () { + this.fetchNotice() + }, + computed: { + ...mapGetters({ + messageNum: 'messageNum' + }), + textList () { + if (this.showDisplay == false) { + let textList = [] + if (this.unReadMessage.length > 3) { + for (var i = 0; i < 3; i++) { + textList.push(this.unReadMessage[i]) + } + } else { + textList = this.unReadMessage + } + return textList + } else { + return this.unReadMessage + } + } + }, + filters: { + formDate (date) { + return moment(date).format('YYYY-MM-DD HH:mm:ss') + } + }, + methods: { + async fetchNotice () { + if (this.loading) { + this.loading = false + return + } + if (this.show) return + this.loading = true + const res = await getUnReadAnnouncement() + this.unReadMessage = res.data + this.$store.commit('TOGGLE_MESSAGE_NUM', res.data.length || '') + this.loading = false + }, + homeToInfo () { + if(this.unReadMessage[0].type == 1){ + this.$router.push({ name: 'base' }) + }else{ + this.$router.push({ name: 'branch' }) + } + + this.show = false + } + } +} +</script> + +<style lang="less" scoped> + .header-notice{ + display: inline-block; + transition: all 0.3s; + span { + vertical-align: initial; + } + .notice-badge{ + color: inherit; + .header-notice-icon{ + font-size: 16px; + padding: 4px; + } + } + } + .dropdown-tabs{ + background-color: #fff; + box-shadow: 0 2px 8px #999; + border-radius: 4px; + position: absolute; + right: -100px; + .tab-pane{ + padding: 0 24px 12px; + max-height: 200px; + } + .ant-tabs-ink-bar { + width: 0 !important; + } + .ant-tabs-tab{ + color: #000 !important; + font-size: 16px !important; + } + .ant-list-item-meta-description { + overflow:hidden; + text-overflow:ellipsis; + display:-webkit-box; + -webkit-box-orient:vertical; + -webkit-line-clamp:2; + } + .info{ + width: 100%; + height: 100px; + font-size: 16px; + text-align: center; + } + .titleTime{ + width: 100%; + img{ + width: 20px; + height: 20px; + margin-top: -3px; + margin-right: 10px; + } + span{ + color: #999; + } + p{ + margin-top: 10px; + overflow:hidden; + text-overflow:ellipsis; + display:-webkit-box; + -webkit-box-orient:vertical; + -webkit-line-clamp:2; + } + } + } + .btn{ + width: 100%; + height: 42px; + border: unset; + background: #fff; + border-top: 1px solid #ccc; + color: #333; + cursor: pointer; + } + .show { + height: 20px; + text-align: center; + color: blue; + cursor: pointer; + } + .ant-badge{ + color: #1890ff !important; + } + .ant-avatar-image{ + width: 20px !important; + height: 20px !important; + margin-top: 2px !important; + } +</style> diff --git a/src/components/tools/Logo.vue b/src/components/tools/Logo.vue index b6b21eacbf..c339d0588e 100644 --- a/src/components/tools/Logo.vue +++ b/src/components/tools/Logo.vue @@ -1,12 +1,14 @@ <template> <div class="logo"> - <router-link :to="{name:'dashboard'}"> - <LogoSvg alt="logo" /> - <h1 v-if="showTitle">{{ title }}</h1> + <router-link :to="{name:'Analysis'}"> + <!-- <LogoSvg alt="logo" /> --> + <img src="~@/assets/logo.png" class="logoImg" alt="logoImg"> + <h1 v-if="showTitle"> + <img src="~@/assets/logowords.png" class="logowords" alt=""> + </h1> </router-link> </div> </template> - <script> import LogoSvg from '@/assets/logo.svg?inline' @@ -18,7 +20,7 @@ export default { props: { title: { type: String, - default: 'Ant Design Pro', + default: '支扩中国', required: false }, showTitle: { @@ -29,3 +31,13 @@ export default { } } </script> +<style> +.logo { + padding-left: 15px !important; +} + +.logo h1 .logowords { + width: 100px!important; + height: 36px!important; +} +</style> \ No newline at end of file diff --git a/src/components/tools/UserMenu.vue b/src/components/tools/UserMenu.vue index 56ff2d4c10..69299fcc39 100644 --- a/src/components/tools/UserMenu.vue +++ b/src/components/tools/UserMenu.vue @@ -1,78 +1,76 @@ <template> <div class="user-wrapper"> <div class="content-box"> - <a href="https://pro.loacg.com/docs/getting-started" target="_blank"> - <span class="action"> - <a-icon type="question-circle-o"></a-icon> - </span> - </a> - <notice-icon class="action"/> <a-dropdown> <span class="action ant-dropdown-link user-dropdown-menu"> - <a-avatar class="avatar" size="small" :src="avatar()"/> - <span>{{ nickname() }}</span> + <a-avatar class="avatar" style="margin-top: 18px" size="small" icon="user" /> + <span>{{userName}}</span> </span> <a-menu slot="overlay" class="user-dropdown-menu-wrapper"> - <a-menu-item key="0"> - <router-link :to="{ name: 'center' }"> - <a-icon type="user"/> - <span>个人中心</span> - </router-link> - </a-menu-item> - <a-menu-item key="1"> - <router-link :to="{ name: 'settings' }"> - <a-icon type="setting"/> - <span>账户设置</span> - </router-link> + <a-menu-item key="0" @click="$refs.userCenterModal.showModal()"> + <a-icon type="user" /> + <span>个人中心</span> </a-menu-item> - <a-menu-item key="2" disabled> - <a-icon type="setting"/> - <span>测试</span> + <a-menu-item key="1" @click="$refs.changePassword.showModal()"> + <a-icon type="setting" /> + <span>修改密码</span> </a-menu-item> - <a-menu-divider/> - <a-menu-item key="3"> + <a-menu-divider /> + <a-menu-item key="2"> <a href="javascript:;" @click="handleLogout"> - <a-icon type="logout"/> + <a-icon type="logout" /> <span>退出登录</span> </a> </a-menu-item> </a-menu> </a-dropdown> </div> + <user-center ref="userCenterModal"></user-center> + <change-password ref="changePassword"></change-password> </div> </template> - <script> import NoticeIcon from '@/components/NoticeIcon' import { mapActions, mapGetters } from 'vuex' - +import userCenter from './userCenter' +import changePassword from './changePassword' export default { name: 'UserMenu', + data() { + return { + userName: '' + } + }, + created() { + this.userName = this.token.name + }, + computed: { + ...mapGetters(['token']) + }, components: { - NoticeIcon + NoticeIcon, + userCenter, + changePassword }, methods: { ...mapActions(['Logout']), - ...mapGetters(['nickname', 'avatar']), - handleLogout () { + handleLogout() { const that = this this.$confirm({ title: '提示', - content: '真的要注销登录吗 ?', - onOk () { - return that.Logout({}).then(() => { - window.location.reload() - }).catch(err => { - that.$message.error({ - title: '错误', - description: err.message - }) + content: '真的要退出登录吗 ?', + onOk() { + that.Logout().then(res => { + that.$message.success('退出成功') + that.$router.push({ name: 'login' }) }) }, - onCancel () { - } + onCancel() {} }) + }, + userCenter() { + // thi.userCenterModal } } } diff --git a/src/components/tools/changePassword.vue b/src/components/tools/changePassword.vue new file mode 100644 index 0000000000..d6c58c536e --- /dev/null +++ b/src/components/tools/changePassword.vue @@ -0,0 +1,147 @@ +<template> + <div> + <a-modal title="修改密码" :maskClosable="maskClosable" :visible="visible" @ok="handleOk" :confirmLoading="confirmLoading" @cancel="handleCancel"> + <a-form :form="form" > + <a-form-item label="原密码" :label-col="{ span: 5 }" :wrapper-col="{ span: 19 }"> + <a-input type="password" v-decorator="['password', { rules: [{ required: true, validator: confirmPassword }] }]" /> + </a-form-item> + <a-form-item label="新密码" :label-col="{ span: 5 }" :wrapper-col="{ span: 19 }"> + <a-input type="password" v-decorator="['newPassword', { rules: [{ required: true,validator: confirmNewPassword }] }]" /> + </a-form-item> + <a-form-item label="确认新密码" :label-col="{ span: 5 }" :wrapper-col="{ span: 19 }"> + <a-input autocomplete="off" onfocus="this.type='password'" type="text" v-decorator="['confirmPassword', { rules: [{ required: true, validator: confirm }] }]" /> + </a-form-item> + <!-- <a-form-item :wrapper-col="{ span: 12, offset: 5 }"><a-button type="primary" html-type="submit">Submit</a-button></a-form-item> --> + </a-form> + </a-modal> + </div> +</template> +<script> +import { getDetailById, updatePwd, } from '@/api/login'; +import { mapGetters,mapActions } from 'vuex' +import { log } from 'util'; +import { timeout } from 'q'; + +export default { + data() { + return { + ModalText: 'Content of the ', + visible: false, + maskClosable: false, + confirmLoading:false, + destroyOnClose: false, + form: this.$form.createForm(this), + ModalText: {}, + password: '' + }; + }, + created() { + this.getUDetailById(this.token.doctorId); + }, + computed: { + ...mapGetters(['token']) + }, + methods: { + ...mapActions(['Logout']), + getUDetailById(id) { + const Params = new URLSearchParams(); + Params.append('doctorId', id); + getDetailById(Params).then(res => { + this.ModalText = res.data.doctor + this.password = res.data.doctor.password + if (this.password == 'zklm2020' || this.password == 'zklm2023' || this.password == 'zklm2024') { + this.visible = true; + } + }); + }, + showModal() { + this.visible = true; + }, + confirmPassword(rule, value, callback){ + if (!value || value == '') { + callback('请输入原密码'); + return false; + } + if(this.form.getFieldValue('password') != this.ModalText.password){ + callback('与原密码不相符,请重新确认'); + return false; + } + }, + confirmNewPassword(rule, value, callback){ + if (!value || value == '') { + callback('请输入新密码'); + return false; + } + if(this.form.getFieldValue('newPassword') === this.ModalText.password){ + callback('与原密码相符,请重新确认'); + return false; + } + }, + confirm(rule, value, callback){ + if (!value || value == '') { + callback('请输入确认新密码'); + return false; + } + if(value!=this.form.getFieldValue('newPassword')){ + callback('与新密码不相符,请重新确认'); + return false; + } + }, + checkPassword(){ + if(!this.form.getFieldValue('password') || this.form.getFieldValue('password') == ''){ + return false; + } + if(this.form.getFieldValue('password') != this.ModalText.password){ + return false; + } + if (!this.form.getFieldValue('newPassword') || this.form.getFieldValue('newPassword') == '') { + return false; + } + if(this.form.getFieldValue('newPassword') === this.ModalText.password){ + return false; + } + if (!this.form.getFieldValue('confirmPassword') || this.form.getFieldValue('confirmPassword') == '') { + return false; + } + if(this.form.getFieldValue('confirmPassword') != this.form.getFieldValue('newPassword')){ + return false; + } + return; + }, + handleOk(e) { + e.preventDefault(); + this.form.validateFieldsAndScroll((err, values) => { + return false; + }); + this.checkPassword(); + const that = this; + + if (that.checkPassword() == false) { + + }else{ + // console.log("成功") + const Params = new URLSearchParams(); + that.ModalText.password = that.form.getFieldValue('newPassword') + Params.append('doctor',JSON.stringify(that.ModalText)); + updatePwd(Params).then(res => { + if(res.code == 0){ + that.$message.success(res.msg); + that.visible = false; + that.Logout().then(res => { + that.$router.push({ name: 'login' }) + }) + }else{ + that.$message.error(res.msg); + } + }); + } + }, + handleCancel(e) { + if (this.password == 'zklm2020' || this.password == 'zklm2023' || this.password == 'zklm2024') { + return false + } + this.visible = false; + } + } +}; +</script> diff --git a/src/components/tools/userCenter.vue b/src/components/tools/userCenter.vue new file mode 100644 index 0000000000..e3416cd458 --- /dev/null +++ b/src/components/tools/userCenter.vue @@ -0,0 +1,100 @@ +<template> + <div> + <a-modal title="个人中心" :width="400" :maskClosable="maskClosable" :bodyStyle="bodyStyle" :visible="visible" :footer="null" :confirmLoading="confirmLoading" @cancel="handleCancel"> + <div class="userCenter"> + <img src="../../assets/userCenerHeader.png" alt=""> + <h4 class="userName">{{ ModalText.name }}</h4> + <p class="userCenter"><span>所属分支中心:</span>{{ ModalText.centerName }}</p> + <p class="userAccount"> + <a-icon type="user" /> <span>账号:</span>{{ ModalText.account }}</p> + <p class="userAccount"> + <a-icon type="clock-circle" /><span>创建时间:</span> {{ ModalText.createTime|formDate }}</p> + </div> + </a-modal> + </div> +</template> +<script> +import { getDetailById } from '@/api/login' +import moment from 'moment' +import { mapGetters } from 'vuex' +import 'url-search-params-polyfill' +export default { + data() { + return { + ModalText: {}, + visible: false, + confirmLoading: false, + bodyStyle: { + height: '350px', + }, + maskClosable: false + }; + }, + created() { + this.getUDetailById(this.token.doctorId) + }, + computed: { + ...mapGetters(['token']) + }, + // mounted: { + // this.getUDetailById(1); + // }, + filters: { + formDate(date) { + return moment(date).format('YYYY-MM-DD'); + } + }, + methods: { + getUDetailById(id) { + const params = new URLSearchParams() + params.append('doctorId', id); + getDetailById(params).then(res => { + this.ModalText = res.data.doctor + }); + }, + showModal() { + this.visible = true; + }, + handleCancel(e) { + console.log('Clicked cancel button'); + this.visible = false; + } + } +}; +</script> +<style lang="less" scoped> +.userCenter { + text-align: center; + + img { + width: 110px; + } + + h4 { + font-weight: normal; + font-size: 20px; + margin-top: 10px; + } + + p { + span { + color: #AEAEAE + } + + .anticon { + margin-right: 10px; + font-size: 20px; + } + } + + .userCenter { + font-size: 14px; + border-bottom: 1px dashed #eee; + padding-bottom: 20px; + } + + .userAccount { + text-align: left + } +} +</style> \ No newline at end of file diff --git a/src/config/defaultSettings.js b/src/config/defaultSettings.js index 267999790b..254d134534 100644 --- a/src/config/defaultSettings.js +++ b/src/config/defaultSettings.js @@ -1,18 +1,3 @@ -/** - * 项目默认配置项 - * primaryColor - 默认主题色, 如果修改颜色不生效,请清理 localStorage - * navTheme - sidebar theme ['dark', 'light'] 两种主题 - * colorWeak - 色盲模式 - * layout - 整体布局方式 ['sidemenu', 'topmenu'] 两种布局 - * fixedHeader - 固定 Header : boolean - * fixSiderbar - 固定左侧菜单栏 : boolean - * autoHideHeader - 向下滚动时,隐藏 Header : boolean - * contentWidth - 内容区布局: 流式 | 固定 - * - * storageOptions: {} - Vue-ls 插件配置项 (localStorage/sessionStorage) - * - */ - export default { primaryColor: '#52C41A', // primary color of ant design navTheme: 'dark', // theme for nav menu diff --git a/src/config/router.config.js b/src/config/router.config.js index 386390bed8..3389add3c1 100644 --- a/src/config/router.config.js +++ b/src/config/router.config.js @@ -1,326 +1,588 @@ -// eslint-disable-next-line -import { UserLayout, BasicLayout, RouteView, BlankLayout, PageView } from '@/layouts' -import { bxAnaalyse } from '@/core/icons' - -export const asyncRouterMap = [ - - { +import { UserLayout, BasicLayout, RouteView, /*BlankLayout,*/ PageView } from '@/layouts' +import { bxAnaalyse, baogao, bingli, fangshi, ruzhu, zhanghao, home, jixing, blzysq, blzysh, wxyhbd, wenjuan, hzbgsy, huodongquan, jkzs, myzj, webconfig,wx } from '@/core/icons' +export const asyncRouterMap = [{ path: '/', name: 'index', component: BasicLayout, - meta: { title: '首页' }, - redirect: '/dashboard/workplace', + meta: { title: '首页', permission: ['center', 'group'] }, + redirect: '/dashboard/analysis', children: [ // dashboard { - path: '/dashboard', - name: 'dashboard', - redirect: '/dashboard/workplace', + path: '/dashboard/analysis', + name: 'Analysis', + component: () => import('@/views/dashboard/Analysis'), + meta: { title: '首页', keepAlive: true, icon: home, permission: ['center', 'group'] } + }, + { + path: '/patient', component: RouteView, - meta: { title: '仪表盘', keepAlive: true, icon: bxAnaalyse, permission: [ 'dashboard' ] }, - children: [ - { - path: '/dashboard/analysis', - name: 'Analysis', - component: () => import('@/views/dashboard/Analysis'), - meta: { title: '分析页', keepAlive: false, permission: [ 'dashboard' ] } - }, - // 外部链接 - { - path: 'https://www.baidu.com/', - name: 'Monitor', - meta: { title: '监控页(外部)', target: '_blank' } + redirect: '/patient/list', + meta: { title: '病历管理', keepAlive: true, icon: wxyhbd, permission: ['center', 'group'] }, + children: [{ + path: '/patient/list', + name: 'patientList', + component: () => import('@/views/patient/list'), + meta: { title: '患者管理', keepAlive: false, icon: wxyhbd, permission: ['center', 'group'] } + }, { + path: '/list/index', + name: 'list', + component: () => import('@/views/list/TableList'), + meta: { title: '基线管理', keepAlive: true, icon: bingli, permission: ['center', 'group'] } + }, { + path: '/acute/index', + name: 'acute', + component: () => import('@/views/acute/TableList'), + meta: { title: '急性加重信息', keepAlive: true, icon: jixing, permission: ['center', 'group'] } + }, { + path: '/task/index', + name: 'Task', + component: () => import('@/views/task/index'), + meta: { title: '访视信息', keepAlive: true, icon: fangshi, permission: ['center', 'group'] } + }, { + path: '/caseTransfer/index', + name: 'CaseTransfer', + component: () => import('@/views/caseTransfer/index'), + meta: { title: '病历转移申请', keepAlive: true, icon: blzysq, permission: ['center', 'group'] } }, { - path: '/dashboard/workplace', - name: 'Workplace', - component: () => import('@/views/dashboard/Workplace'), - meta: { title: '工作台', keepAlive: true, permission: [ 'dashboard' ] } + path: '/caseTransfer/review', + name: 'caseTransferReview', + component: () => import('@/views/caseTransfer/review'), + meta: { title: '病历转移审核', keepAlive: true, icon: blzysh, permission: ['center', 'group'] } } ] }, - - // forms { - path: '/form', - redirect: '/form/base-form', - component: PageView, - meta: { title: '表单页', icon: 'form', permission: [ 'form' ] }, - children: [ - { - path: '/form/base-form', - name: 'BaseForm', - component: () => import('@/views/form/BasicForm'), - meta: { title: '基础表单', keepAlive: true, permission: [ 'form' ] } - }, + path: '/wx', + component: RouteView, + redirect: 'wx/userGroup', + meta: { title: '微信管理', keepAlive: true, icon: wx, permission: ['center', 'group'] }, + children: [{ + path: '/wx/userGroup', + name: 'wxUserGroup', + component: () => import('@/views/wx/userGroup'), + meta: { title: '患者注册信息', keepAlive: true, icon: wxyhbd, isBack: false, permission: ['center', 'group'] } + }, + { + path: 'wx/messageReply', + name: 'wxMessageReply', + component: () => import('@/views/wx/messageReply'), + meta: { title: '患者留言管理', keepAlive: true, icon: hzbgsy, isBack: false, permission: ['center', 'group'] } + }, + // { + // path: '/wx/userBind', + // name: 'wxUserBind', + // component: () => import('@/views/wx/userBind'), + // meta: { title: '微信用户绑定', keepAlive: true, icon: wxyhbd, isBack: false, permission: ['center', 'group'] } + // }, { - path: '/form/step-form', - name: 'StepForm', - component: () => import('@/views/form/stepForm/StepForm'), - meta: { title: '分步表单', keepAlive: true, permission: [ 'form' ] } + path: '/wx/questionReview', + name: 'wxQuestionReview', + component: () => import('@/views/wx/questionReview'), + meta: { title: '微信问卷审阅', keepAlive: true, icon: wenjuan, isBack: false, permission: ['center', 'group'] } + }, { + path: '/wx/patientReportReview', + name: 'wxPatientReportReview', + component: () => import('@/views/wx/patientReportReview'), + meta: { title: '患者报告审阅', keepAlive: true, icon: hzbgsy, isBack: false, permission: ['center', 'group'] } }, { - path: '/form/advanced-form', - name: 'AdvanceForm', - component: () => import('@/views/form/advancedForm/AdvancedForm'), - meta: { title: '高级表单', keepAlive: true, permission: [ 'form' ] } + path: '/wx/ticketRegister', + name: 'wxTicketRegister', + component: () => import('@/views/wx/ticketRegister'), + meta: { title: '活动券登记', keepAlive: true, icon: huodongquan, isBack: false, permission: ['center', 'group'] } } ] }, - - // list - { - path: '/list', - name: 'list', - component: PageView, - redirect: '/list/table-list', - meta: { title: '列表页', icon: 'table', permission: [ 'table' ] }, - children: [ - { - path: '/list/table-list/:pageNo([1-9]\\d*)?', - name: 'TableListWrapper', - hideChildrenInMenu: true, // 强制显示 MenuItem 而不是 SubMenu - component: () => import('@/views/list/TableList'), - meta: { title: '查询表格', keepAlive: true, permission: [ 'table' ] } + { + path: '/report', + component: RouteView, + redirect: '/report/index', + meta: { title: '报表管理', keepAlive: true, icon: baogao, permission: ['center', 'group'] }, + children: [{ + path: '/report/index', + name: 'report', + component: () => import('@/views/report/index'), + meta: { title: '数据统计', keepAlive: true, icon: baogao, isBack: false, permission: ['center', 'group'] } + }, { + path: '/reportApply/index', + name: 'reportApply', + component: () => import('@/views/reportApply/index'), + meta: { title: '申请开通报表', keepAlive: true, icon: blzysh, isBack: false, permission: ['center', 'group'] } }, { - path: '/list/basic-list', - name: 'BasicList', - component: () => import('@/views/list/StandardList'), - meta: { title: '标准列表', keepAlive: true, permission: [ 'table' ] } + path: '/score/list', + name: 'scoreList', + component: () => import('@/views/score/list'), + meta: { title: '支扩评分报表', keepAlive: true, icon: baogao, isBack: false, permission: ['center', 'group'] } }, { - path: '/list/card', - name: 'CardList', - component: () => import('@/views/list/CardList'), - meta: { title: '卡片列表', keepAlive: true, permission: [ 'table' ] } + path: '/reportApply/review', + name: 'reportReview', + component: () => import('@/views/reportApply/review'), + meta: { title: '开通报表审核', keepAlive: true, icon: blzysh, isBack: false, permission: ['center', 'group'] } }, { - path: '/list/search', - name: 'SearchList', - component: () => import('@/views/list/search/SearchLayout'), - redirect: '/list/search/article', - meta: { title: '搜索列表', keepAlive: true, permission: [ 'table' ] }, - children: [ - { - path: '/list/search/article', - name: 'SearchArticles', - component: () => import('../views/list/search/Article'), - meta: { title: '搜索列表(文章)', permission: [ 'table' ] } - }, - { - path: '/list/search/project', - name: 'SearchProjects', - component: () => import('../views/list/search/Projects'), - meta: { title: '搜索列表(项目)', permission: [ 'table' ] } - }, - { - path: '/list/search/application', - name: 'SearchApplications', - component: () => import('../views/list/search/Applications'), - meta: { title: '搜索列表(应用)', permission: [ 'table' ] } - } - ] - } - ] - }, - - // profile - { - path: '/profile', - name: 'profile', - component: RouteView, - redirect: '/profile/basic', - meta: { title: '详情页', icon: 'profile', permission: [ 'profile' ] }, - children: [ - { - path: '/profile/basic', - name: 'ProfileBasic', - component: () => import('@/views/profile/basic/Index'), - meta: { title: '基础详情页', permission: [ 'profile' ] } + path: '/reportApply/ethics', + name: 'reportEthics', + component: () => import('@/views/reportApply/ethics'), + meta: { title: '伦理批件统计', keepAlive: true, icon: blzysh, isBack: false, permission: ['center', 'group'] } }, { - path: '/profile/advanced', - name: 'ProfileAdvanced', - component: () => import('@/views/profile/advanced/Advanced'), - meta: { title: '高级详情页', permission: [ 'profile' ] } - } - ] - }, - - // result - { - path: '/result', - name: 'result', - component: PageView, - redirect: '/result/success', - meta: { title: '结果页', icon: 'check-circle-o', permission: [ 'result' ] }, - children: [ - { - path: '/result/success', - name: 'ResultSuccess', - component: () => import(/* webpackChunkName: "result" */ '@/views/result/Success'), - meta: { title: '成功', keepAlive: false, hiddenHeaderContent: true, permission: [ 'result' ] } + path: '/reportApply/statistics', + name: 'statistics', + component: () => import('@/views/reportApply/statistics'), + meta: { title: '患者录入统计', keepAlive: true, icon: blzysh, isBack: false, permission: ['center', 'group'] } }, { - path: '/result/fail', - name: 'ResultFail', - component: () => import(/* webpackChunkName: "result" */ '@/views/result/Error'), - meta: { title: '失败', keepAlive: false, hiddenHeaderContent: true, permission: [ 'result' ] } - } - ] - }, - - // Exception - { - path: '/exception', - name: 'exception', - component: RouteView, - redirect: '/exception/403', - meta: { title: '异常页', icon: 'warning', permission: [ 'exception' ] }, - children: [ + path: '/reportApply/iconJx', + name: 'iconJx', + component: () => import('@/views/reportApply/iconJx'), + meta: { title: 'ICON基线统计', keepAlive: true, icon: blzysh, isBack: false, permission: ['center', 'group'] } + }, { - path: '/exception/403', - name: 'Exception403', - component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/403'), - meta: { title: '403', permission: [ 'exception' ] } + path: '/reportApply/iconCg', + name: 'iconCg', + component: () => import('@/views/reportApply/iconCg'), + meta: { title: 'ICON常规统计', keepAlive: true, icon: blzysh, isBack: false, permission: ['center', 'group'] } }, { - path: '/exception/404', - name: 'Exception404', - component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404'), - meta: { title: '404', permission: [ 'exception' ] } + path: '/reportApply/iconJxjzq', + name: 'iconJxjzq', + component: () => import('@/views/reportApply/iconJxjzq'), + meta: { title: 'ICON加重统计', keepAlive: true, icon: blzysh, isBack: false, permission: ['center', 'group'] } }, { - path: '/exception/500', - name: 'Exception500', - component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/500'), - meta: { title: '500', permission: [ 'exception' ] } + path: '/reportApply/iconData', + name: 'iconData', + component: () => import('@/views/reportApply/iconData'), + meta: { title: 'ICON数据统计', keepAlive: true, icon: blzysh, isBack: false, permission: ['center', 'group'] } } ] }, - - // account { - path: '/account', + path: '/message', component: RouteView, - redirect: '/account/center', - name: 'account', - meta: { title: '个人页', icon: 'user', keepAlive: true, permission: [ 'user' ] }, - children: [ - { - path: '/account/center', - name: 'center', - component: () => import('@/views/account/center/Index'), - meta: { title: '个人中心', keepAlive: true, permission: [ 'user' ] } - }, - { - path: '/account/settings', - name: 'settings', - component: () => import('@/views/account/settings/Index'), - meta: { title: '个人设置', hideHeader: true, permission: [ 'user' ] }, - redirect: '/account/settings/base', - hideChildrenInMenu: true, - children: [ - { - path: '/account/settings/base', - name: 'BaseSettings', - component: () => import('@/views/account/settings/BaseSetting'), - meta: { title: '基本设置', hidden: true, permission: [ 'user' ] } - }, - { - path: '/account/settings/security', - name: 'SecuritySettings', - component: () => import('@/views/account/settings/Security'), - meta: { title: '安全设置', hidden: true, keepAlive: true, permission: [ 'user' ] } - }, - { - path: '/account/settings/custom', - name: 'CustomSettings', - component: () => import('@/views/account/settings/Custom'), - meta: { title: '个性化设置', hidden: true, keepAlive: true, permission: [ 'user' ] } - }, - { - path: '/account/settings/binding', - name: 'BindingSettings', - component: () => import('@/views/account/settings/Binding'), - meta: { title: '账户绑定', hidden: true, keepAlive: true, permission: [ 'user' ] } - }, - { - path: '/account/settings/notification', - name: 'NotificationSettings', - component: () => import('@/views/account/settings/Notification'), - meta: { title: '新消息通知', hidden: true, keepAlive: true, permission: [ 'user' ] } - } - ] - } - ] + redirect: '/message/base', + meta: { title: '消息中心', keepAlive: true, icon: wxyhbd, permission: ['center', 'group'] }, + children: [{ + path: '/message/base', + name: 'base', + component: () => import('@/views/message/base'), + meta: { title: '总部消息', keepAlive: true, icon: wxyhbd, permission: ['center', 'group'] } + },{ + path: '/message/branch', + name: 'branch', + component: () => import('@/views/message/branch'), + meta: { title: '分支消息', keepAlive: true, icon: wxyhbd, permission: ['center', 'group'] } + }] + }, + { + path: '/list/basis/:id(\\d*)', + name: 'basis', + hidden: true, + hideChildrenInMenu: true, // 强制显示 MenuItem 而不是 SubMenu + component: () => import('@/views/account/center/Index'), + meta: { permission: ['center', 'group'] } + }, + { + path: '/jxjzq/:id(\\d*)', + name: 'jxjzq', + hidden: true, + hideChildrenInMenu: true, // 强制显示 MenuItem 而不是 SubMenu + component: () => import('@/views/account/center/jxjzq'), + meta: { permission: ['center', 'group'] } + }, + { + path: '/icon/jxjzq/:id(\\d*)', + name: 'iconJxjzq', + hidden: true, + hideChildrenInMenu: true, // 强制显示 MenuItem 而不是 SubMenu + component: () => import('@/views/icon/jxjzq'), + meta: { permission: ['center', 'group'] } + }, + { + path: '/icon/task/:id(\\d*)', + name: 'iconTask', + hidden: true, + hideChildrenInMenu: true, // 强制显示 MenuItem 而不是 SubMenu + component: () => import('@/views/icon/task'), + meta: { permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/1', + name: 'mask1', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-1'), + meta: { maskId: 1, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/2', + name: 'mask2', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-2'), + meta: { maskId: 2, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/5', + name: 'mask5', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-5'), + meta: { maskId: 5, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/6', + name: 'mask6', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-6'), + meta: { maskId: 6, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/7', + name: 'mask7', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-7'), + meta: { maskId: 7, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/8', + name: 'mask8', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-8'), + meta: { maskId: 8, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/9', + name: 'mask9', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-9'), + meta: { maskId: 9, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/10', + name: 'mask10', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-10'), + meta: { maskId: 10, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/4', + name: 'mask4', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-4'), + meta: { maskId: 4, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/67', + name: 'mask1', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-1'), + meta: { maskId: 67, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/68', + name: 'mask2', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-2'), + meta: { maskId: 68, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/71', + name: 'mask5', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-5'), + meta: { maskId: 71, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/72', + name: 'mask6', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-6'), + meta: { maskId: 72, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/73', + name: 'mask7', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-7'), + meta: { maskId: 73, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/74', + name: 'mask8', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-8'), + meta: { maskId: 74, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/75', + name: 'mask9', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-9'), + meta: { maskId: 75, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/76', + name: 'mask10', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-10'), + meta: { maskId: 76, permission: ['center', 'group'] } + }, + { + path: '/list/basis/:id(\\d+)/70', + name: 'mask4', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/components/mask-4'), + meta: { maskId: 70, permission: ['center', 'group'] } + }, + { + path: '/basis/question/:id(\\d+)/:qid(\\d+)', + name: 'BasisQuestion', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/account/center/question'), + meta: { permission: ['center', 'group'] } + }, + { + path: '/list/task/:id(\\d*)', + name: 'taskTotal', + hidden: true, + hideChildrenInMenu: true, // 强制显示 MenuItem 而不是 SubMenu + component: () => import('@/views/task/total'), + meta: { permission: ['center', 'group'] } + }, + { + path: '/list/task/:id(\\d+)/11', + name: 'task11', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/task/components/mask-11'), + meta: { maskId: 11, permission: ['center', 'group'] } + }, + { + path: '/list/task/:id(\\d+)/14', + name: 'task14', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/task/components/mask-14'), + meta: { maskId: 14, permission: ['center', 'group'] } + }, + { + path: '/list/task/:id(\\d+)/15', + name: 'task15', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/task/components/mask-15'), + meta: { maskId: 15, permission: ['center', 'group'] } + }, + { + path: '/list/task/:id(\\d+)/19', + name: 'task19', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/task/components/mask-19'), + meta: { maskId: 19, permission: ['center', 'group'] } + }, + { + path: '/list/task/:id(\\d+)/20', + name: 'task20', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/task/components/mask-20'), + meta: { maskId: 20, permission: ['center', 'group'] } + }, + { + path: '/list/task/:id(\\d+)/21', + name: 'task21', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/task/components/mask-21'), + meta: { maskId: 21, permission: ['center', 'group'] } + }, + { + path: '/list/task/:id(\\d+)/22', + name: 'task22', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/task/components/mask-22'), + meta: { maskId: 22, permission: ['center', 'group'] } + }, + { + path: '/list/task/:id(\\d+)/23', + name: 'task23', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/task/components/mask-23'), + meta: { maskId: 23, permission: ['center', 'group'] } + }, + { + path: '/list/task/:id(\\d+)/24', + name: 'task24', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/task/components/mask-24'), + meta: { maskId: 24, permission: ['center', 'group'] } + }, + { + path: '/list/task/:id(\\d+)/17', + name: 'task17', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/task/components/mask-17'), + meta: { maskId: 17, permission: ['center', 'group'] } + }, + { + path: '/list/task/:id(\\d+)/18', + name: 'task18', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/task/components/mask-18'), + meta: { maskId: 18, permission: ['center', 'group'] } + }, + { + path: '/gallery/index', + name: 'Gallery', + component: () => import('@/views/gallery/index'), + meta: { title: '报告采集', keepAlive: true, icon: baogao, isBack: false, permission: ['center', 'group'] } + }, + { + path: '/group/index', + name: 'Group', + component: () => import('@/views/group/index'), + meta: { title: '入组管理', keepAlive: true, icon: ruzhu, isBack: false, permission: ['center', 'group'] } + }, + { + path: '/gallery/execute/:id(\\d+)/53', + name: 'Exec53', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/gallery/components/mask-53'), + meta: { maskId: 53, permission: ['center', 'group'] } + }, + { + path: '/gallery/execute/:id(\\d+)/51', + name: 'Exec51', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/gallery/components/mask-51'), + meta: { maskId: 51, permission: ['center', 'group'] } + }, + { + path: '/gallery/execute/:id(\\d+)/52', + name: 'Exec52', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/gallery/components/mask-52'), + meta: { maskId: 52, permission: ['center', 'group'] } + }, + { + path: '/gallery/execute/:id(\\d+)/54', + name: 'Exec54', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/gallery/components/mask-54'), + meta: { maskId: 54, permission: ['center', 'group'] } + }, + { + path: '/gallery/execute/:id(\\d+)', + name: 'galleryExec', + hidden: true, + hideChildrenInMenu: true, + component: () => import('@/views/gallery/execute'), + meta: { permission: ['center', 'group'] } }, - // other - { - path: '/other', - name: 'otherPage', - component: PageView, - meta: { title: '其他组件', icon: 'slack', permission: [ 'dashboard' ] }, - redirect: '/other/icon-selector', - children: [ - { - path: '/other/icon-selector', - name: 'TestIconSelect', - component: () => import('@/views/other/IconSelectorView'), - meta: { title: 'IconSelector', icon: 'tool', keepAlive: true, permission: [ 'dashboard' ] } - }, - { - path: '/other/list', - component: RouteView, - meta: { title: '业务布局', icon: 'layout', permission: [ 'support' ] }, - redirect: '/other/list/tree-list', - children: [ - { - path: '/other/list/tree-list', - name: 'TreeList', - component: () => import('@/views/other/TreeList'), - meta: { title: '树目录表格', keepAlive: true } - }, - { - path: '/other/list/edit-table', - name: 'EditList', - component: () => import('@/views/other/TableInnerEditList'), - meta: { title: '内联编辑表格', keepAlive: true } - }, - { - path: '/other/list/user-list', - name: 'UserList', - component: () => import('@/views/other/UserList'), - meta: { title: '用户列表', keepAlive: true } - }, - { - path: '/other/list/role-list', - name: 'RoleList', - component: () => import('@/views/other/RoleList'), - meta: { title: '角色列表', keepAlive: true } - }, - { - path: '/other/list/system-role', - name: 'SystemRole', - component: () => import('@/views/role/RoleList'), - meta: { title: '角色列表2', keepAlive: true } - }, - { - path: '/other/list/permission-list', - name: 'PermissionList', - component: () => import('@/views/other/PermissionList'), - meta: { title: '权限列表', keepAlive: true } - } - ] - } - ] - } + + { + path: '/wx/questionDetail/:id(\\d*)', + name: 'wxQuestionDetail', + hidden: true, + hideChildrenInMenu: true, // 强制显示 MenuItem 而不是 SubMenu + component: () => import('@/views/wx/questionDetail'), + meta: { permission: ['center', 'group'] } + }, + { + path: '/wx/article', + name: 'wxArticle', + component: () => import('@/views/wx/article'), + meta: { title: '微信文章', keepAlive: true, icon: jkzs, isBack: false, permission: ['group'] } + }, + { + path: '/gw/article', + name: 'gwArticle', + component: () => import('@/views/gw/article'), + meta: { title: '官网文章', keepAlive: true, icon: jkzs, isBack: false, permission: ['group'] } + }, + { + path: '/wx/famousDoctor', + name: 'famousDoctor', + component: () => import('@/views/wx/famousDoctor'), + meta: { title: '名医专家', keepAlive: true, icon: myzj, isBack: false, permission: ['group'] } + }, + { + path: '/gw/pageConfigure', + name: 'pageConfigure', + component: () => import('@/views/gw/pageConfigure'), + meta: { title: '官网首页配置', keepAlive: true, icon: webconfig, isBack: false, permission: ['group'] } + }, + { + path: '/gallery/detail/:id(\\d*)', + name: 'collectDetail', + hidden: true, + hideChildrenInMenu: true, // 强制显示 MenuItem 而不是 SubMenu + component: () => import('@/views/account/center/collect'), + meta: { permission: ['center', 'group'] } + }, + { + path: '/group/addProject', + name: 'addProject', + hidden: true, + component: () => import('@/views/group/addProject'), + meta: { hiddenHeaderContent: true, hidden: true } + }, + { + path: '/center/list', + name: 'centerList', + component: () => import('@/views/center/list'), + meta: { title: '中心管理', keepAlive: true, icon: wxyhbd, isBack: false, permission: ['center', 'group'] } + }, + { + path: '/role/list', + name: 'roleList', + component: () => import('@/views/role/list'), + meta: { title: '角色管理', keepAlive: true, icon: wxyhbd, isBack: false, permission: ['center', 'group'] } + }, + { + path: '/user/list', + name: 'userList', + component: () => import('@/views/user/list'), + meta: { title: '用户管理', keepAlive: true, icon: wxyhbd, isBack: false, permission: ['center', 'group'] } + }, ] }, { - path: '*', redirect: '/404', hidden: true + path: '*', + redirect: '/404', + hidden: true } ] @@ -328,32 +590,31 @@ export const asyncRouterMap = [ * 基础路由 * @type { *[] } */ -export const constantRouterMap = [ - { +export const constantRouterMap = [{ path: '/user', component: UserLayout, redirect: '/user/login', hidden: true, - children: [ - { + children: [{ path: 'login', name: 'login', - component: () => import(/* webpackChunkName: "user" */ '@/views/user/Login') + meta: { title: '登录' }, + component: () => import( /* webpackChunkName: "user" */ '@/views/user/Login') }, { path: 'register', name: 'register', - component: () => import(/* webpackChunkName: "user" */ '@/views/user/Register') + component: () => import( /* webpackChunkName: "user" */ '@/views/user/Register') }, { path: 'register-result', name: 'registerResult', - component: () => import(/* webpackChunkName: "user" */ '@/views/user/RegisterResult') + component: () => import( /* webpackChunkName: "user" */ '@/views/user/RegisterResult') } ] }, - { + /*{ path: '/test', component: BlankLayout, redirect: '/test/home', @@ -364,11 +625,11 @@ export const constantRouterMap = [ component: () => import('@/views/Home') } ] - }, + },*/ { path: '/404', - component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404') + component: () => import( /* webpackChunkName: "fail" */ '@/views/exception/404') } -] +] \ No newline at end of file diff --git a/src/core/icons.js b/src/core/icons.js index 46b726163d..60b871cb57 100644 --- a/src/core/icons.js +++ b/src/core/icons.js @@ -7,5 +7,24 @@ * 所有图标均从这里加载,方便管理 */ import bxAnaalyse from '@/assets/icons/bx-analyse.svg?inline' // path to your '*.svg?inline' file. +import baogao from '@/assets/icons/baogao.svg?inline' // path to your '*.svg?inline' file. +import bingli from '@/assets/icons/bingli.svg?inline' // path to your '*.svg?inline' file +import fangshi from '@/assets/icons/fangshi.svg?inline' // path to your '*.svg?inline' file +import ruzhu from '@/assets/icons/ruzhu.svg?inline' // path to your '*.svg?inline' file +import zhanghao from '@/assets/icons/zhanghao.svg?inline' // path to your '*.svg?inline' file +import home from '@/assets/icons/home.svg?inline' // path to your '*.svg?inline' file. +import jixing from '@/assets/icons/jixing.svg?inline' // path to your '*.svg?inline' file. +import blzysq from '@/assets/icons/blzysq.svg?inline' // path to your '*.svg?inline' file. +import blzysh from '@/assets/icons/blzysh.svg?inline' // path to your '*.svg?inline' file. +import wxyhbd from '@/assets/icons/wxyhbd.svg?inline' // path to your '*.svg?inline' file. +import wenjuan from '@/assets/icons/wenjuan.svg?inline' // path to your '*.svg?inline' file +import hzbgsy from '@/assets/icons/hzbgsy.svg?inline' // path to your '*.svg?inline' file. +import huodongquan from '@/assets/icons/huodongquan.svg?inline' // path to your '*.svg?inline' file. +import jkzs from '@/assets/icons/jkzs.svg?inline' // path to your '*.svg?inline' file. +import myzj from '@/assets/icons/myzj.svg?inline' // path to your '*.svg?inline' file. +import webconfig from '@/assets/icons/webconfig.svg?inline' // path to your '*.svg?inline' file. +import wx from '@/assets/icons/wx.svg?inline' // path to your '*.svg?inline' file. -export { bxAnaalyse } +export { + bxAnaalyse,baogao,bingli,fangshi,ruzhu,zhanghao,home,jixing,blzysq,blzysh,wxyhbd,wenjuan,hzbgsy,huodongquan,jkzs,myzj,webconfig,wx +} diff --git a/src/layouts/BasicLayout.vue b/src/layouts/BasicLayout.vue index 7cbf42118f..8a2014028e 100644 --- a/src/layouts/BasicLayout.vue +++ b/src/layouts/BasicLayout.vue @@ -28,7 +28,7 @@ :collapsible="true" ></side-menu> - <a-layout :class="[layoutMode, `content-width-${contentWidth}`]" :style="{ paddingLeft: contentPaddingLeft, minHeight: '100vh' }"> + <a-layout :class="[layoutMode, `content-width-${contentWidth}`]" :style="{ paddingLeft: contentPaddingLeft, minHeight: '100vh', height: '100vh' }"> <!-- layout header --> <global-header :mode="layoutMode" @@ -40,20 +40,24 @@ /> <!-- layout content --> - <a-layout-content :style="{ height: '100%', margin: '24px 24px 0', paddingTop: fixedHeader ? '64px' : '0' }"> + <a-layout-content :style="{ overflowY:'auto',overflowX:'hidden', margin: '10px 10px 0', paddingTop: fixedHeader ? '64px' : '0' }"> <multi-tab v-if="multiTab"></multi-tab> - <transition name="page-transition"> - <route-view /> - </transition> + <!-- <transition name="page-transition"> --> + <!-- <route-view /> --> + <keep-alive > + <router-view v-if="$route.meta.keepAlive"></router-view> + </keep-alive> + <router-view v-if="!$route.meta.keepAlive"></router-view> + <!-- </transition> --> </a-layout-content> <!-- layout footer --> - <a-layout-footer> +<!-- <a-layout-footer> <global-footer /> - </a-layout-footer> + </a-layout-footer> --> <!-- Setting Drawer (show in development mode) --> - <setting-drawer v-if="!production"></setting-drawer> + <!-- <setting-drawer v-if="!production"></setting-drawer> --> </a-layout> </a-layout> @@ -65,29 +69,31 @@ import { mapState, mapActions } from 'vuex' import { mixin, mixinDevice } from '@/utils/mixin' import config from '@/config/defaultSettings' -import RouteView from './RouteView' +// import RouteView from './RouteView' import MultiTab from '@/components/MultiTab' import SideMenu from '@/components/Menu/SideMenu' import GlobalHeader from '@/components/GlobalHeader' -import GlobalFooter from '@/components/GlobalFooter' -import SettingDrawer from '@/components/SettingDrawer' +// import GlobalFooter from '@/components/GlobalFooter' +// import SettingDrawer from '@/components/SettingDrawer' +// import { asyncRouterMap } from '@/config/router.config.js' export default { name: 'BasicLayout', mixins: [mixin, mixinDevice], components: { - RouteView, + // RouteView, MultiTab, SideMenu, GlobalHeader, - GlobalFooter, - SettingDrawer + // GlobalFooter, + // SettingDrawer }, data () { return { - production: config.production, + // production: config.production, collapsed: false, - menus: [] + menus: [], + height:(window.screen.height-368)+"px" } }, computed: { @@ -106,11 +112,19 @@ export default { } }, watch: { + $route (to,from) { + if(to.meta.title) { + this.collapsed = false + }else { + this.collapsed = true + } + }, sidebarOpened (val) { this.collapsed = !val } }, created () { + // this.menus = asyncRouterMap.find((item) => item.path === '/').children this.menus = this.mainMenu.find(item => item.path === '/').children this.collapsed = !this.sidebarOpened }, @@ -126,7 +140,7 @@ export default { } }, methods: { - ...mapActions(['setSidebar']), + ...mapActions(['CloseSidebar','setSidebar']), toggle () { this.collapsed = !this.collapsed this.setSidebar(!this.collapsed) @@ -178,4 +192,31 @@ export default { -webkit-transform: scale(1.1); transform: scale(1.1); } +.ant-layout-sider{ + min-height: 100vh; +} +.slide-right-enter-active, +.slide-right-leave-active, +.slide-left-enter-active, +.slide-left-leave-active { + will-change: transform; + transition: all 500ms; + position: absolute; +} +.slide-right-enter { + opacity: 0; + transform: translate3d(-100%, 0, 0); +} +.slide-right-leave-active { + opacity: 0; + transform: translate3d(100%, 0, 0); +} +.slide-left-enter { + opacity: 0; + transform: translate3d(100%, 0, 0); +} +.slide-left-leave-active { + opacity: 0; + transform: translate3d(-100%, 0, 0); +} </style> diff --git a/src/layouts/UserLayout.vue b/src/layouts/UserLayout.vue index f318e8a560..6a9f0f45ca 100644 --- a/src/layouts/UserLayout.vue +++ b/src/layouts/UserLayout.vue @@ -4,25 +4,31 @@ <div class="top"> <div class="header"> <a href="/"> - <img src="~@/assets/logo.svg" class="logo" alt="logo"> - <span class="title">Ant Design</span> + <img src="~@/assets/logo.png" class="logo" alt="logo"> + <span class="title">支气管扩张症临床诊治与研究联盟</span> </a> </div> - <div class="desc"> - Ant Design 是西湖区最具影响力的 Web 设计规范 - </div> </div> <route-view></route-view> <div class="footer"> - <div class="links"> - <a href="_self">帮助</a> - <a href="_self">隐私</a> - <a href="_self">条款</a> - </div> <div class="copyright"> - Copyright © 2018 白鹭学园技术组出品 + <span style="margin-right: 10px;"> + ©支气管扩张症临床诊治与研究联盟 + </span> + <a href="http://beian.miit.gov.cn/" target="_blank" style="margin-right: 10px;"> + 苏ICP备15031540号-4 + </a> + <span style="margin-right: 10px;"> + 备案号:32010602010785 + </span> + <span style="margin-right: 10px;"> + 当前版本:{{version}} + </span> + <span> + 技术支持:南京德益康信息科技有限公司 + </span> </div> </div> </div> @@ -30,6 +36,7 @@ </template> <script> +import Vue from 'vue' import RouteView from './RouteView' import { mixinDevice } from '@/utils/mixin' @@ -38,7 +45,9 @@ export default { components: { RouteView }, mixins: [mixinDevice], data () { - return {} + return { + version: Vue.ls.get('version') || '1.0.1' + } }, mounted () { document.body.classList.add('userLayout') @@ -65,9 +74,9 @@ export default { .container { width: 100%; min-height: 100%; - background: #f0f2f5 url(~@/assets/background.svg) no-repeat 50%; + background: #f0f2f5 url(~@/assets/loginBg.jpg) no-repeat 50%; background-size: 100%; - padding: 110px 0 144px; + padding: 210px 0 144px; position: relative; a { @@ -80,7 +89,8 @@ export default { .header { height: 44px; line-height: 44px; - + margin-bottom: 50px; + color:#8A8A8A; .badge { position: absolute; display: inline-block; diff --git a/src/layouts/index.js b/src/layouts/index.js index 1d62d6c0c1..cff758c2c3 100644 --- a/src/layouts/index.js +++ b/src/layouts/index.js @@ -1,7 +1,7 @@ import UserLayout from './UserLayout' -import BlankLayout from './BlankLayout' +// import BlankLayout from './BlankLayout' import BasicLayout from './BasicLayout' import RouteView from './RouteView' import PageView from './PageView' -export { UserLayout, BasicLayout, BlankLayout, RouteView, PageView } +export { UserLayout, BasicLayout, /*BlankLayout,*/ RouteView, PageView } diff --git a/src/main.js b/src/main.js index 0055d797d3..1406468e86 100644 --- a/src/main.js +++ b/src/main.js @@ -1,28 +1,44 @@ -// ie polyfill -import '@babel/polyfill' - -import Vue from 'vue' -import App from './App.vue' -import router from './router' -import store from './store/' -import { VueAxios } from './utils/request' - -// mock -import './mock' - -import bootstrap from './core/bootstrap' -import './core/use' -import './permission' // permission control -import './utils/filter' // global filter - -Vue.config.productionTip = false - -// mount axios Vue.$http and this.$http -Vue.use(VueAxios) - -new Vue({ - router, - store, - created: bootstrap, - render: h => h(App) -}).$mount('#app') +// ie polyfill +import '@babel/polyfill' + +import Vue from 'vue' +import App from './App.vue' +import router from './router' +import store from './store/' +import { VueAxios } from './utils/request' +import { ArrowsAltOutlined } from '@ant-design/icons' + +//在main.js中引入 +import Viewer from 'v-viewer' +import 'viewerjs/dist/viewer.css' + +//Vue.use(Viewer) 默认配置写法 +Vue.use(Viewer, { + defaultOptions: { + zIndex: 9999, + toolbar: true +}}) + +// mock +import './mock' + +import bootstrap from './core/bootstrap' +import './core/use' +import './permission' // permission control +import './utils/filter' // global filter + +Vue.config.productionTip = false +const project={ + projectId:'', + doctorId:'' +} +Vue.prototype.project = project +// mount axios Vue.$http and this.$http +Vue.use(VueAxios) + +new Vue({ + router, + store, + created: bootstrap, + render: h => h(App) +}).$mount('#app') diff --git a/src/mock/Trend/Trend.vue b/src/mock/Trend/Trend.vue new file mode 100644 index 0000000000..526e1cc690 --- /dev/null +++ b/src/mock/Trend/Trend.vue @@ -0,0 +1,41 @@ +<template> + <div :class="[prefixCls, reverseColor && 'reverse-color' ]"> + <span> + <slot name="term"></slot> + <span class="item-text"> + <slot></slot> + </span> + </span> + <span :class="[flag]"><a-icon :type="`caret-${flag}`"/></span> + </div> +</template> + +<script> +export default { + name: 'Trend', + props: { + prefixCls: { + type: String, + default: 'ant-pro-trend' + }, + /** + * 上升下降标识:up|down + */ + flag: { + type: String, + required: true + }, + /** + * 颜色反转 + */ + reverseColor: { + type: Boolean, + default: false + } + } +} +</script> + +<style lang="less" scoped> + @import "index"; +</style> diff --git a/src/mock/Trend/index.js b/src/mock/Trend/index.js new file mode 100644 index 0000000000..9f14228060 --- /dev/null +++ b/src/mock/Trend/index.js @@ -0,0 +1,3 @@ +import Trend from './Trend.vue' + +export default Trend diff --git a/src/mock/Trend/index.less b/src/mock/Trend/index.less new file mode 100644 index 0000000000..8a3d24cfb5 --- /dev/null +++ b/src/mock/Trend/index.less @@ -0,0 +1,42 @@ +@import "../index"; + +@trend-prefix-cls: ~"@{ant-pro-prefix}-trend"; + +.@{trend-prefix-cls} { + display: inline-block; + font-size: @font-size-base; + line-height: 22px; + + .up, + .down { + margin-left: 4px; + position: relative; + top: 1px; + + i { + font-size: 12px; + transform: scale(0.83); + } + } + + .item-text { + display: inline-block; + margin-left: 8px; + color: rgba(0,0,0,.85); + } + + .up { + color: @red-6; + } + .down { + color: @green-6; + top: -1px; + } + + &.reverse-color .up { + color: @green-6; + } + &.reverse-color .down { + color: @red-6; + } +} \ No newline at end of file diff --git a/src/mock/Trend/index.md b/src/mock/Trend/index.md new file mode 100644 index 0000000000..8881f0e1a2 --- /dev/null +++ b/src/mock/Trend/index.md @@ -0,0 +1,45 @@ +# Trend 趋势标记 + +趋势符号,标记上升和下降趋势。通常用绿色代表“好”,红色代表“不好”,股票涨跌场景除外。 + + + +引用方式: + +```javascript +import Trend from '@/components/Trend' + +export default { + components: { + Trend + } +} +``` + + + +## 代码演示 [demo](https://pro.loacg.com/test/home) + +```html +<trend flag="up">5%</trend> +``` +或 +```html +<trend flag="up"> + <span slot="term">工资</span> + 5% +</trend> +``` +或 +```html +<trend flag="up" term="工资">5%</trend> +``` + + +## API + +| 参数 | 说明 | 类型 | 默认值 | +|----------|------------------------------------------|-------------|-------| +| flag | 上升下降标识:`up|down` | string | - | +| reverseColor | 颜色反转 | Boolean | false | + diff --git a/src/mock/index.js b/src/mock/index.js index 98824aed0e..f68097bb0c 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -11,6 +11,7 @@ if (process.env.NODE_ENV !== 'production' || process.env.VUE_APP_PREVIEW === 'tr require('./services/other') require('./services/tagCloud') require('./services/article') + require('./services/element') Mock.setup({ timeout: 800 // setter delay time diff --git a/src/mock/services/element.js b/src/mock/services/element.js new file mode 100644 index 0000000000..c85a982475 --- /dev/null +++ b/src/mock/services/element.js @@ -0,0 +1,695 @@ +import Mock from 'mockjs2' +import { builder, getQueryParameters } from '../util' + + +const list = () => { + return builder({ + 'second': [ + { + "level": 1, + "answers": [ + { + "basisAnswerId": 12, + "patientBasisMarkId": 1, + "elementNumValue": 1, + "basisElementId": 1 + } + ], + "simple": 1, + "questionName": "留全血", + "sort": 1, + "type": 1, + "isRadio": 0, + "isShow": 0, + "basisElementId": 1, + "hasChild": -1, + "showType": 0, + "isWrite": -1 + }, + { + "level": 1, + "answers": [ + { + "basisAnswerId": 13, + "patientBasisMarkId": 1, + "elementNumValue": -1, + "basisElementId": 2 + } + ], + "simple": 1, + "questionName": "留血清", + "sort": 2, + "type": 1, + "isRadio": 0, + "isShow": 0, + "basisElementId": 2, + "hasChild": -1, + "showType": 0, + "isWrite": -1 + }, + { + "level": 1, + "answers": [ + { + "basisAnswerId": 14, + "elementTextValue": "2019-01-01", + "patientBasisMarkId": 1, + "basisElementId": 3 + } + ], + "simple": -1, + "questionName": "患者支扩确诊时间", + "sort": 3, + "type": 1, + "isRadio": 0, + "isShow": 0, + "basisElementId": 3, + "hasChild": -1, + "showType": 0, + "isWrite": 1 + }, + { + "level": 1, + "answers": [], + "childList": [ + { + "level": 2, + "answers": [ + { + "basisAnswerId": 15, + "patientBasisMarkId": 1, + "elementNumValue": 1, + "basisElementId": 5 + } + ], + "simple": -1, + "questionName": "咳嗽", + "sort": 1, + "type": 2, + "isRadio": 0, + "parentId": 4, + "isShow": 0, + "basisElementId": 5, + "hasChild": -1, + "showType": 0, + "isWrite": -1 + }, + { + "level": 2, + "answers": [ + { + "basisAnswerId": 16, + "elementTextValue": "100", + "patientBasisMarkId": 1, + "elementNumValue": 1, + "basisElementId": 6 + } + ], + "simple": -1, + "questionName": "咳痰", + "sort": 1, + "type": 2, + "isRadio": 0, + "parentId": 4, + "isShow": 0, + "childEleName": "", + "unit": "ml/日", + "basisElementId": 6, + "hasChild": -1, + "showType": 0, + "isWrite": 1 + }, + { + "level": 2, + "answers": [], + "simple": -1, + "questionName": "痰血", + "sort": 1, + "type": 2, + "isRadio": 0, + "parentId": 4, + "isShow": 0, + "childEleName": "", + "unit": "", + "basisElementId": 7, + "hasChild": -1, + "showType": 0, + "isWrite": -1 + }, + { + "level": 2, + "answers": [], + "simple": -1, + "questionName": "咯血", + "sort": 1, + "type": 2, + "isRadio": 0, + "parentId": 4, + "isShow": 0, + "childEleName": "", + "unit": "ml/日", + "basisElementId": 8, + "hasChild": -1, + "showType": 0, + "isWrite": 1 + } + ], + "simple": -1, + "questionName": "主要临床症状:有无下列症状:(多选,勾选)", + "sort": 4, + "type": 1, + "isRadio": -1, + "isShow": 0, + "basisElementId": 4, + "hasChild": 1, + "showType": 1, + "isWrite": -1 + } + ], + 'seven': [ + { + "basisElementId": 9, + "childEleName": "", + "childList": [ + { + "basisElementId": 10, + "childEleName": "", + "childList": [ + { + "basisElementId": 11, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 10, + "questionName": "升高", + "showType": 0, + "simple": -1, + "sort": 1, + "type": 2, + "unit": "" + }, + { + "basisElementId": 12, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 10, + "questionName": "正常", + "showType": 0, + "simple": -1, + "sort": 2, + "type": 2, + "unit": "" + }, + { + "basisElementId": 13, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 10, + "questionName": "未测", + "showType": 0, + "simple": -1, + "sort": 3, + "type": 2, + "unit": "" + } + ], + "hasChild": 1, + "isRadio": 1, + "isShow": 0, + "isWrite": 1, + "level": 2, + "parentId": 9, + "questionName": "血嗜酸里细胞绝对值", + "showType": 1, + "simple": -1, + "sort": 1, + "type": 1, + "unit": "*10^9/L" + }, + { + "basisElementId": 14, + "childEleName": "", + "childList": [ + { + "basisElementId": 15, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 14, + "questionName": "升高", + "showType": 0, + "simple": -1, + "sort": 1, + "type": 2, + "unit": "" + }, + { + "basisElementId": 16, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 14, + "questionName": "正常", + "showType": 0, + "simple": -1, + "sort": 1, + "type": 2, + "unit": "" + }, + { + "basisElementId": 17, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 14, + "questionName": "未测", + "showType": 0, + "simple": -1, + "sort": 2, + "type": 2, + "unit": "" + } + ], + "hasChild": 1, + "isRadio": 1, + "isShow": 0, + "isWrite": 1, + "level": 2, + "parentId": 9, + "questionName": "血总IgE", + "showType": 1, + "simple": -1, + "sort": 2, + "type": 1, + "unit": "IU/mL" + }, + { + "basisElementId": 18, + "childEleName": "", + "childList": [ + { + "basisElementId": 19, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 18, + "questionName": "升高", + "showType": 0, + "simple": -1, + "sort": 1, + "type": 2, + "unit": "" + }, + { + "basisElementId": 20, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 18, + "questionName": "正常", + "showType": 0, + "simple": -1, + "sort": 2, + "type": 2, + "unit": "" + } + ], + "hasChild": 1, + "isRadio": 1, + "isShow": 0, + "isWrite": 1, + "level": 2, + "parentId": 9, + "questionName": "曲霉特异IgE", + "showType": 1, + "simple": -1, + "sort": 3, + "type": 1, + "unit": "IU/mL" + }, + { + "basisElementId": 21, + "childEleName": "", + "childList": [ + { + "basisElementId": 22, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 21, + "questionName": "升高", + "showType": 0, + "simple": -1, + "sort": 1, + "type": 2, + "unit": "" + }, + { + "basisElementId": 23, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 21, + "questionName": "正常", + "showType": 0, + "simple": -1, + "sort": 2, + "type": 2, + "unit": "" + }, + { + "basisElementId": 24, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 21, + "questionName": "未测", + "showType": 0, + "simple": -1, + "sort": 3, + "type": 2, + "unit": "" + } + ], + "hasChild": 1, + "isRadio": 1, + "isShow": 0, + "isWrite": 1, + "level": 2, + "parentId": 9, + "questionName": "曲霉特异IgG", + "showType": 1, + "simple": -1, + "sort": 4, + "type": 1, + "unit": "IU/mL" + }, + { + "basisElementId": 25, + "childEleName": "", + "childList": [ + { + "basisElementId": 26, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 25, + "questionName": "阳性", + "showType": 0, + "simple": -1, + "sort": 1, + "type": 2, + "unit": "" + }, + { + "basisElementId": 27, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 25, + "questionName": "正常", + "showType": 0, + "simple": -1, + "sort": 2, + "type": 2, + "unit": "" + }, + { + "basisElementId": 28, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 25, + "questionName": "未测", + "showType": 0, + "simple": -1, + "sort": 3, + "type": 2, + "unit": "" + } + ], + "hasChild": 1, + "isRadio": 1, + "isShow": 0, + "isWrite": -1, + "level": 2, + "parentId": 9, + "questionName": "曲霉皮肤点刺试验", + "showType": 1, + "simple": -1, + "sort": 5, + "type": 1, + "unit": "" + }, + { + "basisElementId": 29, + "childEleName": "", + "childList": [ + { + "basisElementId": 30, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 29, + "questionName": "有", + "showType": 0, + "simple": -1, + "sort": 1, + "type": 2, + "unit": "" + }, + { + "basisElementId": 31, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 29, + "questionName": "无", + "showType": 0, + "simple": -1, + "sort": 2, + "type": 2, + "unit": "" + }, + { + "basisElementId": 32, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 29, + "questionName": "未测", + "showType": 0, + "simple": -1, + "sort": 3, + "type": 2, + "unit": "" + } + ], + "hasChild": 1, + "isRadio": 1, + "isShow": 0, + "isWrite": -1, + "level": 2, + "parentId": 9, + "questionName": "胸部CT有无中心性支扩", + "showType": 1, + "simple": -1, + "sort": 6, + "type": 1, + "unit": "" + } + ], + "hasChild": 1, + "isRadio": 0, + "isShow": 1, + "isWrite": -1, + "level": 1, + "questionName": "ABPA", + "showType": 2, + "simple": 1, + "sort": 1, + "type": 1 + } + ], + 'ten': [ + { + "basisElementId": 33, + "childEleName": "", + "childList": [ + { + "basisElementId": 34, + "childEleName": "", + "childList": [ + { + "basisElementId": 35, + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 34, + "questionName": "阿奇霉素", + "showType": 1, + "simple": -1, + "sort": 1, + "type": 2 + }, + { + "basisElementId": 36, + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 34, + "questionName": "克拉霉素", + "showType": 0, + "simple": -1, + "sort": 2, + "type": 2 + }, + { + "basisElementId": 37, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 34, + "questionName": "红霉素", + "showType": 0, + "simple": -1, + "sort": 3, + "type": 2, + "unit": "" + }, + { + "basisElementId": 38, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": -1, + "level": 3, + "parentId": 34, + "questionName": "青霉素", + "showType": 0, + "simple": -1, + "sort": 4, + "type": 2, + "unit": "" + }, + { + "basisElementId": 39, + "childEleName": "", + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": 1, + "level": 3, + "parentId": 34, + "questionName": "其他", + "showType": 0, + "simple": -1, + "sort": 5, + "type": 2, + "unit": "" + } + ], + "hasChild": 1, + "isRadio": 1, + "isShow": 0, + "isWrite": -1, + "level": 2, + "parentId": 33, + "questionName": "周期性抗生素治疗", + "showType": 1, + "simple": -1, + "sort": 1, + "type": 1 + }, + { + "basisElementId": 40, + "hasChild": -1, + "isRadio": 0, + "isShow": 0, + "isWrite": 1, + "level": 2, + "parentId": 33, + "questionName": "吸入/雾化抗生素药物名称:", + "showType": 0, + "simple": -1, + "sort": 2, + "type": 1 + } + ], + "hasChild": 1, + "isRadio": -1, + "isShow": 1, + "isWrite": -1, + "level": 1, + "questionName": "有规律的呼吸疾病药物治疗", + "showType": 2, + "simple": 1, + "sort": 1, + "type": 1 + } + ] + }) +} + +Mock.mock(/\/element\/list/, 'get', list) diff --git a/src/mock/services/manage.js b/src/mock/services/manage.js index 10181ece26..e1bfaadf7d 100644 --- a/src/mock/services/manage.js +++ b/src/mock/services/manage.js @@ -22,6 +22,21 @@ const serverList = (options) => { description: '这是一段描述', callNo: Mock.mock('@integer(1, 999)'), status: Mock.mock('@integer(0, 3)'), + pros:[ + { + id:1, + name:'基线', + percent:100, + },{ + id:2, + name:"访视", + percent:40 + },{ + id:3, + name:"访视", + percent:0 + } + ], updatedAt: Mock.mock('@datetime'), editable: false }) diff --git a/src/mock/services/other.js b/src/mock/services/other.js index 83a5792992..c66e21533f 100644 --- a/src/mock/services/other.js +++ b/src/mock/services/other.js @@ -2,82 +2,55 @@ import Mock from 'mockjs2' import { builder } from '../util' const orgTree = () => { - return builder([{ - 'key': 'key-01', - 'title': '研发中心', - 'icon': 'mail', - 'children': [{ - 'key': 'key-01-01', - 'title': '后端组', - 'icon': null, - 'group': true, - children: [{ - 'key': 'key-01-01-01', - 'title': 'JAVA', - 'icon': null - }, - { - 'key': 'key-01-01-02', - 'title': 'PHP', - 'icon': null - }, - { - 'key': 'key-01-01-03', - 'title': 'Golang', - 'icon': null - } - ] - }, { - 'key': 'key-01-02', - 'title': '前端组', - 'icon': null, - 'group': true, - children: [{ - 'key': 'key-01-02-01', - 'title': 'React', - 'icon': null - }, - { - 'key': 'key-01-02-02', - 'title': 'Vue', - 'icon': null - }, - { - 'key': 'key-01-02-03', - 'title': 'Angular', - 'icon': null - } - ] - }] - }, { - 'key': 'key-02', - 'title': '财务部', - 'icon': 'dollar', - 'children': [{ - 'key': 'key-02-01', - 'title': '会计核算', - 'icon': null - }, { - 'key': 'key-02-02', - 'title': '成本控制', - 'icon': null - }, { - 'key': 'key-02-03', - 'title': '内部控制', - 'icon': null, - 'children': [{ - 'key': 'key-02-03-01', - 'title': '财务制度建设', - 'icon': null - }, - { - 'key': 'key-02-03-02', - 'title': '会计核算', - 'icon': null - } - ] - }] - }]) + return builder([ + { + "title": "支扩病史资料", + "percentage": "100%", + "key": "key-01" + }, + { + "title": "体格检查", + "percentage": "40%", + "key": "key-02" + }, + { + "title": "辅助检查", + "percentage": "", + "key": "key-03", + "children": [ + { + "title": "胸部影像学", + "percentage": "20%", + "key": "key-03-01" + }, + { + "title": "病原微生物检查", + "percentage": "", + "key": "key-03-02" + }, + { + "title": "病因学相关检查", + "percentage": "", + "key": "key-03-03" + }, + { + "title": "肺功能相关检查", + "percentage": "", + "key": "key-03-04" + }, + { + "title": "心脏彩超", + "percentage": "", + "key": "key-03-05" + }, + { + "title": "心脏彩超", + "percentage": "", + "key": "key-03-06" + } + ] + } +]) } const role = () => { diff --git a/src/mock/services/user.js b/src/mock/services/user.js index 6f25223b5b..5baa1a52aa 100644 --- a/src/mock/services/user.js +++ b/src/mock/services/user.js @@ -3,23 +3,6 @@ import { builder } from '../util' const info = (options) => { console.log('options', options) - const userInfo = { - 'id': '4291d7da9005377ec9aec4a71ea837f', - 'name': '天野远子', - 'username': 'admin', - 'password': '', - 'avatar': '/avatar2.jpg', - 'status': 1, - 'telephone': '', - 'lastLoginIp': '27.154.74.117', - 'lastLoginTime': 1534837621348, - 'creatorId': 'admin', - 'createTime': 1497160610259, - 'merchantCode': 'TLif2btpzg079h15bk', - 'deleted': 0, - 'roleId': 'admin', - 'role': {} - } // role const roleObj = { 'id': 'admin', diff --git a/src/permission.js b/src/permission.js index cdd178353f..50183df0be 100644 --- a/src/permission.js +++ b/src/permission.js @@ -10,50 +10,91 @@ import { ACCESS_TOKEN } from '@/store/mutation-types' NProgress.configure({ showSpinner: false }) // NProgress Configuration -const whiteList = ['login', 'register', 'registerResult'] // no redirect whitelist +const whiteList = ['login', 'register', 'registerResult', 'Workplace'] // no redirect whitelist router.beforeEach((to, from, next) => { NProgress.start() // start progress bar to.meta && (typeof to.meta.title !== 'undefined' && setDocumentTitle(`${to.meta.title} - ${domTitle}`)) - if (Vue.ls.get(ACCESS_TOKEN)) { + if (Vue.ls.get(ACCESS_TOKEN)) { // 如果已登录,则有token /* has token */ - if (to.path === '/user/login') { - next({ path: '/dashboard/workplace' }) + if (to.path === '/user/login') { // 如果没有点击退出登录却返回了登录页,则重定向回首页 + next({ path: '/dashboard/analysis' }) NProgress.done() } else { if (store.getters.roles.length === 0) { - store - .dispatch('GetInfo') - .then(res => { - const roles = res.result && res.result.role - store.dispatch('GenerateRoutes', { roles }).then(() => { - // 根据roles权限生成可访问的路由表 - // 动态添加可访问路由表 - router.addRoutes(store.getters.addRouters) - const redirect = decodeURIComponent(from.query.redirect || to.path) - if (to.path === redirect) { - // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record - next({ ...to, replace: true }) - } else { - // 跳转到目的路由 - next({ path: redirect }) - } - }) + let permissionList = Vue.ls.get(ACCESS_TOKEN).permissionList; + const arr = [] + permissionList.forEach(item => { + arr.push(item.name) + }) + store.dispatch('GetInfo', arr).then(res => { + store.dispatch('RenderRoutes', arr).then(() => { + router.addRoutes(store.getters.addRouters) + const redirect = decodeURIComponent(from.query.redirect || to.path) + if (to.path === redirect) { + // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record + next({ ...to, replace: true }) + } else { + // 跳转到目的路由 + next({ path: redirect }) + } }) - .catch(() => { - notification.error({ - message: '错误', - description: '请求用户信息失败,请重试' - }) - store.dispatch('Logout').then(() => { - next({ path: '/user/login', query: { redirect: to.fullPath } }) - }) + }) + .catch(() => { + notification.error({ + message: '错误', + description: '请求用户信息失败,请重试' }) + store.dispatch('Logout').then(() => { + next({ path: '/user/login', query: { redirect: to.fullPath } }) + }) + }) } else { next() } + // if (store.getters.roles.length === 0) { + // var role = typeof Vue.ls.get(ACCESS_TOKEN).centerId !== 'undefined' ? ['center'] : ['group'] + // store + // .dispatch('GetInfo', role) + // .then(res => { + // store.dispatch('GenerateRoutes', role).then(() => { + // // 根据roles权限生成可访问的路由表 + // // 动态添加可访问路由表 + // router.addRoutes(store.getters.addRouters) + // const redirect = decodeURIComponent(from.query.redirect || to.path) + // if (to.path === redirect) { + // // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record + // next({ + // ...to, + // replace: true + // }) + // } else { + // // 跳转到目的路由 + // next({ + // path: redirect + // }) + // } + // }) + // }) + // .catch(() => { + // notification.error({ + // message: '错误', + // description: '请求用户信息失败,请重试' + // }) + // store.dispatch('Logout').then(() => { + // next({ + // path: '/user/login', + // query: { + // redirect: to.fullPath + // } + // }) + // }) + // }) + // } else { + // next() + // } } - } else { + } else { // 否则退出登录,清除token if (whiteList.includes(to.name)) { // 在免登录白名单,直接进入 next() @@ -66,4 +107,4 @@ router.beforeEach((to, from, next) => { router.afterEach(() => { NProgress.done() // finish progress bar -}) +}) \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index f0ba074d12..3c0bd7320a 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,6 +1,6 @@ import Vue from 'vue' import Router from 'vue-router' -import { constantRouterMap } from '@/config/router.config' +import { constantRouterMap } from '@/config/router.config' Vue.use(Router) diff --git a/src/store/getters.js b/src/store/getters.js index 8805d33a49..a82236c5c2 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -9,7 +9,8 @@ const getters = { roles: state => state.user.roles, userInfo: state => state.user.info, addRouters: state => state.permission.addRouters, - multiTab: state => state.app.multiTab + multiTab: state => state.app.multiTab, + messageNum: state => state.app.messageNum } export default getters diff --git a/src/store/modules/app.js b/src/store/modules/app.js index 373a97ebf3..fd45227a58 100644 --- a/src/store/modules/app.js +++ b/src/store/modules/app.js @@ -9,7 +9,8 @@ import { DEFAULT_FIXED_SIDEMENU, DEFAULT_FIXED_HEADER_HIDDEN, DEFAULT_CONTENT_WIDTH_TYPE, - DEFAULT_MULTI_TAB + DEFAULT_MULTI_TAB, + DEFAULT_MESSAGE_NUM } from '@/store/mutation-types' const app = { @@ -24,7 +25,8 @@ const app = { autoHideHeader: false, color: null, weak: false, - multiTab: true + multiTab: true, + messageNum: '' }, mutations: { SET_SIDEBAR_TYPE: (state, type) => { @@ -74,6 +76,10 @@ const app = { TOGGLE_MULTI_TAB: (state, bool) => { Vue.ls.set(DEFAULT_MULTI_TAB, bool) state.multiTab = bool + }, + TOGGLE_MESSAGE_NUM: (state, num) => { + Vue.ls.set(DEFAULT_MESSAGE_NUM, num) + state.messageNum = num } }, actions: { @@ -115,6 +121,9 @@ const app = { }, ToggleMultiTab ({ commit }, bool) { commit('TOGGLE_MULTI_TAB', bool) + }, + ToggleMessageNum ({ commit }, num) { + commit('TOGGLE_MESSAGE_NUM', num) } } } diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js index bb39b02427..8e5172241e 100644 --- a/src/store/modules/permission.js +++ b/src/store/modules/permission.js @@ -1,4 +1,4 @@ -import { asyncRouterMap, constantRouterMap } from '@/config/router.config' +import { asyncRouterMap, /*constantRouterMap*/ } from '@/config/router.config' /** * 过滤账户是否拥有某一个权限,并将菜单从加载列表移除 @@ -30,8 +30,8 @@ function hasPermission (permission, route) { */ // eslint-disable-next-line function hasRole(roles, route) { - if (route.meta && route.meta.roles) { - return route.meta.roles.includes(roles.id) + if (route.meta && route.meta.permission) { + return route.meta.permission.includes(roles) } else { return true } @@ -39,7 +39,7 @@ function hasRole(roles, route) { function filterAsyncRouter (routerMap, roles) { const accessedRouters = routerMap.filter(route => { - if (hasPermission(roles.permissionList, route)) { + if (hasPermission(roles, route)) { if (route.children && route.children.length) { route.children = filterAsyncRouter(route.children, roles) } @@ -52,20 +52,26 @@ function filterAsyncRouter (routerMap, roles) { const permission = { state: { - routers: constantRouterMap, + // routers: constantRouterMap, addRouters: [] }, mutations: { SET_ROUTERS: (state, routers) => { state.addRouters = routers - state.routers = constantRouterMap.concat(routers) + // state.routers = constantRouterMap.concat(routers) } }, actions: { + RenderRoutes ({ commit }, data) { + return new Promise(resolve => { + const accessedRouters = filterRoute(asyncRouterMap, data) + commit('SET_ROUTERS', accessedRouters) + resolve() + }) + }, GenerateRoutes ({ commit }, data) { return new Promise(resolve => { - const { roles } = data - const accessedRouters = filterAsyncRouter(asyncRouterMap, roles) + const accessedRouters = filterAsyncRouter(asyncRouterMap, data) commit('SET_ROUTERS', accessedRouters) resolve() }) @@ -73,4 +79,42 @@ const permission = { } } +function hasMetaTitle(route, arr) { + if (route.meta && route.meta.title) { + return arr.some(role => route.meta.title === role ) + // if(arr.includes(route.meta.title)) { + // return true + // } + // return false + } else { + return true + } +} + +function filterRoute(routeMap, arr) { + const res = [] + routeMap.forEach(route => { + const tmp = { ...route } + if (hasMetaTitle(tmp, arr)) { + if (tmp.children) { + tmp.children = filterRoute(tmp.children, arr) // 闭包查找所有该roles下的路由 + } + res.push(tmp) + } + }) + return res + + // let accessedRouters = routeMap.filter(route => { + // if (hasMetaTitle(route, arr)) { + // if(route.children) { + // route.children = filterRoute(route.children, arr) + // } + // return true + // } + // return false + // }) + // return accessedRouters +} + + export default permission diff --git a/src/store/modules/user.js b/src/store/modules/user.js index c3f998888b..6f00d3a66b 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -34,59 +34,41 @@ const user = { actions: { // 登录 - Login ({ commit }, userInfo) { + Login({ commit }, userInfo) { + // console.log('login enter') return new Promise((resolve, reject) => { + // console.log('login promise') login(userInfo).then(response => { - const result = response.result - Vue.ls.set(ACCESS_TOKEN, result.token, 7 * 24 * 60 * 60 * 1000) - commit('SET_TOKEN', result.token) - resolve() - }).catch(error => { - reject(error) + if(!response.data){ + reject(response) + }else{ + const result = response.data + Vue.ls.set(ACCESS_TOKEN, result, 2 * 60 * 60 * 1000) //2小时过期 + commit('SET_TOKEN', result) + resolve() + } + }).catch(err => { + reject(err) }) }) }, // 获取用户信息 - GetInfo ({ commit }) { + GetInfo({ commit } ,role) { return new Promise((resolve, reject) => { - getInfo().then(response => { - const result = response.result - - if (result.role && result.role.permissions.length > 0) { - const role = result.role - role.permissions = result.role.permissions - role.permissions.map(per => { - if (per.actionEntitySet != null && per.actionEntitySet.length > 0) { - const action = per.actionEntitySet.map(action => { return action.action }) - per.actionList = action - } - }) - role.permissionList = role.permissions.map(permission => { return permission.permissionId }) - commit('SET_ROLES', result.role) - commit('SET_INFO', result) - } else { - reject(new Error('getInfo: roles must be a non-null array !')) - } - - commit('SET_NAME', { name: result.name, welcome: welcome() }) - commit('SET_AVATAR', result.avatar) - - resolve(response) - }).catch(error => { - reject(error) - }) + commit('SET_ROLES', role) + resolve() }) }, // 登出 - Logout ({ commit, state }) { + Logout({ commit }) { return new Promise((resolve) => { commit('SET_TOKEN', '') commit('SET_ROLES', []) Vue.ls.remove(ACCESS_TOKEN) - logout(state.token).then(() => { + logout().then(() => { resolve() }).catch(() => { resolve() @@ -97,4 +79,4 @@ const user = { } } -export default user +export default user \ No newline at end of file diff --git a/src/store/mutation-types.js b/src/store/mutation-types.js index 2cf2dbb9f0..9e14149eb2 100644 --- a/src/store/mutation-types.js +++ b/src/store/mutation-types.js @@ -9,6 +9,8 @@ export const DEFAULT_FIXED_SIDEMENU = 'DEFAULT_FIXED_SIDEMENU' export const DEFAULT_FIXED_HEADER_HIDDEN = 'DEFAULT_FIXED_HEADER_HIDDEN' export const DEFAULT_CONTENT_WIDTH_TYPE = 'DEFAULT_CONTENT_WIDTH_TYPE' export const DEFAULT_MULTI_TAB = 'DEFAULT_MULTI_TAB' +export const ROLE_TYPE = 'ROLE_TYPE' +export const DEFAULT_MESSAGE_NUM = 'DEFAULT_MESSAGE_NUM' export const CONTENT_WIDTH_TYPE = { Fluid: 'Fluid', diff --git a/src/utils/domUtil.js b/src/utils/domUtil.js index 83cc556f08..b876bd441e 100644 --- a/src/utils/domUtil.js +++ b/src/utils/domUtil.js @@ -16,4 +16,4 @@ export const setDocumentTitle = function (title) { } } -export const domTitle = 'Ant Design Pro' +export const domTitle = '支扩中国' diff --git a/src/utils/quill-video.js b/src/utils/quill-video.js new file mode 100644 index 0000000000..74901df93a --- /dev/null +++ b/src/utils/quill-video.js @@ -0,0 +1,49 @@ +import { Quill } from 'vue-quill-editor' +const BlockEmbed = Quill.import('blots/block/embed') +const Link = Quill.import('formats/link') +const ATTRIBUTES = ['height','width'] +class Video extends BlockEmbed { + static create (value) { + let node = super.create() + node.setAttribute('controls','controls') + node.setAttribute('playsinline', 'true') + node.setAttribute('webkit-playsinline', 'true') + node.setAttribute('type', 'video/*') + node.setAttribute('src', this.sanitize(value)) + return node + } + static formats (domNode) { + return ATTRIBUTES.reduce((formats, attribute) => { + if(domNode.hasAttribute(attribute)) { + formats[attribute] = domNode.getAttribute(attribute) + } + return formats + }, {}) + } + static sanitize (url) { + return Link.sanitize(url) + } + static value (domNode) { + return domNode.getAttribute('src') + } + format (name, value) { + if(ATTRIBUTES.indexOf(name) > -1) { + if(value) { + this.domNode.setAttribute(name, value) + } else { + this.domNode.removeAttribute(name) + } + } else { + super.format(name, value) + } + } + html() { + const { video } = this.value() + return `<a href="${video}" rel="external nofollow">${video}</a>` + } +} + +Video.blotName = 'video' +Video.className = 'ql-video' +Video.tagName = 'video' +export default Video \ No newline at end of file diff --git a/src/utils/quillConfig.js b/src/utils/quillConfig.js new file mode 100644 index 0000000000..1c788695b4 --- /dev/null +++ b/src/utils/quillConfig.js @@ -0,0 +1,180 @@ +/*富文本编辑图片上传配置*/ +const uploadConfig = { + action: process.env.VUE_APP_API_UPLOAD_URL, // 必填参数 图片上传地址 + attachsPrefix: process.env.VUE_APP_API_VIEW_PIC_URL, + methods: 'POST', // 必填参数 图片上传方式 + name: 'file', // 必填参数 文件的参数名 + token: '', // 可选参数 如果需要token验证,假设你的token有存放在sessionStorage + size: 1024, // 可选参数 图片大小,单位为Kb, 1M = 1024Kb + accept: 'image/png, image/jpeg', // 可选 可上传的图片格式 + acceptVideo: 'video/*' +}; + +// toolbar工具栏的工具选项(默认展示全部) +const toolbarOptions = [ + ['bold', 'italic', 'underline', 'strike'], // toggled buttons + ['blockquote', 'code-block'], + [{ + 'header': 1 + }, { + 'header': 2 + }], // custom button values + [{ + 'list': 'ordered' + }, { + 'list': 'bullet' + }], + [{ + 'script': 'sub' + }, { + 'script': 'super' + }], // superscript/subscript + [{ + 'indent': '-1' + }, { + 'indent': '+1' + }], // outdent/indent + [{ + 'direction': 'rtl' + }], // text direction + + [{ + 'size': ['small', false, 'large', 'huge'] + }], // custom dropdown + [{ + 'header': [1, 2, 3, 4, 5, 6, false] + }], + + [{ + 'color': [] + }, { + 'background': [] + }], // dropdown with defaults from theme + [{ + 'font': [] + }], + [{ + 'align': [] + }], + ['clean'], // remove formatting button + ['link', 'image', 'video'] +] +const handlers = { + image: function image() { + var self = this; + + var fileInput = this.container.querySelector('input.ql-image[type=file]'); + if (fileInput === null) { + fileInput = document.createElement('input'); + fileInput.setAttribute('type', 'file'); + // 设置图片参数名 + if (uploadConfig.name) { + fileInput.setAttribute('name', uploadConfig.name); + } + // 可设置上传图片的格式 + fileInput.setAttribute('accept', uploadConfig.accept); + fileInput.classList.add('ql-image'); + // 监听选择文件 + fileInput.addEventListener('change', function () { + // 创建formData + var formData = new FormData(); + formData.append(uploadConfig.name, fileInput.files[0]); + // 如果需要token且存在token + if (uploadConfig.token) { + formData.append('token', uploadConfig.token) + } + // 图片上传 + var xhr = new XMLHttpRequest(); + xhr.open(uploadConfig.methods, uploadConfig.action, true); + // 上传数据成功,会触发 + xhr.onload = function (e) { + if (xhr.status === 200) { + var res = JSON.parse(xhr.responseText); + let length = self.quill.getSelection(true).index; + //这里很重要,你图片上传成功后,img的src需要在这里添加,res.path就是你服务器返回的图片链接。 + self.quill.insertEmbed(length, 'image', uploadConfig.attachsPrefix + res.fileName); + self.quill.setSelection(length + 1) + } + fileInput.value = '' + }; + // 开始上传数据 + xhr.upload.onloadstart = function (e) { + fileInput.value = '' + }; + // 当发生网络异常的时候会触发,如果上传数据的过程还未结束 + xhr.upload.onerror = function (e) {}; + // 上传数据完成(成功或者失败)时会触发 + xhr.upload.onloadend = function (e) { + // console.log('上传结束') + }; + xhr.send(formData) + }); + debugger + this.container.appendChild(fileInput); + } + fileInput.click(); + }, + video: function video() { + var self = this; + + var fileInput = this.container.querySelector('input.ql-video[type=file]'); + if (fileInput === null) { + fileInput = document.createElement('input'); + fileInput.setAttribute('type', 'file'); + // 设置图片参数名 + if (uploadConfig.name) { + fileInput.setAttribute('name', uploadConfig.name); + } + // 可设置上传图片的格式 + fileInput.setAttribute('accept', uploadConfig.acceptVideo); + fileInput.classList.add('ql-video'); + // 监听选择文件 + fileInput.addEventListener('change', function () { + // 创建formData + var formData = new FormData(); + formData.append(uploadConfig.name, fileInput.files[0]); + // 如果需要token且存在token + if (uploadConfig.token) { + formData.append('token', uploadConfig.token) + } + // 视频上传 + var xhr = new XMLHttpRequest(); + xhr.open(uploadConfig.methods, uploadConfig.action, true); + // 上传数据成功,会触发 + xhr.onload = function (e) { + if (xhr.status === 200) { + var res = JSON.parse(xhr.responseText); + let length = self.quill.getSelection(true).index; + //这里很重要,你视频上传成功后,img的src需要在这里添加,res.path就是你服务器返回的图片链接。 + self.quill.insertEmbed(length, 'video', uploadConfig.attachsPrefix + res.fileName); + self.quill.setSelection(length + 1) + } + fileInput.value = '' + }; + // 开始上传数据 + xhr.upload.onloadstart = function (e) { + fileInput.value = '' + }; + // 当发生网络异常的时候会触发,如果上传数据的过程还未结束 + xhr.upload.onerror = function (e) {}; + // 上传数据完成(成功或者失败)时会触发 + xhr.upload.onloadend = function (e) { + // console.log('上传结束') + }; + xhr.send(formData) + }); + this.container.appendChild(fileInput); + } + fileInput.click(); + } +}; + +export default { + placeholder: '请输入内容', + modules: { + toolbar: { + container: toolbarOptions, // 工具栏选项 + handlers: handlers // 事件重写 + } + } +}; \ No newline at end of file diff --git a/src/utils/request.js b/src/utils/request.js index 8d23f9b217..e98a3f6cb2 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -6,9 +6,14 @@ import { VueAxios } from './axios' import { ACCESS_TOKEN } from '@/store/mutation-types' // 创建 axios 实例 +console.log(process.env.NODE_ENV) +console.log(process.env.NODE_ENV === 'production') +console.log(process.env.NODE_ENV === 'production' ? '' : '/api') const service = axios.create({ - baseURL: process.env.VUE_APP_API_BASE_URL, // api base_url - timeout: 6000 // 请求超时时间 + baseURL: process.env.NODE_ENV === 'production' ? 'http://www.chinabronchiectasis.com/' : '/api', // api base_url + // baseURL: process.env.NODE_ENV === 'production' ? 'http://61.132.50.163:9997/' : '/api', + // baseURL: process.env.NODE_ENV === 'production' ? 'http://172.16.1.21:9997/' : '/api', + timeout: 20000 // 请求超时时间 }) const err = (error) => { @@ -41,9 +46,9 @@ const err = (error) => { // request interceptor service.interceptors.request.use(config => { const token = Vue.ls.get(ACCESS_TOKEN) - if (token) { - config.headers['Access-Token'] = token // 让每个请求携带自定义 token 请根据实际情况自行修改 - } + if (!token) return config + config.headers.Authorization = token.doctorId + // config.params ? config.params.append('tokenId', token.doctorId) : config.data.append('tokenId', token.doctorId) return config }, err) diff --git a/src/views/Home.vue b/src/views/Home.vue index f67c95f5b1..bf93e1c2ff 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -11,37 +11,9 @@ <a-divider> 正常 </a-divider> - <a-card> - - <trend flag="up" style="margin-right: 16px;"> - <span slot="term">工资</span> - 5% - </trend> - <trend flag="up" style="margin-right: 16px;"> - <span slot="term">工作量</span> - 50% - </trend> - <trend flag="down"> - <span slot="term">身体状态</span> - 50% - </trend> - - </a-card> <a-divider> 颜色反转 </a-divider> - <a-card style="margin-bottom: 3rem"> - - <trend flag="up" :reverse-color="true" style="margin-right: 16px;"> - <span slot="term">工资</span> - 5% - </trend> - <trend flag="down" :reverse-color="true" style="margin-right: 16px;"> - <span slot="term">工作量</span> - 50% - </trend> - - </a-card> <h2># AvatarList 组件 </h2> @@ -145,7 +117,7 @@ <script> // @ is an alias to /src -import Trend from '@/components/Trend' +// import Trend from '@/components/Trend' import AvatarList from '@/components/AvatarList' import CountDown from '@/components/CountDown/CountDown' import Ellipsis from '@/components/Ellipsis' @@ -164,7 +136,7 @@ export default { NumberInfo, Ellipsis, CountDown, - Trend, + // Trend, AvatarList, AvatarListItem, TagSelect, diff --git a/src/views/MessageNotification/component/createdForm.vue b/src/views/MessageNotification/component/createdForm.vue new file mode 100644 index 0000000000..bb4bc7d307 --- /dev/null +++ b/src/views/MessageNotification/component/createdForm.vue @@ -0,0 +1,127 @@ +<template> + <a-modal + :title="options.title" + :width="800" + :bodyStyle="bodyStyle" + :maskClosable="maskClosable" + :destroyOnClose="destroyOnClose" + :centered="centered" + :visible="visible" + :confirmLoading="confirmLoading" + @ok="handleSubmit" + @cancel="handleCancel" + > + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item label="标题" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input placeholder="请输入标题" v-decorator="['title', isIdCardNo]" /> + </a-form-item> + <a-form-item label="发送内容" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input type="textarea" rows="6" v-decorator="['content', requiredRule]" /> + </a-form-item> + </a-form> + </a-spin> + </a-modal> +</template> +<script> +import { saveOrUpdateData } from '@/api/message' +export default { + data () { + return { + options: {}, + residences: [], + nationList: [], + professionList: [], + censusList: [], + baseUrl: process.env.VUE_APP_API_BASE_URL, + maskClosable: false, + payTypeList: [], + isShowPat: false, + labelCol: { + xs: { span: 24 }, + sm: { span: 3 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 20 } + }, + visible: false, + confirmLoading: false, + centered: true, + destroyOnClose: true, + bodyStyle: { + height: '300px', + overflow: 'auto' + }, + form: this.$form.createForm(this), + requiredRule: { rules: [{ required: true, message: '该选项必填!' }] }, + isIdCardNo: { rules: [{ required: true, message: '该选项必填!' }] }, + announcementId: '' + } + }, + created () {}, + methods: { + add () { + this.options.title = '新建消息' + this.announcementId = '' + this.visible = true + }, + edit (value) { + this.options.title = '编辑消息' + this.announcementId = value.announcementId + setTimeout(() => { + this.form.setFieldsValue({ + title: value.title, + content: value.content + }) + }, 0) + this.visible = true + }, + handleSubmit () { + if (!this.confirmLoading) { + this.confirmLoading = true + this.form.validateFieldsAndScroll((errors, fieldsValue) => { + const that = this + if (errors) { + this.confirmLoading = false + return + } + const values = { + ...fieldsValue, + announcementId: this.announcementId + } + saveOrUpdateData(values).then((res) => { + that.visible = false + that.confirmLoading = false + that.$message.success(res.msg) + that.$emit('ok', values) + }) + }) + } + }, + handleCancel () { + this.visible = false + } + } +} +</script> +<style lang="less" scoped> +/deep/ .ant-form-item:last-child { + margin-bottom: 0; +} + +/deep/ .aaa .ant-form-item-label { + position: relative; + left: -18px; +} + +.aaa .ant-form-item-children > i { + position: absolute !important; + left: -22px !important; + top: 4px; +} +input, +textarea { + outline: none; +} +</style> diff --git a/src/views/MessageNotification/component/newsDetail.vue b/src/views/MessageNotification/component/newsDetail.vue new file mode 100644 index 0000000000..5c2e33ddd4 --- /dev/null +++ b/src/views/MessageNotification/component/newsDetail.vue @@ -0,0 +1,151 @@ +<template> + <a-modal + title="消息详情" + :width="600" + :bodyStyle="bodyStyle" + :maskClosable="maskClosable" + :destroyOnClose="destroyOnClose" + :centered="centered" + :visible="visible" + :confirmLoading="confirmLoading" + :footer="null" + @cancel="handleCancel" + > + <a-spin :spinning="confirmLoading"> + <!-- <a-form :form="form"> + <a-form-item label="标题" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input placeholder="请输入标题" v-decorator="['title', isIdCardNo]" /> + </a-form-item> + <a-form-item label="发送内容" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input type="textarea" rows="6" v-decorator="['content', requiredRule]" /> + </a-form-item> + </a-form> --> + <!-- publish.isCreator == 1? (publish.stauts == 1? false : (publish.unReadCount == 0? '已阅读' : '待阅读') ) : publish.unReadCount --> + <div class="sdd"> + <span v-if="publish.updatedDate? true : false">发布时间: <span>{{ publish.updatedDate | formDate }}</span></span> + <span v-if="publish.publisher? true : false">发布人: <span>{{ publish.publisher }}</span></span> + <span v-if="publish.isCreator == 1? true : false" class="publishStatus"> + <span v-if="publish.unReadCount == 0? false : (publish.status == 1? true : false)" style="margin-right: 5px">待阅读:</span> + <span style="margin-right: 0">{{ publish.status == 1? (publish.type == 1? publish.unReadCount : (publish.unReadCount == 0? '已阅读' : '待阅读')) : '未发布' }}</span> + </span> + </div> + <div class="cdd"> + <p>{{ publish.content }}</p> + </div> + <div class="ndd"> + <a-button v-if="publish.isCreator == 1? false : true" :disabled="status == 2? true : false" type="primary" @click="readStatusBtn()">{{ status == 2? '已阅读' : '确认' }}</a-button> + </div> + </a-spin> + </a-modal> +</template> +<script> +import { detailData, isReadDetail } from '@/api/message' +import { getUnReadAnnouncement } from '@/api/basis' +import moment from 'moment' +export default { + data () { + return { + publish: [], + status: undefined, + announcementId: undefined, + maskClosable: false, + payTypeList: [], + isShowPat: false, + visible: false, + confirmLoading: false, + centered: true, + destroyOnClose: true, + bodyStyle: { + height: '300px', + overflow: 'auto' + }, + form: this.$form.createForm(this) + } + }, + created () {}, + filters: { + formDate (date) { + return moment(date).format('YYYY-MM-DD') + } + }, + methods: { + show (value) { + this.visible = true + this.confirmLoading = true + detailData(value.announcementId).then(res => { + this.publish = res.data + this.status = res.data.readStatus + this.announcementId = res.data.announcementId + this.confirmLoading = false + }) + }, + async readStatusBtn () { + var that = this + if (this.status == 1) { + this.status = 2 + const res = await isReadDetail(this.announcementId) + that.$message.success(res.msg) + const { data } = await getUnReadAnnouncement() + this.$store.commit('TOGGLE_MESSAGE_NUM', data.length || '') + } + }, + handleCancel () { + this.visible = false + this.$emit('ok') + } + } +} +</script> +<style lang="less" scoped> +/deep/ .ant-form-item:last-child { + margin-bottom: 0; +} +.sdd { + position: relative; + font-size: 16px; + color: #000; + height: 50px; + border-bottom: 1px solid #cfcfcf; +} +.sdd span { + margin-right: 30px; +} +.cdd { + margin-top: 20px; +} +.ndd { + text-align: right; + margin-top: 40px; +} +.publishStatus { + position: absolute; + top: 0; + right: 0; + font-size: 14px; + color: #999; +} +.btn { + background: #409eff; + border: unset; + color: #fff; + padding: 5px; + border-radius: 5px; +} +.btn-disabled { + background: #909399; + border: unset; + color: #fff; + padding: 5px; + border-radius: 5px; +} +/deep/ .aaa .ant-form-item-label { + position: relative; + left: -18px; +} + +.aaa .ant-form-item-children > i { + position: absolute !important; + left: -22px !important; + top: 4px; +} +</style> diff --git a/src/views/MessageNotification/newsView.vue b/src/views/MessageNotification/newsView.vue new file mode 100644 index 0000000000..147b0c3108 --- /dev/null +++ b/src/views/MessageNotification/newsView.vue @@ -0,0 +1,342 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索标题" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch(0)">全部消息</p> + <p @click="tableSearch(1)">已创建消息</p> + <p @click="tableSearch(2)">已接收消息</p> + <p @click="tableSearch(3)">待阅读消息</p> + <p @click="tableSearch(4)">已阅读消息</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="标题"> + <a-input v-model.trim="queryParam.title" /> + </a-form-item> + <a-form-item label="发布人"> + <a-input v-model.trim="queryParam.publisher" /> + </a-form-item> + <a-form-item label="发布时间" style="margin-bottom:0;"> + <a-range-picker @change="changeTime" style="width: 100%" :value="dateArr" /> + </a-form-item> + <a-form-item style="text-align: right; margin-bottom: 0; margin-top: 15px"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + <a-col :md="11" style="text-align:right" :sm="24"> + <a-button type="primary" @click="$refs.createModal.add()">新建</a-button> + </a-col> + <a-col :md="1" style="text-align:right" :sm="24"> + <a-button type="primary" @click="$refs.table.refresh()">刷新</a-button> + </a-col> + </a-row> + </a-form> + </div> + <s-table + class="table-fix" + ref="table" + :scroll="scroll" + size="small" + rowKey="wxPatientId" + :columns="columns" + :data="loadData" + :alert="options.alert" + :rowSelection="options.rowSelection" + > + <template slot="overFlow" slot-scope="text, record"> + <div style="overflow: hidden; white-space: nowrap; text-overflow: ellipsis;max-width: 600px"> + {{ record.content }} + </div> + </template> + <span slot="status" slot-scope="text">{{ text | statusFilter}}</span> + <span slot="operation" slot-scope="text, record"> + <template> + <a style="margin-right: 5px" v-if="record.status == 0? true : (record.status == 2? true : false)" @click="addorEditMessage(record)">编辑</a> + <a style="margin-right: 5px" v-if="record.status == 1? false : true" @click="handleReview(record)">发布</a> + <a style="margin-right: 5px" v-if="record.isCreator == 1? (record.status == 1? true : false) : false" @click="withdraw(record)">撤回</a> + <a style="margin-right: 5px" @click="newsDetailView(record)">详情</a> + <a style="margin-right: 5px" v-if="record.status == 0? true : (record.status == 2? true : false)" @click="del(record)">删除</a> + </template> + </span> + </s-table> + <created-form ref="createModal" @ok="handleOk"></created-form> + <news-detail ref="newsDetail" @ok="handleOk"></news-detail> + </a-card> +</template> +<script> +import moment from 'moment' +import { STable } from '@/components' +import { getMessageList, withdrawData, publishData, deleteData } from '@/api/message' +import CreatedForm from './component/createdForm.vue' +import NewsDetail from './component/newsDetail.vue' +import $ from 'jquery' +export default { + components: { + STable, + CreatedForm, + NewsDetail + }, + data () { + return { + dateArr: [], + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + scroll: false, + dataEchoInfo: {}, + loadData: (parameter) => { + return getMessageList(Object.assign(parameter, this.queryParam)).then((res) => { + return res + }) + }, + form: this.$form.createForm(this), + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [ + { + title: '发布标题', + dataIndex: 'title', + width: '120px' + }, + { + title: '发布时间', + dataIndex: 'updatedDate', + width: '80px', + customRender: (updatedDate) => (updatedDate) ? moment(updatedDate).format('YYYY-MM-DD') : '' + }, + { + title: '发布人', + dataIndex: 'publisher', + width: '100px' + }, + { + title: '消息来源', + dataIndex: 'typeName', + width: '100px' + }, + { + title: '阅读状态', + dataIndex: 'status', + width: '100px', + scopedSlots: { + customRender: 'status' + } + }, + { + title: '消息内容', + dataIndex: 'content', + width: '600px', + // render: text => <div dataIndex={text}>{text}</div> + // ellipsis: true + scopedSlots: { customRender: 'overFlow' } + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '100px' + } + ] + } + }, + created () { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + mounted () { + var that = this + $(document).on('click', function (e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ( + $(e.target).closest('.tableSearch').length == 0 && + $(e.target).closest('.ant-calendar').length == 0 && + $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && + $(e.target).closest('.ant-calendar-month-panel-table').length === 0 + ) { + that.advanced = false + } + }) + }, + filters: { + statusFilter(status) { + if(status === 0) + return '未阅' + else + return '已阅' + } + }, + methods: { + onSelectChange (selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys + this.selectedRows = selectedRows + }, + handleOk () { + this.$refs.table.refresh() + }, + clearForm () { + this.queryParam = {} + this.dateArr = [] + }, + tableSearch (type) { + this.queryParam.queryType = type + this.$refs.table.refresh() + this.advanced = false + }, + refreshTable () { + this.advanced = false + this.$refs.table.refresh() + }, + changeTime (time) { + this.dateArr = time + this.queryParam.publishTimeStart = moment(time[0]).format('YYYY-MM-DD 00:00:00') + this.queryParam.publishTimeEnd = moment(time[1]).format('YYYY-MM-DD 23:59:59') + }, + // 编辑 + addorEditMessage (record) { + this.$refs.createModal.edit(record) + }, + newsDetailView (record) { + this.$refs.newsDetail.show(record) + }, + // 发布 + async handleReview (recode) { + const that = this + this.$confirm({ + title: '是否要发布这条消息?', + onOk () { + publishData(recode.announcementId).then(res => { + if (res.code === 0) { + that.$message.success('发布成功') + that.$refs.table.refresh() + } else { + that.$message.error(res.msg) + } + }) + }, + onCancel () {} + }) + }, + // 撤回 + withdraw (record) { + const that = this + this.$confirm({ + title: '是否要撤回这条消息?', + onOk () { + withdrawData(record.announcementId).then(res => { + if (res && res.code === 0) { + that.$message.success('撤回成功') + that.$refs.table.refresh() + } else { + that.$message.error(res && res.msg) + } + }) + }, + onCancel () {} + }) + }, + // 删除 + del (record) { + const that = this + this.$confirm({ + title: '是否要删除这条消息?', + onOk () { + deleteData(record.announcementId).then(res => { + if (res.code === 0) { + that.$message.success('删除成功') + that.$refs.table.refresh() + } else { + that.$message.error(res && res.msg) + } + }) + }, + onCancel () {} + }) + } + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} +.table-fix { + table-layout:fixed; +} +.ant-table-tbody > tr > td { + max-height: 40px; + overflow:hidden; + white-space:nowrap; + text-overflow:ellipsis; + cursor: pointer; +} +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item > .ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} +</style> diff --git a/src/views/account/ContactForm.vue b/src/views/account/ContactForm.vue new file mode 100644 index 0000000000..2d94bb2ed0 --- /dev/null +++ b/src/views/account/ContactForm.vue @@ -0,0 +1,102 @@ +<template> + <a-modal :title="options.title" :width="400" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :destroyOnClose="destroyOnClose" :centered="centered" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <div style="color: red; margin-bottom: 10px; text-align: center; font-size: 17px;">请务必确保填写数据的真实性和准确性</div> + <a-form :form="form"> + <a-form-item label="提交人" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['submitName', requiredRule]" /> + </a-form-item> + <a-form-item label="联系电话" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['submitTelephone', { rules: [ { required: true, validator: phoneValid }] }]" /> + </a-form-item> + </a-form> + </a-spin> + </a-modal> +</template> +<script> +import moment from 'moment'; +import _ from 'lodash'; +export default { + data() { + return { + options: {}, + residences: [], + nationList: [], + professionList: [], + censusList: [], + baseUrl: process.env.VUE_APP_API_BASE_URL, + maskClosable: false, + payTypeList: [], + labelCol: { + xs: { span: 24 }, + sm: { span: 7 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 15 } + }, + agrWrapperCol: { + xs: { + span: 24, + offset: 0 + }, + sm: { + span: 18, + offset: 6 + } + }, + visible: false, + confirmLoading: false, + centered: true, + destroyOnClose: true, + bodyStyle: { + height: '200px', + overflow: 'auto' + }, + form: this.$form.createForm(this), + requiredRule: { rules: [{ required: true, message: '该选项必填!' }] }, + patientId: undefined + }; + }, + methods: { + phoneValid(rule, value, callback) { + if (!value) { + callback('该选项必填!') + return + } else if (!/^\d{11}$/.test(value)) { + callback('请输入正确的手机号!') + return + } + callback() + }, + add() { + this.options.title = '填写提交信息' + this.visible = true + }, + handleSubmit() { + this.confirmLoading = true + this.form.validateFieldsAndScroll((errors, fieldsValue) => { + const that = this; + if (errors) { + this.confirmLoading = false + return + } + const values = { + ...fieldsValue + }; + that.visible = false + that.confirmLoading = false + that.$emit('ok', values); + }); + }, + handleCancel() { + this.visible = false + } + } +}; +</script> +<style lang="less" scoped> +/deep/ .ant-form-item:last-child { + margin-bottom: 0; +} +</style> \ No newline at end of file diff --git a/src/views/account/center/Index.vue b/src/views/account/center/Index.vue index afa4fe2ef6..7117111bc1 100644 --- a/src/views/account/center/Index.vue +++ b/src/views/account/center/Index.vue @@ -1,288 +1,415 @@ -<template> - <div class="page-header-index-wide page-header-wrapper-grid-content-main"> - <a-row :gutter="24"> - <a-col :md="24" :lg="7"> - <a-card :bordered="false"> - <div class="account-center-avatarHolder"> - <div class="avatar"> - <img :src="avatar()"> - </div> - <div class="username">{{ nickname() }}</div> - <div class="bio">海纳百川,有容乃大</div> - </div> - <div class="account-center-detail"> - <p> - <i class="title"></i>交互专家 - </p> - <p> - <i class="group"></i>蚂蚁金服-某某某事业群-某某平台部-某某技术部-UED - </p> - <p> - <i class="address"></i> - <span>浙江省</span> - <span>杭州市</span> - </p> - </div> - <a-divider/> - - <div class="account-center-tags"> - <div class="tagsTitle">标签</div> - <div> - <template v-for="(tag, index) in tags"> - <a-tooltip v-if="tag.length > 20" :key="tag" :title="tag"> - <a-tag - :key="tag" - :closable="index !== 0" - :afterClose="() => handleTagClose(tag)" - >{{ `${tag.slice(0, 20)}...` }}</a-tag> - </a-tooltip> - <a-tag - v-else - :key="tag" - :closable="index !== 0" - :afterClose="() => handleTagClose(tag)" - >{{ tag }}</a-tag> - </template> - <a-input - v-if="tagInputVisible" - ref="tagInput" - type="text" - size="small" - :style="{ width: '78px' }" - :value="tagInputValue" - @change="handleInputChange" - @blur="handleTagInputConfirm" - @keyup.enter="handleTagInputConfirm" - /> - <a-tag v-else @click="showTagInput" style="background: #fff; borderStyle: dashed;"> - <a-icon type="plus"/>New Tag - </a-tag> - </div> - </div> - <a-divider :dashed="true"/> - - <div class="account-center-team"> - <div class="teamTitle">团队</div> - <a-spin :spinning="teamSpinning"> - <div class="members"> - <a-row> - <a-col :span="12" v-for="(item, index) in teams" :key="index"> - <a> - <a-avatar size="small" :src="item.avatar"/> - <span class="member">{{ item.name }}</span> - </a> - </a-col> - </a-row> - </div> - </a-spin> - </div> - </a-card> - </a-col> - <a-col :md="24" :lg="17"> - <a-card - style="width:100%" - :bordered="false" - :tabList="tabListNoTitle" - :activeTabKey="noTitleKey" - @tabChange="key => handleTabChange(key, 'noTitleKey')" - > - <article-page v-if="noTitleKey === 'article'"></article-page> - <app-page v-else-if="noTitleKey === 'app'"></app-page> - <project-page v-else-if="noTitleKey === 'project'"></project-page> - </a-card> - </a-col> - </a-row> - </div> -</template> - -<script> -import { PageView, RouteView } from '@/layouts' -import { AppPage, ArticlePage, ProjectPage } from './page' - -import { mapGetters } from 'vuex' - -export default { - components: { - RouteView, - PageView, - AppPage, - ArticlePage, - ProjectPage - }, - data () { - return { - tags: ['很有想法的', '专注设计', '辣~', '大长腿', '川妹子', '海纳百川'], - - tagInputVisible: false, - tagInputValue: '', - - teams: [], - teamSpinning: true, - - tabListNoTitle: [ - { - key: 'article', - tab: '文章(8)' - }, - { - key: 'app', - tab: '应用(8)' - }, - { - key: 'project', - tab: '项目(8)' - } - ], - noTitleKey: 'app' - } - }, - mounted () { - this.getTeams() - }, - methods: { - ...mapGetters(['nickname', 'avatar']), - - getTeams () { - this.$http.get('/workplace/teams').then(res => { - this.teams = res.result - this.teamSpinning = false - }) - }, - - handleTabChange (key, type) { - this[type] = key - }, - - handleTagClose (removeTag) { - const tags = this.tags.filter(tag => tag !== removeTag) - this.tags = tags - }, - - showTagInput () { - this.tagInputVisible = true - this.$nextTick(() => { - this.$refs.tagInput.focus() - }) - }, - - handleInputChange (e) { - this.tagInputValue = e.target.value - }, - - handleTagInputConfirm () { - const inputValue = this.tagInputValue - let tags = this.tags - if (inputValue && !tags.includes(inputValue)) { - tags = [...tags, inputValue] - } - - Object.assign(this, { - tags, - tagInputVisible: false, - tagInputValue: '' - }) - } - } -} -</script> - -<style lang="less" scoped> -.page-header-wrapper-grid-content-main { - width: 100%; - height: 100%; - min-height: 100%; - transition: 0.3s; - - .account-center-avatarHolder { - text-align: center; - margin-bottom: 24px; - - & > .avatar { - margin: 0 auto; - width: 104px; - height: 104px; - margin-bottom: 20px; - border-radius: 50%; - overflow: hidden; - img { - height: 100%; - width: 100%; - } - } - - .username { - color: rgba(0, 0, 0, 0.85); - font-size: 20px; - line-height: 28px; - font-weight: 500; - margin-bottom: 4px; - } - } - - .account-center-detail { - p { - margin-bottom: 8px; - padding-left: 26px; - position: relative; - } - - i { - position: absolute; - height: 14px; - width: 14px; - left: 0; - top: 4px; - background: url(https://gw.alipayobjects.com/zos/rmsportal/pBjWzVAHnOOtAUvZmZfy.svg); - } - - .title { - background-position: 0 0; - } - .group { - background-position: 0 -22px; - } - .address { - background-position: 0 -44px; - } - } - - .account-center-tags { - .ant-tag { - margin-bottom: 8px; - } - } - - .account-center-team { - .members { - a { - display: block; - margin: 12px 0; - line-height: 24px; - height: 24px; - .member { - font-size: 14px; - color: rgba(0, 0, 0, 0.65); - line-height: 24px; - max-width: 100px; - vertical-align: top; - margin-left: 12px; - transition: all 0.3s; - display: inline-block; - } - &:hover { - span { - color: #1890ff; - } - } - } - } - } - - .tagsTitle, - .teamTitle { - font-weight: 500; - color: rgba(0, 0, 0, 0.85); - margin-bottom: 12px; - } -} -</style> +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="4" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <!-- 支扩病史资料 --> + </a-col> + </a-row> + </a-card> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import { mapActions } from 'vuex' +import { getPatientBasis } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import moment from 'moment' + +export default { + name: 'basis', + components: { + STree, + MyIcon + }, + data() { + return { + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + baselineFormStyle: { + // height: '444px', + }, + title: '基线', + openKeys: [], + defaultSelectedKeys: [], + orgTree: [], + patient: {}, + patientBasis: {}, + patientBasisId: this.$route.params.id + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.basisMaskId = that.orgTree[0].basisMarkId + // that.getElementsAnswer() + that.defaultSelectedKeys = [that.basisMaskId] + that.$router.replace('/list/basis/' + that.patientBasisId + '/' + that.basisMaskId) + }) + }, + methods: { + ...mapActions(['CloseSidebar']), + moment + } +} +</script> +<style lang="less" scoped> +#baselineInfo{ + height:calc(100% - 10px); +} +/deep/ .card-box{ + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} +.ant-row.ant-form-item:hover{ + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker{ + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle{ + color: #FFF; + } +} +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle{ + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, .ant-menu-item-active, .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, .ant-menu-submenu-active, .ant-menu-submenu-title:hover{ + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle{ + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle{ + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline.ant-menu-submenu-open { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .baselineForm { + + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} +</style> \ No newline at end of file diff --git a/src/views/account/center/collect.vue b/src/views/account/center/collect.vue new file mode 100644 index 0000000000..397938986c --- /dev/null +++ b/src/views/account/center/collect.vue @@ -0,0 +1,1115 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"><a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /></a-col> + <a-col :md="4" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhe_huaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="6" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzheng_huaban" /> + {{ patient.card }} + </a-col> + <a-col :md="13" :sm="24" style="fontSize: 18px;textAlign: right;">创建时间:{{ patient.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" :bodyStyle="bodyStyle" style="margin-top: 10px;padding-left: 0"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19"> + <div style="overflow: hidden;"> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <a-form :form="form"> + <!-- 基线或访视 --> + <a-form-item v-for="(qu1, index) in list" :key="index" :label="[qu1.sort + '.' + qu1.questionName]" :labelCol="qu1.type === 0 ? labelColVer : labelColHor" :wrapperCol="qu1.type === 0 ? wrapperVer : wrapperHor"> + <a-radio-group v-if="qu1.simple === 1" :name="qu1.basisElementCopyId+''" v-model="qu1.basisElementId"> + <a-radio :value="1">是</a-radio> + <a-radio :value="-1">否</a-radio> + </a-radio-group> + <a-radio-group v-if="qu1.simple === 2" :name="qu1.basisElementCopyId+''" :defaultValue="qu1.reportResultList && qu1.reportResultList.length && qu1.reportResultList[0].elementNumValue"> + <a-radio :value="1">有</a-radio> + <a-radio :value="-1">无</a-radio> + </a-radio-group> + <!-- <br v-if="qu1.simple > 0"> --> + <a-input :name="qu1.basisElementCopyId+''" v-if="qu1.simple < 0 && qu1.isWrite > 0 && qu1.event === 'compute'" :defaultValue="qu1.reportResultList && qu1.reportResultList.length && qu1.reportResultList[0].elementTextValue" style="width: 240px" :addonAfter="qu1.unit" @blur="compute(qu1.computeElement)" /> + <a-input :name="qu1.basisElementCopyId+''" v-if="qu1.simple < 0 && qu1.isWrite > 0 && !qu1.event && typeof qu1.computeElement !== 'undefined' && qu1.computeElement === 0" :defaultValue="qu1.reportResultList && qu1.reportResultList.length && qu1.reportResultList[0].elementTextValue" style="width: 240px" :addonAfter="qu1.unit" v-model="computeMap[qu1.basisElementCopyId]" /> + <a-input :name="qu1.basisElementCopyId+''" v-if="qu1.simple < 0 && qu1.isWrite > 0 && !qu1.event && typeof qu1.computeElement === 'undefined'" :defaultValue="qu1.reportResultList && qu1.reportResultList.length && qu1.reportResultList[0].elementTextValue" style="width: 240px" :addonAfter="qu1.unit" /> + <a-date-picker :name="qu1.basisElementCopyId+''" v-if="qu1.simple < 0 && qu1.isWrite > 0 && qu1.event === 'showDate' && (!qu1.reportResultList || qu1.reportResultList.length === 0 || qu1.reportResultList[0].elementTextValue === '')" /> + <a-date-picker :name="qu1.basisElementCopyId+''" v-if="qu1.simple < 0 && qu1.isWrite > 0 && qu1.event === 'showDate' && (qu1.reportResultList && qu1.reportResultList.length && qu1.reportResultList[0].elementTextValue)" :defaultValue="moment(qu1.reportResultList[0].elementTextValue)" /> + <a-checkbox-group v-if="qu1.hasChild > 0 && qu1.isRadio < 0 && (qu1.logicValue <= 0 || (qu1.logicValue > 0 && qu1.basisElementId === 1))" v-model="qu1.elementId"> + <a-checkbox v-if="op.event!=='showList'" v-for="(op,index) in qu1.childList" :key="index" :value="op.basisElementCopyId" :name="qu1.basisElementCopyId+''">{{op.questionName}}</a-checkbox> + </a-checkbox-group> + <div v-if="qu1.hasChild > 0 && qu1.isRadio > 0"> + <a-radio-group :name="qu1.basisElementCopyId+''" v-model="qu1.basisElementId"> + <a-radio v-for="(op,index) in qu1.childList" :key="index" :value="op.basisElementCopyId">{{op.questionName}}</a-radio> + </a-radio-group> + <div v-for="(sub, index) in qu1.childList" v-if="sub.hasChild > 0"> + <a-row v-if="sub.isRadio > 0 && sub.logicValue > 0 && qu1.basisElementId === sub.basisElementCopyId"> + <a-radio-group :name="sub.basisElementCopyId+''" v-model="sub.basisElementId"> + <a-radio v-for="(third,index) in sub.childList" :key="index" :value="third.basisElementCopyId">{{third.questionName}}</a-radio> + </a-radio-group> + </a-row> + <a-row v-for="(third, index) in sub.childList" v-if="sub.isRadio === 0 && (sub.logicValue <= 0 || (sub.logicValue > 0 && qu1.basisElementId === sub.basisElementCopyId))"> + <a-col :span="6">({{third.sort}}) {{third.questionName}}</a-col> + <!-- <br> --> + <a-col :span="18"> + <a-col :span="6" v-if="third.simple > 0 && third.isRadio < 0"> + <a-radio-group v-if="third.simple === 1" :name="third.basisElementCopyId+''" v-model="third.basisElementId"> + <a-radio :value="1">是</a-radio> + <a-radio :value="-1">否</a-radio> + </a-radio-group> + <a-radio-group v-if="third.simple === 2" :name="third.basisElementCopyId+''" v-model="third.basisElementId"> + <a-radio :value="1">有</a-radio> + <a-radio :value="-1">无</a-radio> + </a-radio-group> + </a-col> + <a-col :span="8" v-if="third.simple > 0 && third.logicValue > 0 && third.hasChild > 0 && third.childList[0].isWrite > 0 && third.basisElementId === 1"> + <a-input :name="third.childList[0].basisElementCopyId+''" :addonAfter="third.childList[0].unit" style="width:240px" :defaultValue="third.childList[0].reportResultList && third.childList[0].reportResultList.length && third.childList[0].reportResultList[0].elementTextValue"></a-input> + </a-col> + <a-row v-for="(fourth, index) in third.childList" v-if="third.hasChild > 0 && third.isRadio === 0"> + <a-col :span="6">{{fourth.questionName}}</a-col> + + <a-col :span="6"> + <a-radio-group v-if="fourth.simple === 1" :name="fourth.basisElementCopyId+''" v-model="fourth.basisElementId"> + <a-radio :value="1">是</a-radio> + <a-radio :value="-1">否</a-radio> + </a-radio-group> + <a-radio-group v-if="fourth.simple === 2" :name="fourth.basisElementCopyId+''" v-model="fourth.basisElementId"> + <a-radio :value="1">有</a-radio> + <a-radio :value="-1">无</a-radio> + </a-radio-group> + </a-col> + <a-col :span="12" v-if="fourth.logicValue <= 0 || (fourth.logicValue > 0 && fourth.basisElementId === 1) && fourth.hasChild > 0 && fourth.childList[0].isWrite > 0"> + <a-col :span="6">{{fourth.childList[0].questionName}}</a-col> + <a-col :span="12"> + <a-input :addonAfter="fourth.childList[0].unit" :name="fourth.childList[0].basisElementCopyId+''" style="width:240px" :defaultValue="fourth.childList[0].reportResultList && fourth.childList[0].reportResultList.length && fourth.childList[0].reportResultList[0].elementTextValue"></a-input> + </a-col> + </a-col> + </a-row> + </a-col> + </a-row> + </div> + </div> + <!-- 一级联动 --> + <a-row v-for="(sub, index) in qu1.childList" :key="index" v-if="qu1.isRadio < 0 && sub.logicValue > 0 && qu1.elementId.indexOf(sub.basisElementCopyId) > -1"> + <a-col :span="4">{{sub.childList[0].questionName}}</a-col> + <a-col :span="4"><a-input :name="sub.childList[0].basisElementCopyId+''" :addonAfter="sub.childList[0].unit" :defaultValue="sub.childList[0].reportResultList && sub.childList[0].reportResultList.length && sub.childList[0].reportResultList[0].elementTextValue" style="width:240px" /></a-col> + </a-row> + <!-- 有第二层 --> + <div v-if="qu1.hasChild > 0 && qu1.isRadio === 0"> + <a-row class="itemRow" v-for="(sub, index) in qu1.childList" :key="index" :class="{'no-border': index === qu1.childList.length - 1}" v-if="qu1.logicValue <= 0 || (qu1.logicValue > 0 && qu1.basisElementId === 1)"> + <!-- 第二层开始 --> + <a-col :span="sub.questionName.length > 16 ? 24 : 6">({{sub.sort}}) {{sub.questionName}}</a-col> + <!-- 为了体格检查中的啰音的排版 --> + <!-- <br v-if="sub.showType === 2 && sub.hasChild > 0 && sub.isRadio === 0 && sub.simple < 0 && sub.isWrite < 0"> --> + <a-col :span="18" :class="{'ant-col-push-6': sub.questionName.length > 16}"> + <!-- 是否,有无以及填写值 --> + <a-col :span="6" v-if="sub.isWrite > 0"> + <a-input v-if="sub.isWrite > 0 && !sub.event && typeof sub.computeElement !== 'undefined' && sub.computeElement === 0" :name="sub.basisElementCopyId+''" :defaultValue="sub.reportResultList && sub.reportResultList.length && sub.reportResultList[0].elementTextValue" :addonAfter="sub.unit" :readOnly="sub.computeElement === 0" v-model="computeMap[sub.basisElementCopyId]" style="width:240px" /> + <a-input v-if="sub.isWrite > 0 && !sub.event && typeof sub.computeElement === 'undefined'" :name="sub.basisElementCopyId+''" :defaultValue="sub.reportResultList && sub.reportResultList.length && sub.reportResultList[0].elementTextValue || ''" :addonAfter="sub.unit" style="width:240px" /> + <a-input v-if="sub.isWrite > 0 && sub.event === 'compute'" :name="sub.basisElementCopyId+''" :defaultValue="sub.reportResultList && sub.reportResultList.length && sub.reportResultList[0].elementTextValue || ''" :addonAfter="sub.unit" @blur="compute(sub.computeElement)" style="width:240px" /> + <a-date-picker v-if="sub.isWrite > 0 && sub.event === 'showDate' && (!sub.reportResultList || sub.reportResultList.length === 0 || sub.reportResultList[0].elementTextValue === '')" :name="sub.basisElementCopyId+''" style="width:240px" /> + <a-date-picker v-if="sub.isWrite > 0 && sub.event === 'showDate' && sub.reportResultList && sub.reportResultList.length && sub.reportResultList[0].elementTextValue" :name="sub.basisElementCopyId+''" :defaultValue="moment(sub.reportResultList[0].elementTextValue)" style="width:240px" /> + </a-col> + <br v-if="sub.isWrite > 0"> + <a-radio-group v-if="sub.simple === 1" v-model="sub.basisElementId" :name="sub.basisElementCopyId+''"> + <a-radio :value="1">是</a-radio> + <a-radio :value="-1">否</a-radio> + </a-radio-group> + <a-radio-group v-if="sub.simple === 2" v-model="sub.basisElementId" :name="sub.basisElementCopyId+''"> + <a-radio :value="1">有</a-radio> + <a-radio :value="-1">无</a-radio> + </a-radio-group> + <!-- --> + <!-- <br v-if="sub.showType === 2" /> --> + <div class="clear" v-if="sub.simple > 0"></div> + <a-col :span="6" v-if="(sub.logicValue <= 0 || sub.basisElementId === 1) && sub.childEleName">{{sub.childEleName}}</a-col> + <a-checkbox-group v-if="sub.hasChild > 0 && sub.isRadio < 0 &&(sub.logicValue <= 0 || sub.basisElementId === 1) && sub.childList[0].event !== 'showList'" v-model="sub.elementId"> + <a-checkbox v-for="(subOp,index) in sub.childList" :key="index" :name="subOp.parentId+''" :value="subOp.basisElementCopyId">{{subOp.questionName}}</a-checkbox> + </a-checkbox-group> + <a-checkbox-group v-if="sub.hasChild > 0 && sub.isRadio < 0 && (sub.logicValue <= 0 || sub.basisElementId === 1) && sub.childList[0].event === 'showList'" v-model="sub.elementId" style="width: 80%;"> + <span v-for="(subOp, index) in sub.childList"> + <a-checkbox v-if="subOp.event=='showList'" :name="subOp.parentId+''" @change="showList($event,subOp.event,subOp.questionName)" :key="index" :value="subOp.basisElementCopyId">{{subOp.questionName}}</a-checkbox> + <div v-if="subOp.event=='showList' && sub.elementId.indexOf(subOp.basisElementCopyId) > -1&&subOp.questionName=='其他' " style="display: inline-block;width: 300px;argin-right: 10px;"> + <a-input :name="subOp.childList[0].basisElementCopyId+''" :defaultValue="subOp.childList[0].reportResultList && subOp.childList[0].reportResultList.length&&subOp.childList[0].reportResultList[0].elementTextValue || ''" @blur="blurInput($event,subOp.childList[0])" :addonAfter="subOp.childList[0].unit" /> + </div> + <add-table v-if="subOp.event=='showList' && sub.elementId.indexOf(subOp.basisElementCopyId) > -1&&subOp.questionName!=='其他'" v-model="optionDataSource[subOp.basisElementCopyId]" :dataSource=" subOp.medicineAllergyList?subOp.medicineAllergyList:optionDataSource[subOp.basisElementCopyId]"></add-table> + <add-table v-if="subOp.event == 'showList' && subOp.questionName == '其他' && sub.elementId.indexOf(subOp.basisElementCopyId) > -1" v-model="optionDataSource[subOp.childList[0].parentId]" :dataSource="subOp.medicineAllergyList?subOp.medicineAllergyList:optionDataSource[subOp.childList[0].parentId]"></add-table> + </span> + </a-checkbox-group> + <!-- 二级联动 --> + <a-row v-for="(third, index) in sub.childList" :key="index" v-if="sub.hasChild > 0 && sub.isRadio < 0 && third.hasChild > 0 && third.logicValue > 0 && sub.elementId.indexOf(third.basisElementCopyId) > -1" class="no-border"> + <a-col :span="6" v-if="third.childList[0].isWrite > 0">{{third.childList[0].questionName}}</a-col> + <a-col :span="8" v-if="third.childList[0].isWrite > 0"> + <a-date-picker v-if="third.childList[0].event === 'showDate' && third.childList[0].reportResultList && third.childList[0].reportResultList.length && third.childList[0].reportResultList[0].elementTextValue" :defaultValue="moment(third.childList[0].reportResultList[0].elementTextValue)" :name="third.childList[0].basisElementCopyId+''" style="width:240px" /> + <a-date-picker v-if="third.childList[0].event === 'showDate' && (!third.childList[0].reportResultList || !third.childList[0].reportResultList.length || !third.childList[0].reportResultList[0].elementTextValue)" :name="third.childList[0].basisElementCopyId+''" style="width:240px" /> + <a-input v-if="!third.childList[0].event&&third.event!=='showList'" :addonAfter="third.childList[0].unit" :name="third.childList[0].basisElementCopyId+''" :defaultValue="third.childList[0].reportResultList && third.childList[0].reportResultList.length && third.childList[0].reportResultList[0].elementTextValue || ''" style="width:240px" /> + </a-col> + <a-col :span="6" v-if="third.isRadio > 0 && third.hasChild > 0">{{third.questionName}}</a-col> + <a-col :span="16" v-if="third.isRadio > 0 && third.hasChild > 0"> + <a-radio-group :name="third.basisElementCopyId+''" v-model="third.basisElementId"> + <a-radio v-for="(fourth, index) in third.childList" :key="index" :value="fourth.basisElementCopyId">{{fourth.questionName}}</a-radio> + </a-radio-group> + </a-col> + </a-row> + <a-radio-group v-if="sub.hasChild > 0 && sub.isRadio > 0 && sub.childList[0].event === 'compute'" v-model="sub.basisElementId" :name="sub.basisElementCopyId+''" @change="compute(sub.childList[0].computeElement)"> + <a-radio v-for="(subOp,index) in sub.childList" :value="subOp.basisElementCopyId" :key="index">{{subOp.questionName}}</a-radio> + </a-radio-group> + <a-radio-group v-if="sub.hasChild > 0 && sub.isRadio > 0 && (!sub.childList[0].event || sub.childList[0].event !== 'compute')" v-model="sub.basisElementId" :name="sub.basisElementCopyId+''"> + <a-radio v-for="(subOp,index) in sub.childList" :value="subOp.basisElementCopyId" :key="index">{{subOp.questionName}}</a-radio> + </a-radio-group> + <div v-if="sub.hasChild > 0 && sub.isRadio > 0 && sub.logicValue <= 0 && thirdSub.logicValue > 0 && thirdSub.hasChild > 0 && thirdSub.basisElementCopyId === sub.basisElementId" v-for="(thirdSub, index) in sub.childList"> + <div v-if="thirdSub.isRadio === 0"> + <a-row v-for="(fourth, index) in thirdSub.childList" :class="{'no-border': index === thirdSub.childList.length - 1}"> + <!-- total lung capacity --> + <a-col :span="6">{{fourth.questionName}}</a-col> + <ocr-load v-if="fourth.event=='upload'" :fileList="fileList" :basisMaskId="basisMaskId" :reportCollectBaseId="reportCollectBaseId" ref="ocrloadModel" @OCRload="OCRload" @imgUrl="saveImgUrl"></ocr-load> + <a-radio-group v-if="fourth.simple === 2" v-model="fourth.basisElementId" :name="fourth.basisElementCopyId+''"> + <a-radio :value="1">有</a-radio> + <a-radio :value="-1">无</a-radio> + </a-radio-group> + <a-input v-if="fourth.isWrite > 0" :addonAfter="fourth.unit" :name="fourth.basisElementCopyId+''" :defaultValue="fourth.reportResultList && fourth.reportResultList.length && fourth.reportResultList[0].elementTextValue || ''" style="width: 240px"></a-input> + <div v-if="fourth.hasChild > 0 && fourth.isRadio === 0"> + <a-row class="no-border" v-for="fifth in fourth.childList" v-if="fourth.logicValue <= 0 || fourth.basisElementId === 1"> + <a-col :span="6">{{fifth.questionName}}</a-col> + <a-col :span="4" v-if="fifth.simple === 2"> + <a-radio-group v-model="fifth.basisElementId" :name="fifth.basisElementCopyId+''"> + <a-radio :value="1">有</a-radio> + <a-radio :value="-1">无</a-radio> + </a-radio-group> + </a-col> + <div v-if="fifth.hasChild > 0 && (fifth.logicValue <= 0 || fifth.basisElementId === 1) && fifth.isRadio === 0"> + <a-col :span="4">{{fifth.childList[0].questionName}}</a-col> + <a-input v-if="fifth.childList[0].isWrite > 0" :span="8" style="width: 240px" :name="fifth.childList[0].basisElementCopyId+''" :defaultValue="fifth.childList[0].reportResultList && fifth.childList[0].reportResultList.length && fifth.childList[0].reportResultList[0].elementTextValue || ''" :addonAfter="fifth.childList[0].unit"></a-input> + </div> + <a-col :span="4" v-if="fifth.isWrite > 0"> + <a-input :name="fifth.basisElementCopyId+''" :addonAfter="fifth.unit" :defaultValue="fifth.reportResultList && fifth.reportResultList.length && fifth.reportResultList[0].elementTextValue || ''" style="width:240px"></a-input> + </a-col> + </a-row> + </div> + </a-row> + </div> + <div v-if="thirdSub.isRadio > 0"> + <a-row class="no-border"> + <a-radio-group :name="thirdSub.basisElementCopyId+''" v-model="thirdSub.basisElementId"> + <a-radio v-for="fourth in thirdSub.childList" :value="fourth.basisElementCopyId">{{fourth.questionName}}</a-radio> + </a-radio-group> + </a-row> + </div> + </div> + <a-col v-if="sub.hasChild > 0 && sub.isRadio > 0 && sub.childList[0].isWrite > 0"> + <a-col :span="6">{{sub.childList[0].questionName}}</a-col> + <a-col :span="8"><a-input :name="sub.childList[0].basisElementCopyId+''" style="width:240px" :defaultValue="sub.childList[0].reportResultList && sub.childList[0].reportResultList.length && sub.childList[0].reportResultList[0].elementTextValue || ''" /></a-col> + </a-col> + <a-row class="no-border" v-if="sub.hasChild > 0 && sub.isRadio > 0 && sub.logicValue > 0 && secondSub.hasChild > 0" v-for="(secondSub, index) in sub.childList" :key="index"> + <a-col :span="3" v-if="sub.basisElementId === secondSub.basisElementId">{{secondSub.childList[0].questionName}}</a-col> + <a-col :span="8" v-if="sub.basisElementId === secondSub.basisElementId"><a-input :addonAfter="secondSub.childList[0].unit" :defaultValue="secondSub.childList[0].reportResultList && secondSub.childList[0].reportResultList.length && secondSub.childList[0].reportResultList[0].elementTextValue || ''" :name="secondSub.childList[0].basisElementCopyId+''" style="width:240px" /></a-col> + </a-row> + <a-row v-if="sub.hasChild > 0 && sub.isRadio === 0 && (sub.logicValue <= 0 || sub.basisElementId === 1)" v-for="(subOp,index) in sub.childList" :class="{'ant-col-pull-6': subOp.level > 3 || subOp.display > 0, 'no-border': index === sub.childList.length - 1}"> + <!-- <br> --> + <!-- 调脂那一层,如果是紧跟后面的单选框或者输入框就占8格;否则就是子问题,占12格 --> + <a-col :span="subOp.simple > 0 || subOp.isRadio > 0 || (subOp.questionName.length <= 16 && subOp.isWrite > 0) ? 6 : 24">{{subOp.questionName}}</a-col> + <a-radio-group v-if="subOp.simple === 1" v-model="subOp.basisElementId" :name="subOp.basisElementCopyId+''"> + <a-radio :value="1">是</a-radio> + <a-radio :value="-1">否</a-radio> + </a-radio-group> + <a-radio-group v-if="subOp.simple === 2" v-model="subOp.basisElementId" :name="subOp.basisElementCopyId+''"> + <a-radio :value="1">有</a-radio> + <a-radio :value="-1">无</a-radio> + </a-radio-group> + <a-col :span="6" v-if="subOp.isWrite > 0"> + <a-date-picker v-if="subOp.event === 'showDate' && subOp.reportResultList && subOp.reportResultList.length && subOp.reportResultList[0].elementTextValue" :name="subOp.basisElementCopyId+''" :defaultValue="moment(subOp.reportResultList[0].elementTextValue)" style="width:240px" /> + <a-date-picker v-if="subOp.event === 'showDate' && (!subOp.reportResultList || !subOp.reportResultList.length || !subOp.reportResultList[0].elementTextValue)" :name="subOp.basisElementCopyId+''" style="width:240px" /> + <a-input :name="subOp.basisElementCopyId+''" v-if="!subOp.event || subOp.event !== 'showDate'" :defaultValue="subOp.reportResultList && subOp.reportResultList.length && subOp.reportResultList[0].elementTextValue || ''" :addonAfter="subOp.unit" style="width:240px" /> + </a-col> + <a-col :span="24" v-if="subOp.hasChild > 0 && subOp.isRadio < 0 && (subOp.logicValue <= 0 || subOp.basisElementId === 1)"> + <a-checkbox-group v-model="subOp.elementId" v-if="subOp.childList[0].event !== 'showList'"> + <a-checkbox v-for="(secondSub,index) in subOp.childList" :key="index" :name="secondSub.parentId+''" :value="secondSub.basisElementCopyId">{{secondSub.questionName}}</a-checkbox> + </a-checkbox-group> + <a-checkbox-group v-if="subOp.hasChild > 0 && subOp.isRadio < 0&& (subOp.logicValue <= 0 || subOp.basisElementId === 1) && subOp.childList[0].event === 'showList'" v-model="subOp.elementId" style="width: 100%;"> + <span v-for="(secondSub, index) in subOp.childList" > + <a-checkbox v-if="secondSub.event=='showList'" :name="secondSub.parentId+''" @change="showList($event,secondSub.event,secondSub.questionName)" :key="index" :value="secondSub.basisElementCopyId">{{secondSub.questionName}}</a-checkbox> + <div v-if="secondSub.event=='showList' && subOp.elementId.indexOf(secondSub.basisElementCopyId) > -1&&secondSub.questionName=='其他' " style="display: inline-block;width: 300px;margin-right: 10px;"> + <a-input :name="secondSub.childList[0].basisElementCopyId+''" @blur="blurInput($event,secondSub.childList[0])" :addonAfter="secondSub.childList[0].unit" :defaultValue="secondSub.childList[0].reportResultList && secondSub.childList[0].reportResultList.length && secondSub.childList[0].reportResultList[0].elementTextValue || ''" /> + </div> + <add-table v-if="secondSub.event=='showList' && subOp.elementId.indexOf(secondSub.basisElementCopyId) > -1&&secondSub.questionName!=='其他'" v-model="optionDataSource[secondSub.basisElementCopyId]" :dataSource="secondSub.medicineAllergyList?secondSub.medicineAllergyList:optionDataSource[secondSub.basisElementCopyId]"></add-table> + <add-table v-if="secondSub.event=='showList' &&secondSub.questionName=='其他'&& subOp.elementId.indexOf(secondSub.basisElementCopyId) > -1" v-model="optionDataSource[secondSub.childList[0].parentId]" :dataSource="secondSub.medicineAllergyList?secondSub.medicineAllergyList:optionDataSource[secondSub.childList[0].parentId]"></add-table> + </span> + </a-checkbox-group> + </a-col> + <div v-if="subOp.hasChild > 0 && subOp.isRadio < 0 && (subOp.logicValue <= 0 || subOp.basisElementId === 1) && subOp.elementId.indexOf(secondSub.basisElementCopyId) > -1" v-for="(secondSub, index) in subOp.childList" :key="index"> + <div v-if="secondSub.hasChild > 0 && secondSub.isRadio === 0"> + <a-row v-for="(thirdSub, index) in secondSub.childList" class="no-border"> + <a-col :span="6" v-if="thirdSub.questionName">{{thirdSub.questionName}}</a-col> + <a-col :span="8" v-if="thirdSub.isWrite > 0"> + <a-input style="width: 240px;" :name="thirdSub.basisElementCopyId+''" :defaultValue="thirdSub.reportResultList && thirdSub.reportResultList.length && thirdSub.reportResultList[0].elementTextValue || ''" v-if="!thirdSub.event && thirdSub.event == 'showList'" :addonAfter="thirdSub.unit"></a-input> + <a-date-picker v-if="thirdSub.event === 'showDate' && thirdSub.reportResultList && thirdSub.reportResultList.length && thirdSub.reportResultList[0].elementTextValue" :name="thirdSub.basisElementCopyId+''" :defaultValue="moment(thirdSub.reportResultList[0].elementTextValue)" style="width:240px" /> + <a-date-picker v-if="thirdSub.event === 'showDate' && (!thirdSub.reportResultList || !thirdSub.reportResultList.length || !thirdSub.reportResultList[0].elementTextValue)" :name="thirdSub.basisElementCopyId+''" style="width:240px" /> + </a-col> + </a-row> + </div> + <div v-if="secondSub.hasChild > 0 && secondSub.isRadio > 0"> + <a-row class="no-border"> + <a-col :span="6">{{secondSub.questionName}}</a-col> + <a-radio-group v-model="secondSub.basisElementId" :name="secondSub.basisElementCopyId+''"> + <a-radio v-for="(thirdSub, index) in secondSub.childList" :value="thirdSub.basisElementCopyId" :key="index">{{thirdSub.questionName}}</a-radio> + </a-radio-group> + </a-row> + </div> + </div> + <!-- <a-col :span="6" v-if="secondSub.hasChild > 0 && (secondSub.logicValue === 0 || subOp.elementId.indexOf(secondSub.basisElementCopyId) > -1) && secondSub.isWrite > 0" v-for="(secondSub,index) in subOp.childList"> + <a-input style="width:240px;" :name="secondSub.basisElementCopyId+''" :defaultValue="secondSub.reportResultList && secondSub.reportResultList.length && secondSub.reportResultList[0].elementTextValue"></a-input> + </a-col> --> + <a-col :span="18" v-if="subOp.hasChild > 0 && subOp.isRadio > 0"> + <a-radio-group :name="subOp.basisElementCopyId+''" v-model="subOp.basisElementId"> + <a-radio v-for="(secondSub,index) in subOp.childList" :key="index" :value="secondSub.basisElementId">{{secondSub.questionName}}</a-radio> + </a-radio-group> + </a-col> + <div v-for="(secondSub, index) in subOp.childList" v-if="subOp.hasChild > 0 && subOp.isRadio > 0 && secondSub.hasChild > 0 && secondSub.isRadio === 0 && (secondSub.logicValue <= 0 || subOp.basisElementId === secondSub.basisElementCopyId)"> + <a-col v-for="(thirdSub,index) in secondSub.childList"> + <a-col :span="6">{{thirdSub.questionName}}</a-col> + <a-col :span="6" v-if="thirdSub.isWrite > 0"> + <a-input :name="thirdSub.basisElementCopyId+''" :defaultValue="thirdSub.reportResultList && thirdSub.reportResultList.length && thirdSub.reportResultList[0].elementTextValue || ''" style="width:240px" :addonAfter="thirdSub.unit"></a-input> + </a-col> + </a-col> + </div> + <a-row v-if="subOp.hasChild > 0 && subOp.isRadio === 0 && (!subOp.logicValue || subOp.basisElementId === 1)" v-for="(thirdSub, index) in subOp.childList" :key="index" class="no-border"> + <!-- 雾化治疗 --> + <a-col :span="6">{{thirdSub.questionName}}</a-col> + <a-col :span="16"> + <a-radio-group v-if="thirdSub.simple === 1" :name="thirdSub.basisElementCopyId+''" v-model="thirdSub.basisElementId"> + <a-radio :value="1">是</a-radio> + <a-radio :value="-1">否</a-radio> + </a-radio-group> + <a-date-picker v-if="thirdSub.event === 'showDate' && thirdSub.reportResultList && thirdSub.reportResultList.length && thirdSub.reportResultList[0].elementTextValue" :defaultValue="moment(thirdSub.reportResultList[0].elementTextValue)" :name="thirdSub.basisElementCopyId+''" style="width:240px" /> + <a-date-picker v-if="thirdSub.event === 'showDate' && (!thirdSub.reportResultList || !thirdSub.reportResultList.length || !thirdSub.reportResultList[0].elementTextValue)" :name="thirdSub.basisElementCopyId+''" style="width:240px" /> + <a-input v-if="thirdSub.isWrite > 0 && !thirdSub.event" :name="thirdSub.basisElementCopyId + ''" :defaultValue="thirdSub.reportResultList && thirdSub.reportResultList.length && thirdSub.reportResultList[0].elementTextValue || ''" style="width:240px" :addonAfter="thirdSub.unit" /> + <!-- 注掉br是因为啰音类型会掉下去,别处需要换行再调整 --> + <!-- <br v-if="thirdSub.hasChild > 0 && thirdSub.isRadio > 0 && thirdSub.simple > 0"> --> + <a-radio-group v-if="thirdSub.hasChild > 0 && thirdSub.isRadio > 0 && (thirdSub.logicValue <= 0 || thirdSub.basisElementId === 1)" :name="thirdSub.basisElementCopyId+''" v-model="thirdSub.basisElementId" style="width: 100%"> + <a-radio v-for="(fourth, index) in thirdSub.childList" :key="index" :value="fourth.basisElementCopyId">{{fourth.questionName}}</a-radio> + </a-radio-group> + <div v-if="thirdSub.hasChild > 0 && thirdSub.isRadio > 0 && (thirdSub.logicValue <= 0 || thirdSub.basisElementId === 1)"> + <div v-for="(fourth, index) in thirdSub.childList" :key="index" v-if="fourth.hasChild > 0 && fourth.isRadio === 0 && (fourth.logicValue <= 0 || thirdSub.basisElementId === fourth.basisElementCopyId)"> + <a-row class="no-border"> + <a-col :span="6">{{fourth.childList[0].questionName}}</a-col> + <a-col :span="16" v-if="fourth.childList[0].isWrite > 0"> + <a-input :name="fourth.childList[0].basisElementCopyId+''" style="width: 240px;" :defaultValue="fourth.childList[0].reportResultList && fourth.childList[0].reportResultList.length && fourth.childList[0].reportResultList[0].elementTextValue || ''" :addonAfter="fourth.childList[0].unit"></a-input> + </a-col> + </a-row> + </div> + </div> + <a-checkbox-group v-if="thirdSub.isRadio < 0 && thirdSub.hasChild > 0" v-model="thirdSub.elementId"> + <a-checkbox v-for="(fourth,index) in thirdSub.childList" :key="index" :name="fourth.parentId+''" :value="fourth.basisElementCopyId">{{fourth.questionName}}</a-checkbox> + </a-checkbox-group> + <div v-if="thirdSub.hasChild > 0 && thirdSub.isRadio === 0 && (thirdSub.logicValue <= 0 || thirdSub.basisElementId === 1)"> + <a-row v-for="(fourth, index) in thirdSub.childList" :key="index" class="ant-col-pull-12 no-border"> + <a-col :span="12">{{fourth.questionName}}</a-col> + <a-col :span="12"> + <a-radio-group v-if="fourth.simple === 1" :name="fourth.basisElementCopyId+''" v-model="fourth.basisElementId"> + <a-radio :value="1">是</a-radio> + <a-radio :value="-1">否</a-radio> + </a-radio-group> + </a-col> + </a-row> + </div> + </a-col> + </a-row> + </a-row> + </a-col> + </a-row> + </div> + </a-form-item> + </a-form> + </div> + </a-col> + </a-row> + </a-card> + </div> +</template> + +<script> +import STree from '@/components/Tree/Tree' +import { mapActions } from 'vuex' +import { submit,getMedicineAllergyList,computeScore, getCollectDetail, getCollectElements, saveReport } from '@/api/basis' +import _ from 'lodash' +import $ from 'jquery' +import moment from 'moment' +import AddTable from "./model/table" +import ocrLoad from "./model/upload" +import { MyIcon } from '@/components/_util/util'; +export default { + name: 'collectDetail', + components: { + STree, + AddTable, + MyIcon, + ocrLoad + }, + data() { + return { + baselineInfoStyle:{ + overflow:"auto", + height:(window.screen.height-330)+'px', + "padding-right":"0px", + "border-right":"1px solid #ddd" + }, + baselineFormStyle:{ + height:(window.screen.height-350)+'px', + }, + optionDataSource:[], + checkedList:[], + title: '报告采集', + openKeys: [], + defaultSelectedKeys: [], + orgTree: [], + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6} + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24} + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + visible: false, + confirmLoading: false, + patient: {}, + list: [], + listArr: [], + list1: [], + question:{}, + basisMaskId: undefined, + validateFlag: false, + reportCollectBaseId: this.$route.params.id, + computeMap: { + 1208: '', + 2727: '', + 1160: '', + 4207: '' + }, + disBlock :{ + display: 'block', + }, + bodyStyle: { + 'padding-left': '0px' + }, + imgUrl:"", + fileList:[] + } + }, + beforeCreate (){ + this.form = this.$form.createForm(this, {onFieldsChange: this.onFieldsChange, onValuesChange: this.onValuesChange}) + }, + activated() { + this.list = [] + }, + created() { + this.list=[] + var that = this + this.CloseSidebar() + // this.compute = _.debounce(this.compute, 300) //节流阀 + var params = new URLSearchParams() + params.append('reportCollectBaseId', this.reportCollectBaseId) + getCollectDetail(params) + .then(res => { + that.patient = res.data.patient + that.orgTree = res.data.bmList + if(typeof this.$route.query.markId === 'undefined'){ + that.basisMaskId = that.orgTree[0].basisMarkId + that.getElementsAnswer() + that.defaultSelectedKeys = [that.basisMaskId] + } + }) + if(this.$route.query.markId){ + this.basisMaskId = parseInt(this.$route.query.markId) + this.getElementsAnswer() + this.defaultSelectedKeys = [this.basisMaskId] + } + }, + computed: { + validate() { + return function(index){ + if(!this.validateFlag) return '' + var first = this.list[index] + if(first.required > 0) return 'error' + } + } + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + showList(e,type,name){ + if(type !== 'showList') return; + if(e.target.checked){ + if(name=="其他") return; + this.getMedicineAllergyList(name,e.target.value) + }else{ + this.$set(this.optionDataSource,e.target.value,[]) + } + + }, + OCRload(data){ + console.log(data); + this.$nextTick(function(){ + this.list = this.initList(data.basisElementList) + }) + }, + saveImgUrl(data){ + this.imgUrl=data; + }, + getMedicineAllergyList(value,index){ + const that = this + const params = new URLSearchParams() + params.append('microbeName', value) + getMedicineAllergyList(params).then(res => { + const optionDataSource = _.map(res.data, function(v) { + return { + keyW: v.keyW, + microbeName: v.microbeName, + antibiotic: v.antibiotic, + antibioticResult: v.antibioticResult, + allergyValue: v.allergyValue + }; + }) + that.$set(that.optionDataSource,index, optionDataSource) + }) + }, + blurInput(e,item){ + this.getMedicineAllergyList(e.target.value,item.parentId) + }, + handleClick(e) { + this.basisMaskId = e.key + this.getElementsAnswer() + }, + handleSubmit () { + const { form: { validateFieldsAndScroll } } = this + this.confirmLoading = true + validateFieldsAndScroll((errors, values) => { + if (!errors) { + console.log('values', values) + setTimeout(() => { + this.visible = false + this.confirmLoading = false + this.$emit('ok', values) + }, 1500) + } else { + this.confirmLoading = false + } + }) + }, + handleCancel () { + this.visible = false + }, + getElementsAnswer (){ + var that = this; + var params = new URLSearchParams(); + params.append('basisMarkId', this.basisMaskId) + params.append('reportCollectBaseId', this.reportCollectBaseId) + getCollectElements(params) + .then(res => { + that.imgUrl=res.url; + that.fileList=[{ + uid: '-1', + name: 'xxx.png', + status: 'done', + url: res.url, + }] + that.list = that.initList(res.basisElementList) + }) + }, + generateAnswers (){ + var result = [] + _.each(this.list, function(item){ + if(item.simple > 0){ + result.push({ + reportResultId: (item.reportResultList && item.reportResultList.length) ? item.reportResultList[0].reportResultId : '', + basisElementId: item.basisElementCopyId, + elementNumValue: typeof $('input[name="' + item.basisElementCopyId + '"]:checked').val() !== 'undefined' ? $('input[name="' + item.basisElementCopyId + '"]:checked').val() : '', + elementTextValue: '' + }) + }else if(item.isWrite > 0){ + var text = $('[name="' + item.basisElementCopyId + '"]').hasClass('ant-calendar-picker') ? $('[name="' + item.basisElementCopyId + '"] input').val() : $('[name="' + item.basisElementCopyId + '"]').val() + result.push({ + reportResultId: (item.reportResultList && item.reportResultList.length) ? item.reportResultList[0].reportResultId : '', + basisElementId: item.basisElementCopyId, + elementTextValue: text, + elementNumValue: '' + }) + } + if(item.hasChild > 0){ + if(item.childList[0].type === 1){ + _.each(item.childList, function(sub){ + if(sub.isWrite > 0){ + var text = $('[name="' + sub.basisElementCopyId + '"]').hasClass('ant-calendar-picker') ? $('[name="' + sub.basisElementCopyId + '"] input').val() : $('[name="' + sub.basisElementCopyId + '"]').val() + result.push({ + reportResultId: (sub.reportResultList && sub.reportResultList.length) ? sub.reportResultList[0].reportResultId : '', + basisElementId: sub.basisElementCopyId, + elementTextValue: text, + elementNumValue: '' + }) + } + if(sub.simple > 0){ + result.push({ + reportResultId: (sub.reportResultList && sub.reportResultList.length) ? sub.reportResultList[0].reportResultId : '', + basisElementId: sub.basisElementCopyId, + elementNumValue: typeof $('input[name="' + sub.basisElementCopyId + '"]:checked').val() !== 'undefined' ? $('input[name="' + sub.basisElementCopyId + '"]:checked').val() : '', + elementTextValue: '' + }) + } + + if(sub.hasChild > 0){ + if(sub.isRadio !== 0){ + _.each(sub.childList, function(third){ + result.push({ + reportResultId: third.reportResultList && third.reportResultList.length ? third.reportResultList[0].reportResultId : '', + basisElementId: third.basisElementCopyId, + elementNumValue: $('[value="' + third.basisElementCopyId + '"][name="' + third.parentId + '"]').prop('checked') ? 1 : -1, + elementTextValue: '' + }) + }) + } + _.each(sub.childList, function(third){ + if(third.simple > 0){ + result.push({ + reportResultId: (third.reportResultList && third.reportResultList.length) ? third.reportResultList[0].reportResultId : '', + basisElementId: third.basisElementCopyId, + elementNumValue: typeof $('input[name="' + third.basisElementCopyId + '"]:checked').val() !== 'undefined' ? $('input[name="' + third.basisElementCopyId + '"]:checked').val() : '', + elementTextValue: '' + }) + } + if(third.isWrite > 0){ + var text = $('[name="' + third.basisElementCopyId + '"]').hasClass('ant-calendar-picker') ? $('[name="' + third.basisElementCopyId + '"] input').val() : $('[name="' + third.basisElementCopyId + '"]').val() + result.push({ + reportResultId: (third.reportResultList && third.reportResultList.length) ? third.reportResultList[0].reportResultId : '', + basisElementId: third.basisElementCopyId, + elementTextValue: text || '', + elementNumValue: '' + }) + } + if(third.hasChild > 0){ + + _.each(third.childList,function(fourth){ + if(third.isRadio !== 0){ + result.push({ + reportResultId: fourth.reportResultList && fourth.reportResultList.length ? fourth.reportResultList[0].reportResultId : '', + basisElementId: fourth.basisElementCopyId, + elementNumValue: $('[value="' + fourth.basisElementCopyId + '"][name="' + fourth.parentId + '"]').prop('checked') ? 1 : -1, + elementTextValue: '' + }) + } + if(fourth.simple > 0){ + result.push({ + reportResultId: (fourth.reportResultList && fourth.reportResultList.length) ? fourth.reportResultList[0].reportResultId : '', + basisElementId: fourth.basisElementCopyId, + elementNumValue: typeof $('input[name="' + fourth.basisElementCopyId + '"]:checked').val() !== 'undefined' ? $('input[name="' + fourth.basisElementCopyId + '"]:checked').val() : '', + elementTextValue: '' + }) + } + if(fourth.isWrite > 0){ + var text = $('[name="' + fourth.basisElementCopyId + '"]').hasClass('ant-calendar-picker') ? $('[name="' + fourth.basisElementCopyId + '"] input').val() : $('[name="' + fourth.basisElementCopyId + '"]').val() + result.push({ + reportResultId: (fourth.reportResultList && fourth.reportResultList.length) ? fourth.reportResultList[0].reportResultId : '', + basisElementId: fourth.basisElementCopyId, + elementTextValue: text || '', + elementNumValue: '' + }) + } + if(fourth.hasChild > 0 && fourth.isRadio === 0){ + _.each(fourth.childList, function(fifth){ + if(fifth.isWrite > 0){ + var text = $('[name="' + fifth.basisElementCopyId + '"]').hasClass('ant-calendar-picker') ? $('[name="' + fifth.basisElementCopyId + '"] input').val() : $('[name="' + fifth.basisElementCopyId + '"]').val() + result.push({ + reportResultId: (fifth.reportResultList && fifth.reportResultList.length) ? fifth.reportResultList[0].reportResultId : '', + basisElementId: fifth.basisElementCopyId, + elementTextValue: text || '', + elementNumValue: '' + }) + } + if(fifth.simple > 0){ + result.push({ + reportResultId: (fifth.reportResultList && fifth.reportResultList.length) ? fifth.reportResultList[0].reportResultId : '', + basisElementId: fifth.basisElementCopyId, + elementNumValue: typeof $('input[name="' + fifth.basisElementCopyId + '"]:checked').val() !== 'undefined' ? $('input[name="' + fifth.basisElementCopyId + '"]:checked').val() : '', + elementTextValue: '' + }) + } + if(fifth.hasChild > 0 && fifth.isRadio === 0){ + _.each(fifth.childList, function(sixth){ + if(sixth.isWrite > 0){ + var text = $('[name="' + sixth.basisElementCopyId + '"]').hasClass('ant-calendar-picker') ? $('[name="' + sixth.basisElementCopyId + '"] input').val() : $('[name="' + sixth.basisElementCopyId + '"]').val() + result.push({ + reportResultId: (sixth.reportResultList && sixth.reportResultList.length) ? sixth.reportResultList[0].reportResultId : '', + basisElementId: sixth.basisElementCopyId, + elementTextValue: text || '', + elementNumValue: '' + }) + } + }) + } + }) + }else if(fourth.hasChild > 0 && fourth.isRadio !== 0){ + _.each(fourth.childList, function(fifth){ + result.push({ + reportResultId: fifth.reportResultList && fifth.reportResultList.length ? fifth.reportResultList[0].reportResultId : '', + basisElementId: fifth.basisElementCopyId, + elementNumValue: $('[value="' + fifth.basisElementCopyId + '"][name="' + fifth.parentId + '"]').prop('checked') ? 1 : -1, + elementTextValue: '' + }) + }) + } + }) + } + }) + } + }) + }else{ + // 是选项,单选或多选 + if(item.isRadio !== 0){ + _.each(item.childList, function(sub){ + result.push({ + reportResultId: sub.reportResultList && sub.reportResultList.length ? sub.reportResultList[0].reportResultId : '', + basisElementId: sub.basisElementCopyId, + elementNumValue: $('[value="' + sub.basisElementCopyId + '"][name="' + sub.parentId + '"]').prop('checked') ? 1 : -1, + elementTextValue: '' + }) + // TODO:此处后面需看还有没有更多情况 + if(sub.hasChild > 0 && sub.isWrite > 0){ + result.push({ + basisAnswer: sub.childList[0].reportResultList && sub.childList[0].reportResultList.length ? sub.childList[0].reportResultList[0].reportResultId : '', + basisElementId: sub.childList[0].basisElementCopyId, + elementTextValue: $('[name="' + sub.childList[0].basisElementCopyId + '"]').val(), + elementNumValue: '' + }) + } + }) + } + } + } + }) + return result + }, + save (){ + var that = this + var result = this.generateAnswers() + console.log(result) + var params = new URLSearchParams(); + params.append('reportResult', JSON.stringify(result)) + params.append('reportCollectBaseId', this.reportCollectBaseId) + params.append('basisMarkId', this.basisMaskId) + params.append('url', this.imgUrl) + saveReport(params) + .then(res => { + console.log(res) + that.$message.success(res.msg, function(){ + var href = location.href.replace(/\?markId=[\d]+/,'') + location.href = href + '?markId=' + that.basisMaskId + }) + }) + .catch(error => { + console.log(error) + }) + }, + submit (){ + this.form.validateFieldsAndScroll((err, values) => { + if (!err) { + // eslint-disable-next-line no-console + console.log('Received values of form: ', values) + } + }) + return false + }, + initList (list){ + var that = this + _.each(list, function(a){ + if(a.simple > 0 && a.reportResultList && a.reportResultList.length){ + a.basisElementId = a.reportResultList[0].elementNumValue + } + if(typeof a.computeElement !== 'undefined' && a.computeElement === 0 && a.reportResultList && a.reportResultList.length) { + that.computeMap[a.basisElementCopyId] = a.reportResultList[0].elementTextValue + } + if(a.hasChild > 0 && a.isRadio === 0){ + _.each(a.childList,function(b){ + if(typeof b.computeElement !== 'undefined' && b.computeElement === 0 && b.reportResultList && b.reportResultList.length) { + that.computeMap[b.basisElementCopyId] = b.reportResultList[0].elementTextValue + } + if(b.simple > 0 && b.reportResultList && b.reportResultList.length){ + b.basisElementId = b.reportResultList[0].elementNumValue + } + //单选 + if(b.hasChild > 0 && b.isRadio > 0){ + var re = _.filter(b.childList, function(v){return v.reportResultList && v.reportResultList.length && v.reportResultList[0].elementNumValue > 0}) + if(re.length) b.basisElementId = re[0].basisElementId + _.each(b.childList, function(c){ + if(c.logicValue > 0 && c.hasChild > 0 && c.isRadio === 0){ + _.each(c.childList, function(d){ + if(d.simple > 0 && d.reportResultList && d.reportResultList.length){ + d.basisElementId = d.reportResultList[0].elementNumValue + } + if(d.hasChild > 0 && d.isRadio === 0){ + _.each(d.childList, function(e){ + if(e.simple > 0 && e.reportResultList && e.reportResultList.length){ + e.basisElementId = e.reportResultList[0].elementNumValue + } + }) + } + }) + } + if(c.logicValue > 0 && c.hasChild > 0 && c.isRadio > 0){ + + } + }) + } + //多选 + if(b.hasChild > 0 && b.isRadio < 0){ + if(b.childList[0].reportResultList && b.childList[0].reportResultList.length){ + b.elementId = _.map(_.filter(_.flatten(_.map(b.childList,function(v){return v.reportResultList})),function(v){return v.elementNumValue > 0}),function(v){return v.basisElementId}) + }else{ + b.elementId = [] + } + //多选框控制子选项 + _.each(b.childList,function(c){ + if(c.logicValue > 0 && c.reportResultList && c.reportResultList.length && c.reportResultList[0].elementNumValue > 0){ + var selected = _.filter(_.flatten(_.map(c.childList,function(v){return v.reportResultList})),function(v){return v.elementNumValue > 0}) + if(selected.length){ + c.basisElementId = _.map(selected,function(v){return v.basisElementId})[0] + } + } + }) + } + //子选项,第三层 + if(b.hasChild > 0 && b.isRadio === 0){ + _.each(b.childList, function(c){ + if(c.simple > 0 && c.reportResultList && c.reportResultList.length){ + c.basisElementId = c.reportResultList[0].elementNumValue + } + if(c.hasChild > 0 && c.isRadio === 0){ + _.each(c.childList, function(d){ + if(d.simple > 0 && d.reportResultList && d.reportResultList.length){ + d.basisElementId = d.reportResultList[0].elementNumValue + } + if(d.hasChild > 0 && d.isRadio < 0){ + if(d.childList[0].reportResultList && d.childList[0].reportResultList.length){ + d.elementId = _.map(_.filter(_.flatten(_.map(d.childList,function(v){return v.reportResultList})),function(v){return v.elementNumValue > 0}),function(v){return v.basisElementId}) + }else{ + d.elementId = [] + } + }else if(d.hasChild > 0 && d.isRadio > 0){ + if(d.childList[0].reportResultList && d.childList[0].reportResultList.length){ + var selected = _.filter(_.flatten(_.map(d.childList,function(v){ return v.reportResultList })),function(v){ return v.elementNumValue > 0 }) + if(selected.length){ + d.basisElementId = _.map(selected,function(v){ return v.basisElementId })[0] + } + } + } + }) + } + if(c.hasChild > 0 && c.isRadio < 0){ + if(c.childList[0].reportResultList && c.childList[0].reportResultList.length){ + c.elementId = _.map(_.filter(_.flatten(_.map(c.childList,function(v){return v.reportResultList})),function(v){return v.elementNumValue > 0}),function(v){return v.basisElementId}) + }else{ + c.elementId = [] + } + _.each(c.childList, function(d){ + if(d.hasChild > 0 && d.isRadio > 0){ + if(d.childList[0].reportResultList && d.childList[0].reportResultList.length){ + var selected = _.filter(_.flatten(_.map(d.childList,function(v){ return v.reportResultList })),function(v){ return v.elementNumValue > 0 }) + if(selected.length){ + d.basisElementId = _.map(selected,function(v){ return v.basisElementId })[0] + } + } + } + }) + } + if(c.hasChild > 0 && c.isRadio > 0){ + if(c.childList[0].reportResultList && c.childList[0].reportResultList.length){ + var selected = _.filter(_.flatten(_.map(c.childList,function(v){ return v.reportResultList })),function(v){ return v.elementNumValue > 0 }) + if(selected.length){ + c.basisElementId = _.map(selected,function(v){ return v.basisElementId })[0] + } + } + } + }) + } + }) + }else if(a.hasChild > 0 && a.isRadio < 0){ + if(a.childList[0].reportResultList && a.childList[0].reportResultList.length){ + a.elementId = _.map(_.filter(_.flatten(_.map(a.childList,function(v){return v.reportResultList})),function(v){return v.elementNumValue > 0}),function(v){return v.basisElementId}) + }else{ + a.elementId = [] + } + }else if(a.hasChild > 0 && a.isRadio > 0){ + var re = _.filter(a.childList, function(v){return v.reportResultList && v.reportResultList.length && v.reportResultList[0].elementNumValue > 0}) + if(re.length) a.basisElementId = re[0].basisElementId + } + }) + return list + }, + compute (id){ + console.log(id) + var that = this + var result = this.generateAnswers() + var params = new URLSearchParams(); + params.append('basisElementId', id) + params.append('basisAnswer', JSON.stringify(result)) + computeScore(params) + .then(res => { + console.log(res) + console.log('计算成功,结果为:' + res.data[id]) + if(typeof res.data[id] !== 'undefined') { + that.computeMap[id] = res.data[id] + } + }) + .catch(error => { + console.log(error) + }) + } + } +} +</script> + +<style lang="less" scoped> + /deep/ #baselineHeader{ + .ant-card-body{ + padding: 10px + } + } + + .ml-10{ + margin-left: 10px; + } + .UserNameCard{ + font-size: 20px; + .anticon{ + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } + } +.clear { + clear: both; +} +.ant-col-4 .ant-calendar-picker, +.ant-col-6 .ant-calendar-picker { + width: 100%; +} +.ant-checkbox-wrapper + .ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #CFF4FF; +} + + +/deep/.ant-menu-vertical .ant-menu-item:after, .ant-menu-vertical-left .ant-menu-item:after, .ant-menu-vertical-right .ant-menu-item:after, .ant-menu-inline .ant-menu-item:after{ + border-right: 6px solid #1890ff; +} +/deep/ .ant-row { + clear: both; +} +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 10px 15px; + } + /deep/ .tree-title { + border-right: 1px solid #e8e8e8; + color: #25aefe; + font-size: 22px; + padding-left: 70px; + padding-top: 5px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + padding-left: 20p; + background-position-x: 15px; + padding-bottom: 26px; + } + /deep/ .ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline.ant-menu-submenu-open { + background-color: rgba(245,251,255); + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245,251,255); + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + .ant-menu-item:hover, + .ant-menu-item-active, + .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, + .ant-menu-submenu-active, + .ant-menu-submenu-title:hover { + background-color: #eaf2fd; + } + .placeholderI { + display: inline-block; + width: 27px; + } + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + /deep/ .ant-menu-submenu { + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + .action { + font-size: 18px; + &.anticon-check-circle { + color: #8ac51b; + } + &.anticon-clock-circle { + color: #06a0e2; + } + } + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + .fr { + float: right; + } + .btn { + margin-right: 10px; + } + .baselineForm { + height: 350px; + overflow: auto; + + padding: 40px 20px; + .ant-row { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + &.no-border{ + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + &:hover { + } + } + /deep/ .ant-form-item-label { + text-align: left; + label:after { + content: ''; + } + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + } + } + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + .itemRow:hover { + background-color: #e6f7ff; + } + } +} +.question-title{ + text-align: center; + font-size: 22px; + color: #3398DC; +} +.question-des{ + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding:0 10px ; +} +.question-t{ + font-size: 18px; + line-height: 40px; + font-weight: 700; +} +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle{ + width: 120px; +} +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} +</style> \ No newline at end of file diff --git a/src/views/account/center/components/mask-1.vue b/src/views/account/center/components/mask-1.vue new file mode 100644 index 0000000000..4caacb63c0 --- /dev/null +++ b/src/views/account/center/components/mask-1.vue @@ -0,0 +1,1606 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" :layout="formLayout" class="base-form"> + <div class="clearfix" style="position:relative;top: 20px;"> + <a-button class="btn fr" type="primary" @click="_importData">导入数据</a-button> + </div> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit && totalStatus == 0"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!</p> + <div class="title">1.基本病史</div> + <a-form-item label="(1) 采集标本类型" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['a1', {...selectRequired, initialValue: initValue('a1', 'array')}]" @change="handleChange"> + <a-checkbox value="1">全血</a-checkbox> + <a-checkbox value="2">血清</a-checkbox> + <a-checkbox value="3">未采</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="(2) 患者支扩确诊时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-month-picker placeholder="请选择" @change="changeDate" v-decorator="['a3', {...dateRequire, initialValue: initValue('a3', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-month-picker> + </a-form-item> + <a-form-item label="(3) 访视类型" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b23', {...selectRequired, initialValue: initValue('b23')}]"> + <a-radio value="1">急性加重期</a-radio> + <a-radio value="2">稳定期</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(4) 主要临床症状(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['a4', {...selectRequired, initialValue: initValue('a4', 'array')}]" class="control-m-line"> + <a-checkbox value="1" :checked="controla44" @change="changeSelect($event, 'controla44')">咳嗽</a-checkbox> + <a-checkbox value="2" :checked="controla41" @change="changeSelect($event, 'controla41')">咳痰</a-checkbox> + <a-checkbox value="7">活动后气促</a-checkbox> + <a-checkbox value="3" :checked="controla43" @change="changeSelect($event, 'controla43')">痰血</a-checkbox> + <a-checkbox value="4" :checked="controla42" @change="changeSelect($event, 'controla42')">咯血</a-checkbox> + <a-checkbox value="10" :checked="controla45" @change="changeSelect($event, 'controla45')">疲劳</a-checkbox> + <a-checkbox value="5">胸闷</a-checkbox> + <a-checkbox value="6">喘息</a-checkbox> + <a-checkbox value="8">胸痛</a-checkbox> + <a-checkbox value="9">发热</a-checkbox> + <a-checkbox value="11">纳差</a-checkbox> + <a-checkbox value="12">消瘦</a-checkbox> + <a-checkbox value="14">中耳炎</a-checkbox> + <a-checkbox value="15">听力丧失</a-checkbox> + <a-checkbox value="13" :checked="controla413" @change="changeSelect($event, 'controla413')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="咳嗽程度" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla44"> + <a-radio-group v-decorator="['a46', {...selectRequired, initialValue: initValue('a46')}]"> + <a-radio value="1">轻度咳嗽</a-radio> + <a-radio value="2">中度咳嗽</a-radio> + <a-radio value="3">重度咳嗽</a-radio> + <a-radio value="4">极重度咳嗽</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="痰量" v-if="controla41" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="ml/日" style="width: 240px;" v-decorator="['a41', {...inputRequired, initialValue: initValue('a41')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="痰颜色评分(单选)" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla41"> + <a-popover> + <template slot="content"> + <img src="../../../../assets/murry.png" style="height: 260px;" /> + </template> + <a-icon type="exclamation-circle" style="position: relative;left: -20px;color: #0399ec;cursor: pointer;" /> + </a-popover> + <a-radio-group v-decorator="['a43', {...selectRequired, initialValue: initValue('a43')}]"> + <a-radio value="1">白色或清亮</a-radio> + <a-radio value="2">黄白色</a-radio> + <a-radio value="3">黄绿色</a-radio> + <a-radio value="4">浅至深褐色</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="痰血量" v-if="controla43" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="ml/日" style="width: 240px;" v-decorator="['a44', {...inputRequired, initialValue: initValue('a44')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="咯血量(最多)" v-if="controla42" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="ml/日" style="width: 240px;" v-decorator="['a42', {...inputRequired, initialValue: initValue('a42')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="疲劳程度" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla45"> + <a-radio-group v-decorator="['a47', {...selectRequired, initialValue: initValue('a47')}]"> + <a-radio value="1">我感到有点疲劳</a-radio> + <a-radio value="2">我感到疲劳但仍然可以做我想做的事情</a-radio> + <a-radio value="3">我感到疲劳而不能做一些我想做的事情</a-radio> + <a-radio value="4">我感到非常疲劳而无法进行日常活动</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他症状" v-if="controla413" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['a45', {...inputRequired, initialValue: initValue('a45')}]" autocomplete="off"></a-input> + </a-form-item> + <div class="title">2.既往病史</div> + <a-form-item label="(1) 过去两年的住院急性加重次数" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="次" style="width: 240px;" v-decorator="['b1', {...inputRequired, initialValue: initValue('b1')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(2) 过去一年的住院急性加重次数" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="次" style="width: 240px;" v-decorator="['b2', {...inputRequired, initialValue: initValue('b2')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 过去一年的急性加重次数" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="次" style="width: 240px;" v-decorator="['b3', {...inputRequired, initialValue: initValue('b3')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <span slot="label"><span>(4) 最后一次因急性加重住院的时间</span><span style="color: red;"> (yyyy-mm-dd)</span></span> + <a-input style="width: 240px;" v-decorator="['b4', {rules: [{ required: isIcon, message: '请填写!' }], initialValue: initValue('b4')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item class="no-border" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <span slot="label"><span>最后一次急性加重出院的时间</span><span style="color: red;"> (yyyy-mm-dd)</span></span> + <a-input style="width: 240px;" v-decorator="['b41', {initialValue: initValue('b41')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(5) 有无病因相关的病史及事件(可多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-checkbox-group v-decorator="['b5', {...selectRequired, initialValue: initValue('b5', 'array')}]"> + <a-checkbox value="1" :disabled="detect('b5', '7') || initB5">麻疹</a-checkbox> + <a-checkbox value="2" :disabled="detect('b5', '7') || initB5">百日咳</a-checkbox> + <a-checkbox value="3" :disabled="detect('b5', '7') || initB5">肺结核</a-checkbox> + <a-checkbox value="4" :disabled="detect('b5', '7') || initB5">NTM</a-checkbox> + <a-checkbox value="5" :disabled="detect('b5', '7') || initB5">溺水</a-checkbox> + <a-checkbox value="8" :disabled="detect('b5', '7') || initB5">肺炎</a-checkbox> + <a-checkbox value="6" :disabled="detect('b5', '7') || initB5" :checked="controlb51" @change="changeSelect($event, 'controlb51')">其他</a-checkbox> + <a-checkbox value="7" @change="handleNone($event, 'b5', '7', ['controlb51'])">无</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="疾病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb51"> + <a-input style="width: 240px;" v-decorator="['b51', {...inputRequired, initialValue: initValue('b51')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(6) 目前合并呼吸系统相关疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b6', {...selectRequired, initialValue: initValue('b6', 'array')}]"> + <a-checkbox value="1" :disabled="detect('b6', '6') || initB6" :checked="controlb61" @change="changeSelect($event, 'controlb61')">鼻炎</a-checkbox> + <a-checkbox value="2" :disabled="detect('b6', '6') || initB6" :checked="controlb62" @change="changeSelect($event, 'controlb62')">鼻窦炎</a-checkbox> + <a-checkbox value="3" :disabled="detect('b6', '6') || initB6" :checked="controlb63" @change="changeSelect($event, 'controlb63')">鼻息肉</a-checkbox> + <a-checkbox value="4" :disabled="detect('b6', '6') || initB6" :checked="controlb64" @change="changeSelect($event, 'controlb64')">哮喘</a-checkbox> + <a-checkbox value="5" :disabled="detect('b6', '6') || initB6" :checked="controlb65" @change="changeSelect($event, 'controlb65')">慢阻肺</a-checkbox> + <a-checkbox value="8" :disabled="detect('b6', '6') || initB6" :checked="controlb68" @change="changeSelect($event, 'controlb68')">中耳炎</a-checkbox> + <a-checkbox value="7" :disabled="detect('b6', '6') || initB6" :checked="controlb67" @change="changeSelect($event, 'controlb67')">其他</a-checkbox> + <a-checkbox value="6" @change="handleNone($event, 'b6', '6', ['controlb61','controlb62','controlb63','controlb64','controlb65','controlb68','controlb67'])">无</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="鼻炎具体诊断日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb61"> + <a-month-picker placeholder="请选择" style="width: 240px;" v-decorator="['b61', {initialValue: initValue('b61', 'time')}]" :disabledDate="disabledDate"></a-month-picker> + </a-form-item> + <a-form-item class="no-border" label="鼻窦炎具体诊断日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb62"> + <a-month-picker placeholder="请选择" style="width: 240px;" v-decorator="['b62', {initialValue: initValue('b62', 'time')}]" :disabledDate="disabledDate"></a-month-picker> + </a-form-item> + <a-form-item class="no-border" label="鼻息肉具体诊断日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb63"> + <a-month-picker placeholder="请选择" style="width: 240px;" v-decorator="['b63', {initialValue: initValue('b63', 'time')}]" :disabledDate="disabledDate"></a-month-picker> + </a-form-item> + <a-form-item class="no-border" label="哮喘具体诊断日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb64"> + <a-month-picker placeholder="请选择" style="width: 240px;" v-decorator="['b64', {...dateRequire, initialValue: initValue('b64', 'time')}]" :disabledDate="disabledDate"></a-month-picker> + </a-form-item> + <a-form-item class="no-border" label="慢阻肺具体诊断日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb65"> + <a-month-picker placeholder="请选择" style="width: 240px;" v-decorator="['b65', {...dateRequire, initialValue: initValue('b65', 'time')}]" :disabledDate="disabledDate"></a-month-picker> + </a-form-item> + <a-form-item class="no-border" label="中耳炎具体诊断日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb68"> + <a-month-picker placeholder="请选择" style="width: 240px;" v-decorator="['b66', {initialValue: initValue('b66', 'time')}]" :disabledDate="disabledDate"></a-month-picker> + </a-form-item> + <a-form-item label="疾病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb67"> + <a-input style="width: 240px;" v-decorator="['b67', {...inputRequired, initialValue: initValue('b67')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(7) 有无其他疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b70', {...require2, initialValue: initValue('b70')}]" @change="changeRadio($event, 'controlb70')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb70"> + <a-form-item label="1.心脑血管系统" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b7', {...require2, initialValue: initValue('b7')}]" @change="changeRadio($event, 'controlb7')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="心脑血管系统疾病类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb7"> + <a-checkbox-group v-decorator="['b71', {...selectRequired, initialValue: initValue('b71', 'array')}]" class="control-m-line"> + <a-checkbox value="1">心梗</a-checkbox> + <a-checkbox value="2">心绞痛</a-checkbox> + <a-checkbox value="3">冠心病</a-checkbox> + <a-checkbox value="4">慢性心衰</a-checkbox> + <a-checkbox value="5">心律失常</a-checkbox> + <a-checkbox value="6">心脏瓣膜病</a-checkbox> + <a-checkbox value="7">肺动脉高压</a-checkbox> + <a-checkbox value="8">高血压病</a-checkbox> + <a-checkbox value="9">中风或短暂性缺血发作</a-checkbox> + <a-checkbox value="10">外周血管疾病</a-checkbox> + <a-checkbox value="11" :checked="controlb72" @change="changeSelect($event, 'controlb72')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="其他心脑血管疾病" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb7 && controlb72"> + <a-input style="width: 240px;" v-decorator="['b72', {...inputRequired, initialValue: initValue('b72')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="2.消化系统疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b8', {...require2, initialValue: initValue('b8')}]" @change="changeRadio($event, 'controlb8')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="消化系统疾病类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb8"> + <a-checkbox-group v-decorator="['b81', {...selectRequired, initialValue: initValue('b81', 'array')}]"> + <a-checkbox value="1">炎症性肠病</a-checkbox> + <a-checkbox value="2">胃食管反流</a-checkbox> + <a-checkbox value="3">消化道溃疡</a-checkbox> + <a-checkbox value="4">慢性肝病</a-checkbox> + <a-checkbox value="5" :checked="controlb82" @change="changeSelect($event, 'controlb82')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="其他消化系统疾病" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb8 && controlb82"> + <a-input style="width: 240px;" v-decorator="['b82', {...inputRequired, initialValue: initValue('b82')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="3.内分泌系统" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b9', {...require2, initialValue: initValue('b9')}]" @change="changeRadio($event, 'controlb9')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="内分泌系统疾病类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb9"> + <a-checkbox-group v-decorator="['b91', {...selectRequired, initialValue: initValue('b91', 'array')}]"> + <a-checkbox value="1">糖尿病</a-checkbox> + <a-checkbox value="2">骨质疏松</a-checkbox> + <a-checkbox value="3">高脂血症</a-checkbox> + <a-checkbox value="4">甲亢</a-checkbox> + <a-checkbox value="5">甲减</a-checkbox> + <a-checkbox value="6">高尿酸血症</a-checkbox> + <a-checkbox value="7" :checked="controlb917" @change="changeSelect($event, 'controlb917')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他内分泌系统疾病" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb9 && controlb917"> + <a-input style="width: 240px;" v-decorator="['b92', {...inputRequired, initialValue: initValue('b92')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="4.血液系统疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b10', {...require2, initialValue: initValue('b10')}]" @change="changeRadio($event, 'controlb10')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="血液系统疾病类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb10"> + <a-checkbox-group v-decorator="['b101', {...selectRequired, initialValue: initValue('b101', 'array')}]"> + <a-checkbox value="1">贫血</a-checkbox> + <a-checkbox value="2">白血病</a-checkbox> + <a-checkbox value="3">淋巴瘤</a-checkbox> + <a-checkbox value="4" :checked="controlb1014" @change="changeSelect($event, 'controlb1014')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他血液系统疾病类型" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb1014"> + <a-input style="width: 240px;" v-decorator="['b102', {...inputRequired, initialValue: initValue('b102')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="5.泌尿系统疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b11', {...require2, initialValue: initValue('b11')}]" @change="changeRadio($event, 'controlb11')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="泌尿系统疾病类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb11"> + <a-checkbox-group v-decorator="['b111', {...selectRequired, initialValue: initValue('b111', 'array')}]"> + <a-checkbox value="1">慢性肾病</a-checkbox> + <a-checkbox value="2">慢性尿路感染</a-checkbox> + <a-checkbox value="3" :checked="controlb1113" @change="changeSelect($event, 'controlb1113')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="其他泌尿系统疾病类型:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb11 && controlb1113"> + <a-input style="width: 240px;" v-decorator="['b112', {...inputRequired, initialValue: initValue('b112')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="6.风湿系统疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b12', {...require2, initialValue: initValue('b12')}]" @change="changeRadio($event, 'controlb12')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="风湿系统疾病类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb12"> + <a-checkbox-group v-decorator="['b121', {...selectRequired, initialValue: initValue('b121', 'array')}]" class="control-m-line"> + <a-checkbox value="1">系统性红斑狼疮</a-checkbox> + <a-checkbox value="2">类风湿性关节炎</a-checkbox> + <a-checkbox value="3">干燥综合征</a-checkbox> + <a-checkbox value="4">系统性硬化</a-checkbox> + <a-checkbox value="5">皮肌炎</a-checkbox> + <a-checkbox value="6" :checked="controlb122" @change="changeSelect($event, 'controlb122')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="其他风湿系统疾病类型:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb12 && controlb122"> + <a-input style="width: 240px;" v-decorator="['b122', {...inputRequired, initialValue: initValue('b122')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="7.是否有HIV" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b13', {...require1, initialValue: initValue('b13')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="8.是否有恶性肿瘤" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b14', {...require1, initialValue: initValue('b14')}]" @change="changeRadio($event, 'controlb14')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb14"> + <a-form-item class="border-dotted" label="当前正患病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b141', {...require1, initialValue: initValue('b141')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="血液性" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b142', {...require1, initialValue: initValue('b142')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="肿瘤部位(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b143', {...selectRequired, initialValue: initValue('b143', 'array')}]" class="control-m-line"> + <a-checkbox value="1">头颈部</a-checkbox> + <a-checkbox value="2">肺</a-checkbox> + <a-checkbox value="3">乳腺</a-checkbox> + <a-checkbox value="4">胃肠道</a-checkbox> + <!-- <a-checkbox value="5">小肠</a-checkbox> + <a-checkbox value="6">结肠</a-checkbox> --> + <a-checkbox value="5">肝</a-checkbox> + <a-checkbox value="6">胰腺</a-checkbox> + <a-checkbox value="7">肾</a-checkbox> + <a-checkbox value="8">前列腺</a-checkbox> + <a-checkbox value="9">膀胱</a-checkbox> + <a-checkbox value="10">子宫及附件</a-checkbox> + <a-checkbox value="11">骨</a-checkbox> + <a-checkbox value="12">皮肤</a-checkbox> + <a-checkbox value="13">脑</a-checkbox> + <a-checkbox value="14" :checked="controlb144" @change="changeSelect($event, 'controlb144')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + </div> + <a-form-item class="no-border" label="其他肿瘤部位:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb14 && controlb144"> + <a-input style="width: 240px;" v-decorator="['b144', {...inputRequired, initialValue: initValue('b144')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="9.免疫缺陷" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b15', {...require2, initialValue: initValue('b15')}]" @change="changeRadio($event, 'controlb15')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb15"> + <a-form-item class="border-dotted" label="B细胞缺陷类疾病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b151', {...inputRequired, initialValue: initValue('b151')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item class="border-dotted" label="T细胞及联合免疫缺陷病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b152', {...inputRequired, initialValue: initValue('b152')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item class="border-dotted" label="继发性免疫缺陷(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b153', {...selectRequired, initialValue: initValue('b153', 'array')}]" class="control-m-line"> + <a-checkbox value="1">慢性淋巴性白血病</a-checkbox> + <a-checkbox value="2">多发性骨髓瘤</a-checkbox> + <a-checkbox value="3">血液肿瘤相关免疫缺陷</a-checkbox> + <a-checkbox value="4">系统化疗后免疫缺陷</a-checkbox> + <a-checkbox value="5">免疫抑制药物后免疫缺陷</a-checkbox> + <a-checkbox value="6">干细胞移植</a-checkbox> + <a-checkbox value="7">实体器官移植</a-checkbox> + <a-checkbox value="8" :checked="controlb1538" @change="changeSelect($event, 'controlb1538')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="其他继发性免疫缺陷:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb15 && controlb1538"> + <a-input style="width: 240px;" v-decorator="['b1531', {...inputRequired, initialValue: initValue('b1531')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item class="border-dotted" label="巨噬细胞缺陷疾病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b154', {...inputRequired, initialValue: initValue('b154')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item class="border-dotted" label="补体缺陷疾病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b155', {...inputRequired, initialValue: initValue('b155')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="10.其他疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b161', {...selectRequired, initialValue: initValue('b161', 'array')}]"> + <a-checkbox value="1" @change="handleNone($event, 'b161', '1', ['controlb1615'])">无</a-checkbox> + <a-checkbox value="2" :disabled="detect('b161', '1')">抑郁</a-checkbox> + <a-checkbox value="3" :disabled="detect('b161', '1')">焦虑</a-checkbox> + <a-checkbox value="4" :disabled="detect('b161', '1')">认知功能障碍</a-checkbox> + <a-checkbox value="5" :disabled="detect('b161', '1')" :checked="controlb1615" @change="changeSelect($event, 'controlb1615')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="其他疾病类型:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb1615"> + <a-input style="width: 240px;" v-decorator="['b1611', {...inputRequired, initialValue: initValue('b1611')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(8) 其他系统相关治疗(非呼吸系统治疗)" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-checkbox-group v-decorator="['b17', {...selectRequired, initialValue: initValue('b17', 'array')}]" class="center"> + <a-checkbox value="1" :disabled="detect('b17', '10') || initB17">他汀类药物</a-checkbox> + <a-checkbox value="2" :disabled="detect('b17', '10') || initB17">二甲双胍</a-checkbox> + <a-checkbox value="3" :disabled="detect('b17', '10') || initB17">血管紧张素转换酶抑制剂</a-checkbox> + <a-checkbox value="4" :disabled="detect('b17', '10') || initB17">血管紧张素受体拮抗剂</a-checkbox> + <a-checkbox value="5" :disabled="detect('b17', '10') || initB17">阿司匹林</a-checkbox> + <a-checkbox value="6" :disabled="detect('b17', '10') || initB17">非阿司匹林血小板抑制剂,如氯吡格雷</a-checkbox> + <a-checkbox value="7" :disabled="detect('b17', '10') || initB17">华法林 /口服抗凝剂</a-checkbox> + <a-checkbox value="8" :disabled="detect('b17', '10') || initB17">β-受体阻滞剂</a-checkbox> + <a-checkbox value="9" :disabled="detect('b17', '10') || initB17">质子泵抑制剂</a-checkbox> + <a-checkbox value="10" @change="handleNone($event, 'b17', '10')">无</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="(9) 家族史" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + </a-form-item> + <a-form-item label="是否近亲结婚史" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b181', {...require1, initialValue: initValue('b181')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="既往直系亲属有无支扩" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b182', {...require1, initialValue: initValue('b182')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="遗传性疾病病史" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b183', {...require1, initialValue: initValue('b183')}]" @change="changeRadio($event, 'controlb1831')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="具体疾病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlb1831"> + <a-input style="width: 240px;" v-decorator="['b1831', {...inputRequired, initialValue: initValue('b1831')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(10) 吸烟史(单选)" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b19', {...selectRequired, initialValue: initValue('b19')}]" @change="changeRadio($event, 'controlb191')"> + <a-radio value="1">目前吸烟</a-radio> + <a-radio value="2">已戒烟</a-radio> + <a-radio value="3">无吸烟</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="吸烟指数" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlb191"> + <a-input addonAfter="包*年" style="width: 240px;" v-decorator="['b191', {...inputRequired, initialValue: initValue('b191')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(11) 职业粉尘接触及生物燃料接触史" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b22', {...require2, initialValue: initValue('b22')}]"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(12) 胸部手术病史" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b20', {...require2, initialValue: initValue('b20')}]" @change="changeRadio($event, 'controlb20')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="手术类型(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlb20"> + <a-checkbox-group v-decorator="['b201', {...selectRequired, initialValue: initValue('b201', 'array')}]"> + <a-checkbox value="1">肺叶切除术</a-checkbox> + <a-checkbox value="2">胸膜剥脱术</a-checkbox> + <a-checkbox value="3">肺减容术</a-checkbox> + <a-checkbox value="4">冠脉搭桥术</a-checkbox> + <a-checkbox value="5" :checked="controlb202" @change="changeSelect($event, 'controlb202')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他手术名称" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset" class="border-dotted" v-if="controlb20 && controlb202"> + <a-input style="width: 240px;" v-decorator="['b202', {initialValue: initValue('b202')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(13) 支气管动脉栓塞病史" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b21', {...require2, initialValue: initValue('b21')}]" @change="changeRadio($event, 'controlb21')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb21"> + <a-form-item label="若行支气管动脉栓塞术时间" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b211', {...dateRequire, initialValue: initValue('b211', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="支气管动脉栓塞术部位" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-input style="width: 240px;" v-decorator="['b212', {...inputRequired, initialValue: initValue('b212')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(14) 是否CF筛查" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['c1', {...require1, initialValue: initValue('c1')}]" @change="changeRadio($event, 'controlc1')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlc1"> + <a-form-item label="CF筛查是否正常 " :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['c11', {...selectRequired, initialValue: initValue('c11')}]" @change="changeRadio($event, 'controlc11')"> + <a-radio value="1">正常</a-radio> + <a-radio value="-1">异常</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="异常数值" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlc1 && controlc11"> + <a-input style="width: 240px;" v-decorator="['c111', {...inputRequired, initialValue: initValue('c111')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + <contact-form ref="createModal" @ok="handleOk" /> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import _ from 'lodash' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, recoverSubmit, exportFormData } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import 'url-search-params-polyfill' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +export default { + name: 'mask1', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + formLayout: 'horizontal', + markName: 'zkbszl', + title: '基线', + openKeys: [], + defaultSelectedKeys: [1], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + "border-right": "1px solid #ddd" + }, + clientHeight: '', + contentHeight: '', + baselineFormStyle: { + // "height": "700px", + // "padding-left": "20px", + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 6, offset: 6 } + }, + labelColOffset2: { + md: { span: 3, offset: 6 } + }, + wrapperOffset: { + md: { span: 12 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + isIcon: false, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + zkbszl: undefined, + controla44: false, + controla45: false, + controla41: false, + controla42: false, + controla43: false, + controlb61: false, + controlb51: false, + controlb62: false, + controlb63: false, + controlb64: false, + controlb65: false, + controlb67: false, + controlb68: false, + controlb7: false, + controlb72: false, + controlb8: false, + controlb9: false, + controlb917: false, + controlb10: false, + controlb1014: false, + controlb11: false, + controlb1113: false, + controlb12: false, + controlb14: false, + controlb144: false, + controlb15: false, + controlb1538: false, + controlb1615: false, + controlb1831: false, + controlb191: false, + controlb20: false, + controlb202: false, + controlb21: false, + controla413: false, + controlb82: false, + controlb122: false, + spinning: false, + executeStatus: false, + b2: undefined, + b3: undefined, + controlb70: false, + selectedKeys: [], + isGroup: this.$ls.get(ACCESS_TOKEN).roleId == 1 || false, + canEdit: false, + submitInfo: undefined, + totalStatus: 1, + controlc1: false, + controlc11: false, + initB5: false, + initB6: false, + initB17: false + } + }, + created() { + var that = this + this.defaultSelectedKeys = [1] + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + that.totalStatus = res.data.patientBasis.submitStatus + // that.form.$forceUpdate() + that.isIcon = that.patient.isIcon === 1 + }) + .catch(error => { + console.log(error) + }) + this.getFormData() + }, + activated() { + this.selectedKeys = [1] + this.CloseSidebar() + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + }) + .catch(error => { + console.log(error) + }) + }, + mounted() { + this.form.setFieldsValue({ b70: '-1' }) + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + getFormData() { + this.spinning = true + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + this.spinning = false + if (res.data && res.data.zkbszl) + that.zkbszl = that.dealAnswers(res.data.zkbszl) + }) + .catch(error => { + this.spinning = false + console.log(error) + }) + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + detect(d, v) { + if(Array.isArray(this.form.getFieldValue(d)) && this.form.getFieldValue(d).indexOf(v) > -1) { + return true + } else { + return false + } + }, + handleNone(e, d, v, arr) { + if(e.target.checked){ + let data = {} + data[d] = [v] + this.$nextTick(() => { + this.form.setFieldsValue(data) + arr.forEach((t) => { + this[t] = false + }) + }) + } else { + if(d === 'b5') { + this.initB5 = false + } + if(d === 'b6') { + this.initB6 = false + } + if(d === 'b17') { + this.initB17 = false + } + } + }, + initValue(key, type = 'normal') { + if (!this.zkbszl) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.zkbszl[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.zkbszl[key]) + } else if (type === 'array') { + return this.zkbszl[key].split(',') + } else { + return this.zkbszl[key] + '' + } + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + changeDate(date) { + let timeDiff = Math.abs(new Date(date._d) - new Date(this.getBirthdayByIdNO(this.patient.card))); + // 将毫秒数转换为年数 + let yearDiff = timeDiff / (1000 * 3600 * 24 * 365.25); // 考虑闰年 + // 判断年数是否大于 10 年 + if (yearDiff < 10) { + this.$message.warning('是否为儿童确诊支扩'); + } + }, + handleChange(valus) { + if (valus.indexOf('3') >= 0) { + this.$nextTick(() => { + this.form.setFieldsValue({ 'a1': ['3'] }) + }) + } + }, + dealAnswers(answer) { + var that = this + if (answer && !_.isEmpty(answer)) { + var splitArr = [] + if (answer.a4) { + splitArr = answer.a4.split(',') + if (splitArr.indexOf('1') > -1) { + that.controla44 = true + } + if (splitArr.indexOf('2') > -1) { + that.controla41 = true + } + if (splitArr.indexOf('3') > -1) { + that.controla43 = true + } + if (splitArr.indexOf('4') > -1) { + that.controla42 = true + } + if (splitArr.indexOf('13') > -1) { + that.controla413 = true + } + if (splitArr.indexOf('10') > -1) { + that.controla45 = true + } + } + if (answer.b5) { + splitArr = answer.b5.split(',') + if (splitArr.indexOf('6') > -1) { + that.controlb51 = true + } + if(splitArr.indexOf('7') > -1) { + this.initB5 = true + } + } + if (answer.b6) { + splitArr = answer.b6.split(',') + if (splitArr.indexOf('1') > -1) { + that.controlb61 = true + } + if (splitArr.indexOf('2') > -1) { + that.controlb62 = true + } + if (splitArr.indexOf('3') > -1) { + that.controlb63 = true + } + if (splitArr.indexOf('4') > -1) { + that.controlb64 = true + } + if (splitArr.indexOf('5') > -1) { + that.controlb65 = true + } + if (splitArr.indexOf('6') > -1) { + that.initB6 = true + } + if (splitArr.indexOf('7') > -1) { + that.controlb67 = true + } + if (splitArr.indexOf('8') > -1) { + that.controlb68 = true + } + } + + if (answer.b70 === 1) { + that.controlb70 = true + } + + if (answer.b7 === 1) { + that.controlb7 = true + } + if (answer.b71) { + splitArr = answer.b71.split(',') + if (splitArr.indexOf('11') > -1) { + that.controlb72 = true + } + } + if (answer.b8 === 1) { + that.controlb8 = true + } + if (answer.b81) { + splitArr = answer.b81.split(',') + if (splitArr.indexOf('5') > -1) { + that.controlb82 = true + } + } + if (answer.b9 === 1) { + that.controlb9 = true + } + if (answer.b91) { + splitArr = answer.b91.split(',') + if (splitArr.indexOf('7') > -1) { + that.controlb917 = true + } + } + if (answer.b10 === 1) { + that.controlb10 = true + } + if (answer.b11 === 1) { + that.controlb11 = true + } + if (answer.b12 && answer.b12 === '1') { + that.controlb12 = true + } + if (answer.b14 && answer.b14 === '1') { + that.controlb14 = true + } + if (answer.b143) { + splitArr = answer.b143.split(',') + if (splitArr.indexOf('16') > -1) { + that.controlb144 = true + } + } + if (answer.b15 && answer.b15 === 1) { + that.controlb15 = true + } + if (answer.b153) { + splitArr = answer.b153.split(',') + if (splitArr.indexOf('8') > -1) { + that.controlb1538 = true + } + } + if (answer.b161) { + splitArr = answer.b161.split(',') + if (splitArr.indexOf('5') > -1) { + that.controlb1615 = true + } + } + if (answer.b20 && answer.b20 === 1) { + that.controlb20 = true + } + if (answer.b21 && answer.b21 === 1) { + that.controlb21 = true + } + if (answer.b101) { + splitArr = answer.b101.split(',') + if (splitArr.indexOf('4') > -1) { + that.controlb1014 = true + } + } + if (answer.b111) { + splitArr = answer.b111.split(',') + if (splitArr.indexOf('3') > -1) { + that.controlb1113 = true + } + } + if (answer.b121) { + splitArr = answer.b121.split(',') + if (splitArr.indexOf('6') > -1) { + that.controlb122 = true + } + } + if (answer.b19 && (answer.b19 === 1 || answer.b19 === 2)) { + that.controlb191 = true + } + if (answer.b183 && answer.b183 === 1) { + that.controlb1831 = true + } + if (answer.b201) { + splitArr = answer.b201.split(',') + if (splitArr.indexOf('5') > -1) { + that.controlb202 = true + } + } + if(answer.c1 === 1) { + that.controlc1 = true + } + if(answer.c11 === -1) { + that.controlc11 = true + } + if (answer.b17) { + splitArr = answer.b17.split(',') + if (splitArr.indexOf('10') > -1) { + that.initB17 = true + } + } + } + return answer + }, + changeSelect(e, t) { + this[t] = e.target.checked + }, + changeRadio(e, t) { + let that = this + if (t === 'controlb70' && e.target.value === '1') { + this.controlb7 = false + this.controlb72 = false + this.controlb8 = false + this.controlb82 = false + this.controlb9 = false + this.controlb917 = false + this.controlb10 = false + this.controlb1014 = false + this.controlb11 = false + this.controlb1113 = false + this.controlb12 = false + this.controlb122 = false + this.controlb14 = false + this.controlb144 = false + this.controlb15 = false + this.controlb1538 = false + this.controlb1615 = false + setTimeout(function() { + that.form.setFieldsValue({ + b7: '-1', + b8: '-1', + b9: '-1', + b10: '-1', + b11: '-1', + b12: '-1', + b13: '-1', + b14: '-1', + b15: '-1', + b161: ['1'] + }) + }) + } + if (t === 'controlb191') { + if (e.target.value === '1' || e.target.value === '2') { + this[t] = true + } else { + this[t] = false + } + } else if (t === 'controlc11'){ + if (e.target.value === '-1') { + this[t] = true + } else { + this[t] = false + } + } else if(e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + if ((e.key >= 31 && e.key <= 36) || (e.key >= 78 && e.key <= 83)) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + e.key) + } else { + this.$router.replace('/list/basis/' + this.patientBasisId + '/' + e.key) + } + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (parseInt(this.form.getFieldValue('b2')) > parseInt(this.form.getFieldValue('b3'))) { + this.$message.warning('过去一年的急性加重次数必须大于等于过去一年的住院急性加重次数'); + return false + } + if (!errors) { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'a1': typeof re['a1'] !== 'undefined' ? re['a1'].join(',') : '', + 'a3': typeof re['a3'] !== 'undefined' ? re['a3'].format('YYYY-MM-DD') : '', + 'a4': typeof re['a4'] !== 'undefined' ? re['a4'].join(',') : '', + 'b5': typeof re['b5'] !== 'undefined' ? re['b5'].join(',') : '', + 'b6': typeof re['b6'] !== 'undefined' ? re['b6'].join(',') : '', + 'b17': typeof re['b17'] !== 'undefined' ? re['b17'].join(',') : '', + 'b61': typeof re['b61'] !== 'undefined' ? re['b61'].format('YYYY-MM') : '', + 'b62': typeof re['b62'] !== 'undefined' ? re['b62'].format('YYYY-MM') : '', + 'b63': typeof re['b63'] !== 'undefined' ? re['b63'].format('YYYY-MM') : '', + 'b64': typeof re['b64'] !== 'undefined' ? re['b64'].format('YYYY-MM') : '', + 'b65': typeof re['b65'] !== 'undefined' ? re['b65'].format('YYYY-MM') : '', + 'b66': typeof re['b66'] !== 'undefined' ? re['b66'].format('YYYY-MM') : '', + 'b71': typeof re['b71'] !== 'undefined' ? re['b71'].join(',') : '', + 'b81': typeof re['b81'] !== 'undefined' ? re['b81'].join(',') : '', + 'b91': typeof re['b91'] !== 'undefined' ? re['b91'].join(',') : '', + 'b101': typeof re['b101'] !== 'undefined' ? re['b101'].join(',') : '', + 'b111': typeof re['b111'] !== 'undefined' ? re['b111'].join(',') : '', + 'b121': typeof re['b121'] !== 'undefined' ? re['b121'].join(',') : '', + 'b143': typeof re['b143'] !== 'undefined' ? re['b143'].join(',') : '', + 'b153': typeof re['b153'] !== 'undefined' ? re['b153'].join(',') : '', + 'b161': typeof re['b161'] !== 'undefined' ? re['b161'].join(',') : '', + 'b201': typeof re['b201'] !== 'undefined' ? re['b201'].join(',') : '', + 'b211': typeof re['b211'] !== 'undefined' ? re['b211'].format('YYYY-MM-DD') : '' + } + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.zkbszl && this.zkbszl.zkbszlId) { + re.zkbszlId = this.zkbszl.zkbszlId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + } else { + this.spinning = false + } + }) + }, + save() { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'a1': typeof re['a1'] !== 'undefined' ? re['a1'].join(',') : '', + 'a3': typeof re['a3'] !== 'undefined' ? re['a3'].format('YYYY-MM-DD') : '', + 'a4': typeof re['a4'] !== 'undefined' ? re['a4'].join(',') : '', + 'b5': typeof re['b5'] !== 'undefined' ? re['b5'].join(',') : '', + 'b6': typeof re['b6'] !== 'undefined' ? re['b6'].join(',') : '', + 'b17': typeof re['b17'] !== 'undefined' ? re['b17'].join(',') : '', + 'b61': typeof re['b61'] !== 'undefined' ? re['b61'].format('YYYY-MM') : '', + 'b62': typeof re['b62'] !== 'undefined' ? re['b62'].format('YYYY-MM') : '', + 'b63': typeof re['b63'] !== 'undefined' ? re['b63'].format('YYYY-MM') : '', + 'b64': typeof re['b64'] !== 'undefined' ? re['b64'].format('YYYY-MM') : '', + 'b65': typeof re['b65'] !== 'undefined' ? re['b65'].format('YYYY-MM') : '', + 'b66': typeof re['b66'] !== 'undefined' ? re['b66'].format('YYYY-MM') : '', + 'b71': typeof re['b71'] !== 'undefined' ? re['b71'].join(',') : '', + 'b81': typeof re['b81'] !== 'undefined' ? re['b81'].join(',') : '', + 'b91': typeof re['b91'] !== 'undefined' ? re['b91'].join(',') : '', + 'b101': typeof re['b101'] !== 'undefined' ? re['b101'].join(',') : '', + 'b111': typeof re['b111'] !== 'undefined' ? re['b111'].join(',') : '', + 'b121': typeof re['b121'] !== 'undefined' ? re['b121'].join(',') : '', + 'b143': typeof re['b143'] !== 'undefined' ? re['b143'].join(',') : '', + 'b153': typeof re['b153'] !== 'undefined' ? re['b153'].join(',') : '', + 'b161': typeof re['b161'] !== 'undefined' ? re['b161'].join(',') : '', + 'b201': typeof re['b201'] !== 'undefined' ? re['b201'].join(',') : '', + 'b211': typeof re['b211'] !== 'undefined' ? re['b211'].format('YYYY-MM-DD') : '' + } + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.zkbszl && this.zkbszl.zkbszlId) { + re.zkbszlId = this.zkbszl.zkbszlId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + withdraw() { + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.zkbszl.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + _importData() { + var that = this + this.$confirm({ + title: '是否确定导入数据?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('basisMarkId', that.maskId) + params.append('patientBasisId', that.patientBasisId) + exportFormData(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + that.zkbszl = _.extend(that.zkbszl || {}, that.dealAnswers(res.data.data.zkbszl)) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + + .treeSubTitle { + font-size: 14px; + } + + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + margin-top: 42px; + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 20px 20px 60px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + + .center.ant-checkbox-group{ + position: relative; + top: 10px; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +@media screen and (max-width: 1366px) { + .control-m-line.ant-checkbox-group { + top: 10px; + position: relative; + } +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/account/center/components/mask-10.vue b/src/views/account/center/components/mask-10.vue new file mode 100644 index 0000000000..1eced490e2 --- /dev/null +++ b/src/views/account/center/components/mask-10.vue @@ -0,0 +1,988 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="clearfix" style="position:relative;top: 20px;"> + <a-button class="btn fr" type="primary" @click="_importData">导入数据</a-button> + </div> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!(ICON患者,必须填写实际检测值。基线访视辅助检查可使用入组前6个月内的检查结果,但要求从检查日期到入组日期之间未发生急性加重,否则需要在基线数据收集时重新辅助检查)</p> + <div class="title">1.血常规 + <a style="float: right;font-size:12px;margin-right: 12px;" @click="showOcr = !showOcr">OCR</a> + <!-- <a-icon type="zoom-in" style="float: right;margin-top: 12px;margin-right: 12px;color: #ccc;" @click="changeOcr" /> --> + </div> + <a-form-item label="血常规报告上传 :" :labelCol="labelColHor" :wrapperCol="wrapperHor" style="margin-top: 10px;" v-if="showOcr"> + <div class="clearfix" style="margin-top: 10px;"> + <a-upload :action="uploadUrl" class="images1" v-viewer listType="picture-card" :fileList="fileList1" @preview="handlePreview1" @change="handleChange1"> + <div v-if="fileList1.length < 1"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-button style="position: absolute;top: 74px;left: 120px;font-size: 12px;padding: 0 5px;height: 30px;" @click="_import(fileList1,1)" v-if="fileList1.length === 1 && showOcr">OCR识别</a-button> + <!-- <a-modal :visible="previewVisible1" :footer="null" @cancel="handleCancel1"> + <img alt="example" style="width: 100%" :src="previewImage1" /> + </a-modal> --> + </div> + </a-form-item> + <a-form-item label="检查时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['f5', { initialValue: initValue('f5', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> + <a-form-item label="(1) 血红蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b1', {...inputRequired, initialValue: initValue('b1')}]" addonAfter="g/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(2) 白细胞:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b2', {...inputRequired, initialValue: initValue('b2')}]" addonAfter="10^9/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 红细胞:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b3', {...inputRequired, initialValue: initValue('b3')}]" addonAfter="10^12/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(4) 血小板:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b4', {...inputRequired, initialValue: initValue('b4')}]" addonAfter="10^9/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(5) 中性粒细胞绝对值:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b5', {...inputRequired, initialValue: initValue('b5')}]" addonAfter="10^9/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(6) 嗜酸细胞绝对值:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b6', {...inputRequired, initialValue: initValue('b6')}]" addonAfter="10^9/L" autocomplete="off"></a-input> + </a-form-item> + <div class="title">2.血生化</div> + <a-form-item label="血生化报告上传 :" :labelCol="labelColHor" :wrapperCol="wrapperHor" style="margin-top: 10px;" v-if="showOcr"> + <div class="clearfix" style="margin-top: 10px;"> + <a-upload :action="uploadUrl" class="images2" v-viewer listType="picture-card" :fileList="fileList2" @preview="handlePreview2" @change="handleChange2"> + <div v-if="fileList2.length < 1"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-button style="position: absolute;top: 74px;left: 120px;font-size: 12px;padding: 0 5px;height: 30px;" @click="_import(fileList2,2)" v-if="fileList2.length === 1 && showOcr">OCR识别</a-button> + <!-- <a-modal :visible="previewVisible2" :footer="null" @cancel="handleCancel2"> + <img alt="example" style="width: 100%" :src="previewImage2" /> + </a-modal> --> + </div> + </a-form-item> + <a-form-item label="检查时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['f6', { initialValue: initValue('f6', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> + <a-form-item label="(1) 血糖:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c1', {...inputRequired, initialValue: initValue('c1')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(2) 白蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c4', {...inputRequired, initialValue: initValue('c4')}]" addonAfter="g/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 谷丙转氨酶:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c2', { initialValue: initValue('c2')}]" addonAfter="IU/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(4) 谷草转氨酶:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c3', { initialValue: initValue('c3')}]" addonAfter="IU/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(5) 前白蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c5', { initialValue: initValue('c5')}]" addonAfter="g/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(6) 球蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c6', { initialValue: initValue('c6')}]" addonAfter="g/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(7) 肌酐:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c7', { initialValue: initValue('c7')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(8) 尿素:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c8', { initialValue: initValue('c8')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(9) 钾:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c9', { initialValue: initValue('c9')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(10) 钠:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c10', { initialValue: initValue('c10')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(11) 钙:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c11', { initialValue: initValue('c11')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(12) 磷:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c12', { initialValue: initValue('c12')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(13) 总胆固醇:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c13', { initialValue: initValue('c13')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(14) 甘油三脂:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c14', { initialValue: initValue('c14')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(15) 高密度脂蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c15', { initialValue: initValue('c15')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(16) 低密度脂蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c16', { initialValue: initValue('c16')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(17) DD二聚体:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-input style="width: 240px;" v-decorator="['c17', { initialValue: initValue('c17')}]" addonAfter="ng/mL" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="DD二聚体:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['c171', { initialValue: initValue('c171')}]"> + <a-radio value="1">正常</a-radio> + <a-radio value="2">降低</a-radio> + <a-radio value="3">升高</a-radio> + <a-radio value="4">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(18) 维生素D:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-input style="width: 240px;" v-decorator="['c18', { initialValue: initValue('c18')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="维生素D:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['c181', { initialValue: initValue('c181')}]"> + <a-radio value="1">正常</a-radio> + <a-radio value="2">降低</a-radio> + <a-radio value="3">升高</a-radio> + <a-radio value="4">未测量</a-radio> + </a-radio-group> + </a-form-item> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, getOcrResult, recoverSubmit, exportFormData } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +export default { + name: 'mask10', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + showOcr: false, + // previewVisible1: false, + // previewImage1: '', + // previewVisible2: false, + // previewImage2: '', + uploadUrl: process.env.VUE_APP_API_UPLOAD_URL, + viewPicUrl: process.env.VUE_APP_API_VIEW_PIC_URL, + fileList1: [], + fileList2: [], + markName: 'qtsyjc', + title: '基线', + openKeys: [], + defaultSelectedKeys: [10], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: '100%', + "padding-right": "0px", + "border-right": "1px solid #ddd" + }, + baselineFormStyle: { + // height: '444px', + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 7 }, + md: { span: 7 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 17 }, + md: { span: 17 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 4, offset: 7 } + }, + wrapperOffset: { + md: { span: 13 } + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + qtsyjc: undefined, + spinning: false, + executeStatus: false, + confirmLoading: false, + canEdit: false, + submitInfo: undefined, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + } + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + this.getFormData() + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeSelect(e, t) { + this[t] = e.target.checked + }, + changeRadio(e, t) {}, + handleClick(e) { + if (e.key >= 31 && e.key <= 36) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + e.key) + } else { + this.$router.replace('/list/basis/' + this.patientBasisId + '/' + e.key) + } + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + re = { + ...re, + 'f5': typeof re['f5'] !== 'undefined' ? re['f5'].format('YYYY-MM-DD') : '', + 'f6': typeof re['f6'] !== 'undefined' ? re['f6'].format('YYYY-MM-DD') : '' + } + var that = this + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.qtsyjc && this.qtsyjc.qtsyjcId) { + re.qtsyjcId = this.qtsyjc.qtsyjcId + } + //附件 + if (this.fileList1 && this.fileList1.length) { + var a = [] + _.each(this.fileList1, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + } + //附件 + if (this.fileList2 && this.fileList2.length) { + var a = [] + _.each(this.fileList2, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileNameOther', JSON.stringify(a)) + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + initValue(key, type = 'normal') { + if (!this.qtsyjc) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.qtsyjc[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.qtsyjc[key]) + } else if (type === 'array') { + return this.qtsyjc[key].split(',') + } else { + return this.qtsyjc[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + + } + return answer + }, + getFormData() { + this.spinning = true + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + if (res.data && res.data.qtsyjc) { + that.qtsyjc = that.dealAnswers(res.data.qtsyjc) + } + if (res.data.annexListXcg && res.data.annexListXcg.length) { + that.fileList1 = _.map(res.data.annexListXcg, function(v) { + return { + uid: v.annexId, + url: that.viewPicUrl + v.annexAddress, + name: v.annexAddress, + status: 'done' + } + }) + } + if (res.data.annexListXsh && res.data.annexListXsh.length) { + that.fileList2 = _.map(res.data.annexListXsh, function(v) { + return { + uid: v.annexId, + url: that.viewPicUrl + v.annexAddress, + name: v.annexAddress, + status: 'done' + } + }) + } + this.spinning = false + }) + .catch(error => { + this.spinning = false + console.log(error) + }) + }, + save() { + var re = this.form.getFieldsValue() + re = { + ...re, + 'f5': typeof re['f5'] !== 'undefined' ? re['f5'].format('YYYY-MM-DD') : '', + 'f6': typeof re['f6'] !== 'undefined' ? re['f6'].format('YYYY-MM-DD') : '' + } + var that = this + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.qtsyjc && this.qtsyjc.qtsyjcId) { + re.qtsyjcId = this.qtsyjc.qtsyjcId + } + //附件 + if (this.fileList1 && this.fileList1.length) { + var a = [] + _.each(this.fileList1, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + } + //附件 + if (this.fileList2 && this.fileList2.length) { + var a = [] + _.each(this.fileList2, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileNameOther', JSON.stringify(a)) + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + // handleCancel1() { + // this.previewVisible1 = false; + // }, + handlePreview1(file) { + const viewer = this.$el.querySelector('.images1').$viewer + viewer.show() + // this.previewImage1 = file.url || file.thumbUrl; + // this.previewVisible1 = true; + }, + handleChange1({ fileList }) { + var that = this + this.fileList1 = fileList; + if (fileList.every(function(v) { return v.status === 'done'})) { + this.spinning = false + this.fileList1.forEach((f,i) => { + if(f.response){ + that.$set(that.fileList1,i,{ + name: f.response.fileName, + status: 'done', + uid: f.uid, + url: f.response.data.src + }) + } + }) + } + }, + // handleCancel2() { + // this.previewVisible2 = false; + // }, + handlePreview2(file) { + const viewer = this.$el.querySelector('.images2').$viewer + viewer.show() + // this.previewImage2 = file.url || file.thumbUrl; + // this.previewVisible2 = true; + }, + handleChange2({ fileList }) { + var that = this + this.fileList2 = fileList; + if (fileList.every(function(v) { return v.status === 'done'})) { + this.spinning = false + this.fileList2.forEach((f,i) => { + if(f.response){ + that.$set(that.fileList2,i,{ + name: f.response.fileName, + status: 'done', + uid: f.uid, + url: f.response.data.src + }) + } + }) + } + }, + _import(fileList, type) { + // console.log(fileList[0].response.data.src); + var that = this + this.spinning = true + var params = new URLSearchParams() + params.append('url', fileList[0].response ? fileList[0].response.data.src : fileList[0].url) + params.append('type', type) + getOcrResult(params) + .then(res => { + that.spinning = false + that.$message.success(res.data.info) + // console.log(res.data); + that.qtsyjc = _.extend(that.qtsyjc || {}, that.dealAnswers(res.data)) + that.form.setFieldsValue(that.qtsyjc) + }) + .catch(error => { + // console.log(error) + that.spinning = false + that.$message.error(res.msg) + }) + }, + withdraw() { + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.qtsyjc.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + changeOcr() { + this.showOcr = true + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + _importData() { + var that = this + this.$confirm({ + title: '是否确定导入数据?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('basisMarkId', that.maskId) + params.append('patientBasisId', that.patientBasisId) + exportFormData(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + that.qtsyjc = _.extend(that.qtsyjc || {}, that.dealAnswers(res.data.data.qtsyjc)) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + + .treeSubTitle { + font-size: 14px; + } + + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + margin-top: 42px; + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 20px 20px 40px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/account/center/components/mask-2.vue b/src/views/account/center/components/mask-2.vue new file mode 100644 index 0000000000..114e9dca8c --- /dev/null +++ b/src/views/account/center/components/mask-2.vue @@ -0,0 +1,834 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="clearfix" style="position:relative;top: 20px;"> + <a-button class="btn fr" type="primary" @click="_importData">导入数据</a-button> + </div> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <!-- <a-button class="btn fr" v-if="patientBasis.type === 3" @click="import">导入</a-button> --> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!</p> + <div class="title">1.体格检查</div> + <a-form-item label="(1) 经皮血氧饱和度SpO2:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input @blur="handleSpO2" v-decorator="['a5', {...inputRequired, initialValue: initValue('a5')}]" style="width: 240px;" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(2) 身高:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input @blur="handleHeight" v-decorator="['a6', {...inputRequired, initialValue: initValue('a6')}]" style="width: 240px;" addonAfter="cm" @change="changeHeight($event)" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 体重:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input @blur="handleWeight" v-decorator="['a7', {...inputRequired, initialValue: initValue('a7')}]" style="width: 240px;" addonAfter="kg" @change="changeWeight($event)" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(4) BMI(自动演算出):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['a8', {initialValue: initValue('a8')}]" :readOnly="true" style="width: 240px;" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(5) 肺部体征:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + </a-form-item> + <a-form-item label="桶状胸" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b1', {...require2, initialValue: initValue('b1')}]"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="杵状指" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b2', {...require2, initialValue: initValue('b2')}]"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="啰音" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['a9', {...require2, initialValue: initValue('a9')}]" @change="changeRadio($event, 'controla9')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla9"> + <a-form-item label="啰音类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-checkbox-group v-decorator="['a91', {...selectRequired, initialValue: initValue('a91', 'array')}]"> + <a-checkbox value="1">湿罗音</a-checkbox> + <a-checkbox value="2">干啰音</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="啰音部位" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-input style="width: 240px;" v-decorator="['a92', {...inputRequired, initialValue: initValue('a92')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(6) 右位心:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a10', {...require1, initialValue: initValue('a10')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, computeScore, recoverSubmit, exportFormData } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +export default { + name: 'mask2', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + markName: 'tgjc', + title: '基线', + openKeys: [], + defaultSelectedKeys: [2], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: '100%', + "padding-right": "0px", + "border-right": "1px solid #ddd" + }, + baselineFormStyle: { + // height: '444px', + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + controla9: false, + tgjc: undefined, + height: undefined, + weight: undefined, + spinning: false, + executeStatus: false, + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined + } + }, + created() { + var that = this + this.defaultSelectedKeys = [2] + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + this.getFormData() + }, + activated() { + this.defaultSelectedKeys = [2] + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeSelect(e, t) { + this[t] = e.target.checked + }, + handleSpO2(e) { + if (e.target.value && e.target.value < 50) { + this.$message.warning('请确认经皮血氧饱和度SpO2数值是否正确'); + } + }, + handleHeight(e) { + if (e.target.value && e.target.value < 130) { + this.$message.warning('请确认身高数值是否正确'); + } + }, + handleWeight(e) { + if (e.target.value && e.target.value < 30) { + this.$message.warning('请确认体重数值是否正确'); + } + }, + changeRadio(e, t) { + if (t === 'controlb191') { + if (e.target.value === '1' || e.target.value === '2') { + this[t] = true + } else { + this[t] = false + } + } else if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + if (e.key >= 31 && e.key <= 36) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + e.key) + } else { + this.$router.replace('/list/basis/' + this.patientBasisId + '/' + e.key) + } + }, + getFormData() { + this.spinning = true + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + this.spinning = false + if (res.data && res.data.tgjc) + that.tgjc = that.dealAnswers(res.data.tgjc) + }) + .catch(error => { + this.spinning = false + console.log(error) + }) + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'a91': typeof re['a91'] !== 'undefined' ? re['a91'].join(',') : '' + } + console.log(re) + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.tgjc && this.tgjc.tgjcId) { + re.tgjcId = this.tgjc.tgjcId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + that.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + } else { + this.spinning = false + } + }) + }, + initValue(key, type = 'normal') { + if (!this.tgjc) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.tgjc[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.tgjc[key]) + } else if (type === 'array') { + return this.tgjc[key].split(',') + } else { + return this.tgjc[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + if (answer.a9 === '1') { + this.controla9 = true + } + if (answer.a6) { + this.height = answer.a6 + } + if (answer.a7) { + this.weight = answer.a7 + } + } + return answer + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + save() { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'a91': typeof re['a91'] !== 'undefined' ? re['a91'].join(',') : '' + } + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.tgjc && this.tgjc.tgjcId) { + re.tgjcId = this.tgjc.tgjcId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + that.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + computeBMI() { + var that = this + var height = this.height + var weight = this.weight + if (height && weight) { + var params = new URLSearchParams() + params.append('scoreType', 'bmi') + params.append('tgjcStr', JSON.stringify({ a6: height, a7: weight })) + computeScore(params) + .then(res => { + console.log(res.data.a8) + that.form.setFieldsValue({ + a8: res.data.a8 + }) + }) + .catch(error => { + console.log(error) + }) + } + }, + changeHeight(e) { + this.height = e.target.value + if (!e.target.value) { + this.form.setFieldsValue({ + a8: '' + }) + } else { + this.computeBMI() + } + }, + changeWeight(e) { + this.weight = e.target.value + if (!e.target.value) { + this.form.setFieldsValue({ + a8: '' + }) + } else { + this.computeBMI() + } + }, + withdraw(){ + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.tgjc.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + _importData() { + var that = this + this.$confirm({ + title: '是否确定导入数据?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('basisMarkId', that.maskId) + params.append('patientBasisId', that.patientBasisId) + exportFormData(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + that.tgjc = _.extend(that.tgjc || {}, that.dealAnswers(res.data.data.tgjc)) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + .treeSubTitle{ + font-size: 14px; + } + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + margin-top: 42px; + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 20px 20px 40px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +@media screen and (max-width: 1366px) { + .control-m-line.ant-checkbox-group { + top: 10px; + position: relative; + } +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/account/center/components/mask-4.vue b/src/views/account/center/components/mask-4.vue new file mode 100644 index 0000000000..cbb39363eb --- /dev/null +++ b/src/views/account/center/components/mask-4.vue @@ -0,0 +1,1139 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="clearfix" style="position:relative;top: 20px;"> + <a-button class="btn fr" type="primary" @click="_importData">导入数据</a-button> + </div> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <!-- <a-button class="btn fr" v-if="patientBasis.type === 3" @click="import">导入</a-button> --> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!</p> + <div class="title">1.呼吸系统相关治疗</div> + <a-form-item label="(1) 长期氧疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b1', {...require1, initialValue: initValue('b1')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(2) 无创辅助通气:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b2', {...require1, initialValue: initValue('b2')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(3) 患者是否进行有规律的物理治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b3', {...require1, initialValue: initValue('b3')}]" @change="changeRadio($event, 'controlb3')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="治疗方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb3"> + <a-checkbox-group v-decorator="['b31', {...selectRequired, initialValue: initValue('b31', 'array')}]"> + <a-checkbox value="1" :disabled="detect('b31', '5')">手动拍击背部排痰</a-checkbox> + <a-checkbox value="2" :disabled="detect('b31', '5')">体位引流</a-checkbox> + <a-checkbox value="3" :disabled="detect('b31', '5')">规律锻炼身体</a-checkbox> + <a-checkbox value="4" :disabled="detect('b31', '5')">借助排痰仪器</a-checkbox> + <a-checkbox value="6" :disabled="detect('b31', '5')">主动循环呼吸</a-checkbox> + <a-checkbox value="5" @change="handleNone($event, 'b31', '5')">无</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="(4) 有规律的呼吸疾病药物治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b4', {...require1, initialValue: initValue('b4')}]" @change="changeRadio($event, 'controlb4')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb4"> + <a-form-item label="4-1 规律抗生素治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b41', {...selectRequired, initialValue: initValue('b41', 'array')}]"> + <a-checkbox value="0" @change="handleNone($event, 'b41', '0', ['controlb411', 'controlb412'])">无</a-checkbox> + <a-checkbox value="1" :disabled="detect('b41', '0')" :checked="controlb411" @change="changeSelect($event, 'controlb411')">口服</a-checkbox> + <a-checkbox value="2" :disabled="detect('b41', '0')" :checked="controlb412" @change="changeSelect($event, 'controlb412')">吸入/雾化</a-checkbox> + </a-checkbox-group> + </a-form-item> + <div v-if="controlb4 && controlb411"> + <a-form-item label="长期性口服抗生素治疗(连续使用大于三个月的治疗):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b414', {...selectRequired, initialValue: initValue('b414', 'array')}]"> + <a-checkbox value="1" >阿奇霉素</a-checkbox> + <a-checkbox value="2" >克拉霉素</a-checkbox> + <a-checkbox value="3" >红霉素</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'controlb41')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他口服抗生素:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb4 && controlb411 && controlb41"> + <a-input style="width: 240px;" v-decorator="['b4141', {...inputRequired, initialValue: initValue('b4141')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <div v-if="controlb4 && controlb412"> + <a-form-item label="规律吸入/雾化抗生素药物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b42', {...selectRequired, initialValue: initValue('b42', 'array')}]"> + <a-checkbox value="2">妥布霉素</a-checkbox> + <a-checkbox value="3">庆大霉素</a-checkbox> + <a-checkbox value="4">阿米卡星</a-checkbox> + <a-checkbox value="5" @change="changeSelect($event, 'controlb42')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他吸入/雾化抗生素药物:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb42"> + <a-input style="width: 240px;" v-decorator="['b421', {...inputRequired, initialValue: initValue('b421')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="4-2 祛痰药物治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b43', {...selectRequired, initialValue: initValue('b43', 'array')}]"> + <a-checkbox value="0" @change="handleNone($event, 'b43', '0', ['controlb431', 'controlb432'])">无</a-checkbox> + <a-checkbox value="1" :disabled="detect('b43', '0')" :checked="controlb431" @change="changeSelect($event, 'controlb431')">口服</a-checkbox> + <a-checkbox value="2" :disabled="detect('b43', '0')" :checked="controlb432" @change="changeSelect($event, 'controlb432')">雾化</a-checkbox> + </a-checkbox-group> + </a-form-item> + <div v-if="controlb431"> + <a-form-item label="口服祛痰类药物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b431', {...selectRequired, initialValue: initValue('b431', 'array')}]"> + <a-checkbox value="1">N-乙酰半胱氨酸</a-checkbox> + <a-checkbox value="2">氨溴索</a-checkbox> + <a-checkbox value="3">桉柠蒎</a-checkbox> + <a-checkbox value="4">羧甲司坦</a-checkbox> + <a-checkbox value="5">厄多司坦</a-checkbox> + <a-checkbox value="6">福多司坦</a-checkbox> + <a-checkbox value="7" @change="changeSelect($event, 'controlb43')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他祛痰类药物:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb431 && controlb43"> + <a-input style="width: 240px;" v-decorator="['b432', {...inputRequired, initialValue: initValue('b432')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <div v-if="controlb432"> + <a-form-item label="雾化药物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b433', {...selectRequired, initialValue: initValue('b433', 'array')}]"> + <a-checkbox value="1">N-乙酰半胱氨酸</a-checkbox> + <a-checkbox value="3">雾化生理盐水</a-checkbox> + <a-checkbox value="4">雾化吸入高渗盐水</a-checkbox> + <a-checkbox value="2" :checked="controlb433" @change="changeSelect($event, 'controlb433')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他雾化药物:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb432 && controlb433"> + <a-input style="width: 240px;" v-decorator="['b434', {...inputRequired, initialValue: initValue('b434')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="4-3 支气管扩张剂/吸入激素:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b48', {...selectRequired, initialValue: initValue('b48', 'array')}]" class="center"> + <a-checkbox value="0" @change="handleNone($event, 'b48', '0', ['controlb48'])">无</a-checkbox> + <a-checkbox value="1" :disabled="detect('b48', '0')">LAMA</a-checkbox> + <a-checkbox value="2" :disabled="detect('b48', '0')">LABA</a-checkbox> + <a-checkbox value="3" :disabled="detect('b48', '0')">LABA/LAMA</a-checkbox> + <a-checkbox value="4" :disabled="detect('b48', '0')">ICS/LABA/LAMA</a-checkbox> + <a-checkbox value="5" :disabled="detect('b48', '0')">ICS/LABA</a-checkbox> + <a-checkbox value="6" :disabled="detect('b48', '0')">SABA</a-checkbox> + <a-checkbox value="7" :disabled="detect('b48', '0')">SAMA</a-checkbox> + <a-checkbox value="8" :disabled="detect('b48', '0')">白三烯受体拮抗剂</a-checkbox> + <a-checkbox value="9" :disabled="detect('b48', '0')">口服茶碱</a-checkbox> + <a-checkbox value="10" :disabled="detect('b48', '0')">雾化吸入支气管舒张剂</a-checkbox> + <a-checkbox value="11" :disabled="detect('b48', '0')" @change="changeSelect($event, 'controlb48')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他支气管扩张剂/吸入激素:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb48"> + <a-input style="width: 240px;" v-decorator="['b481', {...inputRequired, initialValue: initValue('b481')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="4-4 长期止血治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b46', {...require1, initialValue: initValue('b46')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="4-5 其他治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b47', { initialValue: initValue('b47')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(5) ABPA相关治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b5', {...require1, initialValue: initValue('b5')}]" @change="changeRadio($event, 'controlb5')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb5"> + <a-form-item label="抗真菌药物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b52', {...selectRequired, initialValue: initValue('b52', 'array')}]"> + <a-checkbox value="0" @change="handleNone($event, 'b52', '0', ['controlb52'])">无</a-checkbox> + <a-checkbox value="1" :disabled="detect('b52', '0')">伊曲康唑</a-checkbox> + <a-checkbox value="2" :disabled="detect('b52', '0')">伏立康唑</a-checkbox> + <a-checkbox value="3" :disabled="detect('b52', '0')" :checked="controlb52" @change="changeSelect($event, 'controlb52')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他抗真菌药物:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb5 && controlb52"> + <a-input style="width: 240px;" v-decorator="['b53', {...inputRequired, initialValue: initValue('b53')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="激素治疗" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b51', {...require1, initialValue: initValue('b51')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + </div> + <a-form-item label="(6) 免疫球蛋白缺乏相关治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b6', {...require1, initialValue: initValue('b6')}]" @change="changeRadio($event, 'controlb6')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb6"> + <a-form-item label="静脉注射免疫球蛋白药物名称:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b61', {...inputRequired, initialValue: initValue('b61')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(7) 患者是否曾接受疫苗治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b7', {...require1, initialValue: initValue('b7')}]" @change="changeRadio($event, 'controlb7')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb7"> + <a-form-item label="肺炎链球菌多糖疫苗(如PSV23):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b71', {...require1, initialValue: initValue('b71')}]" @change="changeRadio($event, 'controlb71')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="时间::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb7 && controlb71"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b711', {...dateRequire, initialValue: initValue('b711', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="肺炎链球菌结合疫苗(如PVC13):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b72', {...require1, initialValue: initValue('b72')}]" @change="changeRadio($event, 'controlb72')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="时间::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb7 && controlb72"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b721', {...dateRequire, initialValue: initValue('b721', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="过去1年,患者是否曾接受流感疫苗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b10', {...require1, initialValue: initValue('b10')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + </div> + <a-form-item label="(8) 患者是否曾接受免疫调节治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b8', {...require1, initialValue: initValue('b8')}]" @change="changeRadio($event, 'controlb8')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb8"> + <a-form-item label="治疗方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b81', {...selectRequired, initialValue: initValue('b81', 'array')}]"> + <a-checkbox value="1">细菌溶解产物胶囊</a-checkbox> + <a-checkbox value="2">匹多莫德</a-checkbox> + <a-checkbox value="3">胸腺肽</a-checkbox> + <a-checkbox value="4">脾氨肽</a-checkbox> + <a-checkbox value="5" :checked="controlb81" @change="changeSelect($event, 'controlb81')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他治疗::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb8 && controlb81"> + <a-input style="width: 240px;" v-decorator="['b82', {...inputRequired, initialValue: initValue('b82')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(10) 患者是否接受肺康复治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b11', {...require1, initialValue: initValue('b11')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, recoverSubmit, exportFormData } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +export default { + name: 'mask4', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + markName: 'hxxt', + title: '基线', + openKeys: [], + defaultSelectedKeys: [4], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: '100%', + "padding-right": "0px", + "border-right": "1px solid #ddd" + }, + baselineFormStyle: { + // height: '444px', + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 7 }, + md: { span: 7 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 17 }, + md: { span: 17 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 4, offset: 7 } + }, + wrapperOffset: { + md: { span: 13 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + hxxt: undefined, + controlb3: false, + controlb4: false, + controlb41: false, + controlb44: false, + controlb411: false, + controlb412: false, + controlb5: false, + controlb52: false, + controlb6: false, + controlb8: false, + controlb81: false, + spinning: false, + executeStatus: false, + controlb43: false, + controlb431: false, + controlb432: false, + controlb433: false, + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined, + controlb42: false, + controlb48: false, + controlb7: false, + controlb71: false, + controlb72: false + } + }, + created() { + var that = this + this.defaultSelectedKeys = [4] + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + that.getFormData() + }, + activated() { + this.getFormData() + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeSelect(e, t) { + this[t] = e.target.checked + }, + changeRadio(e, t) { + if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + if (e.key >= 31 && e.key <= 36) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + e.key) + } else { + this.$router.replace('/list/basis/' + this.patientBasisId + '/' + e.key) + } + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + var that = this + if(re.b4 === '1' && re.b41.indexOf('0') > -1 && re.b43.indexOf('0') > -1 && re.b48.indexOf('0') > -1 ) { + that.$message.error('有规律的呼吸疾病药物治疗不可同时勾选三项无') + return false + } + re = { + ...re, + 'b31': typeof re['b31'] !== 'undefined' ? re['b31'].join(',') : '', + 'b41': typeof re['b41'] !== 'undefined' ? re['b41'].join(',') : '', + 'b414': typeof re['b414'] !== 'undefined' ? re['b414'].join(',') : '', + 'b43': typeof re['b43'] !== 'undefined' ? re['b43'].join(',') : '', + 'b431': typeof re['b431'] !== 'undefined' ? re['b431'].join(',') : '', + 'b433': typeof re['b433'] !== 'undefined' ? re['b433'].join(',') : '', + 'b44': typeof re['b44'] !== 'undefined' ? re['b44'].join(',') : '', + 'b52': typeof re['b52'] !== 'undefined' ? re['b52'].join(',') : '', + 'b81': typeof re['b81'] !== 'undefined' ? re['b81'].join(',') : '', + 'b42': typeof re['b42'] !== 'undefined' ? re['b42'].join(',') : '', + 'b48': typeof re['b48'] !== 'undefined' ? re['b48'].join(',') : '', + 'b711': typeof re['b711'] !== 'undefined' ? re['b711'].format('YYYY-MM-DD') : '', + 'b721': typeof re['b721'] !== 'undefined' ? re['b721'].format('YYYY-MM-DD') : '' + } + var that = this + console.log(re) + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.hxxt && this.hxxt.hxxtId) { + re.hxxtId = this.hxxt.hxxtId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + that.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + } else { + this.spinning = false + } + }) + }, + initValue(key, type = 'normal') { + if (!this.hxxt) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.hxxt[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.hxxt[key]) + } else if (type === 'array') { + return this.hxxt[key].split(',') + } else { + return this.hxxt[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + var splitArr = [] + if (answer.b3 === 1) { + this.controlb3 = true + } + if (answer.b4 === 1) { + this.controlb4 = true + } + if (answer.b5 === 1) { + this.controlb5 = true + } + if (answer.b6 === 1) { + this.controlb6 = true + } + if (answer.b7 === 1) { + this.controlb7 = true + } + if (answer.b8 === 1) { + this.controlb8 = true + } + if (answer.b52) { + splitArr = answer.b52.split(',') + if (splitArr.indexOf('3') > -1) { + this.controlb52 = true + } + } + if (answer.b41) { + splitArr = answer.b41.split(',') + if (splitArr.indexOf('1') > -1) { + this.controlb411 = true + } + if (splitArr.indexOf('2') > -1) { + this.controlb412 = true + } + } + if (answer.b414) { + splitArr = answer.b414.split(',') + if (splitArr.indexOf('4') > -1) { + this.controlb41 = true + } + } + if (answer.b43) { + splitArr = answer.b43.split(',') + if (splitArr.indexOf('1') > -1) { + this.controlb431 = true + } + if (splitArr.indexOf('2') > -1) { + this.controlb432 = true + } + } + if (answer.b431) { + splitArr = answer.b431.split(',') + if (splitArr.indexOf('7') > -1) { + this.controlb43 = true + } + } + if (answer.b433) { + splitArr = answer.b433.split(',') + if (splitArr.indexOf('2') > -1) { + this.controlb433 = true + } + } + if (answer.b44) { + splitArr = answer.b44.split(',') + if (splitArr.indexOf('4') > -1) { + this.controlb44 = true + } + } + if (answer.b52) { + splitArr = answer.b52.split(',') + if (splitArr.indexOf('3') > -1) { + this.controlb52 = true + } + } + if (answer.b71 === 1) { + this.controlb71 = true + } + if (answer.b72 === 1) { + this.controlb72 = true + } + if (answer.b81) { + splitArr = answer.b81.split(',') + if (splitArr.indexOf('5') > -1) { + this.controlb81 = true + } + } + if (answer.b42) { + splitArr = answer.b42.split(',') + if (splitArr.indexOf('5') > -1) { + this.controlb42 = true + } + } + if (answer.b48) { + splitArr = answer.b48.split(',') + if (splitArr.indexOf('11') > -1) { + this.controlb48 = true + } + } + } + return answer + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + save() { + var re = this.form.getFieldsValue() + re = { + ...re, + 'b31': typeof re['b31'] !== 'undefined' ? re['b31'].join(',') : '', + 'b41': typeof re['b41'] !== 'undefined' ? re['b41'].join(',') : '', + 'b414': typeof re['b414'] !== 'undefined' ? re['b414'].join(',') : '', + 'b43': typeof re['b43'] !== 'undefined' ? re['b43'].join(',') : '', + 'b431': typeof re['b431'] !== 'undefined' ? re['b431'].join(',') : '', + 'b433': typeof re['b433'] !== 'undefined' ? re['b433'].join(',') : '', + 'b44': typeof re['b44'] !== 'undefined' ? re['b44'].join(',') : '', + 'b52': typeof re['b52'] !== 'undefined' ? re['b52'].join(',') : '', + 'b81': typeof re['b81'] !== 'undefined' ? re['b81'].join(',') : '', + 'b42': typeof re['b42'] !== 'undefined' ? re['b42'].join(',') : '', + 'b48': typeof re['b48'] !== 'undefined' ? re['b48'].join(',') : '', + 'b711': typeof re['b711'] !== 'undefined' ? re['b711'].format('YYYY-MM-DD') : '', + 'b721': typeof re['b721'] !== 'undefined' ? re['b721'].format('YYYY-MM-DD') : '' + } + var that = this + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.hxxt && this.hxxt.hxxtId) { + re.hxxtId = this.hxxt.hxxtId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + that.spinning = true + saveBasis(params) + .then(res => { + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + }) + .catch(error => { + that.spinning = false + }) + return false + }, + getFormData() { + this.spinning = true + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + if (res.data && res.data.hxxt) { + that.hxxt = that.dealAnswers(res.data.hxxt) + } else { + that.form.resetFields() + } + this.spinning = false + }) + .catch(error => { + this.spinning = false + console.log(error) + }) + }, + withdraw(){ + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.hxxt.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + _importData() { + var that = this + this.$confirm({ + title: '是否确定导入数据?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('basisMarkId', that.maskId) + params.append('patientBasisId', that.patientBasisId) + exportFormData(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + that.hxxt = _.extend(that.hxxt || {}, that.dealAnswers(res.data.data.hxxt)) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + handleNone(e, d, v, arr) { + if(e.target.checked){ + let data = {} + data[d] = [v] + this.$nextTick(() => { + this.form.setFieldsValue(data) + arr.forEach((t) => { + this[t] = false + }) + }) + } + }, + detect(d, v) { + if(Array.isArray(this.form.getFieldValue(d)) && this.form.getFieldValue(d).indexOf(v) > -1) { + return true + } else { + return false + } + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + .treeSubTitle{ + font-size: 14px; + } + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + margin-top: 42px; + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 20px 20px 60px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + + .center.ant-checkbox-group{ + position: relative; + top: 10px; + } + + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +@media screen and (max-width: 1366px) { + .control-m-line.ant-checkbox-group { + top: 10px; + position: relative; + } +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/account/center/components/mask-5.vue b/src/views/account/center/components/mask-5.vue new file mode 100644 index 0000000000..7a5d8b2883 --- /dev/null +++ b/src/views/account/center/components/mask-5.vue @@ -0,0 +1,1110 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="clearfix" style="position:relative;top: 20px;"> + <a-button class="btn fr" type="primary" @click="_importData">导入数据</a-button> + </div> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <!-- <a-button class="btn fr" v-if="patientBasis.type === 3" @click="import">导入</a-button> --> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!(ICON患者,必须填写实际检测值。基线访视辅助检查可使用入组前6个月内的检查结果,但要求从检查日期到入组日期之间未发生急性加重,否则需要在基线数据收集时重新辅助检查)</p> + <div class="title">1.CT基本信息 + <a-icon type="zoom-in" style="float: right;margin-top: 12px;margin-right: 12px;color: #ccc;" @click="changeOcr" /> + </div> + <a-form-item label="(1) CT检查日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['a1', {...dateRequire, initialValue: initValue('a1', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="(2) 图像类型(建议HRCT或者1mm薄层CT):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a2', { initialValue: initValue('a2')}]"> + <a-radio value="1">HRCT</a-radio> + <a-radio value="2">CT</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="上传图像:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <div class="clearfix" style="margin-top: 10px;"> + <a-upload :action="uploadUrl" class="images" v-viewer listType="picture-card" :fileList="fileList" @preview="handlePreview" @change="handleChange" :before-upload="beforeUpload"> + <div v-if="fileList.length < 10"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-button style="font-size: 12px;padding: 0 5px;height: 30px;" @click="_import" v-if="fileList.length === 1 && showOcr">OCR识别</a-button> + <!-- <a-modal :visible="previewVisible" :footer="null" @cancel="handleCancel"> + <img alt="example" style="width: 100%" :src="previewImage" /> + </a-modal> --> + </div> + </a-form-item> + <a-form-item label="放射学表现:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-textarea style="top: 2px;" v-decorator="['a21', {initialValue: initValue('a21')}]" autocomplete="off"></a-textarea> + </a-form-item> + <a-form-item label="放射学诊断:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-textarea style="top: 2px;" v-decorator="['a22', {initialValue: initValue('a22')}]" autocomplete="off"></a-textarea> + </a-form-item> + <div class="title">2.Reiff影像评分</div> + <a-form-item label="支扩位于CT图像上:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b', {...selectRequired, initialValue: initValue('b', 'array')}]"> + <a-checkbox value="1" @change="changeSelect($event, 'controla3')">右上叶</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controla4')">左上叶</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'controla5')">右中叶</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'controla6')">左舌叶</a-checkbox> + <a-checkbox value="5" @change="changeSelect($event, 'controla7')">右下叶</a-checkbox> + <a-checkbox value="6" @change="changeSelect($event, 'controla8')">左下叶</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="右上叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla3"> + <a-radio-group v-decorator="['a3', {...selectRequired, initialValue: initValue('a3')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="左上叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla4"> + <a-radio-group v-decorator="['a4', {...selectRequired, initialValue: initValue('a4')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="右中叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla5"> + <a-radio-group v-decorator="['a5', {...selectRequired, initialValue: initValue('a5')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="左舌叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla6"> + <a-radio-group v-decorator="['a6', {...selectRequired, initialValue: initValue('a6')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="右下叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla7"> + <a-radio-group v-decorator="['a7', {...selectRequired, initialValue: initValue('a7')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="左下叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla8"> + <a-radio-group v-decorator="['a8', {...selectRequired, initialValue: initValue('a8')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="影像Reiff评分:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['a9', {initialValue: initValue('a9')}]" :readOnly="true" autocomplete="off"></a-input> + </a-form-item> + <div class="title">3.Bhalla影像学评分 <a-icon type="arrows-alt" v-if="collap" style="cursor: pointer;" @click="collap = !collap" /><a-icon type="shrink" v-else @click="collap = !collap" style="cursor: pointer;" /></div> + <a-form-item label="(1) 支气管扩张程度:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a10', {initialValue: initValue('a10')}]" @change="computeBhalla" style="line-height: 30px;"> + <a-radio value="0">无</a-radio> + <a-radio value="1">轻度(管腔直径为临近血管直径的1-2倍)</a-radio> + <a-radio value="2">中度(管腔直径为临近血管直径的2-3倍)</a-radio> + <a-radio value="3">重度(管腔直径超过临近血管直径的3倍)</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(2) 支气管壁增厚情况" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a11', {initialValue: initValue('a11')}]" @change="computeBhalla" style="line-height: 30px;"> + <a-radio :value="'0'">无</a-radio> + <a-radio value="1">轻度(支气管壁的厚度相当于临近血管壁厚度)</a-radio> + <a-radio value="2">中度(支气管壁的厚度相当于临近血管壁厚度的1-2倍)</a-radio> + <a-radio value="3">重度(支气管壁的厚度相当于临近血管壁厚度的2倍)</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(3) 支气管扩张的范围(肺段数):" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a12', {initialValue: initValue('a12')}]" @change="computeBhalla"> + <a-radio value="0">无</a-radio> + <a-radio value="1">1-5</a-radio> + <a-radio value="2">6-9</a-radio> + <a-radio value="3">>9</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(4) 支气管管腔黏液阻塞范围(肺段数):" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a13', {initialValue: initValue('a13')}]" @change="computeBhalla"> + <a-radio :value="'0'">无</a-radio> + <a-radio value="1">1-5</a-radio> + <a-radio value="2">6-9</a-radio> + <a-radio value="3">>9</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(5) 存在脓肿的范围(肺段数):" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a14', {initialValue: initValue('a14')}]" @change="computeBhalla"> + <a-radio value="0">无</a-radio> + <a-radio value="1">1-5</a-radio> + <a-radio value="2">6-9</a-radio> + <a-radio value="3">>9</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(6) 扩张支气管的分级数" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a15', {initialValue: initValue('a15')}]" @change="computeBhalla"> + <a-radio value="0">无</a-radio> + <a-radio value="1">超过4级</a-radio> + <a-radio value="2">超过5级</a-radio> + <a-radio value="3">超过6级</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(7) 肺大疱数" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a16', { initialValue: initValue('a16')}]" @change="computeBhalla"> + <a-radio value="0">无</a-radio> + <a-radio value="1">单侧(<4)</a-radio> + <a-radio value="2">双侧(<4)</a-radio> + <a-radio value="3">>4</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(8) 肺气肿的范围" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a17', { initialValue: initValue('a17')}]" @change="computeBhalla"> + <a-radio value="0">无</a-radio> + <a-radio value="1">1-5</a-radio> + <a-radio value="2">>5</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(9) 肺不张/实变的" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a18', { initialValue: initValue('a18')}]" @change="computeBhalla"> + <a-radio value="0">无</a-radio> + <a-radio value="1">肺亚段</a-radio> + <a-radio value="2">肺段/肺叶</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(10) Bhalla影像学评分:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-popover> + <template slot="content"> + <img src="../../../../assets/bhalla.jpg" style="height: 400px;" /> + </template> + <a-icon type="exclamation-circle" style="position: relative;left: -20px;color: #0399ec;cursor: pointer;" /> + </a-popover> + <a-input style="width: 240px;" v-decorator="['a19', {initialValue: initValue('a19')}]" :readOnly="true" autocomplete="off"></a-input> + </a-form-item> + <div class="title">4.支扩类型</div> + <a-form-item label="支扩类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-radio-group v-decorator="['a20', {...selectRequired, initialValue: initValue('a20')}]" @change="computeBhalla"> + <a-radio value="2">柱状</a-radio> + <a-radio value="3">静脉曲张型(混合型)</a-radio> + <a-radio value="1">囊状</a-radio> + </a-radio-group> + </a-form-item> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, computeScore, recoverSubmit, exportFormData } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { getOcrResult } from '@/api/basis' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +export default { + name: 'mask5', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + showOcr: false, + spinning: false, + previewVisible: false, + collap: true, + previewImage: '', + uploadUrl: process.env.VUE_APP_API_UPLOAD_URL, + viewPicUrl: process.env.VUE_APP_API_VIEW_PIC_URL, + fileList: [], + markName: 'xbyxx', + title: '基线', + openKeys: [], + defaultSelectedKeys: [5], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: '100%', + "padding-right": "0px", + "border-right": "1px solid #ddd" + }, + baselineFormStyle: { + // height: '444px', + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 6, offset: 6 } + }, + labelColOffset2: { + md: { span: 3, offset: 6 } + }, + wrapperOffset: { + md: { span: 12 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + xbyxx: undefined, + executeStatus: undefined, + controla3: false, + controla4: false, + controla5: false, + controla6: false, + controla7: false, + controla8: false, + controla9: false, + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + submitInfo: undefined, + canEdit: false + } + }, + created() { + var that = this + this.defaultSelectedKeys = [5] + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + this.getFormData() + }, + activated() { + this.getFormData() + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeSelect(e, t) { + var arr = ['controla3', 'controla4', 'controla5', 'controla6', 'controla7', 'controla8'] + if (arr.indexOf(t) > -1 && !e.target.checked) { + this.computeReiff() + } + this[t] = e.target.checked + }, + changeRadio(e, t) { + if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + if (e.key >= 31 && e.key <= 36) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + e.key) + } else { + this.$router.replace('/list/basis/' + this.patientBasisId + '/' + e.key) + } + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'a1': typeof re['a1'] !== 'undefined' ? re['a1'].format('YYYY-MM-DD') : '', + 'b': typeof re['b'] !== 'undefined' ? re['b'].join(',') : '' + } + console.log(re) + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.xbyxx && this.xbyxx.xbyxxId) { + re.xbyxxId = this.xbyxx.xbyxxId + } + //附件 + if (this.fileList && this.fileList.length) { + var a = [] + _.each(this.fileList, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + that.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + beforeUpload() { + this.spinning = true + }, + getFormData() { + this.spinning = true + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + if (res.data && res.data.xbyxx) { + for (let key of Object.keys(res.data.xbyxx)) { + if (res.data.xbyxx[key] === 0) { + res.data.xbyxx[key] = "0"; + } + } + that.xbyxx = that.dealAnswers(res.data.xbyxx) + } else { + that.form.resetFields() + } + if (res.data && res.data.annexListXbyxx) { + that.fileList = _.map(res.data.annexListXbyxx, function(v) { + return { + uid: v.annexId, + url: that.viewPicUrl + v.annexAddress, + name: v.annexAddress, + status: 'done' + } + }) + } else { + that.fileList = [] + } + this.spinning = false + }) + .catch(error => { + this.spinning = false + console.log(error) + }) + }, + save() { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'a1': typeof re['a1'] !== 'undefined' ? re['a1'].format('YYYY-MM-DD') : '', + 'b': typeof re['b'] !== 'undefined' ? re['b'].join(',') : '' + } + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.xbyxx && this.xbyxx.xbyxxId) { + re.xbyxxId = this.xbyxx.xbyxxId + } + //附件 + if (this.fileList && this.fileList.length) { + var a = [] + _.each(this.fileList, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + // var fileName = _.map(this.fileList, function(v) { return v.response ? v.response.fileName : v.name }) + params.append('fileName', JSON.stringify(a)) + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + that.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + initValue(key, type = 'normal') { + if (!this.xbyxx) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.xbyxx[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.xbyxx[key]) + } else if (type === 'array') { + return this.xbyxx[key].split(',') + } else { + return this.xbyxx[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + var splitArr = [] + if (answer.b) { + splitArr = answer.b.split(',') + if (splitArr.indexOf('1') > -1) { + this.controla3 = true + } + if (splitArr.indexOf('2') > -1) { + this.controla4 = true + } + if (splitArr.indexOf('3') > -1) { + this.controla5 = true + } + if (splitArr.indexOf('4') > -1) { + this.controla6 = true + } + if (splitArr.indexOf('5') > -1) { + this.controla7 = true + } + if (splitArr.indexOf('6') > -1) { + this.controla8 = true + } + } + } + return answer + }, + computeReiff() { + var that = this + this.$nextTick(() => { + var params = new URLSearchParams() + params.append('scoreType', 'reiff') + params.append('xbyxxStr', JSON.stringify(that.form.getFieldsValue())) + computeScore(params) + .then(res => { + that.form.setFieldsValue({ + a9: res.data.a9 + }) + let arr = _.values(that.form.getFieldsValue(['a3', 'a4', 'a5', 'a6', 'a7', 'a8'])) + + if(_.some(arr, function(v){ return v === 3 || v === '3' })) { + that.form.setFieldsValue({ + a20: '1' + }) + } else if(_.some(arr, function(v){ return v === 2 || v === '2' })) { + that.form.setFieldsValue({ + a20: '3' + }) + } else { + that.form.setFieldsValue({ + a20: '2' + }) + } + }) + .catch(error => { + console.log(error) + }) + }) + }, + computeBhalla() { + var that = this + this.$nextTick(() => { + var params = new URLSearchParams() + params.append('scoreType', 'bhalla') + params.append('xbyxxStr', JSON.stringify(that.form.getFieldsValue())) + computeScore(params) + .then(res => { + console.log(res.data.a9) + that.form.setFieldsValue({ + a19: res.data.a19 + }) + }) + .catch(error => { + console.log(error) + }) + }) + }, + // handleCancel() { + // this.previewVisible = false; + // }, + handlePreview(file) { + const viewer = this.$el.querySelector('.images').$viewer + viewer.show() + // this.previewImage = file.url || file.thumbUrl; + // this.previewVisible = true; + }, + handleChange({ fileList }) { + var that = this + this.fileList = fileList; + if (fileList.every(function(v) { return v.status === 'done'})) { + this.spinning = false + this.fileList.forEach((f,i) => { + if(f.response){ + console.log(f) + that.$set(that.fileList,i,{ + name: f.response.fileName, + status: 'done', + uid: f.uid, + url: f.response.data.src + }) + } + }) + } + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + _import() { + this.spinning = true + var params = new URLSearchParams() + params.append('type', 6) + params.append('url', this.fileList[0].url || this.fileList[0].response.data.src) + var that = this + getOcrResult(params) + .then(res => { + console.log(res.data) + this.spinning = false + this.$message.success(res.data.info) + this.xbyxx = _.extend(this.xbyxx || {}, this.dealAnswers(res.data)) + that.form.setFieldsValue(that.xbyxx) + }) + .catch(error => { + this.spinning = false + }) + }, + withdraw() { + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.xbyxx.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + changeOcr() { + this.showOcr = true + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + _importData() { + var that = this + this.$confirm({ + title: '是否确定导入数据?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('basisMarkId', that.maskId) + params.append('patientBasisId', that.patientBasisId) + exportFormData(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + that.xbyxx = _.extend(that.xbyxx || {}, that.dealAnswers(res.data.data.xbyxx)) + if (res.data.data && res.data.data.annexListXbyxx) { + that.fileList = _.map(res.data.data.annexListXbyxx, function(v) { + return { + uid: v.annexId, + url: that.viewPicUrl + v.annexAddress, + name: v.annexAddress, + status: 'done' + } + }) + } else { + that.fileList = [] + } + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + + .treeSubTitle { + font-size: 14px; + } + + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + margin-top: 42px; + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 20px 20px 80px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/account/center/components/mask-6.vue b/src/views/account/center/components/mask-6.vue new file mode 100644 index 0000000000..3c82b10b3d --- /dev/null +++ b/src/views/account/center/components/mask-6.vue @@ -0,0 +1,1751 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="clearfix" style="position:relative;top: 20px;"> + <a-button class="btn fr" type="primary" @click="_importData">导入数据</a-button> + </div> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <!-- <a-button class="btn fr" v-if="patientBasis.type === 3" @click="import">导入</a-button> --> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!(ICON患者,必须填写实际检测值。基线访视辅助检查可使用入组前6个月内的检查结果,但要求从检查日期到入组日期之间未发生急性加重,否则需要在基线数据收集时重新辅助检查)</p> + <a-form-item label="采样性质(多选):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['a', {...selectRequired, initialValue: initValue('a', 'array')}]"> + <a-checkbox value="1" @change="changeSelect($event, 'control1')" :disabled="detect('a', '4') || control4">细菌</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'control2')" :disabled="detect('a', '4') || control4">真菌</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'control3')" :disabled="detect('a', '4') || control4">分枝杆菌</a-checkbox> + <a-checkbox value="5" @change="changeSelect($event, 'control5')" :disabled="detect('a', '4') || control4">其他</a-checkbox> + <a-checkbox value="4" @change="handleNone($event, 'a', '4', [], 'control4')">无</a-checkbox> + </a-checkbox-group> + </a-form-item> + <div v-if="control1"> + <div class="title">1.细菌</div> + <a-form-item label="(1) 取样日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['a1', {...dateRequire, initialValue: initValue('a1', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="(2) 是否本院:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['a2', {...require1, initialValue: initValue('a2')}]" @change="changeRadio($event, 'controla2')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="医院名称" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controla2"> + <a-input style="width: 240px;" v-decorator="['a21', {...inputRequired, initialValue: initValue('a21')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 标本类型:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['a3', {...selectRequired, initialValue: initValue('a3', 'array')}]"> + <a-checkbox value="1" @change="changeSelect($event, 'controla31')">痰液</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controla32')">诱导痰</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'controla33')">支气管肺泡灌洗液</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'controla34')">血标本</a-checkbox> + <a-checkbox value="5">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="痰液培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla31"> + <a-radio-group v-decorator="['a31', {...selectRequired, initialValue: initValue('a31')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="痰液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controla31"> + <a-radio-group v-decorator="['a311', {...selectRequired, initialValue: initValue('a311')}]" @change="changeRadio($event, 'controla3113')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他痰液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controla3113"> + <a-input style="width: 240px;" v-decorator="['a3111', {...inputRequired, initialValue: initValue('a3111')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="诱导痰培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla32"> + <a-radio-group v-decorator="['a32', {...selectRequired, initialValue: initValue('a32')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="诱导痰检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controla32"> + <a-radio-group v-decorator="['a321', {...selectRequired, initialValue: initValue('a321')}]" @change="changeRadio($event, 'controla3213')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他诱导痰检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controla3213"> + <a-input style="width: 240px;" v-decorator="['a3211', {...inputRequired, initialValue: initValue('a3211')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="支气管肺泡灌洗液培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla33"> + <a-radio-group v-decorator="['a33', {...selectRequired, initialValue: initValue('a33')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="支气管肺泡灌洗液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controla33"> + <a-radio-group v-decorator="['a331', {...selectRequired, initialValue: initValue('a331')}]" @change="changeRadio($event, 'controla3313')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他支气管肺泡灌洗液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controla3313"> + <a-input style="width: 240px;" v-decorator="['a3311', {...inputRequired, initialValue: initValue('a3311')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="血标本培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla34"> + <a-radio-group v-decorator="['a34', {...selectRequired, initialValue: initValue('a34')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="血标本检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controla34"> + <a-radio-group v-decorator="['a341', {...selectRequired, initialValue: initValue('a341')}]" @change="changeRadio($event, 'controla3413')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他血标本检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controla3413"> + <a-input style="width: 240px;" v-decorator="['a3411', {...inputRequired, initialValue: initValue('a3411')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(4) 是否分离到微生物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a4', {...require1, initialValue: initValue('a4')}]" @change="changeRadio($event, 'controla4')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="分离到微生物:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla4"> + <a-checkbox-group v-decorator="['a42', {...selectRequired, initialValue: initValue('a42', 'array')}]" class="control-m-line"> + <a-checkbox value="0" @change="showList($event, '铜绿假单胞菌', 'controla420', true)">铜绿假单胞菌</a-checkbox> + <add-table :dataSource="optionDataSource[0]" v-if="controla420" :type1="type1" @listen="changeType1" :isFirst="true" :picSource="picList1[0]" @changePic1="changePic1($event, 0)"></add-table> + <a-checkbox value="2" @change="showList($event, '肺炎克雷伯菌', 'controla422', true)">肺炎克雷伯菌</a-checkbox> + <add-table :dataSource="optionDataSource[2]" v-if="controla422" :isFirst="true" :picSource="picList1[2]" @changePic1="changePic1($event, 2)"></add-table> + <a-checkbox value="10" @change="showList($event, '大肠杆菌', 'controla4210', true)">大肠杆菌</a-checkbox> + <add-table :dataSource="optionDataSource[10]" v-if="controla4210" :isFirst="true" :picSource="picList1[10]" @changePic1="changePic1($event, 10)"></add-table> + <a-checkbox value="3" @change="showList($event, '阴沟肠杆菌', 'controla423', true)">阴沟肠杆菌</a-checkbox> + <add-table :dataSource="optionDataSource[3]" v-if="controla423" :isFirst="true" :picSource="picList1[3]" @changePic1="changePic1($event, 3)"></add-table> + <a-checkbox value="1" @change="showList($event, '肺炎链球菌', 'controla421', true)">肺炎链球菌</a-checkbox> + <add-table :dataSource="optionDataSource[1]" v-if="controla421" :isFirst="true" :picSource="picList1[1]" @changePic1="changePic1($event, 1)"></add-table> + <a-checkbox value="6" @change="showList($event, '金黄色葡萄球菌', 'controla426', true)">金黄色葡萄球菌</a-checkbox> + <add-table :dataSource="optionDataSource[6]" v-if="controla426" :isFirst="true" :picSource="picList1[6]" @changePic1="changePic1($event, 6)"></add-table> + <a-checkbox value="8" @change="showList($event, '流感嗜血杆菌', 'controla428', true)">流感嗜血杆菌</a-checkbox> + <add-table :dataSource="optionDataSource[8]" v-if="controla428" :isFirst="true" :picSource="picList1[8]" @changePic1="changePic1($event, 8)"></add-table> + <a-checkbox value="4" @change="showList($event, '副流感嗜血杆菌', 'controla424', true)">副流感嗜血杆菌</a-checkbox> + <add-table :dataSource="optionDataSource[4]" v-if="controla424" :isFirst="true" :picSource="picList1[4]" @changePic1="changePic1($event, 4)"></add-table> + <a-checkbox value="9" @change="showList($event, '卡他莫拉菌', 'controla429', true)">卡他莫拉菌</a-checkbox> + <add-table :dataSource="optionDataSource[9]" v-if="controla429" :isFirst="true" :picSource="picList1[9]" @changePic1="changePic1($event, 9)"></add-table> + <a-checkbox value="5" @change="showList($event, '鲍曼不动杆菌', 'controla425', true)">鲍曼不动杆菌</a-checkbox> + <add-table :dataSource="optionDataSource[5]" v-if="controla425" :isFirst="true" :picSource="picList1[5]" @changePic1="changePic1($event, 5)"></add-table> + <a-checkbox value="11" @change="showList($event, '洋葱霍尔德菌', 'controla4211', true)">洋葱霍尔德菌</a-checkbox> + <add-table :dataSource="optionDataSource[11]" v-if="controla4211" :isFirst="true" :picSource="picList1[11]" @changePic1="changePic1($event, 11)"></add-table> + <a-checkbox value="12" @change="showList($event, '嗜麦芽窄食单胞菌', 'controla4212', true)">嗜麦芽窄食单胞菌</a-checkbox> + <add-table :dataSource="optionDataSource[12]" v-if="controla4212" :isFirst="true" :picSource="picList1[12]" @changePic1="changePic1($event, 12)"></add-table> + <a-checkbox value="7" @change="showList($event, '其他', 'controla427', true)">其他</a-checkbox> + <a-input style="width: 240px;margin-right: 10px;" v-if="controla427" @change="otherChange($event, 7, true)" autocomplete="off" v-decorator="['otherName1', {...inputRequired, initialValue: otherName1}]"></a-input> + <add-table :dataSource="optionDataSource[7]" v-if="controla427" :isFirst="true" :picSource="picList1[7]" @changePic1="changePic1($event, 7)"></add-table> + </a-checkbox-group> + </a-form-item> + <a-form-item label="铜绿假单胞菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla420"> + <a-radio-group v-decorator="['a421', {...require1, initialValue: initValue('a421')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="肺炎克雷伯菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla422"> + <a-radio-group v-decorator="['a422', {...require1, initialValue: initValue('a422')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="大肠杆菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla4210"> + <a-radio-group v-decorator="['a423', {...require1, initialValue: initValue('a423')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="阴沟肠杆菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla423"> + <a-radio-group v-decorator="['a424', {...require1, initialValue: initValue('a424')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="肺炎链球菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla421"> + <a-radio-group v-decorator="['a425', {...require1, initialValue: initValue('a425')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="金黄色葡萄球菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla426"> + <a-radio-group v-decorator="['a426', {...require1, initialValue: initValue('a426')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="流感嗜血杆菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla428"> + <a-radio-group v-decorator="['a427', {...require1, initialValue: initValue('a427')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="副流感嗜血杆菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla424"> + <a-radio-group v-decorator="['a428', {...require1, initialValue: initValue('a428')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="卡他莫拉菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla429"> + <a-radio-group v-decorator="['a429', {...require1, initialValue: initValue('a429')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="鲍曼不动杆菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla425"> + <a-radio-group v-decorator="['a4210', {...require1, initialValue: initValue('a4210')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="洋葱霍尔德菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla4211"> + <a-radio-group v-decorator="['a4211', {...require1, initialValue: initValue('a4211')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="嗜麦芽窄食单胞菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla4212"> + <a-radio-group v-decorator="['a4212', {...require1, initialValue: initValue('a4212')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla427"> + <a-radio-group v-decorator="['a4213', {...require1, initialValue: initValue('a4213')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + </div> + <div v-if="control2"> + <div class="title">2.真菌</div> + <a-form-item label="取样日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b1', {...dateRequire, initialValue: initValue('b1', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="是否本院:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b2', {...require1, initialValue: initValue('b2')}]" @change="changeRadio($event, 'controlb2')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="医院名称" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb2"> + <a-input style="width: 240px;" v-decorator="['b21', {...inputRequired, initialValue: initValue('b21')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="标本类型:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b3', {...selectRequired, initialValue: initValue('b3', 'array')}]"> + <a-checkbox value="1" @change="changeSelect($event, 'controlb31')">痰液</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controlb32')">诱导痰</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'controlb33')">支气管肺泡灌洗液</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'controlb34')">血标本</a-checkbox> + <a-checkbox value="5">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="痰液培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlb31"> + <a-radio-group v-decorator="['b31', {...selectRequired, initialValue: initValue('b31')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="痰液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controlb31"> + <a-radio-group v-decorator="['b311', {...selectRequired, initialValue: initValue('b311')}]" @change="changeRadio($event, 'controlb3113')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他痰液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlb3113"> + <a-input style="width: 240px;" v-decorator="['b3111', {...inputRequired, initialValue: initValue('b3111')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="诱导痰培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlb32"> + <a-radio-group v-decorator="['b32', {...selectRequired, initialValue: initValue('b32')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="诱导痰检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controlb32"> + <a-radio-group v-decorator="['b321', {...selectRequired, initialValue: initValue('b321')}]" @change="changeRadio($event, 'controlb3213')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他诱导痰检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlb3213"> + <a-input style="width: 240px;" v-decorator="['b3211', {...inputRequired, initialValue: initValue('b3211')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="支气管肺泡灌洗液培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlb33"> + <a-radio-group v-decorator="['b33', {...selectRequired, initialValue: initValue('b33')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="支气管肺泡灌洗液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controlb33"> + <a-radio-group v-decorator="['a331', {...selectRequired, initialValue: initValue('b331')}]" @change="changeRadio($event, 'controlb3313')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他支气管肺泡灌洗液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlb3313"> + <a-input style="width: 240px;" v-decorator="['b3311', {...inputRequired, initialValue: initValue('b3311')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="血标本培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlb34"> + <a-radio-group v-decorator="['b34', {...selectRequired, initialValue: initValue('b34')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="血标本检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controlb34"> + <a-radio-group v-decorator="['b341', {...selectRequired, initialValue: initValue('b341')}]" @change="changeRadio($event, 'controlb3413')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他血标本检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlb3413"> + <a-input style="width: 240px;" v-decorator="['b3411', {...inputRequired, initialValue: initValue('b3411')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="是否分离到微生物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b4', {...require1, initialValue: initValue('b4')}]" @change="changeRadio($event, 'controlb4')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="真菌:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb4"> + <a-checkbox-group v-decorator="['b42', {...selectRequired, initialValue: initValue('b42', 'array')}]"> + <a-checkbox value="0">白色念珠菌</a-checkbox> + <a-checkbox value="1">曲霉</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controlb422')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="border-dotted" label="其他真菌" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb422"> + <a-input style="width: 240px;" v-decorator="['b43', {...inputRequired, initialValue: initValue('b43')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <div v-if="control3"> + <div class="title">3.分枝杆菌</div> + <a-form-item label="(1) 取样日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['c1', {...dateRequire, initialValue: initValue('c1', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="(2) 是否本院:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['c2', {...require1, initialValue: initValue('c2')}]" @change="changeRadio($event, 'controlc2')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="医院名称" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlc2"> + <a-input style="width: 240px;" v-decorator="['c21', {...inputRequired, initialValue: initValue('c21')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 标本类型:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['c3', {...selectRequired, initialValue: initValue('c3', 'array')}]"> + <a-checkbox value="1" @change="changeSelect($event, 'controlc31')">痰液</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controlc32')">诱导痰</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'controlc33')">支气管肺泡灌洗液</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'controlc34')">血标本</a-checkbox> + <a-checkbox value="5">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="痰液培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlc31"> + <a-radio-group v-decorator="['c31', {...selectRequired, initialValue: initValue('c31')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="痰液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controlc31"> + <a-radio-group v-decorator="['c311', {...selectRequired, initialValue: initValue('c311')}]" @change="changeRadio($event, 'controlc3113')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他痰液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlc3113"> + <a-input style="width: 240px;" v-decorator="['c3111', {...inputRequired, initialValue: initValue('c3111')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="诱导痰培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlc32"> + <a-radio-group v-decorator="['c32', {...selectRequired, initialValue: initValue('c32')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="诱导痰检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controlc32"> + <a-radio-group v-decorator="['c321', {...selectRequired, initialValue: initValue('c321')}]" @change="changeRadio($event, 'controlc3213')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他诱导痰检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlc3213"> + <a-input style="width: 240px;" v-decorator="['c3211', {...inputRequired, initialValue: initValue('c3211')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="支气管肺泡灌洗液培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlc33"> + <a-radio-group v-decorator="['c33', {...selectRequired, initialValue: initValue('c33')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="支气管肺泡灌洗液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controlc33"> + <a-radio-group v-decorator="['c331', {...selectRequired, initialValue: initValue('c331')}]" @change="changeRadio($event, 'controlc3313')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他支气管肺泡灌洗液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlc3313"> + <a-input style="width: 240px;" v-decorator="['c3311', {...inputRequired, initialValue: initValue('c3311')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="血标本培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlc34"> + <a-radio-group v-decorator="['c34', {...selectRequired, initialValue: initValue('c34')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="血标本检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controlc34"> + <a-radio-group v-decorator="['c341', {...selectRequired, initialValue: initValue('c341')}]" @change="changeRadio($event, 'controlc3413')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他血标本检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlc3413"> + <a-input style="width: 240px;" v-decorator="['c3411', {...inputRequired, initialValue: initValue('c3411')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="分离到微生物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['c4', {...selectRequired, initialValue: initValue('c4', 'array')}]"> + <a-checkbox value="0" :disabled="detect('c4', '2') || initC4">结核分枝杆菌</a-checkbox> + <a-checkbox value="1" :disabled="detect('c4', '2') || initC4" @change="changeSelect($event, 'controlc41')">非结核分枝杆菌</a-checkbox> + <a-checkbox value="2" @change="handleNone($event, 'c4', '2', ['controlc41'])">阴性</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="非结核分枝杆菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlc41"> + <a-radio-group v-decorator="['c422', {...require1, initialValue: initValue('c422')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlc41"> + <a-form-item label="非结核分枝杆菌:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['c41', {...selectRequired, initialValue: initValue('c41', 'array')}]"> + <a-checkbox value="1">堪萨斯分枝杆菌</a-checkbox> + <a-checkbox value="2">龟分枝杆菌</a-checkbox> + <a-checkbox value="3">脓肿分枝杆菌</a-checkbox> + <a-checkbox value="4">鸟分枝杆菌复合群(MAC)</a-checkbox> + <a-checkbox value="5" @change="changeSelect($event, 'controlc415')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他非结核分枝杆菌名称:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlc415"> + <a-input style="width: 240px;margin-right: 10px;" autocomplete="off" v-decorator="['c43', {...inputRequired, initialValue: initValue('c43')}]"></a-input> + </a-form-item> + </div> + </div> + <div v-if="control5"> + <div class="title">4.其他病原</div> + <a-form-item label="(1) 取样日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['d1', {...dateRequire, initialValue: initValue('d1', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="(2) 其他病原种类:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['d2', {...inputRequired, initialValue: initValue('d2')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 标本类型:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['d3', {...selectRequired, initialValue: initValue('d3', 'array')}]"> + <a-checkbox value="1" @change="changeSelect($event, 'controld31')">痰液</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controld31')">诱导痰</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'controld31')">支气管肺泡灌洗液</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'controld31')">血标本</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="痰液培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controld31"> + <a-radio-group v-decorator="['d31', {...selectRequired, initialValue: initValue('d31')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="诱导痰培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controld32"> + <a-radio-group v-decorator="['d32', {...selectRequired, initialValue: initValue('d32')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label=" 支气管肺泡灌洗液培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controld33"> + <a-radio-group v-decorator="['d33', {...selectRequired, initialValue: initValue('d33')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="血标本培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controld34"> + <a-radio-group v-decorator="['d34', {...selectRequired, initialValue: initValue('d34')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + </div> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, computeScore, getMedicineAllergyList, recoverSubmit, exportFormData } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import AddTable from "../model/table" +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +import _ from 'lodash' +export default { + name: 'mask6', + components: { + STree, + MyIcon, + AddTable, + ContactForm + }, + data() { + return { + optionDataSource: [], + optionDataSource2: [], + markName: 'bywsw', + title: '基线', + openKeys: [], + defaultSelectedKeys: [6], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: '100%', + "padding-right": "0px", + "border-right": "1px solid #ddd" + }, + baselineFormStyle: { + // height: '444px', + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 7 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 17 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 3, offset: 7 } + }, + labelColOffset2: { + md: { span: 4, offset: 7 } + }, + wrapperOffset2: { + md: { span: 13 } + }, + wrapperOffset: { + md: { span: 14 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + bywsw: undefined, + controla2: false, + controla4: false, + controla6: false, + controlb2: false, + controlb4: false, + controlc2: false, + controlc41: false, + controla420: false, + controla421: false, + controla422: false, + controla423: false, + controla424: false, + controla425: false, + controla426: false, + controla427: false, + controla428: false, + controla429: false, + controla4210: false, + controla4211: false, + controla4212: false, + controlb422: false, + controlc415: false, + controla31: false, + controla32: false, + controla33: false, + controla34: false, + controlb31: false, + controlb32: false, + controlb33: false, + controlb34: false, + controlc31: false, + controlc32: false, + controlc33: false, + controlc34: false, + controld31: false, + controld32: false, + controld33: false, + controld34: false, + spinning: false, + executeStatus: false, + control1: false, + control2: false, + control3: false, + control4: false, + control5: false, + type1: '', + otherName1: '', + otherName2: '', + picList1: [], + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined, + initC4: false, + controla3113: false, + controla3213: false, + controla3313: false, + controla3413: false, + controlb3113: false, + controlb3213: false, + controlb3313: false, + controlb3413: false, + controlc3113: false, + controlc3213: false, + controlc3313: false, + controlc3413: false + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + this.getFormData() + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + getFormData() { + this.spinning = true + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + this.spinning = false + Object.keys(res.data.bywsw).forEach(key => { + if (res.data.bywsw[key] === 0) { + res.data.bywsw[key] = "0"; + } + }); + if (res.data && res.data.bywsw) + that.bywsw = that.dealAnswers(res.data) + }) + .catch(error => { + this.spinning = false + console.log(error) + }) + }, + changeSelect(e, t) { + var that = this + this[t] = e.target.checked + if (t === 'control4' && e.target.checked) { + this.control1 = false + this.control2 = false + this.control3 = false + this.control5 = false + //赋值必须要延时 + setTimeout(function() { + that.form.setFieldsValue({ a: ['4'] }) + }, 0) + } + }, + changeRadio(e, t) { + if (t === 'controla2' || t === 'controlb2' || t === 'controlc2') { + if (e.target.value === '-1') { + this[t] = true + } else { + this[t] = false + } + } else if (t === 'controla4' && e.target.value === '-1') { + this.controla4 = false + // this.controla420 = false + // this.controla421 = false + // this.controla422 = false + // this.controla423 = false + // this.controla424 = false + // this.controla425 = false + // this.controla426 = false + // this.controla427 = false + // this.controla428 = false + // this.controla429 = false + // this.controla4210 = false + // this.controla4211 = false + // this.controla4212 = false + } else if (t === 'controlb4' && e.target.value === '-1') { + this.controlb4 = false + this.controlb422 = false + } else if ((t !== 'controla3113' && t !== 'controla3213' && t !== 'controla3313' && t !== 'controla3413' && t !== 'controlb3113' && t !== 'controlb3213' && t !== 'controlb3313' && t !== 'controlb3413' && t !== 'controlc3113' && t !== 'controlc3213' && t !== 'controlc3313' && t !== 'controlc3413') && e.target.value === '1') { + this[t] = true + } else if((t === 'controla3113' || t === 'controla3213' || t === 'controla3313' || t === 'controla3413' || + t === 'controlb3113' || t === 'controlb3213' || t === 'controlb3313' || t === 'controlb3413' || + t === 'controlc3113' || t === 'controlc3213' || t === 'controlc3313' || t === 'controlc3413') && e.target.value === '3') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + if (e.key >= 31 && e.key <= 36) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + e.key) + } else { + this.$router.replace('/list/basis/' + this.patientBasisId + '/' + e.key) + } + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + const allergy = [] + for (var key in this.optionDataSource) { + _.each(this.optionDataSource[key], function(item) { + allergy.push({ + markId: 1, + microbeName: item.microbeName, + antibiotic: item.antibiotic, + antibioticResult: item.antibioticResult, + allergyValue: item.allergyValue + }) + }) + } + for (var key in this.optionDataSource2) { + _.each(this.optionDataSource2[key], function(item) { + allergy.push({ + markId: 2, + microbeName: item.microbeName, + antibiotic: item.antibiotic, + antibioticResult: item.antibioticResult, + allergyValue: item.allergyValue + }) + }) + } + //处理附件 + var alList1 = ['铜绿假单胞菌', '阴沟肠杆菌', '肺炎克雷伯菌', '肺炎链球菌', '副流感嗜血杆菌', '鲍曼不动杆菌', '金黄色葡萄球菌', this.form.getFieldValue('otherName1')] + + var pic1 = [] + if (!_.isEmpty(this.picList1)) { + pic1 = _.map(this.picList1, function(v, i) { + return '1-' + alList1[i] + '-' + v + }) + } + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'a': typeof re['a'] !== 'undefined' ? re['a'].join(',') : '', + 'a3': typeof re['a3'] !== 'undefined' ? re['a3'].join(',') : '', + 'b3': typeof re['b3'] !== 'undefined' ? re['b3'].join(',') : '', + 'c3': typeof re['c3'] !== 'undefined' ? re['c3'].join(',') : '', + 'd3': typeof re['d3'] !== 'undefined' ? re['d3'].join(',') : '', + 'a1': typeof re['a1'] !== 'undefined' ? re['a1'].format('YYYY-MM-DD') : '', + 'b1': typeof re['b1'] !== 'undefined' ? re['b1'].format('YYYY-MM-DD') : '', + 'c1': typeof re['c1'] !== 'undefined' ? re['c1'].format('YYYY-MM-DD') : '', + 'd1': typeof re['d1'] !== 'undefined' ? re['d1'].format('YYYY-MM-DD') : '', + 'a42': typeof re['a42'] !== 'undefined' ? re['a42'].join(',') : '', + 'b42': typeof re['b42'] !== 'undefined' ? re['b42'].join(',') : '', + 'c4': typeof re['c4'] !== 'undefined' ? re['c4'].join(',') : '', + 'c41': typeof re['c41'] !== 'undefined' ? re['c41'].join(',') : '' + } + console.log(re) + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.bywsw && this.bywsw.bywswId) { + re.bywswId = this.bywsw.bywswId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + params.append('allergy', JSON.stringify(allergy)) + params.append('fileNameForMa', JSON.stringify(pic1)) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + save() { + const allergy = [] + for (var key in this.optionDataSource) { + _.each(this.optionDataSource[key], function(item) { + allergy.push({ + markId: 1, + microbeName: item.microbeName, + antibiotic: item.antibiotic, + antibioticResult: item.antibioticResult, + allergyValue: item.allergyValue + }) + }) + } + for (var key in this.optionDataSource2) { + _.each(this.optionDataSource2[key], function(item) { + allergy.push({ + markId: 2, + microbeName: item.microbeName, + antibiotic: item.antibiotic, + antibioticResult: item.antibioticResult, + allergyValue: item.allergyValue + }) + }) + } + //处理附件 + var alList1 = ['铜绿假单胞菌', '阴沟肠杆菌', '肺炎克雷伯菌', '肺炎链球菌', '副流感嗜血杆菌', '鲍曼不动杆菌', '金黄色葡萄球菌', this.form.getFieldValue('otherName1')] + + var pic1 = [] + if (!_.isEmpty(this.picList1)) { + pic1 = _.map(this.picList1, function(v, i) { + return '1-' + alList1[i] + '-' + v + }) + } + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'a': typeof re['a'] !== 'undefined' ? re['a'].join(',') : '', + 'a3': typeof re['a3'] !== 'undefined' ? re['a3'].join(',') : '', + 'b3': typeof re['b3'] !== 'undefined' ? re['b3'].join(',') : '', + 'c3': typeof re['c3'] !== 'undefined' ? re['c3'].join(',') : '', + 'a1': typeof re['a1'] !== 'undefined' ? re['a1'].format('YYYY-MM-DD') : '', + 'b1': typeof re['b1'] !== 'undefined' ? re['b1'].format('YYYY-MM-DD') : '', + 'c1': typeof re['c1'] !== 'undefined' ? re['c1'].format('YYYY-MM-DD') : '', + 'd1': typeof re['d1'] !== 'undefined' ? re['d1'].format('YYYY-MM-DD') : '', + 'a42': typeof re['a42'] !== 'undefined' ? re['a42'].join(',') : '', + 'b42': typeof re['b42'] !== 'undefined' ? re['b42'].join(',') : '', + 'c4': typeof re['c4'] !== 'undefined' ? re['c4'].join(',') : '', + 'c41': typeof re['c41'] !== 'undefined' ? re['c41'].join(',') : '' + } + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.bywsw && this.bywsw.bywswId) { + re.bywswId = this.bywsw.bywswId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + params.append('allergy', JSON.stringify(allergy)) + params.append('fileNameForMa', JSON.stringify(pic1)) + + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + initValue(key, type = 'normal') { + if (!this.bywsw) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.bywsw[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.bywsw[key]) + } else if (type === 'array') { + return this.bywsw[key].split(',') + } else { + return this.bywsw[key] + '' + } + }, + dealAnswers(data) { + var that = this + var answer = data.bywsw + var alList = ['铜绿假单胞菌', '阴沟肠杆菌', '肺炎克雷伯菌', '肺炎链球菌', '副流感嗜血杆菌', '鲍曼不动杆菌', '金黄色葡萄球菌'] + if (answer && !_.isEmpty(answer)) { + var splitArr = [] + if (answer.a) { + splitArr = answer.a.split(',') + if (splitArr.indexOf('1') > -1) { + this.control1 = true + } + if (splitArr.indexOf('2') > -1) { + this.control2 = true + } + if (splitArr.indexOf('3') > -1) { + this.control3 = true + } + if (splitArr.indexOf('4') > -1) { + this.control4 = true + } + if (splitArr.indexOf('5') > -1) { + this.control5 = true + } + } + if (answer.a2 && answer.a2 === -1) { + this.controla2 = true + } + if (answer.a4 && answer.a4 === 1) { + this.controla4 = true + } + if (answer.a6 && answer.a6 === 1) { + this.controla6 = true + } + if (answer.b2 && answer.b2 === -1) { + this.controlb2 = true + } + if (answer.b4 && answer.b4 === 1) { + this.controlb4 = true + } + if (answer.c2 && answer.c2 === -1) { + this.controlc2 = true + } + if (answer.c4) { + splitArr = answer.c4.split(',') + if (splitArr.indexOf('1') > -1) { + this.controlc41 = true + } + if (splitArr.indexOf('2') > -1) { + this.initC4 = true + } + } + if (answer.a3) { + splitArr = answer.a3.split(',') + if (splitArr.indexOf('1') > -1) { + this.controla31 = true + } + if (splitArr.indexOf('2') > -1) { + this.controla32 = true + } + if (splitArr.indexOf('3') > -1) { + this.controla33 = true + } + if (splitArr.indexOf('4') > -1) { + this.controla34 = true + } + } + if(answer.a311 === 3) { + this.controla3113 = true + } + if(answer.a321 === 3) { + this.controla3213 = true + } + if(answer.a331 === 3) { + this.controla3313 = true + } + if(answer.a341 === 3) { + this.controla3413 = true + } + if(answer.b311 === 3) { + this.controlb3113 = true + } + if(answer.b321 === 3) { + this.controlb3213 = true + } + if(answer.b331 === 3) { + this.controlb3313 = true + } + if(answer.b341 === 3) { + this.controlb3413 = true + } + if(answer.c311 === 3) { + this.controlc3113 = true + } + if(answer.c321 === 3) { + this.controlc3213 = true + } + if(answer.c331 === 3) { + this.controlc3313 = true + } + if(answer.c341 === 3) { + this.controlc3413 = true + } + if (answer.b3) { + splitArr = answer.b3.split(',') + if (splitArr.indexOf('1') > -1) { + this.controlb31 = true + } + if (splitArr.indexOf('2') > -1) { + this.controlb32 = true + } + if (splitArr.indexOf('3') > -1) { + this.controlb33 = true + } + if (splitArr.indexOf('4') > -1) { + this.controlb34 = true + } + } + if (answer.c3) { + splitArr = answer.c3.split(',') + if (splitArr.indexOf('1') > -1) { + this.controlc31 = true + } + if (splitArr.indexOf('2') > -1) { + this.controlc32 = true + } + if (splitArr.indexOf('3') > -1) { + this.controlc33 = true + } + if (splitArr.indexOf('4') > -1) { + this.controlc34 = true + } + } + if (answer.d3) { + splitArr = answer.d3.split(',') + if (splitArr.indexOf('1') > -1) { + this.controld31 = true + } + if (splitArr.indexOf('2') > -1) { + this.controld32 = true + } + if (splitArr.indexOf('3') > -1) { + this.controld33 = true + } + if (splitArr.indexOf('4') > -1) { + this.controld34 = true + } + } + if (answer.a42) { + splitArr = answer.a42.split(',') + if (splitArr.indexOf('0') > -1) { + this.controla420 = true + } + if (splitArr.indexOf('1') > -1) { + this.controla421 = true + } + if (splitArr.indexOf('2') > -1) { + this.controla422 = true + } + if (splitArr.indexOf('3') > -1) { + this.controla423 = true + } + if (splitArr.indexOf('4') > -1) { + this.controla424 = true + } + if (splitArr.indexOf('5') > -1) { + this.controla425 = true + } + if (splitArr.indexOf('6') > -1) { + this.controla426 = true + } + if (splitArr.indexOf('7') > -1) { + this.controla427 = true + } + if (splitArr.indexOf('8') > -1) { + this.controla428 = true + } + if (splitArr.indexOf('9') > -1) { + this.controla429 = true + } + if (splitArr.indexOf('10') > -1) { + this.controla4210 = true + } + if (splitArr.indexOf('11') > -1) { + this.controla4211 = true + } + if (splitArr.indexOf('12') > -1) { + this.controla4212 = true + } + } + if (data[1]) { + _.each(alList, function(v, i) { + if (data[1][v]) { + that.optionDataSource[i] = _.map(data[1][v], function(v, i) { + return { + keyW: i, + microbeName: v.microbeName, + antibiotic: v.antibiotic, + antibioticResult: v.antibioticResult, + allergyValue: v.allergyValue + }; + }) + } + }) + var other = _.filter(data[1], function(v, k) { return alList.indexOf(k) === -1 }) + if (other && other.length) { + that.optionDataSource[7] = _.map(other[0], function(v, i) { + return { + keyW: i, + microbeName: v.microbeName, + antibiotic: v.antibiotic, + antibioticResult: v.antibioticResult, + allergyValue: v.allergyValue + }; + }) + that.otherName1 = other[0][0].microbeName + } + } + if (answer.b42) { + if (splitArr.indexOf('2') > -1) { + this.controlb422 = true + } + } + if (data[2]) { + _.each(alList, function(v, i) { + if (data[2][v]) { + that.optionDataSource2[i] = _.map(data[2][v], function(v, i) { + return { + keyW: i, + microbeName: v.microbeName, + antibiotic: v.antibiotic, + antibioticResult: v.antibioticResult, + allergyValue: v.allergyValue + }; + }) + } + }) + var other = _.filter(data[2], function(v, k) { return alList.indexOf(k) === -1 }) + if (other && other.length) { + that.optionDataSource2[7] = _.map(other[0], function(v, i) { + return { + keyW: i, + microbeName: v.microbeName, + antibiotic: v.antibiotic, + antibioticResult: v.antibioticResult, + allergyValue: v.allergyValue + }; + }) + that.otherName2 = other[0][0].microbeName + } + } + if (answer.c41) { + splitArr = answer.c41.split(',') + if (splitArr.indexOf('5') > -1) { + this.controlc415 = true + } + } + } + return answer + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + showList(e, name, controlNode, isSimple) { + if (e.target.checked) { + this[controlNode] = true + if (name == "其他") return + this.getMedicineAllergyList(name, e.target.value, isSimple) + } else { + this[controlNode] = false + if (isSimple) { + this.$set(this.optionDataSource, e.target.value, []) + } else { + this.$set(this.optionDataSource2, e.target.value, []) + } + + } + }, + getMedicineAllergyList(value, index, isSimple) { + const that = this + const params = new URLSearchParams() + params.append('microbeName', value) + getMedicineAllergyList(params).then(res => { + const optionDataSource = _.map(res.data, function(v, i) { + return { + keyW: i, + microbeName: v.microbeName, + antibiotic: v.antibiotic, + antibioticResult: v.antibioticResult, + allergyValue: v.allergyValue + }; + }) + if (isSimple) { + that.$set(that.optionDataSource, index, optionDataSource) + } else { + that.$set(that.optionDataSource2, index, optionDataSource) + } + }) + }, + otherChange(e, index, isSimple) { + this.getMedicineAllergyList(e.target.value, index, isSimple) + }, + changeType1(v) { + this.type1 = v + }, + changePic1(e, index) { + this.picList1[index] = e + }, + withdraw() { + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.bywsw.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + _importData() { + var that = this + this.$confirm({ + title: '是否确定导入数据?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('basisMarkId', that.maskId) + params.append('patientBasisId', that.patientBasisId) + exportFormData(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + that.bywsw = _.extend(that.bywsw || {}, that.dealAnswers(res.data.data)) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + handleNone(e, d, v, arr, extra) { + if(e.target.checked){ + let data = {} + data[d] = [v] + if(d === 'a') { + this.control1 = false + this.control2 = false + this.control3 = false + this.control5 = false + this[extra] = true + } + this.$nextTick(() => { + this.form.setFieldsValue(data) + arr.forEach((t) => { + this[t] = false + }) + }) + } else { + if(d === 'a') { + this.control4 = false + } + if(d === 'c4') { + this.initC4 = false + } + } + }, + detect(d, v) { + if(Array.isArray(this.form.getFieldValue(d)) && this.form.getFieldValue(d).indexOf(v) > -1) { + return true + } else { + return false + } + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + + .treeSubTitle { + font-size: 14px; + } + + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + margin-top: 42px; + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 20px 20px 40px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +@media screen and (max-width: 1366px) { + .control-m-line.ant-checkbox-group { + top: 10px; + position: relative; + } +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/account/center/components/mask-7.vue b/src/views/account/center/components/mask-7.vue new file mode 100644 index 0000000000..ced482ef4f --- /dev/null +++ b/src/views/account/center/components/mask-7.vue @@ -0,0 +1,1248 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" :layout="formLayout" class="base-form"> + <div class="clearfix" style="position:relative;top: 20px;"> + <a-button class="btn fr" type="primary" @click="_importData">导入数据</a-button> + </div> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!(ICON患者,必须填写实际检测值。基线访视辅助检查可使用入组前6个月内的检查结果,但要求从检查日期到入组日期之间未发生急性加重,否则需要在基线数据收集时重新辅助检查)</p> + <div class="title">1.病因学相关检查</div> + <a-form-item class="border-dotted" label="(1) 胃食管反流病量表评分:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-popover> + <template slot="content">评分标准:Gerd-Q计分>=8分,提示胃食管反流</template> + <a-icon type="exclamation-circle" style="position: relative;left: -20px;color: #0399ec;cursor: pointer;" /> + </a-popover> + <a-input style="width: 240px;" v-decorator="['z', {...inputRequired, initialValue: initValue('z')}]" autocomplete="off" :readOnly="true"></a-input> + </a-form-item> + <a-form-item label="评分日期" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['z7', { initialValue: initValue('z7', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> + <div class="font-w">回忆过去7天当中下列症状发生的频率:</div> + <a-form-item label="您胸骨后出现灼烧感(烧心)的频率?:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['z1', {...selectRequired, initialValue: initValue('z1')}]" @change="computeGerd"> + <a-radio value="1">0天/周</a-radio> + <a-radio value="2">1天/周</a-radio> + <a-radio value="3">2-3天/周</a-radio> + <a-radio value="4">4-7天/周</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="感觉到有胃内容物(液体或食物)上返到您的喉咙或口腔(反流)的频率?:" :labelCol="labelCol10" :wrapperCol="wrapperHor14"> + <a-radio-group v-decorator="['z2', {...selectRequired, initialValue: initValue('z2')}]" @change="computeGerd"> + <a-radio value="1">0天/周</a-radio> + <a-radio value="2">1天/周</a-radio> + <a-radio value="3">2-3天/周</a-radio> + <a-radio value="4">4-7天/周</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="您感到上腹部中央疼痛的频率?:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['z3', {...selectRequired, initialValue: initValue('z3')}]" @change="computeGerd"> + <a-radio value="1">0天/周</a-radio> + <a-radio value="2">1天/周</a-radio> + <a-radio value="3">2-3天/周</a-radio> + <a-radio value="4">4-7天/周</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="您感到恶心的频率?:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['z4', {...selectRequired, initialValue: initValue('z4')}]" @change="computeGerd"> + <a-radio value="1">0天/周</a-radio> + <a-radio value="2">1天/周</a-radio> + <a-radio value="3">2-3天/周</a-radio> + <a-radio value="4">4-7天/周</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="由于您的烧心和/或反流而难以获得良好夜间睡眠的频率?:" :labelCol="labelCol10" :wrapperCol="wrapperHor14" class="border-dotted"> + <a-radio-group v-decorator="['z5', {...selectRequired, initialValue: initValue('z5')}]" @change="computeGerd"> + <a-radio value="1">0天/周</a-radio> + <a-radio value="2">1天/周</a-radio> + <a-radio value="3">2-3天/周</a-radio> + <a-radio value="4">4-7天/周</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="除以上告知服用的药物外,您额外服用药物来缓解烧心和/或反流的频率?(如碳酸钙、氢氧化铝等抗酸剂):" :labelCol="labelCol14" :wrapperCol="wrapperHor10"> + <a-radio-group v-decorator="['z6', {...selectRequired, initialValue: initValue('z6')}]" @change="computeGerd"> + <a-radio value="1">0天/周</a-radio> + <a-radio value="2">1天/周</a-radio> + <a-radio value="3">2-3天/周</a-radio> + <a-radio value="4">4-7天/周</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(2) ABPA相关检查:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a1', {...selectRequired, initialValue: initValue('a1')}]" @change="changeRadio($event, 'controla1')"> + <a-radio value="1">已做</a-radio> + <a-radio value="-1">未做</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla1"> + <a-form-item label="检查日期" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['b1', {...dateRequire, initialValue: initValue('b1', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> + <a-form-item label="外周血嗜酸细胞(绝对值):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-form-item :style="{ display: 'inline-block'}"> + <a-input addonAfter="*10^9/L" style="width: 240px; margin-right: 20px;" v-decorator="['a11', {initialValue: initValue('a11')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :style="{ display: 'inline-block'}"> + <a-radio-group v-decorator="['a12', {...selectRequired, initialValue: initValue('a12')}]"> + <a-radio value="1">升高</a-radio> + <a-radio value="2">正常</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + </a-form-item> + <a-form-item label="血总IgE:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-form-item :style="{ display: 'inline-block'}"> + <a-input addonAfter="IU/mL" style="width: 240px; margin-right: 20px;" v-decorator="['a13', {initialValue: initValue('a13')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :style="{ display: 'inline-block'}"> + <a-radio-group v-decorator="['a14', {...selectRequired, initialValue: initValue('a14')}]"> + <a-radio value="1">升高</a-radio> + <a-radio value="2">正常</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + </a-form-item> + <a-form-item label="曲霉特异IgE:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-form-item :style="{ display: 'inline-block'}"> + <a-input addonAfter="IU/L" style="width: 240px; margin-right: 20px;" v-decorator="['a15', {initialValue: initValue('a15')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :style="{ display: 'inline-block'}"> + <a-radio-group v-decorator="['a16', {...selectRequired, initialValue: initValue('a16')}]"> + <a-radio value="1">升高</a-radio> + <a-radio value="2">正常</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + </a-form-item> + <a-form-item label="曲霉皮肤点刺试验:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a17', {...selectRequired, initialValue: initValue('a17')}]"> + <a-radio value="1">阴性</a-radio> + <a-radio value="2">阳性</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="胸部CT有无中心性支扩:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a18', {...selectRequired, initialValue: initValue('a18')}]"> + <a-radio value="1">有</a-radio> + <a-radio value="2">无</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="胸部CT提示高密度黏液栓嵌顿:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a19', {...selectRequired, initialValue: initValue('a19')}]"> + <a-radio value="1">有</a-radio> + <a-radio value="2">无</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + </div> + <a-form-item label="(3) 自身免疫抗体检查:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a2', {...selectRequired, initialValue: initValue('a2')}]" @change="changeRadio($event, 'controla2')"> + <a-radio value="1">已做</a-radio> + <a-radio value="-1">未做</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla2"> + <a-form-item label="自身免疫抗体检查时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['b2', {...dateRequire, initialValue: initValue('b2', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> + <a-form-item label="ANA:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a22', {...selectRequired, initialValue: initValue('a22')}]"> + <a-radio value="1">阳性</a-radio> + <!-- <a-radio value="2">中间</a-radio> --> + <a-radio value="2">阴性</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="ENA:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a23', {...selectRequired, initialValue: initValue('a23')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="2">阴性</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="ANCA:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a25', {...selectRequired, initialValue: initValue('a25')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="2">阴性</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他检查(记录阳性结果):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['a27', {...inputRequired, initialValue: initValue('a27')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(4-1) 球蛋白缺乏:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a3', {...selectRequired, initialValue: initValue('a3')}]" @change="changeRadio($event, 'controla3')"> + <a-radio value="1">已做</a-radio> + <a-radio value="-1">未做</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <span slot="label">(4-2) 血清免疫球蛋白检查<span style="color: red;">(ICON):</span></span> + <a-radio-group v-decorator="['e2', {...selectRequired, initialValue: initValue('e2')}]" @change="changeRadio($event, 'controle2')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla3 || controle2"> + <div v-if="controle2"> + <a-form-item label="检查日期" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['b3', {...dateRequire, initialValue: initValue('b3', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> + </div> + <a-form-item label="IgM:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-form-item :style="{ display: 'inline-block'}"> + <a-input style="width: 240px; margin-right: 20px;" v-decorator="['a31', {...inputRequired, initialValue: initValue('a31')}]" autocomplete="off" addonAfter="g/L"></a-input> + </a-form-item> + <a-form-item :style="{ display: 'inline-block'}"> + <a-radio-group v-decorator="['a32', {...selectRequired, initialValue: initValue('a32')}]"> + <a-radio value="1">正常</a-radio> + <a-radio value="2">降低</a-radio> + <a-radio value="3">升高</a-radio> + <a-radio value="4">未测量</a-radio> + </a-radio-group> + </a-form-item> + </a-form-item> + <a-form-item label="IgG:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-form-item :style="{ display: 'inline-block'}"> + <a-input style="width: 240px; margin-right: 20px;" v-decorator="['a33', {...inputRequired, initialValue: initValue('a33')}]" autocomplete="off" addonAfter="g/L"></a-input> + </a-form-item> + <a-form-item :style="{ display: 'inline-block'}"> + <a-radio-group v-decorator="['a34', {...selectRequired, initialValue: initValue('a34')}]"> + <a-radio value="1">正常</a-radio> + <a-radio value="2">降低</a-radio> + <a-radio value="3">升高</a-radio> + <a-radio value="4">未测量</a-radio> + </a-radio-group> + </a-form-item> + </a-form-item> + <a-form-item label="IgA:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-form-item :style="{ display: 'inline-block'}"> + <a-input style="width: 240px; margin-right: 20px;" v-decorator="['a35', {...inputRequired, initialValue: initValue('a35')}]" autocomplete="off" addonAfter="g/L"></a-input> + </a-form-item> + <a-form-item :style="{ display: 'inline-block'}"> + <a-radio-group v-decorator="['a36', {...selectRequired, initialValue: initValue('a36')}]"> + <a-radio value="1">正常</a-radio> + <a-radio value="2">降低</a-radio> + <a-radio value="3">升高</a-radio> + <a-radio value="4">未测量</a-radio> + </a-radio-group> + </a-form-item> + </a-form-item> + </div> + <a-form-item label="(5-1) 补体缺乏:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a4', {...selectRequired, initialValue: initValue('a4')}]" @change="changeRadio($event, 'controla4')"> + <a-radio value="1">已做</a-radio> + <a-radio value="-1">未做</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <span slot="label">(5-2) 血清补体检查<span style="color: red;">(ICON):</span></span> + <a-radio-group v-decorator="['e3', {...selectRequired, initialValue: initValue('e3')}]" @change="changeRadio($event, 'controle3')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla4 || controle3"> + <div v-if="controle3"> + <a-form-item label="检查日期" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['b4', {...dateRequire, initialValue: initValue('b4', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> + </div> + <a-form-item label="C3:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-form-item :style="{ display: 'inline-block'}"> + <a-input style="width: 240px; margin-right: 20px;" v-decorator="['a41', {...inputRequired, initialValue: initValue('a41')}]" autocomplete="off" addonAfter="g/L"></a-input> + </a-form-item> + <a-form-item :style="{ display: 'inline-block'}"> + <a-radio-group v-decorator="['a42', {...selectRequired, initialValue: initValue('a42')}]"> + <a-radio value="1">正常</a-radio> + <a-radio value="2">降低</a-radio> + <a-radio value="3">升高</a-radio> + <a-radio value="4">未测量</a-radio> + </a-radio-group> + </a-form-item> + </a-form-item> + <a-form-item label="C4:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-form-item :style="{ display: 'inline-block'}"> + <a-input style="width: 240px; margin-right: 20px;" v-decorator="['a43', {...inputRequired, initialValue: initValue('a43')}]" autocomplete="off" addonAfter="g/L"></a-input> + </a-form-item> + <a-form-item :style="{ display: 'inline-block'}"> + <a-radio-group v-decorator="['a44', {...selectRequired, initialValue: initValue('a44')}]"> + <a-radio value="1">正常</a-radio> + <a-radio value="2">降低</a-radio> + <a-radio value="3">升高</a-radio> + <a-radio value="4">未测量</a-radio> + </a-radio-group> + </a-form-item> + </a-form-item> + </div> + <a-form-item label="(6-1) α-1 抗蛋白酶缺乏:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a5', {...selectRequired, initialValue: initValue('a5')}]" @change="changeRadio($event, 'controla5')"> + <a-radio value="1">已做</a-radio> + <a-radio value="-1">未做</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <span slot="label">(6-2) α-1 抗蛋白酶基因检查<span style="color: red;">(ICON):</span></span> + <a-radio-group v-decorator="['e4', {...selectRequired, initialValue: initValue('e4')}]" @change="changeRadio($event, 'controle4')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla5 || controle4"> + <div v-if="controle4"> + <a-form-item label="检查日期" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['b5', {...dateRequire, initialValue: initValue('b5', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> + </div> + <a-form-item label="基因:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a52', {...selectRequired, initialValue: initValue('a52')}]" @change="changeRadio($event, 'controla52')"> + <a-radio value="1">阳性</a-radio> + <a-radio value="2">阴性</a-radio> + </a-radio-group> + </a-form-item> + <!-- <a-form-item class="no-border" label="具体描述::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controla52"> + <a-input style="width: 240px;" v-decorator="['a53', {...inputRequired, initialValue: initValue('a53')}]" autocomplete="off"></a-input> + </a-form-item> --> + </div> + <a-form-item label="(7) 囊性纤维化:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a6', {...selectRequired, initialValue: initValue('a6')}]" @change="changeRadio($event, 'controla6')"> + <a-radio value="1">已做</a-radio> + <a-radio value="-1">未做</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla6"> + <a-form-item label="汗液实验:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a61', { ...selectRequired, initialValue: initValue('a61')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="2">阴性</a-radio> + <!-- <a-radio value="3">未测</a-radio> --> + </a-radio-group> + </a-form-item> + <a-form-item label="基因检查:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a62', { ...selectRequired, initialValue: initValue('a62')}]"> + <a-radio value="1">纯合</a-radio> + <a-radio value="2">杂合</a-radio> + <a-radio value="3">无突变</a-radio> + <!-- <a-radio value="4">未测</a-radio> --> + </a-radio-group> + </a-form-item> + </div> + <a-form-item label="(8) 纤毛功能检测:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a7', {...selectRequired, initialValue: initValue('a7')}]" @change="changeRadio($event, 'controla7')"> + <a-radio value="1">已做</a-radio> + <a-radio value="-1">未做</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla7"> + <a-form-item label="检查日期" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['b7', {...dateRequire, initialValue: initValue('b7', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> + <a-form-item label="FeNOppd:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a71', { ...selectRequired, initialValue: initValue('a71')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="2">阴性</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="电镜检测的活检:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a73', { ...selectRequired, initialValue: initValue('a73')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="2">阴性</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="分析纤毛摆动频率的活检:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a74', { ...selectRequired, initialValue: initValue('a74')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="2">阴性</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="基因检测:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a75', { ...selectRequired, initialValue: initValue('a75')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="2">阴性</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + </div> + <a-form-item label="(9) 其他:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['a8', {initialValue: initValue('a8')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item class="font-w" label="(10) 小结:根据实验室检查及既往病史判断(单选):" :labelCol="{md: 20}" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a9', {...selectRequired, initialValue: initValue('a9')}]" @change="changeRadio($event, 'controla920')" style="line-height: 22px;"> + <a-radio value="1">特发性</a-radio> + <a-radio value="2">感染后性</a-radio> + <a-radio value="3">结核后性</a-radio> + <a-radio value="4">原发性纤毛不动症</a-radio> + <a-radio value="5">弥漫性泛细支气管炎</a-radio> + <a-radio value="6">ABPA</a-radio> + <a-radio value="7">炎症性肠病</a-radio> + <a-radio value="8">结缔组织病(类风湿性关节炎)</a-radio> + <a-radio value="21">结缔组织病(非类风湿性关节炎)</a-radio> + <a-radio value="9">CF</a-radio> + <a-radio value="10">α1-抗胰蛋白酶缺乏</a-radio> + <a-radio value="11">误吸</a-radio> + <a-radio value="12">胃食管返流病</a-radio> + <a-radio value="13">大气道先天性异常</a-radio> + <a-radio value="14">NTM</a-radio> + <a-radio value="15">慢阻肺</a-radio> + <a-radio value="16">哮喘</a-radio> + <a-radio value="17">普通变异性免疫缺陷病(CVID)</a-radio> + <a-radio value="18">血浆抗体缺乏</a-radio> + <a-radio value="19">特异抗体缺乏性</a-radio> + <a-radio value="20">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="具体描述::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" class="border-dotted" v-if="controla920"> + <a-input style="width: 240px;" v-decorator="['a91', {...inputRequiredNotEmpty, initialValue: initValue('a91')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, computeScore, recoverSubmit, exportFormData } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +export default { + name: 'mask7', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + formLayout: 'horizontal', + markName: 'byxxgjc', + title: '基线', + openKeys: [], + defaultSelectedKeys: [7], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: '100%', + "padding-right": "0px", + "border-right": "1px solid #ddd" + }, + baselineFormStyle: { + // height: '444px', + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + labelCol10: { + xs: { span: 24 }, + sm: { span: 10 }, + md: { span: 10 } + }, + labelCol14: { + xs: { span: 24 }, + sm: { span: 14 }, + md: { span: 14 } + }, + wrapper18: { + md: { span: 20 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperHor14: { + xs: { span: 14 }, + sm: { span: 14 }, + md: { span: 14 } + }, + wrapperHor10: { + xs: { span: 10 }, + sm: { span: 10 }, + md: { span: 10 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 6, offset: 6 } + }, + wrapperOffset: { + md: { span: 12 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + inputRequiredNotEmpty: { + rules: [{ required: true, message: '请填写!', whitespace: true }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + byxxgjc: undefined, + controla1: false, + controla2: false, + controla3: false, + controla4: false, + controla5: false, + controla6: false, + controla7: false, + controla52: false, + controla9: false, + controla920: false, + controla75: false, + controle2: false, + controle3: false, + controle4: false, + controle5: false, + spinning: false, + executeStatus: false, + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined + } + }, + created() { + var that = this + this.defaultSelectedKeys = [7] + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + this.getFormData() + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeSelect(e, t) { + this[t] = e.target.checked + }, + changeRadio(e, t) { + if (t === 'controla920') { + if (e.target.value === '20') { + this[t] = true + } else { + this[t] = false + } + } else if (t === 'controla52' || t === 'controla75') { + if (e.target.value === '3') { + this[t] = true + } else { + this[t] = false + } + } else if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + if (e.key >= 31 && e.key <= 36) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + e.key) + } else { + this.$router.replace('/list/basis/' + this.patientBasisId + '/' + e.key) + } + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'b1': typeof re['b1'] !== 'undefined' ? re['b1'].format('YYYY-MM-DD') : '', + 'b2': typeof re['b2'] !== 'undefined' ? re['b2'].format('YYYY-MM-DD') : '', + 'b3': typeof re['b3'] !== 'undefined' ? re['b3'].format('YYYY-MM-DD') : '', + 'b4': typeof re['b4'] !== 'undefined' ? re['b4'].format('YYYY-MM-DD') : '', + 'b5': typeof re['b5'] !== 'undefined' ? re['b5'].format('YYYY-MM-DD') : '', + 'z7': typeof re['z7'] !== 'undefined' ? re['z7'].format('YYYY-MM-DD') : '', + 'b7': typeof re['b7'] !== 'undefined' ? re['b7'].format('YYYY-MM-DD') : '' + } + console.log(re) + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.byxxgjc && this.byxxgjc.byxxgjcId) { + re.byxxgjcId = this.byxxgjc.byxxgjcId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + initValue(key, type = 'normal') { + if (!this.byxxgjc) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.byxxgjc[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.byxxgjc[key]) + } else if (type === 'array') { + return this.byxxgjc[key].split(',') + } else { + return this.byxxgjc[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + if (answer.a1 === 1) { + this.controla1 = true + } + if (answer.a2 === 1) { + this.controla2 = true + } + if (answer.a3 === 1) { + this.controla3 = true + } + if (answer.a4 === 1) { + this.controla4 = true + } + if (answer.a5 === 1) { + this.controla5 = true + } + if (answer.a6 === 1) { + this.controla6 = true + } + if (answer.a7 === 1) { + this.controla7 = true + } + if (answer.a9 === 20) { + this.controla920 = true + } + if (answer.a52 === 3) { + this.controla52 = true + } + if (answer.a75 === 3) { + this.controla75 = true + } + if (answer.e2 === 1) { + this.controle2 = true + } + if (answer.e3 === 1) { + this.controle3 = true + } + if (answer.e4 === 1) { + this.controle4 = true + } + if (answer.e5 === 1) { + this.controle5 = true + } + } + return answer + }, + getFormData() { + this.spinning = true + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + this.spinning = false + if (res.data && res.data.byxxgjc) + that.byxxgjc = that.dealAnswers(res.data.byxxgjc) + }) + .catch(error => { + this.spinning = false + console.log(error) + }) + }, + save() { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'b1': typeof re['b1'] !== 'undefined' ? re['b1'].format('YYYY-MM-DD') : '', + 'b2': typeof re['b2'] !== 'undefined' ? re['b2'].format('YYYY-MM-DD') : '', + 'b3': typeof re['b3'] !== 'undefined' ? re['b3'].format('YYYY-MM-DD') : '', + 'b4': typeof re['b4'] !== 'undefined' ? re['b4'].format('YYYY-MM-DD') : '', + 'b5': typeof re['b5'] !== 'undefined' ? re['b5'].format('YYYY-MM-DD') : '', + 'z7': typeof re['z7'] !== 'undefined' ? re['z7'].format('YYYY-MM-DD') : '', + 'b7': typeof re['b7'] !== 'undefined' ? re['b7'].format('YYYY-MM-DD') : '' + } + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.byxxgjc && this.byxxgjc.byxxgjcId) { + re.byxxgjcId = this.byxxgjc.byxxgjcId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + computeGerd() { + var that = this + this.$nextTick(() => { + var params = new URLSearchParams() + params.append('scoreType', 'gerd') + params.append('byxxgjcStr', JSON.stringify(that.form.getFieldsValue())) + computeScore(params) + .then(res => { + console.log(res.data.z) + that.form.setFieldsValue({ + z: res.data.z + }) + }) + .catch(error => { + console.log(error) + }) + }) + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + withdraw() { + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.byxxgjc.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + _importData() { + var that = this + this.$confirm({ + title: '是否确定导入数据?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('basisMarkId', that.maskId) + params.append('patientBasisId', that.patientBasisId) + exportFormData(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + that.byxxgjc = _.extend(that.byxxgjc || {}, that.dealAnswers(res.data.data.byxxgjc)) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +/deep/ .font-w .ant-form-item-required { + font-weight: bold; +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + + .treeSubTitle { + font-size: 14px; + } + + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + margin-top: 42px; + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 20px 20px 50px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/account/center/components/mask-8.vue b/src/views/account/center/components/mask-8.vue new file mode 100644 index 0000000000..9a5d57f80e --- /dev/null +++ b/src/views/account/center/components/mask-8.vue @@ -0,0 +1,1500 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="clearfix" style="position:relative;top: 20px;"> + <a-button class="btn fr" type="primary" @click="_importData">导入数据</a-button> + </div> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!(ICON患者,必须填写实际检测值。基线访视辅助检查可使用入组前6个月内的检查结果,但要求从检查日期到入组日期之间未发生急性加重,否则需要在基线数据收集时重新辅助检查)</p> + <div class="title">1.肺功能相关检查 + <a style="float: right;font-size:12px;margin-right: 12px;" @click="showOcr = !showOcr">OCR</a> + <!-- <a-icon type="zoom-in" style="float: right;margin-top: 12px;margin-right: 12px;color: #ccc;" @click="changeOcr" /> --> + </div> + <a-form-item label="检查日期" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['t1', {initialValue: initValue('t1', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> + <a-form-item label="报告上传 :" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="showOcr"> + <div class="clearfix" style="margin-top: 10px;"> + <a-upload :action="uploadUrl" class="images1" v-viewer listType="picture-card" :fileList="fileList1" @preview="handlePreview1" @change="handleChange1"> + <div v-if="fileList1.length < 1"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-button style="position: absolute;top: 84px;left: 120px;font-size: 12px;padding: 0 5px;height: 30px;" @click="_importF" v-if="fileList1.length === 1 && showOcr">OCR识别</a-button> + <!-- <a-modal :visible="previewVisible1" :footer="null" @cancel="handleCancel1"> + <img alt="example" style="width: 100%" :src="previewImage1" /> + </a-modal> --> + </div> + </a-form-item> + <a-form-item label="简易肺功能仪:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['g1', {initialValue: initValue('g1')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="0">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="肺功能测试名称" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-row type="flex"> + <a-col :span="12">实际值</a-col> + <a-col :span="12">实/预%</a-col> + </a-row> + </a-form-item> + <a-form-item label="FVC::" :labelCol="labelXs" :wrapperCol="wrapperMx" class="requireIcon"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a21', {...inputRequired, initialValue: initValue('a21')}]" addonAfter="L" autocomplete="off" @change="notice($event, 'FVC', 0.5, 6)"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a22', {...inputRequired, initialValue: initValue('a22')}]" addonAfter="%" autocomplete="off" @change="notice($event, 'FVC%', 20, 150)"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV1::" :labelCol="labelXs" :wrapperCol="wrapperMx" class="requireIcon"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a31', {...inputRequired, initialValue: initValue('a31')}]" addonAfter="L" autocomplete="off" @change="notice($event, 'FEV1', 0.2, 5)"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a32', {...inputRequired, initialValue: initValue('a32')}]" addonAfter="%" autocomplete="off" @change="notice($event, 'FEV1%', 20, 150)"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV1%FVC::" :labelCol="labelXs" :wrapperCol="wrapperMx" class="requireIcon"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a41', {...inputRequired, initialValue: initValue('a41')}]" addonAfter="%" autocomplete="off" @change="notice($event, 'FEV1%FVC', undefined, 100)"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV1%VC MAX::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a51', {initialValue: initValue('a51')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a52', {initialValue: initValue('a52')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV3::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a61', {initialValue: initValue('a61')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a62', {initialValue: initValue('a62')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV3%FVC::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b21', {initialValue: initValue('b21')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b22', {initialValue: initValue('b22')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="PEF::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b31', {initialValue: initValue('b31')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b32', {initialValue: initValue('b32')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MEF 75::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b41', {initialValue: initValue('b41')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b42', {initialValue: initValue('b42')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MEF 50::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b51', {initialValue: initValue('b51')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b52', {initialValue: initValue('b52')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MEF 25::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b61', {initialValue: initValue('b61')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b62', {initialValue: initValue('b62')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MMEF::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b71', {initialValue: initValue('b71')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b72', {initialValue: initValue('b72')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MVV::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b81', {initialValue: initValue('b81')}]" addonAfter="L/min" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b82', {initialValue: initValue('b82')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV 1*30::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b91', {initialValue: initValue('b91')}]" addonAfter="L/min" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b92', {initialValue: initValue('b92')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="RV::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <!-- <a-input v-decorator="['t1', {initialValue: '1'}]" style="display: none;"></a-input> --> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b101', {initialValue: initValue('b101')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b102', {initialValue: initValue('b102')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="TLC::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b111', {initialValue: initValue('b111')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b112', {initialValue: initValue('b112')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="RV%TLC::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b121', {initialValue: initValue('b121')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b122', {initialValue: initValue('b122')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="ITGV::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b131', {initialValue: initValue('b131')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b132', {initialValue: initValue('b132')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="IC::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b141', {initialValue: initValue('b141')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b142', {initialValue: initValue('b142')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="ERV::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b151', {initialValue: initValue('b151')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b152', {initialValue: initValue('b152')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="DLCO SB::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b161', {initialValue: initValue('b161')}]" addonAfter="ml/min/mmHg" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b162', {initialValue: initValue('b162')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="DLCO/VA::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b171', {initialValue: initValue('b171')}]" addonAfter="ml/min/mmHg" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b172', {initialValue: initValue('b172')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="DLCO SB::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b163', {initialValue: initValue('b163')}]" addonAfter="mmol/min/kPa" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="DLCO/VA::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b173', {initialValue: initValue('b173')}]" addonAfter="mmol/min/kPa/L" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="(2) 是否做过其他舒张试验:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['c', {...require1, initialValue: initValue('c')}]" @change="changeRadio($event, 'controlc')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlc"> + <a-form-item label="报告上传 :" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="showOcr"> + <div class="clearfix" style="margin-top: 10px;"> + <a-upload :action="uploadUrl" class="images2" v-viewer listType="picture-card" :fileList="fileList2" @preview="handlePreview2" @change="handleChange2"> + <div v-if="fileList2.length < 1"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-button style="position: absolute;top: 84px;left: 120px;font-size: 12px;padding: 0 5px;height: 30px;" @click="_importS" v-if="fileList2.length === 1 && showOcr">OCR识别</a-button> + <!-- <a-modal :visible="previewVisible2" :footer="null" @cancel="handleCancel2"> + <img alt="example" style="width: 100%" :src="previewImage2" /> + </a-modal> --> + </div> + </a-form-item> + <a-form-item label="舒张试验名称" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-row type="flex"> + <a-col :span="6">前次</a-col> + <a-col :span="6">前/预</a-col> + <a-col :span="6">后次</a-col> + <a-col :span="6">后/预</a-col> + </a-row> + </a-form-item> + <a-form-item label="VC MAX::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c11', { initialValue: initValue('c11')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d11', { initialValue: initValue('d11')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c12', { initialValue: initValue('c12')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d12', { initialValue: initValue('d12')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FVC::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c21', { initialValue: initValue('c21')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d21', { initialValue: initValue('d21')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c22', { initialValue: initValue('c22')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d22', { initialValue: initValue('d22')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV1::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c31', { initialValue: initValue('c31')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d31', { initialValue: initValue('d31')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c32', { initialValue: initValue('c32')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d32', { initialValue: initValue('d32')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV1%FVC::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c41', { initialValue: initValue('c41')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d41', { initialValue: initValue('d41')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c42', { initialValue: initValue('c42')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d42', { initialValue: initValue('d42')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV1%VC MAX::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c51', { initialValue: initValue('c51')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d51', { initialValue: initValue('d51')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c52', { initialValue: initValue('c52')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d52', { initialValue: initValue('d52')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV3::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c61', { initialValue: initValue('c61')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d61', { initialValue: initValue('d61')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c62', { initialValue: initValue('c62')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d62', { initialValue: initValue('d62')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV3%FVC::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c71', { initialValue: initValue('c71')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d71', { initialValue: initValue('d71')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c72', { initialValue: initValue('c72')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d72', { initialValue: initValue('d72')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="PEF::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c81', { initialValue: initValue('c81')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d81', { initialValue: initValue('d81')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c82', { initialValue: initValue('c82')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d82', { initialValue: initValue('d82')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MEF 75::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c91', { initialValue: initValue('c91')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d91', { initialValue: initValue('d91')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c92', { initialValue: initValue('c92')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d92', { initialValue: initValue('d92')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MEF 50::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c101', { initialValue: initValue('c101')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d101', { initialValue: initValue('d101')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c102', { initialValue: initValue('c102')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d102', { initialValue: initValue('d102')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MEF 25::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c111', { initialValue: initValue('c111')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d111', { initialValue: initValue('d111')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c112', { initialValue: initValue('c112')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d112', { initialValue: initValue('d112')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MEF 75/25::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c121', { initialValue: initValue('c121')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d121', { initialValue: initValue('d121')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c122', { initialValue: initValue('c122')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d122', { initialValue: initValue('d122')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="V%FVC::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c131', { initialValue: initValue('c131')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d131', { initialValue: initValue('d131')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c132', { initialValue: initValue('c132')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d132', { initialValue: initValue('d132')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MVV::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c141', { initialValue: initValue('c141')}]" addonAfter="L/min" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + </div> + <a-form-item label="(3) 肺功能结论:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['d', {...require1, initialValue: initValue('d')}]" @change="changeRadio($event, 'controld')"> + <a-radio value="1">通气功能正常</a-radio> + <a-radio value="-1">通气功能减退</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="通气功能减退类型:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" class="border-dotted" v-if="controld"> + <a-radio-group v-decorator="['e12', {...require1, initialValue: initValue('e12')}]"> + <a-radio value="1">阻塞性</a-radio> + <a-radio value="2">限制性</a-radio> + <a-radio value="3">混合型</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(4) 呼出气一氧化氮(FeNO):" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-input addonAfter="ppb" style="width: 240px;" v-decorator="['d1', {initialValue: initValue('d1')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(5) 6分钟步行试验总距离:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-input addonAfter="m" style="width: 240px;" v-decorator="['e', { initialValue: initValue('e')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(6) 血气分析:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + </a-form-item> + <a-form-item label="检查日期" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['f5', {initialValue: initValue('f5', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> + <a-form-item label="PH:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-input style="width: 240px;" v-decorator="['f', { initialValue: initValue('f')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="氧分压:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-input style="width: 240px;" v-decorator="['f1', { initialValue: initValue('f1')}]" addonAfter="mmHg" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="二氧化碳分压:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-input style="width: 240px;" v-decorator="['f2', { initialValue: initValue('f2')}]" addonAfter="mmHg" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="肺动脉氧分压差:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-input style="width: 240px;" v-decorator="['f3', {initialValue: initValue('f3')}]" autocomplete="off" addonAfter="mmHg"></a-input> + </a-form-item> + <a-form-item label="氧饱和度:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-input style="width: 240px;" v-decorator="['f4', { initialValue: initValue('f4')}]" autocomplete="off" addonAfter="%"></a-input> + </a-form-item> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, recoverSubmit, exportFormData } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { getOcrResult } from '@/api/basis' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +import _ from 'lodash' +export default { + name: 'mask8', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + showOcr: false, + // previewVisible1: false, + // previewImage1: '', + // previewVisible2: false, + // previewImage2: '', + uploadUrl: process.env.VUE_APP_API_UPLOAD_URL, + viewPicUrl: process.env.VUE_APP_API_VIEW_PIC_URL, + fileList1: [], + fileList2: [], + markName: 'fgnxgjc', + title: '基线', + openKeys: [], + defaultSelectedKeys: [8], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: '100%', + "padding-right": "0px", + "border-right": "1px solid #ddd" + }, + baselineFormStyle: { + // height: '444px', + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 7 }, + md: { span: 7 } + }, + labelXs: { + xs: { span: 24 }, + sm: { span: 5 }, + md: { span: 5 } + }, + wrapperMx: { + xs: { span: 24 }, + sm: { span: 19 }, + md: { span: 19 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 17 }, + md: { span: 17 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelNew: { + xs: { span: 2 }, + sm: { span: 2 }, + md: { span: 2 } + }, + wrapperNew: { + xs: { span: 22 }, + sm: { span: 22 }, + md: { span: 22 } + }, + labelColOffset: { + md: { span: 4, offset: 7 } + }, + wrapperOffset: { + md: { span: 13 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + fgnxgjc: undefined, + controla21: false, + controla31: false, + controla41: false, + controla51: false, + controla61: false, + controlb23: false, + controlb33: false, + controlb43: false, + controlb53: false, + controlb63: false, + controlc: false, + controlc11: false, + controlc21: false, + controlc31: false, + controlc41: false, + controld: false, + spinning: false, + executeStatus: false, + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + this.getFormData() + // 创建节流版本,防止触发过快 + this.notice = _.debounce(this.notice, 300) + }, + activated() { + this.getFormData() + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeSelect(e, t) { + this[t] = e.target.checked + }, + changeRadio(e, t) { + if (t === 'controld') { + if (e.target.value === '-1') { + this[t] = true + } else { + this[t] = false + } + } else if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + if (e.key >= 31 && e.key <= 36) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + e.key) + } else { + this.$router.replace('/list/basis/' + this.patientBasisId + '/' + e.key) + } + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + + re = { + ...re, + 't1': typeof re['t1'] !== 'undefined' ? re['t1'].format('YYYY-MM-DD') : '', + 'f5': typeof re['f5'] !== 'undefined' ? re['f5'].format('YYYY-MM-DD') : '' + } + var that = this + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.fgnxgjc && this.fgnxgjc.fgnxgjcId) { + re.fgnxgjcId = this.fgnxgjc.fgnxgjcId + } + //附件 + if (this.fileList1 && this.fileList1.length) { + var a = [] + _.each(this.fileList1, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + } + //附件 + if (this.fileList2 && this.fileList2.length) { + var a = [] + _.each(this.fileList2, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileNameOther', JSON.stringify(a)) + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + initValue(key, type = 'normal') { + if (!this.fgnxgjc) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (this.fgnxgjc[key] !== 0) { + if (!this.fgnxgjc[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + } + if (type === 'time') { + return moment(this.fgnxgjc[key]) + } else if (type === 'array') { + return this.fgnxgjc[key].split(',') + } else { + return this.fgnxgjc[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + if (answer.a21 === 1) { + this.controla21 = true + } + if (answer.a31 === 1) { + this.controla31 = true + } + if (answer.a41 === 1) { + this.controla41 = true + } + if (answer.a51 === 1) { + this.controla51 = true + } + if (answer.a61 === 1) { + this.controla61 = true + } + if (answer.b23 === 1) { + this.controlb23 = true + } + if (answer.b33 === 1) { + this.controlb33 = true + } + if (answer.b43 === 1) { + this.controlb43 = true + } + if (answer.b53 === 1) { + this.controlb53 = true + } + if (answer.b63 === 1) { + this.controlb63 = true + } + if (answer.c === 1) { + this.controlc = true + } + if (answer.c11 === 1) { + this.controlc11 = true + } + if (answer.c21 === 1) { + this.controlc21 = true + } + if (answer.c31 === 1) { + this.controlc31 = true + } + if (answer.c41 === 1) { + this.controlc41 = true + } + if (answer.d === '-1') { + this.controld = true + } + } + return answer + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + getFormData() { + this.spinning = true + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + if (res.data && res.data.fgnxgjc) { + that.fgnxgjc = that.dealAnswers(res.data.fgnxgjc) + } else { + that.fgnxgjc = {} + that.form.resetFields() + } + if (res.data.annexListFgn && res.data.annexListFgn.length) { + that.fileList1 = _.map(res.data.annexListFgn, function(v) { + return { + uid: v.annexId, + url: that.viewPicUrl + v.annexAddress, + name: v.annexAddress, + status: 'done' + } + }) + } else { + that.fileList1 = [] + } + if (res.data.annexListQH && res.data.annexListQH.length) { + that.fileList2 = _.map(res.data.annexListQH, function(v) { + return { + uid: v.annexId, + url: that.viewPicUrl + v.annexAddress, + name: v.annexAddress, + status: 'done' + } + }) + } else { + that.fileList2 = [] + } + this.spinning = false + }) + .catch(error => { + this.spinning = false + console.log(error) + }) + }, + save() { + var re = this.form.getFieldsValue() + re = { + ...re, + 't1': typeof re['t1'] !== 'undefined' ? re['t1'].format('YYYY-MM-DD') : '', + 'f5': typeof re['f5'] !== 'undefined' ? re['f5'].format('YYYY-MM-DD') : '' + } + var that = this + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.fgnxgjc && this.fgnxgjc.fgnxgjcId) { + re.fgnxgjcId = this.fgnxgjc.fgnxgjcId + } + //附件 + if (this.fileList1 && this.fileList1.length) { + var a = [] + _.each(this.fileList1, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + } + //附件 + if (this.fileList2 && this.fileList2.length) { + var a = [] + _.each(this.fileList2, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileNameOther', JSON.stringify(a)) + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + // handleCancel1() { + // this.previewVisible1 = false; + // }, + handlePreview1(file) { + const viewer = this.$el.querySelector('.images1').$viewer + viewer.show() + // this.previewImage1 = file.url || file.thumbUrl; + // this.previewVisible1 = true; + }, + handleChange1({ fileList }) { + var that = this + this.fileList1 = fileList; + if (fileList.every(function(v) { return v.status === 'done'})) { + this.spinning = false + this.fileList1.forEach((f,i) => { + if(f.response){ + that.$set(that.fileList1,i,{ + name: f.response.fileName, + status: 'done', + uid: f.uid, + url: f.response.data.src + }) + } + }) + } + }, + // handleCancel2() { + // this.previewVisible2 = false; + // }, + handlePreview2(file) { + const viewer = this.$el.querySelector('.images2').$viewer + viewer.show() + // this.previewImage2 = file.url || file.thumbUrl; + // this.previewVisible2 = true; + }, + handleChange2({ fileList }) { + var that = this + this.fileList2 = fileList; + if (fileList.every(function(v) { return v.status === 'done'})) { + this.spinning = false + this.fileList2.forEach((f,i) => { + if(f.response){ + that.$set(that.fileList2,i,{ + name: f.response.fileName, + status: 'done', + uid: f.uid, + url: f.response.data.src + }) + } + }) + } + }, + _importF() { + this.spinning = true + var params = new URLSearchParams() + params.append('type', 4) + params.append('url', this.fileList1[0].url || this.fileList1[0].response.data.src) + var that = this + getOcrResult(params) + .then(res => { + console.log(res.data) + that.spinning = false + that.$message.success(res.data.info) + // debugger + that.fgnxgjc = _.extend(that.fgnxgjc || {}, that.dealAnswers(res.data)) + // that.form.setFieldsValue(that.fgnxgjc) + }) + .catch(error => { + that.confirmLoading = false + }) + }, + _importS() { + this.spinning = true + var params = new URLSearchParams() + params.append('type', 3) + params.append('url', this.fileList2[0].url || this.fileList2[0].response.data.src) + var that = this + getOcrResult(params) + .then(res => { + console.log(res.data) + that.spinning = false + that.$message.success(res.data.info) + that.fgnxgjc = _.extend(that.fgnxgjc || {}, that.dealAnswers(res.data)) + // that.form.setFieldsValue(that.fgnxgjc) + }) + .catch(error => { + this.confirmLoading = false + }) + }, + withdraw() { + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.fgnxgjc.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + changeOcr() { + this.showOcr = true + }, + _importData() { + var that = this + this.$confirm({ + title: '是否确定导入数据?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('basisMarkId', that.maskId) + params.append('patientBasisId', that.patientBasisId) + exportFormData(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + that.fgnxgjc = _.extend(that.fgnxgjc || {}, that.dealAnswers(res.data.data.fgnxgjc)) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + notice(e, name, low, high) { + let v = parseFloat(e.target.value) + if(!Number.isNaN(v)) { + if(low && v < low) { + this.$message.info(`请确认${name}的值`) + } + if(high && v > high) { + this.$message.info(`请确认${name}的值`) + } + } + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + + .treeSubTitle { + font-size: 14px; + } + + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + margin-top: 42px; + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 20px 20px 40px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +.requireIcon { + position: relative; +} +.requireIcon { + padding-left: 10px; +} +.requireIcon::before { + position: absolute; + top: 21px; + left: 0; + margin-right: 4px; + content: '*'; + font-family: SimSun; + line-height: 1; + font-size: 14px; + color: #f5222d; +} +</style> \ No newline at end of file diff --git a/src/views/account/center/components/mask-9.vue b/src/views/account/center/components/mask-9.vue new file mode 100644 index 0000000000..2fc4859487 --- /dev/null +++ b/src/views/account/center/components/mask-9.vue @@ -0,0 +1,860 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="clearfix" style="position:relative;top: 20px;"> + <a-button class="btn fr" type="primary" @click="_importData">导入数据</a-button> + </div> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!(ICON患者,必须填写实际检测值。基线访视辅助检查可使用入组前6个月内的检查结果,但要求从检查日期到入组日期之间未发生急性加重,否则需要在基线数据收集时重新辅助检查)</p> + <div style="background-color:#f7f8f8;overflow:hidden"> + <a style="float: right;font-size:12px;line-height:40px;margin-right: 12px;font-weight: bold;" @click="showOcr = !showOcr">OCR</a> + </div> + <a-form-item label="报告上传:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="showOcr"> + <div class="clearfix" style="margin-top: 10px;"> + <a-upload :action="uploadUrl" class="images" v-viewer listType="picture-card" :fileList="fileList" @preview="handlePreview" @change="handleChange"> + <div v-if="fileList.length < 1"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-button style="position: absolute;top: 84px;left: 120px;font-size: 12px;padding: 0 5px;height: 30px;" @click="_import" v-if="fileList.length === 1 && showOcr">OCR识别</a-button> + </div> + </a-form-item> + <a-form-item label="有无心脏彩超" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a1', {...require2, initialValue: initValue('a1')}]" @change="changeRadio($event, 'controla1')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla1"> + <a-form-item label="(1) 主动脉根部内径:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b1', { initialValue: initValue('b1')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(2) 左房收缩末期内径:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b2', { initialValue: initValue('b2')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 左室舒张末期内径:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b3', { initialValue: initValue('b3')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(4) 左室收缩末期内径:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b4', { initialValue: initValue('b4')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(5) 室间隔厚度:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b5', { initialValue: initValue('b5')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(6) 左室后壁厚度:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b6', { initialValue: initValue('b6')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(7) 肺动脉收缩压:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b8', { initialValue: initValue('b8')}]" addonAfter="mmHg" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(8) 主肺动脉内径:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b7', { initialValue: initValue('b7')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(9) 右房内径:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['e1', { initialValue: initValue('e1')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(10) 右室内径:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['e2', { initialValue: initValue('e2')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(11) 右室流出道:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['e3', { initialValue: initValue('e3')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(12) 左室射血分数:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c1', { initialValue: initValue('c1')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(13) 左室短轴缩短率:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c2', { initialValue: initValue('c2')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <div class="title">3.小结</div> + <a-form-item label="小结:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['d1', {initialValue: initValue('d1')}]"> + <a-radio value="1">肺动脉高压</a-radio> + <a-radio value="2">肺源性心脏病</a-radio> + <a-radio value="3">无</a-radio> + </a-radio-group> + </a-form-item> + </div> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, recoverSubmit, exportFormData } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { getOcrResult } from '@/api/basis' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +export default { + name: 'mask9', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + controla1: false, + showOcr: false, + markName: 'xzcc', + title: '基线', + openKeys: [], + defaultSelectedKeys: [9], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: '100%', + "padding-right": "0px", + "border-right": "1px solid #ddd" + }, + baselineFormStyle: { + // height: '444px', + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 7 }, + md: { span: 7 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 17 }, + md: { span: 17 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 4, offset: 7 } + }, + wrapperOffset: { + md: { span: 13 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + xzcc: undefined, + spinning: false, + executeStatus: false, + uploadUrl: process.env.VUE_APP_API_UPLOAD_URL, + viewPicUrl: process.env.VUE_APP_API_VIEW_PIC_URL, + fileList: [], + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + this.getFormData() + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeSelect(e, t) { + this[t] = e.target.checked + }, + changeRadio(e, t) { + if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + if (e.key >= 31 && e.key <= 36) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + e.key) + } else { + this.$router.replace('/list/basis/' + this.patientBasisId + '/' + e.key) + } + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + re = { + ...re, + 't1': typeof re['t1'] !== 'undefined' ? re['t1'].format('YYYY-MM-DD') : '' + } + var that = this + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.xzcc && this.xzcc.xzccId) { + re.xzccId = this.xzcc.xzccId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + initValue(key, type = 'normal') { + if (!this.xzcc) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.xzcc[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.xzcc[key]) + } else if (type === 'array') { + return this.xzcc[key].split(',') + } else { + return this.xzcc[key] + '' + } + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + if (answer.a1 === '1') { + this.controla1 = true + } + } + return answer + }, + getFormData() { + this.spinning = true + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + this.spinning = false + if (res.data && res.data.xzcc) + that.xzcc = that.dealAnswers(res.data.xzcc) + }) + .catch(error => { + this.spinning = false + console.log(error) + }) + }, + save() { + var re = this.form.getFieldsValue() + re = { + ...re, + 't1': typeof re['t1'] !== 'undefined' ? re['t1'].format('YYYY-MM-DD') : '' + } + var that = this + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.xzcc && this.xzcc.xzccId) { + re.xzccId = this.xzcc.xzccId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + _import() { + this.spinning = true + var params = new URLSearchParams() + params.append('type', 5) + params.append('url', this.fileList[0].url || this.fileList[0].response.data.src) + var that = this + getOcrResult(params) + .then(res => { + console.log(res.data) + this.spinning = false + this.$message.success(res.data.info) + this.xzcc = _.extend(this.xzcc || {}, this.dealAnswers(res.data)) + that.form.setFieldsValue(that.xzcc) + }) + .catch(error => { + this.confirmLoading = false + }) + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + handlePreview() { + const viewer = this.$el.querySelector('.images').$viewer + viewer.show() + }, + handleChange({ fileList }) { + var that = this + this.fileList = fileList; + if (fileList.every(function(v) { return v.status === 'done'})) { + this.spinning = false + this.fileList.forEach((f,i) => { + if(f.response){ + that.$set(that.fileList,i,{ + name: f.response.fileName, + status: 'done', + uid: f.uid, + url: f.response.data.src + }) + } + }) + } + }, + withdraw() { + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.xzcc.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + changeOcr() { + this.showOcr = true + }, + _importData() { + var that = this + this.$confirm({ + title: '是否确定导入数据?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('basisMarkId', that.maskId) + params.append('patientBasisId', that.patientBasisId) + exportFormData(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + that.xzcc = _.extend(that.xzcc || {}, that.dealAnswers(res.data.data.xzcc)) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + + .treeSubTitle { + font-size: 14px; + } + + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + margin-top: 42px; + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 20px 20px 80px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/account/center/jxjzq.vue b/src/views/account/center/jxjzq.vue new file mode 100644 index 0000000000..aaa00ac03b --- /dev/null +++ b/src/views/account/center/jxjzq.vue @@ -0,0 +1,1204 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height: 100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + + <div class="baselineForm" :style="baselineFormStyle"> + <div class="title">1.急性加重期</div> + <a-form-item label="(1) 急性加重的症状(多选):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['d1', {...selectRequired, initialValue: initValue('d1', 'array')}]" class="control-m-line"> + <a-checkbox value="1">咳嗽加重</a-checkbox> + <a-checkbox value="2">痰量增多</a-checkbox> + <a-checkbox value="3">痰液黏度增加</a-checkbox> + <a-checkbox value="4">痰脓性增加</a-checkbox> + <a-checkbox value="5">呼吸急促加重</a-checkbox> + <a-checkbox value="6">活动耐量下降</a-checkbox> + <a-checkbox value="7">咯血新增或增多</a-checkbox> + <a-checkbox value="8">其他系统症状(如:乏力,发热等)</a-checkbox> + <a-checkbox value="9" :checked="controld1" @change="changeSelect($event, 'controld1')">其他症状</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他症状:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controld1"> + <a-input v-decorator="['d2', {...inputRequired, initialValue: initValue('d2')}]" style="width: 240px;" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(2) 痰量:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['d3', {...inputRequired, initialValue: initValue('d3')}]" style="width: 240px;" autocomplete="off" addonAfter="ml/日"></a-input> + </a-form-item> + <a-form-item label="(3) 痰液粘稠Murry评分" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-popover> + <template slot="content"> + <img src="../../../assets/murry.png" style="height: 260px;" /> + </template> + <a-icon type="exclamation-circle" style="position: relative;left: -20px;color: #0399ec;cursor: pointer;" /> + </a-popover> + <a-radio-group v-decorator="['d31', {...selectRequired, initialValue: initValue('d31')}]"> + <a-radio value="1">黏液性</a-radio> + <a-radio value="2">黏脓性</a-radio> + <a-radio value="3">脓性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(4) 痰血最多量:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['d32', {...inputRequired, initialValue: initValue('d32')}]" style="width: 240px;" autocomplete="off" addonAfter="ml/日"></a-input> + </a-form-item> + <a-form-item label="(5) 咯血量(最多)" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="ml/日" style="width: 240px;" v-decorator="['d33', {...inputRequired, initialValue: initValue('d33')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(6) 有无胸痛" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['d4', {...require2, initialValue: initValue('d4')}]"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(7) 急性加重期入院方式" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['d5', {...selectRequired, initialValue: initValue('d5')}]" @change="changeRadio($event, 'controld5')"> + <a-radio value="1">住院</a-radio> + <a-radio value="2">门诊</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controld5"> + <a-form-item label="记录住院天数::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset"> + <a-input v-decorator="['d51', {...inputRequired, initialValue: initValue('d51')}]" style="width: 240px;" autocomplete="off" addonAfter="天"></a-input> + </a-form-item> + <a-form-item label="住院总费用::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset"> + <a-input v-decorator="['d52', {...inputRequired, initialValue: initValue('d52')}]" style="width: 240px;" autocomplete="off" addonAfter="元"></a-input> + </a-form-item> + </div> + <a-form-item label="(8) 急性加重发生时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" :disabledDate="disabledDate" v-decorator="['d6', {...dateRequire, initialValue: initValue('d6', 'time')}]"></a-date-picker> + </a-form-item> + <a-form-item label="(9) 持续时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['d7', {...inputRequired, initialValue: initValue('d7')}]" style="width: 240px;" autocomplete="off" addonAfter="天"></a-input> + </a-form-item> + <a-form-item label="(10) 采样性质(多选):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['a', {...selectRequired, initialValue: initValue('a', 'array')}]"> + <a-checkbox value="1" :disabled="detect('a', '4')" @change="changeSelect($event, 'control1')">细菌</a-checkbox> + <a-checkbox value="2" :disabled="detect('a', '4')" @change="changeSelect($event, 'control2')">真菌</a-checkbox> + <a-checkbox value="3" :disabled="detect('a', '4')" @change="changeSelect($event, 'control3')">分枝杆菌</a-checkbox> + <a-checkbox value="4" @change="handleNone($event, 'a', '4', ['control1', 'control2', 'control3', 'control5'])">无</a-checkbox> + </a-checkbox-group> + </a-form-item> + <div v-if="control1"> + <div class="title">1.细菌</div> + <a-form-item label="(1) 取样日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['a1', {...dateRequire, initialValue: initValue('a1', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="(2) 是否本院:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['a2', {...require1, initialValue: initValue('a2')}]" @change="changeRadio($event, 'controla2')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="医院名称" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controla2"> + <a-input style="width: 240px;" v-decorator="['a21', {...inputRequired, initialValue: initValue('a21')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 标本类型(单选):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a3', {...require1, initialValue: initValue('a3')}]"> + <a-radio value="1">痰液</a-radio> + <a-radio value="2">诱导痰</a-radio> + <a-radio value="3">支气管肺泡灌洗液</a-radio> + <a-radio value="4">血标本</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(4) 是否分离到微生物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a4', {...require1, initialValue: initValue('a4')}]" @change="changeRadio($event, 'controla4')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="药敏方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla4"> + <a-radio-group v-decorator="['a41', {...selectRequired, initialValue: initValue('a41')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="分离到微生物:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla4"> + <a-checkbox-group v-decorator="['a42', {...selectRequired, initialValue: initValue('a42', 'array')}]" class="control-m-line"> + <a-checkbox value="0" @change="showList($event, '铜绿假单胞菌', 'controla420', true)">铜绿假单胞菌</a-checkbox> + <add-table :dataSource="optionDataSource[0]" v-if="controla420" :type1="type" @listen="changeType" :isFirst="true" :picSource="picList[0]" @changePic1="changePic($event, 0)"></add-table> + <a-checkbox value="1" @change="showList($event, '肺炎链球菌', 'controla421', true)">肺炎链球菌</a-checkbox> + <add-table :dataSource="optionDataSource[1]" v-if="controla421" :isFirst="true" :picSource="picList[1]" @changePic1="changePic($event, 1)"></add-table> + <a-checkbox value="2" @change="showList($event, '肺炎克雷伯菌', 'controla422', true)">肺炎克雷伯菌</a-checkbox> + <add-table :dataSource="optionDataSource[2]" v-if="controla422" :isFirst="true" :picSource="picList[2]" @changePic1="changePic($event, 2)"></add-table> + <a-checkbox value="3" @change="showList($event, '阴沟肠杆菌', 'controla423', true)">阴沟肠杆菌</a-checkbox> + <add-table :dataSource="optionDataSource[3]" v-if="controla423" :isFirst="true" :picSource="picList[3]" @changePic1="changePic($event, 3)"></add-table> + <a-checkbox value="4" @change="showList($event, '副流感嗜血杆菌', 'controla424', true)">副流感嗜血杆菌</a-checkbox> + <add-table :dataSource="optionDataSource[4]" v-if="controla424" :isFirst="true" :picSource="picList[4]" @changePic1="changePic($event, 4)"></add-table> + <a-checkbox value="5" @change="showList($event, '鲍曼不动杆菌', 'controla425', true)">鲍曼不动杆菌</a-checkbox> + <add-table :dataSource="optionDataSource[5]" v-if="controla425" :isFirst="true" :picSource="picList[5]" @changePic1="changePic($event, 5)"></add-table> + <a-checkbox value="6" @change="showList($event, '金黄色葡萄球菌', 'controla426', true)">金黄色葡萄球菌</a-checkbox> + <add-table :dataSource="optionDataSource[6]" v-if="controla426" :isFirst="true" :picSource="picList[6]" @changePic1="changePic($event, 6)"></add-table> + <a-checkbox value="7" @change="showList($event, '其他', 'controla427', true)">其他</a-checkbox> + <a-input style="width: 240px;margin-right: 10px;" v-if="controla427" @change="otherChange($event, 7, true)" autocomplete="off" v-decorator="['otherName1', {...inputRequired, initialValue: otherName1}]"></a-input> + <add-table :dataSource="optionDataSource[7]" v-if="controla427" :isFirst="true" :picSource="picList[7]" @changePic1="changePic($event, 7)"></add-table> + </a-checkbox-group> + </a-form-item> + </div> + <div v-if="control2"> + <div class="title">2.真菌</div> + <a-form-item label="取样日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b1', {...dateRequire, initialValue: initValue('b1', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="是否本院:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b2', {...require1, initialValue: initValue('b2')}]" @change="changeRadio($event, 'controlb2')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="医院名称" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb2"> + <a-input style="width: 240px;" v-decorator="['b21', {...inputRequired, initialValue: initValue('b21')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="标本类型(单选):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b3', {...require1, initialValue: initValue('b3')}]"> + <a-radio value="1">痰液</a-radio> + <a-radio value="2">诱导痰</a-radio> + <a-radio value="3">支气管肺泡灌洗液</a-radio> + <a-radio value="4">血标本</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="是否分离到微生物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b4', {...require1, initialValue: initValue('b4')}]" @change="changeRadio($event, 'controlb4')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="真菌:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb4"> + <a-checkbox-group v-decorator="['b42', {...selectRequired, initialValue: initValue('b42', 'array')}]"> + <a-checkbox value="1">曲霉</a-checkbox> + <a-checkbox value="2" :checked="controlb42" @change="changeSelect($event, 'controlb42')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="border-dotted" label="其他真菌" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb42"> + <a-input style="width: 240px;" v-decorator="['b43', {...inputRequired, initialValue: initValue('b43')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <div v-if="control3"> + <div class="title">3.分枝杆菌</div> + <a-form-item label="(1) 取样日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['c1', {...dateRequire, initialValue: initValue('c1', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="(2) 是否本院:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['c2', {...require1, initialValue: initValue('c2')}]" @change="changeRadio($event, 'controlc2')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="医院名称" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlc2"> + <a-input style="width: 240px;" v-decorator="['c21', {...inputRequired, initialValue: initValue('c21')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 标本类型(单选):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['c3', {...require1, initialValue: initValue('c3')}]"> + <a-radio value="1">痰液</a-radio> + <a-radio value="2">诱导痰</a-radio> + <a-radio value="3">支气管肺泡灌洗液</a-radio> + <a-radio value="4">血标本</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(4) 分离到微生物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['c4', {...selectRequired, initialValue: initValue('c4', 'array')}]"> + <a-checkbox value="0">结核分枝杆菌</a-checkbox> + <a-checkbox value="1" @change="changeSelect($event, 'controlc4')">非结核分枝杆菌</a-checkbox> + <a-checkbox value="2">阴性</a-checkbox> + </a-checkbox-group> + </a-form-item> + <div v-if="controlc4"> + <a-form-item label="非结核分枝杆菌:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['c41', {...selectRequired, initialValue: initValue('c41', 'array')}]"> + <a-checkbox value="1">堪萨斯分枝杆菌</a-checkbox> + <a-checkbox value="2">龟分枝杆菌</a-checkbox> + <a-checkbox value="3">脓肿分枝杆菌</a-checkbox> + <a-checkbox value="4">鸟分枝杆菌复合群(MAC)</a-checkbox> + <a-checkbox value="5" @change="changeSelect($event, 'controlc415')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他非结核分枝杆菌名称:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlc415"> + <a-input style="width: 240px;margin-right: 10px;" autocomplete="off"></a-input> + </a-form-item> + </div> + </div> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, getMedicineAllergyList, recoverSubmit } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import AddTable from "@/views/account/center/model/table" +import { ACCESS_TOKEN } from '@/store/mutation-types' +export default { + name: 'jxjzq', + components: { + STree, + MyIcon, + AddTable + }, + data() { + return { + markName: 'sf_jxjzq', + title: '急性加重期', + openKeys: [], + orgTree: [], + patient: {}, + patientBasis: {}, + defaultSelectedKeys: [], + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + baselineFormStyle: { + // height: '444px', + 'padding-top': '52px' + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 5, offset: 3 } + }, + wrapperOffset: { + md: { span: 16 } + }, + labelColOffset2: { + md: { span: 6, offset: 3 } + }, + wrapperOffset2: { + md: { span: 15 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + patientBasisId: this.$route.params.id, + jxjzq: undefined, + controld1: false, + controld5: false, + maskId: undefined, + spinning: false, + executeStatus: false, + optionDataSource: [], + picList: [], + type: '', + control1: false, + control2: false, + control3: false, + control4: false, + controla2: false, + controla4: false, + controlb2: false, + controlb4: false, + controlc2: false, + controlc4: false, + controla420: false, + controla421: false, + controla422: false, + controla423: false, + controla424: false, + controla425: false, + controla426: false, + controla427: false, + controlb42: false, + controlc415: false, + otherName1: '', + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false + } + }, + created() { + var that = this + + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.maskId = res.data.list[0].basisMarkId + that.defaultSelectedKeys = [that.maskId] + that.executeStatus = res.data.list[0].executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + that.getFormData() + }) + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeSelect(e, t) { + var that = this + this[t] = e.target.checked + if (t === 'control4' && e.target.checked) { + this.control1 = false + this.control2 = false + this.control3 = false + //赋值必须要延时 + setTimeout(function() { + that.form.setFieldsValue({ a: ['4'] }) + }, 0) + } + }, + changeRadio(e, t) { + if (t === 'controla2' || t === 'controlb2' || t === 'controlc2') { + if (e.target.value === '-1') { + this[t] = true + } else { + this[t] = false + } + } else if (t === 'controla4' && e.target.value === '-1') { + this.controla4 = false + this.controla420 = false + this.controla421 = false + this.controla422 = false + this.controla423 = false + this.controla424 = false + this.controla425 = false + this.controla426 = false + this.controla427 = false + } else if (t === 'controlb4' && e.target.value === '-1') { + this.controlb4 = false + this.controlb42 = false + } else if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + if (e.key >= 57 && e.key <= 62) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + e.key) + } + return false + }, + handleSubmit(e) { + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + this.confirmLoading = true + validateFieldsAndScroll((errors, values) => { + if (!errors) { + console.log('values', values) + var re = this.form.getFieldsValue() + re = { + ...re, + 'd1': typeof re['d1'] !== 'undefined' ? re['d1'].join(',') : '', + 'd6': typeof re['d6'] !== 'undefined' ? re['d6'].format('YYYY-MM-DD') : '', + 'a': typeof re['a'] !== 'undefined' ? re['a'].join(',') : '', + 'a1': typeof re['a1'] !== 'undefined' ? re['a1'].format('YYYY-MM-DD') : '', + 'b1': typeof re['b1'] !== 'undefined' ? re['b1'].format('YYYY-MM-DD') : '', + 'c1': typeof re['c1'] !== 'undefined' ? re['c1'].format('YYYY-MM-DD') : '', + 'a42': typeof re['a42'] !== 'undefined' ? re['a42'].join(',') : '', + 'b42': typeof re['b42'] !== 'undefined' ? re['b42'].join(',') : '', + 'c4': typeof re['c4'] !== 'undefined' ? re['c4'].join(',') : '', + 'c41': typeof re['c41'] !== 'undefined' ? re['c41'].join(',') : '' + } + var that = this + console.log(re) + const allergy = [] + for (var key in this.optionDataSource) { + _.each(this.optionDataSource[key], function(item) { + allergy.push({ + markId: 1, + microbeName: item.microbeName, + antibiotic: item.antibiotic, + antibioticResult: item.antibioticResult, + allergyValue: item.allergyValue + }) + }) + } + //处理附件 + var alList = ['铜绿假单胞菌', '阴沟肠杆菌', '肺炎克雷伯菌', '肺炎链球菌', '副流感嗜血杆菌', '鲍曼不动杆菌', '金黄色葡萄球菌', this.form.getFieldValue('otherName1')] + + var pic = _.map(this.picList, function(v, i) { + return '1-' + alList[i] + '-' + v + }) + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.jxjzq && this.jxjzq.jxjzqId) { + re.jxjzqId = this.jxjzq.jxjzqId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + params.append('allergy', JSON.stringify(allergy)) + params.append('fileNameForMa', JSON.stringify(pic)) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.maskId = res.data.list[0].basisMarkId + that.defaultSelectedKeys = [that.maskId] + that.executeStatus = res.data.list[0].executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + initValue(key, type = 'normal') { + if (!this.jxjzq) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.jxjzq[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.jxjzq[key]) + } else if (type === 'array') { + return this.jxjzq[key].split(',') + } else { + return this.jxjzq[key] + '' + } + }, + getFormData() { + this.spinning = true + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', that.maskId) + getBasisForm(params) + .then(res => { + this.spinning = false + if (res.data && res.data.sf_jxjzq) + that.jxjzq = that.dealAnswers(res.data) + }) + .catch(error => { + this.spinning = false + console.log(error) + }) + }, + dealAnswers(data) { + var that = this + var answer = data.sf_jxjzq + var alList = ['铜绿假单胞菌', '阴沟肠杆菌', '肺炎克雷伯菌', '肺炎链球菌', '副流感嗜血杆菌', '鲍曼不动杆菌', '金黄色葡萄球菌'] + if (answer && !_.isEmpty(answer)) { + var splitArr = [] + if (answer.d1) { + splitArr = answer.d1.split(',') + if (splitArr.indexOf('9') > -1) { + this.controld1 = true + } + } + if (answer.d5 === 1) { + this.controld5 = true + } + if (answer.a) { + splitArr = answer.a.split(',') + if (splitArr.indexOf('1') > -1) { + this.control1 = true + } + if (splitArr.indexOf('2') > -1) { + this.control2 = true + } + } + if (answer.a2 && answer.a2 === -1) { + this.controla2 = true + } + if (answer.a4 && answer.a4 === 1) { + this.controla4 = true + } + if (answer.b2 && answer.b2 === -1) { + this.controlb2 = true + } + if (answer.b4 && answer.b4 === 1) { + this.controlb4 = true + } + if (answer.c2 && answer.c2 === -1) { + this.controlc2 = true + } + if (answer.c4) { + splitArr = answer.c4.split(',') + if (splitArr.indexOf('1') > -1) { + this.controlc4 = true + } + } + if (answer.a42) { + splitArr = answer.a42.split(',') + if (splitArr.indexOf('0') > -1) { + this.controla420 = true + } + if (splitArr.indexOf('1') > -1) { + this.controla421 = true + } + if (splitArr.indexOf('2') > -1) { + this.controla422 = true + } + if (splitArr.indexOf('3') > -1) { + this.controla423 = true + } + if (splitArr.indexOf('4') > -1) { + this.controla424 = true + } + if (splitArr.indexOf('5') > -1) { + this.controla425 = true + } + if (splitArr.indexOf('6') > -1) { + this.controla426 = true + } + if (splitArr.indexOf('7') > -1) { + this.controla427 = true + } + } + if (data[1]) { + _.each(alList, function(v, i) { + if (data[1][v]) { + that.optionDataSource[i] = _.map(data[1][v], function(v, i) { + return { + keyW: i, + microbeName: v.microbeName, + antibiotic: v.antibiotic, + antibioticResult: v.antibioticResult, + allergyValue: v.allergyValue + }; + }) + } + }) + var other = _.filter(data[1], function(v, k) { return alList.indexOf(k) === -1 }) + if (other && other.length) { + that.optionDataSource[7] = _.map(other[0], function(v, i) { + return { + keyW: i, + microbeName: v.microbeName, + antibiotic: v.antibiotic, + antibioticResult: v.antibioticResult, + allergyValue: v.allergyValue + }; + }) + } + } + if (answer.b42) { + splitArr = answer.b42.split(',') + if (splitArr.indexOf('2') > -1) { + this.controlb42 = true + } + } + if (answer.c41) { + splitArr = answer.c41.split(',') + if (splitArr.indexOf('5') > -1) { + this.controlc415 = true + } + } + } + return answer + }, + detect(d, v) { + if(Array.isArray(this.form.getFieldValue(d)) && this.form.getFieldValue(d).indexOf(v) > -1) { + return true + } else { + return false + } + }, + handleNone(e, d, v, arr) { + if(e.target.checked){ + let data = {} + data[d] = [v] + this.$nextTick(() => { + this.form.setFieldsValue(data) + arr.forEach((t) => { + this[t] = false + }) + }) + } + }, + save() { + var re = this.form.getFieldsValue() + re = { + ...re, + 'd1': typeof re['d1'] !== 'undefined' ? re['d1'].join(',') : '', + 'd6': typeof re['d6'] !== 'undefined' ? re['d6'].format('YYYY-MM-DD') : '', + 'a': typeof re['a'] !== 'undefined' ? re['a'].join(',') : '', + 'a1': typeof re['a1'] !== 'undefined' ? re['a1'].format('YYYY-MM-DD') : '', + 'b1': typeof re['b1'] !== 'undefined' ? re['b1'].format('YYYY-MM-DD') : '', + 'c1': typeof re['c1'] !== 'undefined' ? re['c1'].format('YYYY-MM-DD') : '', + 'a42': typeof re['a42'] !== 'undefined' ? re['a42'].join(',') : '', + 'b42': typeof re['b42'] !== 'undefined' ? re['b42'].join(',') : '', + 'c4': typeof re['c4'] !== 'undefined' ? re['c4'].join(',') : '', + 'c41': typeof re['c41'] !== 'undefined' ? re['c41'].join(',') : '' + } + var that = this + console.log(re) + const allergy = [] + for (var key in this.optionDataSource) { + _.each(this.optionDataSource[key], function(item) { + allergy.push({ + markId: 1, + microbeName: item.microbeName, + antibiotic: item.antibiotic, + antibioticResult: item.antibioticResult, + allergyValue: item.allergyValue + }) + }) + } + //处理附件 + var alList = ['铜绿假单胞菌', '阴沟肠杆菌', '肺炎克雷伯菌', '肺炎链球菌', '副流感嗜血杆菌', '鲍曼不动杆菌', '金黄色葡萄球菌', this.form.getFieldValue('otherName1')] + + var pic = _.map(this.picList, function(v, i) { + return '1-' + alList[i] + '-' + v + }) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.jxjzq && this.jxjzq.jxjzqId) { + re.jxjzqId = this.jxjzq.jxjzqId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + params.append('allergy', JSON.stringify(allergy)) + params.append('fileNameForMa', JSON.stringify(pic)) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.maskId = res.data.list[0].basisMarkId + that.defaultSelectedKeys = [that.maskId] + that.executeStatus = res.data.list[0].executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + changeType(v) { + this.type = v + }, + changePic(e, index) { + this.picList[index] = e + }, + showList(e, name, controlNode) { + if (e.target.checked) { + this[controlNode] = true + if (name == "其他") return + this.getMedicineAllergyList(name, e.target.value) + } else { + this[controlNode] = false + this.$set(this.optionDataSource, e.target.value, []) + } + }, + getMedicineAllergyList(value, index) { + const that = this + const params = new URLSearchParams() + params.append('microbeName', value) + getMedicineAllergyList(params).then(res => { + const optionDataSource = _.map(res.data, function(v, i) { + return { + keyW: i, + microbeName: v.microbeName, + antibiotic: v.antibiotic, + antibioticResult: v.antibioticResult, + allergyValue: v.allergyValue + }; + }) + that.$set(that.optionDataSource, index, optionDataSource) + }) + }, + otherChange(e, index) { + this.getMedicineAllergyList(e.target.value, index) + }, + withdraw(){ + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.jxjzq.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +.single-line { + height: 56px; + overflow: hidden; +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + .treeSubTitle{ + font-size: 14px; + } + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + // padding-top: 52px; + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .label-overflow .ant-form-item-label { + line-height: 20px; + position: relative; + top: 12px; + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + + +.control-m-line.ant-checkbox-group { + top: 10px; + position: relative; +} + + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/account/center/model/table.vue b/src/views/account/center/model/table.vue new file mode 100644 index 0000000000..e74c4846a0 --- /dev/null +++ b/src/views/account/center/model/table.vue @@ -0,0 +1,362 @@ +<template> + <span class="editMcroorganism"> + <p @click="showMicroorganism"> + <a-icon type="edit" class="mcroorganism" /><span>编辑药敏结果</span> + </p> + <a-modal ref="picUpload" title="药敏检查" width="800px" :visible="visible" :footer="null" :maskClosable="false" :centered="centered" @cancel="handleCancel" :bodyStyle="bodyStyle"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item label="药敏类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="typeof type1 !== 'undefined' || typeof type2 !== 'undefined'"> + <a-radio-group v-model="t1" @change="changeType1($event)" v-if="typeof type1 !== 'undefined'"> + <a-radio value="1">粘液型</a-radio> + <a-radio value="2">非粘液型</a-radio> + </a-radio-group> + <a-radio-group v-model="t2" @change="changeType2($event)" v-if="typeof type2 !== 'undefined'"> + <a-radio value=" 1">粘液型</a-radio> + <a-radio value="2">非粘液型</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="上传图像" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="showOcr"> + <div class="clearfix" style="margin-top: 10px;"> + <a-upload :action="uploadUrl" listType="picture-card" class="images" v-viewer @preview="handlePreview" :fileList="fileList" @change="picChange"> + <div v-if="fileList.length < 1"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-button style="position: absolute;top: 84px;left: 120px;font-size: 12px;padding: 0 5px;height: 30px;" @click="_import" v-if="fileList.length === 1 && showOcr">OCR识别</a-button> + </div> + </a-form-item> + </a-form> + <a style="float: right;font-size:12px;line-height:32px;margin-left: 12px;" @click="showOcr = !showOcr">OCR</a> + <!-- <a-icon type="zoom-in" style="float: right;margin-top: 12px;margin-left: 12px;color: #ccc;" @click="changeOcr" /> --> + <p style="text-align: right"> + <a-button class="editable-add-btn" @click="handleAdd">添加抗生素</a-button> + </p> + <a-table rowKey="keyW" size="middle" :pagination="pagination" :columns="columns" :dataSource="data"> + <template v-for="col in [ 'antibiotic', , 'antibioticResult']" :slot="col" slot-scope="text, record"> + <div :key="col"> + <a-input v-if="record.editable" style="margin: -5px 0;" :value="text" @change="e => handleChange(e.target.value, record.keyW, col)" /> + <template v-else> + {{ text }} + </template> + </div> + </template> + <template slot="allergyValue" slot-scope="text, record"> + <div> + <a-select defaultValue="S" v-if="record.editable" style="margin: -5px 0;width: 100%" :value="text" @change="value => handleSelectChange(value, record.keyW)"> + <a-select-option value="S">S</a-select-option> + <a-select-option value="R">R</a-select-option> + <a-select-option value="I">I</a-select-option> + <a-select-option value="*">*</a-select-option> + </a-select> + <template v-else>{{text}}</template> + </div> + </template> + <template slot="operation" slot-scope="text, record"> + <div class="editable-row-operations"> + <span v-if="record.editable"> + <a @click="() => save(record.keyW)">保存</a> + <a-popconfirm title="确定取消?" @confirm="() => cancel(record.keyW)"><a>取消</a></a-popconfirm> + </span> + <span v-else> + <a @click="() => edit(record.keyW)">编辑</a> + <a-popconfirm v-if="data.length" title="确定删除?" @confirm="() => onDelete(record.keyW)"><a href="javascript:;">删除</a></a-popconfirm> + </span> + </div> + </template> + </a-table> + </a-spin> + </a-modal> + </span> +</template> +<script> +import { getOcrResult } from '@/api/basis' +import _ from 'lodash' + +const columns = [{ + title: '微生物名称', + dataIndex: 'microbeName', + width: '20%', + scopedSlots: { customRender: 'microbeName' } + }, + { + title: '抗生素', + dataIndex: 'antibiotic', + width: '20%', + scopedSlots: { customRender: 'antibiotic' } + }, + { + title: 'MIC值', + dataIndex: 'antibioticResult', + width: '20%', + scopedSlots: { customRender: 'antibioticResult' } + }, + { + title: '药敏结果', + dataIndex: 'allergyValue', + width: '20%', + scopedSlots: { customRender: 'allergyValue' } + }, + { + title: '操作', + width: '20%', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' } + } +]; +export default { + props: { + dataSource: { + type: Array, + default: () => { + return [] + } + }, + type1: { + type: String + }, + type2: { + type: String + }, + isFirst: { + type: Boolean, + default: () => { + return true + } + }, + picSource: { + type: String + } + }, + data() { + this.cacheData = this.dataSource.map(item => ({ ...item })); + return { + showOcr: false, + pagination: false, + data: this.dataSource, + columns, + count: this.dataSource.length + 1, + vitamin: '', + visible: false, + bodyStyle: { + height: '500px', + overflow: 'auto' + }, + centered: true, + t1: '', + t2: '', + form: this.$form.createForm(this), + labelColHor: { + xs: { span: 24 }, + sm: { span: 3 }, + md: { span: 3 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 19 }, + md: { span: 19 } + }, + uploadUrl: process.env.VUE_APP_API_UPLOAD_URL, + viewPicUrl: process.env.VUE_APP_API_VIEW_PIC_URL, + fileList: [], + confirmLoading: false, + picData: this.picSource + }; + }, + methods: { + showMicroorganism() { + if (this.vitamin){ + this.visible = true + }else{ + this.$message.warn('请输入其他菌种名称') + } + }, + handleCancel() { + this.visible = false + }, + handleChange(value, key, column) { + const newData = [...this.data] + const target = newData.filter(item => key === item.keyW)[0] + if (target) { + target[column] = value + this.data = newData + } + }, + handlePreview() { + const viewer = document.querySelector('.images').$viewer; + viewer.show() + }, + handleSelectChange(value, key, column) { + const newData = [...this.data] + const target = newData.filter(item => key === item.keyW)[0] + if (target) { + target['allergyValue'] = value + this.data = newData + } + }, + edit(key) { + const newData = [...this.data]; + const target = newData.filter(item => key === item.keyW)[0] + if (target) { + target.editable = true + this.data = newData + } + }, + save(key) { + const newData = [...this.data] + const target = newData.filter(item => key === item.keyW)[0] + if (target) { + delete target.editable + this.data = newData + this.cacheData = newData.map(item => ({ ...item })) + } + }, + cancel(key) { + const newData = [...this.data]; + const target = newData.filter(item => key === item.keyW)[0]; + if (target) { + Object.assign(target, this.cacheData.filter(item => key === item.keyW)[0]); + delete target.editable; + this.data = newData; + } + }, + onDelete(key) { + console.log("key", key) + const newData = [...this.data] + this.data = newData.filter(item => item.keyW !== key) + console.log("this.data", this.data) + console.log("newData", newData) + + // this.$emit('mySign', this.data); + }, + handleAdd() { + const { count, data } = this + const newData = { + keyW: count + 1, + antibiotic: '', + microbeName: this.vitamin, + antibioticResult: '', + allergyValue: '' + }; + this.data = [newData, ...data] + this.count = count + 1 + + // this.$emit('mySign', this.data); + }, + changeType1(e) { + this.$emit('listen', e.target.value) + }, + changeType2(e) { + this.$emit('listen', e.target.value) + }, + picChange({ fileList }) { + this.fileList = fileList + if (fileList && fileList[0] && fileList[0].response) { + this.picData = fileList[0].response.fileName + if (this.isFirst) { + this.$emit('changePic1', this.picData) + } else { + this.$emit('changePic2', this.picData) + } + } + }, + _import() { + this.confirmLoading = true + var params = new URLSearchParams() + params.append('type', 7) + params.append('url', this.fileList[0].response.data.src) + var that = this + getOcrResult(params) + .then(res => { + console.log(res.data) + this.confirmLoading = false + if (res.data.microbeName !== this.vitamin) { + this.$message.warn('请上传' + this.vitamin || '其他菌种' + '的图片') + } else { + this.$message.success(res.data.info) + this.data.splice(0, this.data.length) + _.each(res.data.maList, function(v, k) { + that.data.push({ keyW: k, ...v }) + }) + that.cacheData = res.data.maList.map(item => ({ ...item })) + // this.$emit('changeSource1') + // if (this.isFirst) { + // this.$emit('changeSource1', this.data) + // } + } + }) + .catch(error => { + this.confirmLoading = false + }) + }, + changeOcr() { + this.showOcr = true + } + }, + watch: { + dataSource: { + immediate: true, + handler(val) { + this.data = val + console.log('val', val) + this.vitamin = val[0] ? val[0].microbeName : '' + this.count = val.length > 0 ? val[val.length - 1].keyW : 0 + // this.$emit('mySign', this.data) + } + }, + picSource: { + immediate: true, + handler(val) { + this.picData = val + } + }, + type1: { + immediate: true, + handler(val) { + this.t1 = val + } + }, + type2: { + immediate: true, + handler(val) { + this.t2 = val + } + } + } +}; +</script> +<style lang="less" scoped> +.editable-row-operations a { + margin-right: 8px; +} + +.editMcroorganism { + display: inline-block; + margin: 0; + margin-right: 20px; + + .mcroorganism { + font-size: 14px; + color: #0399EC; + } + + span { + color: #0399EC; + + } + + &:hover { + cursor: pointer; + + span { + text-decoration: underline; + } + } +} + +.editable-add-btn { + background-color: #00a59b; + color: #fff; +} +</style> \ No newline at end of file diff --git a/src/views/account/center/model/upload.vue b/src/views/account/center/model/upload.vue new file mode 100644 index 0000000000..30a20f41f0 --- /dev/null +++ b/src/views/account/center/model/upload.vue @@ -0,0 +1,100 @@ +<template> + <div class="clearfix"> + <a-spin :spinning="spinning"> + <a-upload + name="file" + :action="url" + listType="picture-card" + @preview="handlePreview" + @change="handleChange" + :remove="handleRemove" + > + <div v-if="fileList.length<1"> + <a-icon type="plus" /> + <div class="ant-upload-text">OCR识别</div> + </div> + </a-upload> + <a-modal :visible="previewVisible" :footer="null" @cancel="handleCancel"> + <img alt="example" style="width: 100%" :src="previewImage" /> + </a-modal> + </a-spin> + </div> +</template> +<script> +import { ocrResult } from '@/api/report'; + +export default { + props:{ + basisMaskId:{ + type:[String,Number], + default:'' + }, + reportCollectBaseId:{ + type:[String,Number], + default:'' + }, + }, + data() { + return { + spinning:false, + url: process.env.VUE_APP_API_BASE_URL, + previewVisible: false, + previewImage: '', + fileList:[] + }; + }, + methods: { + handleCancel () { + this.previewVisible = false + }, + handleRemove(file){ + this.fileList=[] + console.log("file11",file) + }, + handlePreview (file) { + console.log("file",file) + this.previewImage = file.response.data.src; + this.previewVisible = true; + }, + handleChange(info) { + const that=this; + this.spinning=true; + const status = info.file.status; + if (status !== 'uploading') { + } + if (status === 'done') { + const Params = new URLSearchParams(); + if (info.file.response.data.src) { + that.fileList.push(info.file) + that.$emit("imgUrl",info.file.response.data.src) + Params.append('url', info.file.response.data.src); + Params.append('basisMarkId', that.basisMaskId); + Params.append('reportCollectBaseId', that.reportCollectBaseId); + ocrResult(Params).then(res => { + that.$emit('OCRload', res) + that.spinning=false; + that.$message.success(`识别成功`); + }); + } + } else if (status === 'error') { + this.$message.error(`${info.file.name} file upload failed.`); + } + } + } +}; +</script> +<style> + /* you can make up upload button and sample style by using stylesheets */ + .clearfix{ + display: inline-block; + } + .ant-upload-select-picture-card i { + font-size: 32px; + color: #999; + } + + .ant-upload-select-picture-card .ant-upload-text { + margin-top: 8px; + color: #666; + } +</style> diff --git a/src/views/account/center/page/dragger.vue b/src/views/account/center/page/dragger.vue new file mode 100644 index 0000000000..b1f01e91aa --- /dev/null +++ b/src/views/account/center/page/dragger.vue @@ -0,0 +1,47 @@ + + +<template> + <div> + <p class="formSubtitle">{{formSubtitle}} <span @click="show"></span></p> + <a-upload-dragger name="file" :multiple="true" action="https://www.mocky.io/v2/5cc8019d300000980a055e76" @change="handleChange"> + <p class="ant-upload-drag-icon"> + <a-icon type="inbox" /> + </p> + <p class="ant-upload-text">Click or drag file to this area to upload</p> + <p class="ant-upload-hint">Support for a single or bulk upload. Strictly prohibit from uploading company data or other band files</p> + </a-upload-dragger> + </div> + +</template> +<script> +export default { + name:"dagger", + props:{ + formSubtitle: { + type: String, + default: '' + } + }, + data () { + return { + isShow:false + } + }, + methods: { + handleChange(info) { + const status = info.file.status; + if (status !== 'uploading') { + console.log(info.file, info.fileList); + } + if (status === 'done') { + this.$message.success(`${info.file.name} file uploaded successfully.`); + } else if (status === 'error') { + this.$message.error(`${info.file.name} file upload failed.`); + } + }, + show(){ + this.isShow=!this.isShow + } + }, +} +</script> \ No newline at end of file diff --git a/src/views/account/center/question.vue b/src/views/account/center/question.vue new file mode 100644 index 0000000000..277dbdee6f --- /dev/null +++ b/src/views/account/center/question.vue @@ -0,0 +1,887 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :selectedKeys="selectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleChange"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="head-bar"> + <a-row type="flex" style="flex:1"> + <span class="head-icon"></span> + <div v-if="question.name && question.name" class="question-title">{{question.name}}</div> + <span v-if="(score) && (questionTask.questionId !== 36)" class="question-score">{{`(得分:${score}分)`}}</span> + <span v-if="(score) && (questionTask.questionId === 36) && (!questionTask.score9)" class="question-score">{{`(得分:${score}分)`}}</span> + <span v-if="(score) && (questionTask.questionId === 36) && (questionTask.score9)" class="question-score">{{`(HADS-A得分:${questionTask.score}分;`}}<span v-if="questionTask.score9">{{` HADS-D得分:${questionTask.score9}分`}}</span>)</span> + <!-- <a-row v-if="questionId === 36" type="flex" style="flex:1;margin-left:40px"> + <a-col :span="6"><strong>HAD-A(<span style="color: #3398dc">{{ questionTask.score }}分</span>)</strong></a-col> + <a-col :span="6"><strong>HAD-D(<span style="color: #3398dc">{{ questionTask.score9 }}分</span>)</strong></a-col> + </a-row> --> + <a-row v-if="(questionId === 32 || questionId === 38 || questionId === 46 || questionId === 58 || questionId === 66) && (questionTask.status === 1 || questionTask.status === 5) && typeof questionTask.score1 !== 'undefined'" type="flex" style="flex:1;margin-left:40px"> + <a-col :span="6"><strong>身体功能性维度(<span style="color: #3398dc">{{ questionTask.score1 }}分</span>)</strong></a-col> + <a-col :span="6"><strong>角色功能性维度(<span style="color: #3398dc">{{ questionTask.score2 }}分</span>)</strong></a-col> + <a-col :span="6"><strong>活力性维度(<span style="color: #3398dc">{{ questionTask.score3 }}分</span>)</strong></a-col> + <a-col :span="6"><strong>情绪功能性维度(<span style="color: #3398dc">{{ questionTask.score4 }}分</span>)</strong></a-col> + <a-col :span="6"><strong>社会功能性维度(<span style="color: #3398dc">{{ questionTask.score5 }}分</span>)</strong></a-col> + <a-col :span="6"><strong>医疗负担性维度(<span style="color: #3398dc">{{ questionTask.score6 }}分</span>)</strong></a-col> + <a-col :span="6"><strong>健康感觉性维度(<span style="color: #3398dc">{{ questionTask.score7 }}分</span>)</strong></a-col> + <a-col :span="6"><strong>呼吸症状性维度(<span style="color: #3398dc">{{ questionTask.score8 }}分</span>)</strong></a-col> + </a-row> + <a-row v-if="(questionId === 33 || questionId === 59) && questionTask.status === 1 && typeof questionTask.score1 !== 'undefined'" type="flex" align="middle" style="flex:1;margin-left:40px;"> + <a-col :span="6"><strong>症状symptom(<span style="color: #3398dc">{{ questionTask.score1 }}分</span>)</strong></a-col> + <a-col :span="6"><strong>活动activity(<span style="color: #3398dc">{{ questionTask.score2 }}分</span>)</strong></a-col> + <a-col :span="6"><strong>影响impact(<span style="color: #3398dc">{{ questionTask.score3 }}分</span>)</strong></a-col> + <a-col :span="6"><strong>合计(<span style="color: #3398dc">{{ questionTask.score }}分</span>)</strong></a-col> + </a-row> + <a-row v-if="(questionId === 35 || questionId === 41 || questionId === 61) && questionTask.status === 1 && typeof questionTask.score1 !== 'undefined'" type="flex" align="middle" style="flex:1;margin-left:40px;"> + <a-col :span="6"><strong>生理(<span style="color: #3398dc">{{ questionTask.score1 }}分</span>)</strong></a-col> + <a-col :span="6"><strong>心理(<span style="color: #3398dc">{{ questionTask.score2 }}分</span>)</strong></a-col> + <a-col :span="6"><strong>社会(<span style="color: #3398dc">{{ questionTask.score3 }}分</span>)</strong></a-col> + <a-col :span="6"><strong>合计(<span style="color: #3398dc">{{ questionTask.score }}分</span>)</strong></a-col> + </a-row> + </a-row> + <a-row type="flex" align="middle" class="btn-group" v-if="executeStatus !== 2 && questionTask.status !== 5 && canEdit"> + <a-button class="btn fr" @click="save">保存</a-button> + <a-button class="btn fr" type="primary" html-type="submit">提交</a-button> + </a-row> + </div> + <!-- <a-form-item class="ques-box date" :colon="false" label="问卷调查时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['taskTime', {...dateRequire, initialValue: questionTask.taskTime ? moment(questionTask.taskTime): ''}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> --> + <div class="baselineForm" :style="baselineFormStyle"> + <!-- 调查问卷 --> + <div v-if="question.remark && question.remark" class="question-des"><span style="color:#3398dc">说明:</span>{{question.remark}}</div> + <div v-for="item in listArr" :key="item.questionTitleId"> + <div class="question-t"> + <span class="question-icon"></span> + <span>{{item.name}}</span> + </div> + <div v-for="(qu1, index) in item.childrens" :key="index"> + <div v-if="showFlag || [37,38,39].indexOf(parseInt(qu1.inputType)) < 0"> + <a-form-item class="ques-box" :colon="false" :label="qu1.type !== 5 ? qu1.name : ''"> + <p v-if="qu1.type == 5" class="question-tip"> + <span class="tip-icon"></span> + <span>{{qu1.name}}</span> + </p> + <a-input v-if="qu1.type === 3" style="width: 200px" :addonAfter="qu1.unit" :name="qu1.inputType" v-decorator="[qu1.inputType, { initialValue: qu1.answers && qu1.answers.length ? qu1.answers[0].questionOptionValue : null , rules: [{ required: qu1.isRequired && qu1.isRequired === 1, message: '该选项必填' }] }]" /> + <a-radio-group @change="handleClick" v-if="qu1.type === 1" :name="qu1.inputType" v-decorator="[qu1.inputType, { initialValue: qu1.answers && qu1.answers.length ? qu1.answers[0].questionOptionId : (qu1.questionTitleId === 16 ? (patient.sex === 0 ? 76 : 75) : null), rules: [{ required: qu1.isRequired && qu1.isRequired === 1, message: '该选项必填' }] }]"> + <a-radio :style="disBlock" v-for="(item, index) in qu1.options" :key="index" :value="item.questionOptionId">{{item.name}}</a-radio> + </a-radio-group> + <a-checkbox-group v-if="qu1.type === 2" :name="qu1.inputType" v-decorator="[qu1.inputType, { initialValue: qu1.inputTypes, rules: [{ required: qu1.isRequired && qu1.isRequired === 1, message: '该选项必填' }] }]"> + <a-checkbox :style="disBlock" v-for="(item, index) in qu1.options" :key="index" :value="item.questionOptionId">{{item.name}}</a-checkbox> + </a-checkbox-group> + <a-date-picker v-if="qu1.type === 6" :name="qu1.inputType" v-decorator="[qu1.inputType, { initialValue: qu1.answers && qu1.answers.length ? moment(qu1.answers[0].questionOptionValue, 'YYYY/MM/DD') : (qu1.questionTitleId === 15 ? moment(patient.birthDate) : null), rules: [{ required: qu1.isRequired && qu1.isRequired === 1, message: '该选项必填' }] }]" format="YYYY-MM-DD" :disabledDate="disabledDate" /> + </a-form-item> + </div> + </div> + </div> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import { mapActions } from 'vuex' +import { getPatientBasis, getQuestionDetail, saveQuestion } from '@/api/basis' +import _ from 'lodash' +import $ from 'jquery' +import moment from 'moment' +import { MyIcon } from '@/components/_util/util' +import { ACCESS_TOKEN } from '@/store/mutation-types' + +export default { + name: 'BasisQuestion', + components: { + STree, + MyIcon + }, + data() { + return { + baselineInfoStyle: { + overflow: "auto", + height: "100%", + paddingRight: "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + baselineFormStyle: { + overflow: 'auto', + padding: '20px 20px 80px', + height: 'calc(100% - 150px)' + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + title: '', + openKeys: [], + defaultSelectedKeys: [], + orgTree: [], + patient: {}, + patientBasis: {}, + question: {}, + score: "", + patientBasisId: parseInt(this.$route.params.id), + questionId: parseInt(this.$route.params.qid), + form: this.$form.createForm(this), + listArr: [], + questionFinished: false, + disBlock: { + display: 'block' + }, + spinning: false, + executeStatus: false, + questionTask: {}, + showFlag: true, + selectedKeys: [], + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + } + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.defaultSelectedKeys = [that.questionId] + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + if (that.patientBasis.type === 1) { + that.title = '基线' + that.executeStatus = _.find(res.data.list[4].childList, function(v) { return v.basisMarkId === that.questionId }).executeStatus + } + if (that.patientBasis.type === 2) { + that.title = '半年随访' + that.executeStatus = _.find(res.data.list[1].childList, function(v) { return v.basisMarkId === that.questionId }).executeStatus + } + if (that.patientBasis.type === 3) { + that.title = '年访视' + that.executeStatus = _.find(res.data.list[4].childList, function(v) { return v.basisMarkId === that.questionId }).executeStatus + } + if (that.patientBasis.type === 4) { + that.title = '急性加重期' + that.executeStatus = _.find(res.data.list[1].childList, function(v) { return v.basisMarkId === that.questionId }).executeStatus + } + if (that.patientBasis.type === 7) { + that.title = '急性加重期' + that.executeStatus = _.find(res.data.list[1].childList, function(v) { return v.basisMarkId === that.questionId }).executeStatus + } + }) + }, + watch: { + $route: { + handler(to, from) { + if (to.name === 'BasisQuestion') { + this.questionId = parseInt(to.params.qid) + this.getFormData() + this.defaultSelectedKeys = this.selectedKeys = [this.questionId] + document.querySelector('.baselineForm').scrollTop = 0 + } + }, + immediate: true + } + }, + activated() { + // console.log(document.querySelector('.baselineForm').scrollTop) + }, + mounted() { + console.log(document.querySelector('.baselineForm').scrollTop) + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + handleChange(e) { + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + var that = this + getPatientBasis(params) + .then(res => { + that.patientBasis = res.data.patientBasis + if (that.patientBasis.type === 1) { + that.executeStatus = _.find(res.data.list[4].childList, function(v) { return v.basisMarkId === that.questionId }).executeStatus + } + if (that.patientBasis.type === 2) { + that.title = '半年随访' + that.executeStatus = _.find(res.data.list[1].childList, function(v) { return v.basisMarkId === that.questionId }).executeStatus + } + if (that.patientBasis.type === 3) { + that.title = '年访视' + that.executeStatus = _.find(res.data.list[4].childList, function(v) { return v.basisMarkId === that.questionId }).executeStatus + } + if (that.patientBasis.type === 4) { + that.title = '急性加重期' + that.executeStatus = _.find(res.data.list[1].childList, function(v) { return v.basisMarkId === that.questionId }).executeStatus + } + if (that.patientBasis.type === 7) { + that.title = '急性加重期' + that.executeStatus = _.find(res.data.list[1].childList, function(v) { return v.basisMarkId === that.questionId }).executeStatus + } + }) + if (e.key >= 31 && e.key <= 42 || (e.key >= 57 && e.key <= 62) || (e.key >= 45 && e.key <= 50) || (e.key > 64)) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + e.key) + } else if (this.patientBasis.type === 1) { + this.$router.replace('/list/basis/' + this.patientBasisId + '/' + e.key) + } else if (this.patientBasis.type === 4) { + this.$router.replace('/jxjzq/' + this.patientBasisId) + } else if(this.patientBasis.type === 7){ + this.$router.replace('/icon/jxjzq/' + this.patientBasisId) + }else { + this.$router.replace('/list/task/' + this.patientBasisId + '/' + e.key) + } + }, + handleClick(e) { + if (e.target.value == '149') { + this.showFlag = false + } else if (e.target.value == '148') { + this.showFlag = true + } + }, + getFormData() { + this.spinning = true + var that = this + var params = new URLSearchParams() + params.append('questionId', this.questionId) + params.append('patientBasisId', this.patientBasisId) + getQuestionDetail(params) + .then(res => { + that.spinning = false + that.listArr = that.initQuestionAnswers(res.data.topTitles) + that.question = res.data.question + that.questionTask = res.data.questionTask || {} + that.score = that.questionId !== 33 && that.questionId !== 59 && res.data.questionTask && res.data.questionTask.score + if (res.data.isFinish === '0') { + that.questionFinished = false + } else { + that.questionFinished = true + } + }) + }, + initQuestionAnswers(list) { + _.each(list, function(a) { + if (a.childrens && a.childrens.length) { + _.each(a.childrens, function(b) { + if (b.type === 2) { + if (b.answers && b.answers.length) { + b.inputTypes = _.map(b.answers, function(v) { return v.questionOptionId }) + } else { + b.inputTypes = [] + } + } + }) + } + }) + return list + }, + handleSubmit(e) { + e.preventDefault() + this.spinning = true + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + const that = this + var result = this.generateQuestionAnswers() + var params = new URLSearchParams() + params.append('answers', JSON.stringify(result)) + params.append('patientBasisId', this.patientBasisId) + params.append('questionId', this.questionId) + params.append('patientId', this.patient.patientId) + params.append('type', 2) + params.append('taskTime', typeof values.taskTime !== 'undefined' ? values.taskTime.format('YYYY-MM-DD'): '') + saveQuestion(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + that.getFormData() + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.selectedKeys = [that.questionId] + if (that.patientBasis.type === 1) { + that.executeStatus = _.find(res.data.list[4].childList, function(v) { return v.basisMarkId === that.questionId }).executeStatus + } else if (that.patientBasis.type === 2 || that.patientBasis.type === 4) { + that.executeStatus = _.find(res.data.list[1].childList, function(v) { return v.basisMarkId === that.questionId }).executeStatus + } else if (that.patientBasis.type === 3) { + that.executeStatus = _.find(res.data.list[5].childList, function(v) { return v.basisMarkId === that.questionId }).executeStatus + } + }) + }) + } else { + this.spinning = false + } + }) + }, + generateQuestionAnswers() { + let that = this + var result = [] + var titleObject = {} + var childrenObject = [] + var subOp = {} + _.each(this.listArr, function(title) { + titleObject = { + options: [] + } + titleObject.titleId = title.inputType + childrenObject = [] + if (title.childrens && title.childrens.length) { + _.each(title.childrens, function(sub) { + if (sub.type === 3) { + childrenObject.push({ + titleId: sub.inputType, + value: $('input[name="' + sub.inputType + '"]').val() + }) + } + if (sub.type === 6) { + childrenObject.push({ + titleId: sub.inputType, + value: $('[name="' + sub.inputType + '"] input').val() + }) + } + if (sub.type === 2 && sub.options && sub.options.length) { + // console.log(that.form.getFieldValue(sub.inputType)) + subOp = { + titleId: sub.inputType, + options: [] + } + if (that.form.getFieldValue(sub.inputType) != null) { + that.form.getFieldValue(sub.inputType).forEach(item => { + subOp.options.push({ + questionTitleId: sub.inputType, + questionOptionId: item + }) + }) + } + childrenObject.push(subOp) + } + if ((sub.type === 1) && sub.options && sub.options.length) { + subOp = { + titleId: sub.inputType, + options: [] + } + $('input[name="' + sub.inputType + '"]:checked').each(function() { + console.log("checked......"); + + subOp.options.push({ + questionTitleId: sub.inputType, + questionOptionId: $(this).val() + }) + console.log($(this).val()); + + }) + childrenObject.push(subOp) + } + }) + } + titleObject.childrens = childrenObject + result.push(titleObject) + }) + return result + }, + save() { + const that = this + var result = this.generateQuestionAnswers() + console.log(result) + var params = new URLSearchParams() + params.append('answers', JSON.stringify(result)) + params.append('patientBasisId', this.patientBasisId) + params.append('questionId', this.questionId) + params.append('patientId', this.patient.patientId) + params.append('type', 1) + this.spinning = true + saveQuestion(params) + .then(res => { + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.selectedKeys = [that.questionId] + if (that.patientBasis.type === 1) { + that.executeStatus = _.find(res.data.list[4].childList, function(v) { return v.basisMarkId === that.questionId }).executeStatus + } else if (that.patientBasis.type === 2 || that.patientBasis.type === 4) { + that.executeStatus = _.find(res.data.list[1].childList, function(v) { return v.basisMarkId === that.questionId }).executeStatus + } else if (that.patientBasis.type === 3) { + that.executeStatus = _.find(res.data.list[5].childList, function(v) { return v.basisMarkId === that.questionId }).executeStatus + } + }) + }) + .catch(error => { + that.spinning = false + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +.head-bar { + height: 60px; + display: flex; + align-items: center; + justify-content: space-between; + background-color: #f7ffff; + border: 2px solid #079ce9; + box-shadow: 4px 4px 0px #b9b4ac; + margin: 10px 20px 0; + padding: 0 15px; + + .head-icon { + width: 50px; + height: 50px; + background-image: url('../../../assets/head-icon.png'); + background-size: 100% 100%; + } + + .question-title { + font-size: 30px; + color: #3398dc; + font-weight: bold; + margin-left: 15px; + } + + .question-score { + font-size: 30px; + color: #3398dc; + font-weight: bold; + } +} + +.btn-group { + width: 140px; + justify-content: space-between; +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; + + &.date { + height: auto; + margin-top: 20px; + + .ant-form-item-label { + background-color: transparent; + border-top: none; + } + } +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + + .treeSubTitle { + font-size: 14px; + } + + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .baselineForm { + + overflow: auto; + + padding: 40px 20px; + } +} + +.question-des { + font-size: 16px; + margin-bottom: 30px; +} + +.question-t { + display: flex; + line-height: 40px; + font-size: 18px; + font-weight: 700; + border-bottom: 2px solid #3398dc; + padding-bottom: 5px; + + .question-icon { + width: 40px; + height: 40px; + background-image: url('../../../assets/question-icon.png'); + background-size: 100% 100%; + margin-right: 10px; + } +} + +.question-tip { + line-height: 40px; + display: flex; + margin-top: 12px; + + .tip-icon { + width: 30px; + height: 40px; + background-image: url('../../../assets/tip-icon.png'); + background-size: 60% 50%; + background-position: center; + background-repeat: no-repeat; + } +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +/deep/ .ant-radio-disabled+span { + color: inherit; +} + +/deep/.ant-checkbox-disabled+span { + color: inherit; +} + +.question-des { + font-size: 16px; + margin-bottom: 25px; +} + +.question-t { + display: flex; + line-height: 40px; + font-size: 18px; + font-weight: 700; + border-bottom: 2px solid #3398dc; + padding-bottom: 5px; + + .question-icon { + width: 40px; + height: 40px; + background-image: url('../../../assets/question-icon.png'); + background-size: 100% 100%; + margin-right: 10px; + } +} + +.question-tip { + height: 50px; + display: flex; + align-items: center; + + .tip-icon { + width: 20px; + height: 20px; + background-image: url('../../../assets/tip-icon.png'); + background-size: 100% 100%; + margin-right: 5px; + } +} + +.ant-form-item { + margin-bottom: 0px; + border-bottom: 1px solid #eee; +} + +/deep/ .ant-form-item-label { + text-align: left; + display: block; + background-color: #f7f8f8; + color: #231815; + font-size: 16px; + font-weight: bold; + padding-left: 15px; + border-top: 1px solid #eee; +} + +/deep/ .ant-form-item-control-wrapper { + padding: 5px 0; + padding-left: 20px; + + label { + margin: 5px 0; + } +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; + + .time-span { + line-height: 50px; + color: #3398dc; + margin-left: 10px; + font-weight: 500; + } +} +</style> \ No newline at end of file diff --git a/src/views/account/center/task.vue b/src/views/account/center/task.vue new file mode 100644 index 0000000000..9d97134521 --- /dev/null +++ b/src/views/account/center/task.vue @@ -0,0 +1,1125 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"><a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /></a-col> + <a-col :md="4" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhe_huaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="6" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzheng_huaban" /> + {{ patient.card }} + </a-col> + <a-col :md="13" :sm="24" style="fontSize: 18px;textAlign: right;">创建时间:{{ visitTask.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" :bodyStyle="bodyStyle" style="margin-top: 10px;padding-left: 0"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19"> + <div style="overflow: hidden;"> + <!-- <a-button class="btn fr" @click="">导入</a-button> --> + <a-button class="btn fr" @click="save">保存</a-button> + <!-- <a-button class="btn fr" type="primary" @click="submit">提交</a-button> --> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <a-form :form="form"> + <!-- 基线或访视 --> + <a-form-item v-for="(qu1, index) in list" :key="index" :label="[qu1.sort + '.' + qu1.questionName]" :labelCol="qu1.type === 0 ? labelColVer : labelColHor" :wrapperCol="qu1.type === 0 ? wrapperVer : wrapperHor"> + <a-radio-group v-if="qu1.simple === 1" :name="qu1.basisElementCopyId+''" v-model="qu1.basisElementId"> + <a-radio :value="1">是</a-radio> + <a-radio :value="-1">否</a-radio> + </a-radio-group> + <a-radio-group v-if="qu1.simple === 2" :name="qu1.basisElementCopyId+''" :defaultValue="qu1.taskExecuteRecord && qu1.taskExecuteRecord.length && qu1.taskExecuteRecord[0].elementNumValue"> + <a-radio :value="1">有</a-radio> + <a-radio :value="-1">无</a-radio> + </a-radio-group> + <!-- <br v-if="qu1.simple > 0"> --> + <a-input :name="qu1.basisElementCopyId+''" v-if="qu1.simple < 0 && qu1.isWrite > 0 && qu1.event === 'compute'" :defaultValue="qu1.taskExecuteRecord && qu1.taskExecuteRecord.length && qu1.taskExecuteRecord[0].elementTextValue" style="width: 240px" :addonAfter="qu1.unit" @blur="compute(qu1.computeElement)" /> + <a-input :name="qu1.basisElementCopyId+''" v-if="qu1.simple < 0 && qu1.isWrite > 0 && !qu1.event && typeof qu1.computeElement !== 'undefined' && qu1.computeElement === 0" :defaultValue="qu1.taskExecuteRecord && qu1.taskExecuteRecord.length && qu1.taskExecuteRecord[0].elementTextValue" style="width: 240px" :addonAfter="qu1.unit" v-model="computeMap[qu1.basisElementCopyId]" /> + <a-input :name="qu1.basisElementCopyId+''" v-if="qu1.simple < 0 && qu1.isWrite > 0 && !qu1.event && typeof qu1.computeElement === 'undefined'" :defaultValue="qu1.taskExecuteRecord && qu1.taskExecuteRecord.length && qu1.taskExecuteRecord[0].elementTextValue" style="width: 240px" :addonAfter="qu1.unit" /> + <a-date-picker :name="qu1.basisElementCopyId+''" v-if="qu1.simple < 0 && qu1.isWrite > 0 && qu1.event === 'showDate' && (!qu1.taskExecuteRecord || qu1.taskExecuteRecord.length === 0 || qu1.taskExecuteRecord[0].elementTextValue === '')" /> + <a-date-picker :name="qu1.basisElementCopyId+''" v-if="qu1.simple < 0 && qu1.isWrite > 0 && qu1.event === 'showDate' && (qu1.taskExecuteRecord && qu1.taskExecuteRecord.length && qu1.taskExecuteRecord[0].elementTextValue)" :defaultValue="moment(qu1.taskExecuteRecord[0].elementTextValue)" /> + <a-checkbox-group v-if="qu1.hasChild > 0 && qu1.isRadio < 0 && (qu1.logicValue <= 0 || (qu1.logicValue > 0 && qu1.basisElementId === 1))" v-model="qu1.elementId"> + <a-checkbox v-if="op.event!=='showList'" v-for="(op,index) in qu1.childList" :key="index" :value="op.basisElementCopyId" :name="qu1.basisElementCopyId+''">{{op.questionName}}</a-checkbox> + </a-checkbox-group> + <div v-if="qu1.hasChild > 0 && qu1.isRadio > 0"> + <a-radio-group :name="qu1.basisElementCopyId+''" v-model="qu1.basisElementId"> + <a-radio v-for="(op,index) in qu1.childList" :key="index" :value="op.basisElementCopyId">{{op.questionName}}</a-radio> + </a-radio-group> + <div v-for="(sub, index) in qu1.childList" v-if="sub.hasChild > 0"> + <a-row v-if="sub.isRadio > 0 && sub.logicValue > 0 && qu1.basisElementId === sub.basisElementCopyId"> + <a-radio-group :name="sub.basisElementCopyId+''" v-model="sub.basisElementId"> + <a-radio v-for="(third,index) in sub.childList" :key="index" :value="third.basisElementCopyId">{{third.questionName}}</a-radio> + </a-radio-group> + </a-row> + <a-row v-for="(third, index) in sub.childList" v-if="sub.isRadio === 0 && (sub.logicValue <= 0 || (sub.logicValue > 0 && qu1.basisElementId === sub.basisElementCopyId))"> + <a-col :span="6">({{third.sort}}) {{third.questionName}}</a-col> + <!-- <br> --> + <a-col :span="18"> + <a-col :span="6" v-if="third.simple > 0 && third.isRadio < 0"> + <a-radio-group v-if="third.simple === 1" :name="third.basisElementCopyId+''" v-model="third.basisElementId"> + <a-radio :value="1">是</a-radio> + <a-radio :value="-1">否</a-radio> + </a-radio-group> + <a-radio-group v-if="third.simple === 2" :name="third.basisElementCopyId+''" v-model="third.basisElementId"> + <a-radio :value="1">有</a-radio> + <a-radio :value="-1">无</a-radio> + </a-radio-group> + </a-col> + <a-col :span="8" v-if="third.simple > 0 && third.logicValue > 0 && third.hasChild > 0 && third.childList[0].isWrite > 0 && third.basisElementId === 1"> + <a-input :name="third.childList[0].basisElementCopyId+''" :addonAfter="third.childList[0].unit" style="width:240px" :defaultValue="third.childList[0].taskExecuteRecord && third.childList[0].taskExecuteRecord.length && third.childList[0].taskExecuteRecord[0].elementTextValue"></a-input> + </a-col> + <a-row v-for="(fourth, index) in third.childList" v-if="third.hasChild > 0 && third.isRadio === 0"> + <a-col :span="6">{{fourth.questionName}}</a-col> + <a-col :span="6"> + <a-radio-group v-if="fourth.simple === 1" :name="fourth.basisElementCopyId+''" v-model="fourth.basisElementId"> + <a-radio :value="1">是</a-radio> + <a-radio :value="-1">否</a-radio> + </a-radio-group> + <a-radio-group v-if="fourth.simple === 2" :name="fourth.basisElementCopyId+''" v-model="fourth.basisElementId"> + <a-radio :value="1">有</a-radio> + <a-radio :value="-1">无</a-radio> + </a-radio-group> + </a-col> + <a-col :span="12" v-if="fourth.logicValue <= 0 || (fourth.logicValue > 0 && fourth.basisElementId === 1) && fourth.hasChild > 0 && fourth.childList[0].isWrite > 0"> + <a-col :span="6">{{fourth.childList[0].questionName}}</a-col> + <a-col :span="12"> + <a-input :addonAfter="fourth.childList[0].unit" :name="fourth.childList[0].basisElementCopyId+''" style="width:240px" :defaultValue="fourth.childList[0].taskExecuteRecord && fourth.childList[0].taskExecuteRecord.length && fourth.childList[0].taskExecuteRecord[0].elementTextValue"></a-input> + </a-col> + </a-col> + </a-row> + </a-col> + </a-row> + </div> + </div> + <!-- 一级联动 --> + <a-row v-for="(sub, index) in qu1.childList" :key="index" v-if="qu1.isRadio < 0 && sub.logicValue > 0 && qu1.elementId.indexOf(sub.basisElementCopyId) > -1"> + <a-col :span="4">{{sub.childList[0].questionName}}</a-col> + <a-col :span="4"><a-input :name="sub.childList[0].basisElementCopyId+''" :addonAfter="sub.childList[0].unit" :defaultValue="sub.childList[0].taskExecuteRecord && sub.childList[0].taskExecuteRecord.length && sub.childList[0].taskExecuteRecord[0].elementTextValue" style="width:240px" /></a-col> + </a-row> + <!-- 有第二层 --> + <div v-if="qu1.hasChild > 0 && qu1.isRadio === 0"> + <a-row class="itemRow" v-for="(sub, index) in qu1.childList" :key="index" :class="{'no-border': index === qu1.childList.length - 1}" v-if="qu1.logicValue <= 0 || (qu1.logicValue > 0 && qu1.basisElementId === 1)"> + <!-- 第二层开始 --> + <a-col :span="sub.questionName.length > 16 ? 24 : 6">({{sub.sort}}) {{sub.questionName}}</a-col> + <!-- 为了体格检查中的啰音的排版 --> + <!-- <br v-if="sub.showType === 2 && sub.hasChild > 0 && sub.isRadio === 0 && sub.simple < 0 && sub.isWrite < 0"> --> + <a-col :span="18" :class="{'ant-col-push-6': sub.questionName.length > 16}"> + <!-- 是否,有无以及填写值 --> + <a-col :span="6" v-if="sub.isWrite > 0"> + <a-input v-if="sub.isWrite > 0 && !sub.event && typeof sub.computeElement !== 'undefined' && sub.computeElement === 0" :name="sub.basisElementCopyId+''" :defaultValue="sub.taskExecuteRecord && sub.taskExecuteRecord.length && sub.taskExecuteRecord[0].elementTextValue" :addonAfter="sub.unit" :readOnly="sub.computeElement === 0" v-model="computeMap[sub.basisElementCopyId]" style="width:240px" /> + <a-input v-if="sub.isWrite > 0 && !sub.event && typeof sub.computeElement === 'undefined'" :name="sub.basisElementCopyId+''" :defaultValue="sub.taskExecuteRecord && sub.taskExecuteRecord.length && sub.taskExecuteRecord[0].elementTextValue" :addonAfter="sub.unit" style="width:240px" /> + <a-input v-if="sub.isWrite > 0 && sub.event === 'compute'" :name="sub.basisElementCopyId+''" :defaultValue="sub.taskExecuteRecord && sub.taskExecuteRecord.length && sub.taskExecuteRecord[0].elementTextValue" :addonAfter="sub.unit" @blur="compute(sub.computeElement)" style="width:240px" /> + <a-date-picker v-if="sub.isWrite > 0 && sub.event === 'showDate' && (!sub.taskExecuteRecord || sub.taskExecuteRecord.length === 0 || sub.taskExecuteRecord[0].elementTextValue === '')" :name="sub.basisElementCopyId+''" style="width:240px" /> + <a-date-picker v-if="sub.isWrite > 0 && sub.event === 'showDate' && sub.taskExecuteRecord && sub.taskExecuteRecord.length && sub.taskExecuteRecord[0].elementTextValue" :name="sub.basisElementCopyId+''" :defaultValue="moment(sub.taskExecuteRecord[0].elementTextValue)" style="width:240px" /> + </a-col> + <br v-if="sub.isWrite > 0"> + <a-radio-group v-if="sub.simple === 1" v-model="sub.basisElementId" :name="sub.basisElementCopyId+''"> + <a-radio :value="1">是</a-radio> + <a-radio :value="-1">否</a-radio> + </a-radio-group> + <a-radio-group v-if="sub.simple === 2" v-model="sub.basisElementId" :name="sub.basisElementCopyId+''"> + <a-radio :value="1">有</a-radio> + <a-radio :value="-1">无</a-radio> + </a-radio-group> + <!-- --> + <!-- <br v-if="sub.showType === 2" /> --> + <div class="clear" v-if="sub.simple > 0"></div> + <a-col :span="6" v-if="(sub.logicValue <= 0 || sub.basisElementId === 1) && sub.childEleName">{{sub.childEleName}}</a-col> + <a-checkbox-group v-if="sub.hasChild > 0 && sub.isRadio < 0 &&(sub.logicValue <= 0 || sub.basisElementId === 1) && sub.childList[0].event !== 'showList'" v-model="sub.elementId"> + <a-checkbox v-for="(subOp,index) in sub.childList" :key="index" :name="subOp.parentId+''" :value="subOp.basisElementCopyId">{{subOp.questionName}}</a-checkbox> + </a-checkbox-group> + <a-checkbox-group v-if="sub.hasChild > 0 && sub.isRadio < 0 && (sub.logicValue <= 0 || sub.basisElementId === 1) && sub.childList[0].event === 'showList'" v-model="sub.elementId" style="width: 80%;"> + <span v-for="(subOp, index) in sub.childList"> + <a-checkbox v-if="subOp.event=='showList'" :name="subOp.parentId+''" @change="showList($event,subOp.event,subOp.questionName)" :key="index" :value="subOp.basisElementCopyId">{{subOp.questionName}}</a-checkbox> + <div v-if="subOp.event=='showList' && sub.elementId.indexOf(subOp.basisElementCopyId) > -1&&subOp.questionName=='其他' " style="display: inline-block;width: 300px;argin-right: 10px;"> + <a-input :name="subOp.childList[0].basisElementCopyId+''" :defaultValue="subOp.childList[0].taskExecuteRecord && subOp.childList[0].taskExecuteRecord.length&&subOp.childList[0].taskExecuteRecord[0].elementTextValue" @blur="blurInput($event,subOp.childList[0])" :addonAfter="subOp.childList[0].unit" /> + </div> + <add-table v-if="subOp.event=='showList' && sub.elementId.indexOf(subOp.basisElementCopyId) > -1&&subOp.questionName!=='其他'" v-model="optionDataSource[subOp.basisElementCopyId]" :dataSource=" subOp.medicineAllergyList?subOp.medicineAllergyList:optionDataSource[subOp.basisElementCopyId]"></add-table> + <add-table v-if="subOp.event == 'showList' && subOp.questionName == '其他' && sub.elementId.indexOf(subOp.basisElementCopyId) > -1" v-model="optionDataSource[subOp.childList[0].parentId]" :dataSource="subOp.medicineAllergyList?subOp.medicineAllergyList:optionDataSource[subOp.childList[0].parentId]"></add-table> + </span> + </a-checkbox-group> + <!-- 二级联动 --> + <a-row v-for="(third, index) in sub.childList" :key="index" v-if="sub.hasChild > 0 && sub.isRadio < 0 && third.hasChild > 0 && third.logicValue > 0 && sub.elementId.indexOf(third.basisElementCopyId) > -1" class="no-border"> + <a-col :span="6" v-if="third.childList[0].isWrite > 0">{{third.childList[0].questionName}}</a-col> + <a-col :span="8" v-if="third.childList[0].isWrite > 0"> + <a-date-picker v-if="third.childList[0].event === 'showDate' && third.childList[0].taskExecuteRecord && third.childList[0].taskExecuteRecord.length && third.childList[0].taskExecuteRecord[0].elementTextValue" :defaultValue="moment(third.childList[0].taskExecuteRecord[0].elementTextValue)" :name="third.childList[0].basisElementCopyId+''" style="width:240px" /> + <a-date-picker v-if="third.childList[0].event === 'showDate' && (!third.childList[0].taskExecuteRecord || !third.childList[0].taskExecuteRecord.length || !third.childList[0].taskExecuteRecord[0].elementTextValue)" :name="third.childList[0].basisElementCopyId+''" style="width:240px" /> + <a-input v-if="!third.childList[0].event&&third.event!=='showList'" :addonAfter="third.childList[0].unit" :name="third.childList[0].basisElementCopyId+''" :defaultValue="third.childList[0].taskExecuteRecord && third.childList[0].taskExecuteRecord.length && third.childList[0].taskExecuteRecord[0].elementTextValue" style="width:240px" /> + </a-col> + <a-col :span="6" v-if="third.isRadio > 0 && third.hasChild > 0">{{third.questionName}}</a-col> + <a-col :span="16" v-if="third.isRadio > 0 && third.hasChild > 0"> + <a-radio-group :name="third.basisElementCopyId+''" v-model="third.basisElementId"> + <a-radio v-for="(fourth, index) in third.childList" :key="index" :value="fourth.basisElementCopyId">{{fourth.questionName}}</a-radio> + </a-radio-group> + </a-col> + </a-row> + <a-radio-group v-if="sub.hasChild > 0 && sub.isRadio > 0 && sub.childList[0].event === 'compute'" v-model="sub.basisElementId" :name="sub.basisElementCopyId+''" @change="compute(sub.childList[0].computeElement)"> + <a-radio v-for="(subOp,index) in sub.childList" :value="subOp.basisElementCopyId" :key="index">{{subOp.questionName}}</a-radio> + </a-radio-group> + <a-radio-group v-if="sub.hasChild > 0 && sub.isRadio > 0 && (!sub.childList[0].event || sub.childList[0].event !== 'compute')" v-model="sub.basisElementId" :name="sub.basisElementCopyId+''"> + <a-radio v-for="(subOp,index) in sub.childList" :value="subOp.basisElementCopyId" :key="index">{{subOp.questionName}}</a-radio> + </a-radio-group> + <div v-if="sub.hasChild > 0 && sub.isRadio > 0 && sub.logicValue <= 0 && thirdSub.logicValue > 0 && thirdSub.hasChild > 0 && thirdSub.basisElementCopyId === sub.basisElementId" v-for="(thirdSub, index) in sub.childList"> + <div v-if="thirdSub.isRadio === 0"> + <a-row v-for="(fourth, index) in thirdSub.childList" :class="{'no-border': index === thirdSub.childList.length - 1}"> + <!-- total lung capacity --> + <a-col :span="6">{{fourth.questionName}}</a-col> + <a-radio-group v-if="fourth.simple === 2" v-model="fourth.basisElementId" :name="fourth.basisElementCopyId+''"> + <a-radio :value="1">有</a-radio> + <a-radio :value="-1">无</a-radio> + </a-radio-group> + <a-input v-if="fourth.isWrite > 0" :addonAfter="fourth.unit" :name="fourth.basisElementCopyId+''" :defaultValue="fourth.taskExecuteRecord && fourth.taskExecuteRecord.length && fourth.taskExecuteRecord[0].elementTextValue" style="width: 240px"></a-input> + <div v-if="fourth.hasChild > 0 && fourth.isRadio === 0"> + <a-row class="no-border" v-for="fifth in fourth.childList" v-if="fourth.logicValue <= 0 || fourth.basisElementId === 1"> + <a-col :span="6">{{fifth.questionName}}</a-col> + <a-col :span="4" v-if="fifth.simple === 2"> + <a-radio-group v-model="fifth.basisElementId" :name="fifth.basisElementCopyId+''"> + <a-radio :value="1">有</a-radio> + <a-radio :value="-1">无</a-radio> + </a-radio-group> + </a-col> + <div v-if="fifth.hasChild > 0 && (fifth.logicValue <= 0 || fifth.basisElementId === 1) && fifth.isRadio === 0"> + <a-col :span="4">{{fifth.childList[0].questionName}}</a-col> + <a-input v-if="fifth.childList[0].isWrite > 0" :span="8" style="width: 240px" :name="fifth.childList[0].basisElementCopyId+''" :defaultValue="fifth.childList[0].taskExecuteRecord && fifth.childList[0].taskExecuteRecord.length && fifth.childList[0].taskExecuteRecord[0].elementTextValue" :addonAfter="fifth.childList[0].unit"></a-input> + </div> + <a-col :span="4" v-if="fifth.isWrite > 0"> + <a-input :name="fifth.basisElementCopyId+''" :addonAfter="fifth.unit" :defaultValue="fifth.taskExecuteRecord && fifth.taskExecuteRecord.length && fifth.taskExecuteRecord[0].elementTextValue" style="width:240px"></a-input> + </a-col> + </a-row> + </div> + </a-row> + </div> + <div v-if="thirdSub.isRadio > 0"> + <a-row class="no-border"> + <a-radio-group :name="thirdSub.basisElementCopyId+''" v-model="thirdSub.basisElementId"> + <a-radio v-for="fourth in thirdSub.childList" :value="fourth.basisElementCopyId">{{fourth.questionName}}</a-radio> + </a-radio-group> + </a-row> + </div> + </div> + <a-col v-if="sub.hasChild > 0 && sub.isRadio > 0 && sub.childList[0].isWrite > 0"> + <a-col :span="6">{{sub.childList[0].questionName}}</a-col> + <a-col :span="8"><a-input :name="sub.childList[0].basisElementCopyId+''" style="width:240px" :defaultValue="sub.childList[0].taskExecuteRecord && sub.childList[0].taskExecuteRecord.length && sub.childList[0].taskExecuteRecord[0].elementTextValue" /></a-col> + </a-col> + <a-row class="no-border" v-if="sub.hasChild > 0 && sub.isRadio > 0 && sub.logicValue > 0 && secondSub.hasChild > 0" v-for="(secondSub, index) in sub.childList" :key="index"> + <a-col :span="3" v-if="sub.basisElementId === secondSub.basisElementId">{{secondSub.childList[0].questionName}}</a-col> + <a-col :span="8" v-if="sub.basisElementId === secondSub.basisElementId"><a-input :addonAfter="secondSub.childList[0].unit" :defaultValue="secondSub.childList[0].taskExecuteRecord && secondSub.childList[0].taskExecuteRecord.length && secondSub.childList[0].taskExecuteRecord[0].elementTextValue" :name="secondSub.childList[0].basisElementCopyId+''" style="width:240px" /></a-col> + </a-row> + <a-row v-if="sub.hasChild > 0 && sub.isRadio === 0 && (sub.logicValue <= 0 || sub.basisElementId === 1)" v-for="(subOp,index) in sub.childList" :class="{'ant-col-pull-6': subOp.level > 3 || subOp.display > 0, 'no-border': index === sub.childList.length - 1}"> + <!-- <br> --> + <!-- 调脂那一层,如果是紧跟后面的单选框或者输入框就占8格;否则就是子问题,占12格 --> + <a-col :span="subOp.simple > 0 || subOp.isRadio > 0 || (subOp.questionName.length <= 16 && subOp.isWrite > 0) ? 6 : 24">{{subOp.questionName}}</a-col> + <a-radio-group v-if="subOp.simple === 1" v-model="subOp.basisElementId" :name="subOp.basisElementCopyId+''"> + <a-radio :value="1">是</a-radio> + <a-radio :value="-1">否</a-radio> + </a-radio-group> + <a-radio-group v-if="subOp.simple === 2" v-model="subOp.basisElementId" :name="subOp.basisElementCopyId+''"> + <a-radio :value="1">有</a-radio> + <a-radio :value="-1">无</a-radio> + </a-radio-group> + <a-col :span="6" v-if="subOp.isWrite > 0"> + <a-date-picker v-if="subOp.event === 'showDate' && subOp.taskExecuteRecord && subOp.taskExecuteRecord.length && subOp.taskExecuteRecord[0].elementTextValue" :name="subOp.basisElementCopyId+''" :defaultValue="moment(subOp.taskExecuteRecord[0].elementTextValue)" style="width:240px" /> + <a-date-picker v-if="subOp.event === 'showDate' && (!subOp.taskExecuteRecord || !subOp.taskExecuteRecord.length || !subOp.taskExecuteRecord[0].elementTextValue)" :name="subOp.basisElementCopyId+''" style="width:240px" /> + <a-input :name="subOp.basisElementCopyId+''" v-if="!subOp.event || subOp.event !== 'showDate'" :defaultValue="subOp.taskExecuteRecord && subOp.taskExecuteRecord.length && subOp.taskExecuteRecord[0].elementTextValue" :addonAfter="subOp.unit" style="width:240px" /> + </a-col> + <a-col :span="24" v-if="subOp.hasChild > 0 && subOp.isRadio < 0 && (subOp.logicValue <= 0 || subOp.basisElementId === 1)"> + <a-checkbox-group v-model="subOp.elementId" v-if="subOp.childList[0].event !== 'showList'"> + <a-checkbox v-for="(secondSub,index) in subOp.childList" :key="index" :name="secondSub.parentId+''" :value="secondSub.basisElementCopyId">{{secondSub.questionName}}</a-checkbox> + </a-checkbox-group> + <a-checkbox-group v-if="subOp.hasChild > 0 && subOp.isRadio < 0&& (subOp.logicValue <= 0 || subOp.basisElementId === 1) && subOp.childList[0].event === 'showList'" v-model="subOp.elementId" style="width: 100%;"> + <span v-for="(secondSub, index) in subOp.childList" > + <a-checkbox v-if="secondSub.event=='showList'" :name="secondSub.parentId+''" @change="showList($event,secondSub.event,secondSub.questionName)" :key="index" :value="secondSub.basisElementCopyId">{{secondSub.questionName}}</a-checkbox> + <div v-if="secondSub.event=='showList' && subOp.elementId.indexOf(secondSub.basisElementCopyId) > -1&&secondSub.questionName=='其他' " style="display: inline-block;width: 300px;margin-right: 10px;"> + <a-input :name="secondSub.childList[0].basisElementCopyId+''" @blur="blurInput($event,secondSub.childList[0])" :addonAfter="secondSub.childList[0].unit" :defaultValue="secondSub.childList[0].taskExecuteRecord && secondSub.childList[0].taskExecuteRecord.length && secondSub.childList[0].taskExecuteRecord[0].elementTextValue" /> + </div> + <add-table v-if="secondSub.event=='showList' && subOp.elementId.indexOf(secondSub.basisElementCopyId) > -1&&secondSub.questionName!=='其他'" v-model="optionDataSource[secondSub.basisElementCopyId]" :dataSource="secondSub.medicineAllergyList?secondSub.medicineAllergyList:optionDataSource[secondSub.basisElementCopyId]"></add-table> + <add-table v-if="secondSub.event=='showList' &&secondSub.questionName=='其他'&& subOp.elementId.indexOf(secondSub.basisElementCopyId) > -1" v-model="optionDataSource[secondSub.childList[0].parentId]" :dataSource="secondSub.medicineAllergyList?secondSub.medicineAllergyList:optionDataSource[secondSub.childList[0].parentId]"></add-table> + </span> + </a-checkbox-group> + </a-col> + <div v-if="subOp.hasChild > 0 && subOp.isRadio < 0 && (subOp.logicValue <= 0 || subOp.basisElementId === 1) && subOp.elementId.indexOf(secondSub.basisElementCopyId) > -1" v-for="(secondSub, index) in subOp.childList" :key="index"> + <div v-if="secondSub.hasChild > 0 && secondSub.isRadio === 0"> + <a-row v-for="(thirdSub, index) in secondSub.childList" class="no-border"> + <a-col :span="6" v-if="thirdSub.questionName">{{thirdSub.questionName}}</a-col> + <a-col :span="8" v-if="thirdSub.isWrite > 0"> + <a-input style="width: 240px;" :name="thirdSub.basisElementCopyId+''" :defaultValue="thirdSub.taskExecuteRecord && thirdSub.taskExecuteRecord.length && thirdSub.taskExecuteRecord[0].elementTextValue" v-if="!thirdSub.event && thirdSub.event == 'showList'" :addonAfter="thirdSub.unit"></a-input> + <a-date-picker v-if="thirdSub.event === 'showDate' && thirdSub.taskExecuteRecord && thirdSub.taskExecuteRecord.length && thirdSub.taskExecuteRecord[0].elementTextValue" :name="thirdSub.basisElementCopyId+''" :defaultValue="moment(thirdSub.taskExecuteRecord[0].elementTextValue)" style="width:240px" /> + <a-date-picker v-if="thirdSub.event === 'showDate' && (!thirdSub.taskExecuteRecord || !thirdSub.taskExecuteRecord.length || !thirdSub.taskExecuteRecord[0].elementTextValue)" :name="thirdSub.basisElementCopyId+''" style="width:240px" /> + </a-col> + </a-row> + </div> + <div v-if="secondSub.hasChild > 0 && secondSub.isRadio > 0"> + <a-row class="no-border"> + <a-col :span="6">{{secondSub.questionName}}</a-col> + <a-radio-group v-model="secondSub.basisElementId" :name="secondSub.basisElementCopyId+''"> + <a-radio v-for="(thirdSub, index) in secondSub.childList" :value="thirdSub.basisElementCopyId" :key="index">{{thirdSub.questionName}}</a-radio> + </a-radio-group> + </a-row> + </div> + </div> + <!-- <a-col :span="6" v-if="secondSub.hasChild > 0 && (secondSub.logicValue === 0 || subOp.elementId.indexOf(secondSub.basisElementCopyId) > -1) && secondSub.isWrite > 0" v-for="(secondSub,index) in subOp.childList"> + <a-input style="width:240px;" :name="secondSub.basisElementCopyId+''" :defaultValue="secondSub.taskExecuteRecord && secondSub.taskExecuteRecord.length && secondSub.taskExecuteRecord[0].elementTextValue"></a-input> + </a-col> --> + <a-col :span="18" v-if="subOp.hasChild > 0 && subOp.isRadio > 0"> + <a-radio-group :name="subOp.basisElementCopyId+''" v-model="subOp.basisElementId"> + <a-radio v-for="(secondSub,index) in subOp.childList" :key="index" :value="secondSub.basisElementId">{{secondSub.questionName}}</a-radio> + </a-radio-group> + </a-col> + <div v-for="(secondSub, index) in subOp.childList" v-if="subOp.hasChild > 0 && subOp.isRadio > 0 && secondSub.hasChild > 0 && secondSub.isRadio === 0 && (secondSub.logicValue <= 0 || subOp.basisElementId === secondSub.basisElementCopyId)"> + <a-col v-for="(thirdSub,index) in secondSub.childList"> + <a-col :span="6">{{thirdSub.questionName}}</a-col> + <a-col :span="6" v-if="thirdSub.isWrite > 0"> + <a-input :name="thirdSub.basisElementCopyId+''" :defaultValue="thirdSub.taskExecuteRecord && thirdSub.taskExecuteRecord.length && thirdSub.taskExecuteRecord[0].elementTextValue" style="width:240px" :addonAfter="thirdSub.unit"></a-input> + </a-col> + </a-col> + </div> + <a-row v-if="subOp.hasChild > 0 && subOp.isRadio === 0 && (!subOp.logicValue || subOp.basisElementId === 1)" v-for="(thirdSub, index) in subOp.childList" :key="index" class="no-border"> + <!-- 雾化治疗 --> + <a-col :span="6">{{thirdSub.questionName}}</a-col> + <a-col :span="16"> + <a-radio-group v-if="thirdSub.simple === 1" :name="thirdSub.basisElementCopyId+''" v-model="thirdSub.basisElementId"> + <a-radio :value="1">是</a-radio> + <a-radio :value="-1">否</a-radio> + </a-radio-group> + <a-date-picker v-if="thirdSub.event === 'showDate' && thirdSub.taskExecuteRecord && thirdSub.taskExecuteRecord.length && thirdSub.taskExecuteRecord[0].elementTextValue" :defaultValue="moment(thirdSub.taskExecuteRecord[0].elementTextValue)" :name="thirdSub.basisElementCopyId+''" style="width:240px" /> + <a-date-picker v-if="thirdSub.event === 'showDate' && (!thirdSub.taskExecuteRecord || !thirdSub.taskExecuteRecord.length || !thirdSub.taskExecuteRecord[0].elementTextValue)" :name="thirdSub.basisElementCopyId+''" style="width:240px" /> + <a-input v-if="thirdSub.isWrite > 0 && !thirdSub.event" :name="thirdSub.basisElementCopyId + ''" :defaultValue="thirdSub.taskExecuteRecord && thirdSub.taskExecuteRecord.length && thirdSub.taskExecuteRecord[0].elementTextValue" style="width:240px" :addonAfter="thirdSub.unit" /> + <!-- 注掉br是因为啰音类型会掉下去,别处需要换行再调整 --> + <!-- <br v-if="thirdSub.hasChild > 0 && thirdSub.isRadio > 0 && thirdSub.simple > 0"> --> + <a-radio-group v-if="thirdSub.hasChild > 0 && thirdSub.isRadio > 0 && (thirdSub.logicValue <= 0 || thirdSub.basisElementId === 1)" :name="thirdSub.basisElementCopyId+''" v-model="thirdSub.basisElementId" style="width: 100%"> + <a-radio v-for="(fourth, index) in thirdSub.childList" :key="index" :value="fourth.basisElementCopyId">{{fourth.questionName}}</a-radio> + </a-radio-group> + <div v-if="thirdSub.hasChild > 0 && thirdSub.isRadio > 0 && (thirdSub.logicValue <= 0 || thirdSub.basisElementId === 1)"> + <div v-for="(fourth, index) in thirdSub.childList" :key="index" v-if="fourth.hasChild > 0 && fourth.isRadio === 0 && (fourth.logicValue <= 0 || thirdSub.basisElementId === fourth.basisElementCopyId)"> + <a-row class="no-border"> + <a-col :span="6">{{fourth.childList[0].questionName}}</a-col> + <a-col :span="16" v-if="fourth.childList[0].isWrite > 0"> + <a-input :name="fourth.childList[0].basisElementCopyId+''" style="width: 240px;" :defaultValue="fourth.childList[0].taskExecuteRecord && fourth.childList[0].taskExecuteRecord.length && fourth.childList[0].taskExecuteRecord[0].elementTextValue" :addonAfter="fourth.childList[0].unit"></a-input> + </a-col> + </a-row> + </div> + </div> + <a-checkbox-group v-if="thirdSub.isRadio < 0 && thirdSub.hasChild > 0" v-model="thirdSub.elementId"> + <a-checkbox v-for="(fourth,index) in thirdSub.childList" :key="index" :name="fourth.parentId+''" :value="fourth.basisElementCopyId">{{fourth.questionName}}</a-checkbox> + </a-checkbox-group> + <div v-if="thirdSub.hasChild > 0 && thirdSub.isRadio === 0 && (thirdSub.logicValue <= 0 || thirdSub.basisElementId === 1)"> + <a-row v-for="(fourth, index) in thirdSub.childList" :key="index" class="ant-col-pull-12 no-border"> + <a-col :span="12">{{fourth.questionName}}</a-col> + <a-col :span="12"> + <a-radio-group v-if="fourth.simple === 1" :name="fourth.basisElementCopyId+''" v-model="fourth.basisElementId"> + <a-radio :value="1">是</a-radio> + <a-radio :value="-1">否</a-radio> + </a-radio-group> + </a-col> + </a-row> + </div> + </a-col> + </a-row> + </a-row> + </a-col> + </a-row> + </div> + </a-form-item> + </a-form> + </div> + </a-col> + </a-row> + </a-card> + </div> +</template> + +<script> +import STree from '@/components/Tree/Tree' +import { mapActions } from 'vuex' +import { getElementsAnswer, saveVisitTask, getMedicineAllergyList,computeScore,getAllQuestionList, getTaskDetail } from '@/api/basis' +import _ from 'lodash' +import $ from 'jquery' +import moment from 'moment' +import AddTable from "./model/table" +import { MyIcon } from '@/components/_util/util'; +export default { + name: 'taskDetail', + components: { + STree, + AddTable, + MyIcon + }, + data() { + return { + baselineInfoStyle:{ + overflow:"auto", + height:(window.screen.height-330)+'px', + "padding-right":"0px", + "border-right":"1px solid #ddd" + }, + baselineFormStyle:{ + height:(window.screen.height-350)+'px', + }, + optionDataSource:[], + checkedList:[], + title: '访视任务', + openKeys: [], + defaultSelectedKeys: [], + orgTree: [], + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6} + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24} + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + visible: false, + confirmLoading: false, + patient: {}, + list: [], + listArr: [], + list1: [], + question:{}, + basisMaskId: undefined, + validateFlag: false, + visitTaskId: this.$route.params.id, + computeMap: { + 4207: '' + }, + disBlock :{ + display: 'block', + }, + bodyStyle: { + 'padding-left': '0px' + }, + visitTask: {} + } + }, + beforeCreate (){ + this.form = this.$form.createForm(this, {onFieldsChange: this.onFieldsChange, onValuesChange: this.onValuesChange}) + }, + created() { + var that = this + this.CloseSidebar() + // this.compute = _.debounce(this.compute, 300) //节流阀 + var params = new URLSearchParams() + params.append('visitTaskId', this.visitTaskId) + getTaskDetail(params) + .then(res => { + that.patient = res.data.patient + that.visitTask = res.data.visitTask + that.list = that.initList(res.data.basisElementList) + that.orgTree = res.data.bmList + that.basisMaskId = that.orgTree[0].basisMarkId + }) + }, + computed: { + validate() { + return function(index){ + if(!this.validateFlag) return '' + var first = this.list[index] + if(first.required > 0) return 'error' + } + } + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + showList(e,type,name){ + if(type !== 'showList') return; + if(e.target.checked){ + if(name=="其他") return; + this.getMedicineAllergyList(name,e.target.value) + }else{ + this.$set(this.optionDataSource,e.target.value,[]) + } + + }, + getMedicineAllergyList(value,index){ + const that = this + const params = new URLSearchParams() + params.append('microbeName', value) + getMedicineAllergyList(params).then(res => { + const optionDataSource = _.map(res.data, function(v) { + return { + keyW: v.keyW, + microbeName: v.microbeName, + antibiotic: v.antibiotic, + antibioticResult: v.antibioticResult, + allergyValue: v.allergyValue + }; + }) + that.$set(that.optionDataSource,index, optionDataSource) + }) + }, + blurInput(e,item){ + this.getMedicineAllergyList(e.target.value,item.parentId) + }, + handleClick(e) { + this.basisMaskId = e.key + this.getElementsAnswer() + }, + handleSubmit () { + const { form: { validateFieldsAndScroll } } = this + this.confirmLoading = true + validateFieldsAndScroll((errors, values) => { + if (!errors) { + console.log('values', values) + setTimeout(() => { + this.visible = false + this.confirmLoading = false + this.$emit('ok', values) + }, 1500) + } else { + this.confirmLoading = false + } + }) + }, + handleCancel () { + this.visible = false + }, + onChange(info) { + const { status } = info.file; + if (status !== 'uploading') { + console.log(info.file, info.fileList); + } + if (status === 'done') { + message.success(`${info.file.name} file uploaded successfully.`); + } else if (status === 'error') { + message.error(`${info.file.name} file upload failed.`); + } + }, + getElementsAnswer (){ + var that = this; + var params = new URLSearchParams(); + if (this.basisMaskId > 30) { + that.list = []; + params.append('questionId', this.basisMaskId) + getAllQuestionList(params) + .then(res => { + res.data.topTitles.forEach((item,index,arr)=> { + that.listArr = arr; + }) + that.question = that.initList(res.data.question); + // that.logicList = _.filter(_.flatten(_.map(res.data, function(v){return _.flatMap(v)})),function(v){return v.logicValue > 0}) + }) + + }else{ + that.question = {}; + that.listArr = []; + params.append('basisMaskId', this.basisMaskId) + params.append('patientBasisId', this.patientBasisId) + getElementsAnswer(params) + .then(res => { + that.list = that.initList(res.data) + // that.logicList = _.filter(_.flatten(_.map(res.data, function(v){return _.flatMap(v)})),function(v){return v.logicValue > 0}) + }) + } + + }, + generateAnswers (){ + var result = [] + _.each(this.list, function(item){ + if(item.simple > 0){ + result.push({ + taskExecuteRecordId: (item.taskExecuteRecord && item.taskExecuteRecord.length) ? item.taskExecuteRecord[0].taskExecuteRecordId : '', + basisElementId: item.basisElementCopyId, + elementNumValue: typeof $('input[name="' + item.basisElementCopyId + '"]:checked').val() !== 'undefined' ? $('input[name="' + item.basisElementCopyId + '"]:checked').val() : '', + elementTextValue: '' + }) + }else if(item.isWrite > 0){ + var text = $('[name="' + item.basisElementCopyId + '"]').hasClass('ant-calendar-picker') ? $('[name="' + item.basisElementCopyId + '"] input').val() : $('[name="' + item.basisElementCopyId + '"]').val() + result.push({ + taskExecuteRecordId: (item.taskExecuteRecord && item.taskExecuteRecord.length) ? item.taskExecuteRecord[0].taskExecuteRecordId : '', + basisElementId: item.basisElementCopyId, + elementTextValue: text, + elementNumValue: '' + }) + } + if(item.hasChild > 0){ + if(item.childList[0].type === 1){ + _.each(item.childList, function(sub){ + if(sub.isWrite > 0){ + var text = $('[name="' + sub.basisElementCopyId + '"]').hasClass('ant-calendar-picker') ? $('[name="' + sub.basisElementCopyId + '"] input').val() : $('[name="' + sub.basisElementCopyId + '"]').val() + result.push({ + taskExecuteRecordId: (sub.taskExecuteRecord && sub.taskExecuteRecord.length) ? sub.taskExecuteRecord[0].taskExecuteRecordId : '', + basisElementId: sub.basisElementCopyId, + elementTextValue: text, + elementNumValue: '' + }) + } + if(sub.simple > 0){ + result.push({ + taskExecuteRecordId: (sub.taskExecuteRecord && sub.taskExecuteRecord.length) ? sub.taskExecuteRecord[0].taskExecuteRecordId : '', + basisElementId: sub.basisElementCopyId, + elementNumValue: typeof $('input[name="' + sub.basisElementCopyId + '"]:checked').val() !== 'undefined' ? $('input[name="' + sub.basisElementCopyId + '"]:checked').val() : '', + elementTextValue: '' + }) + } + + if(sub.hasChild > 0){ + if(sub.isRadio !== 0){ + _.each(sub.childList, function(third){ + result.push({ + taskExecuteRecordId: third.taskExecuteRecord && third.taskExecuteRecord.length ? third.taskExecuteRecord[0].taskExecuteRecordId : '', + basisElementId: third.basisElementCopyId, + elementNumValue: $('[value="' + third.basisElementCopyId + '"][name="' + third.parentId + '"]').prop('checked') ? 1 : -1, + elementTextValue: '' + }) + }) + } + _.each(sub.childList, function(third){ + if(third.simple > 0){ + result.push({ + taskExecuteRecordId: (third.taskExecuteRecord && third.taskExecuteRecord.length) ? third.taskExecuteRecord[0].taskExecuteRecordId : '', + basisElementId: third.basisElementCopyId, + elementNumValue: typeof $('input[name="' + third.basisElementCopyId + '"]:checked').val() !== 'undefined' ? $('input[name="' + third.basisElementCopyId + '"]:checked').val() : '', + elementTextValue: '' + }) + } + if(third.isWrite > 0){ + var text = $('[name="' + third.basisElementCopyId + '"]').hasClass('ant-calendar-picker') ? $('[name="' + third.basisElementCopyId + '"] input').val() : $('[name="' + third.basisElementCopyId + '"]').val() + result.push({ + taskExecuteRecordId: (third.taskExecuteRecord && third.taskExecuteRecord.length) ? third.taskExecuteRecord[0].taskExecuteRecordId : '', + basisElementId: third.basisElementCopyId, + elementTextValue: text || '', + elementNumValue: '' + }) + } + if(third.hasChild > 0){ + + _.each(third.childList,function(fourth){ + if(third.isRadio !== 0){ + result.push({ + taskExecuteRecordId: fourth.taskExecuteRecord && fourth.taskExecuteRecord.length ? fourth.taskExecuteRecord[0].taskExecuteRecordId : '', + basisElementId: fourth.basisElementCopyId, + elementNumValue: $('[value="' + fourth.basisElementCopyId + '"][name="' + fourth.parentId + '"]').prop('checked') ? 1 : -1, + elementTextValue: '' + }) + } + if(fourth.simple > 0){ + result.push({ + taskExecuteRecordId: (fourth.taskExecuteRecord && fourth.taskExecuteRecord.length) ? fourth.taskExecuteRecord[0].taskExecuteRecordId : '', + basisElementId: fourth.basisElementCopyId, + elementNumValue: typeof $('input[name="' + fourth.basisElementCopyId + '"]:checked').val() !== 'undefined' ? $('input[name="' + fourth.basisElementCopyId + '"]:checked').val() : '', + elementTextValue: '' + }) + } + if(fourth.isWrite > 0){ + var text = $('[name="' + fourth.basisElementCopyId + '"]').hasClass('ant-calendar-picker') ? $('[name="' + fourth.basisElementCopyId + '"] input').val() : $('[name="' + fourth.basisElementCopyId + '"]').val() + result.push({ + taskExecuteRecordId: (fourth.taskExecuteRecord && fourth.taskExecuteRecord.length) ? fourth.taskExecuteRecord[0].taskExecuteRecordId : '', + basisElementId: fourth.basisElementCopyId, + elementTextValue: text || '', + elementNumValue: '' + }) + } + if(fourth.hasChild > 0 && fourth.isRadio === 0){ + _.each(fourth.childList, function(fifth){ + if(fifth.isWrite > 0){ + var text = $('[name="' + fifth.basisElementCopyId + '"]').hasClass('ant-calendar-picker') ? $('[name="' + fifth.basisElementCopyId + '"] input').val() : $('[name="' + fifth.basisElementCopyId + '"]').val() + result.push({ + taskExecuteRecordId: (fifth.taskExecuteRecord && fifth.taskExecuteRecord.length) ? fifth.taskExecuteRecord[0].taskExecuteRecordId : '', + basisElementId: fifth.basisElementCopyId, + elementTextValue: text || '', + elementNumValue: '' + }) + } + if(fifth.simple > 0){ + result.push({ + taskExecuteRecordId: (fifth.taskExecuteRecord && fifth.taskExecuteRecord.length) ? fifth.taskExecuteRecord[0].taskExecuteRecordId : '', + basisElementId: fifth.basisElementCopyId, + elementNumValue: typeof $('input[name="' + fifth.basisElementCopyId + '"]:checked').val() !== 'undefined' ? $('input[name="' + fifth.basisElementCopyId + '"]:checked').val() : '', + elementTextValue: '' + }) + } + if(fifth.hasChild > 0 && fifth.isRadio === 0){ + _.each(fifth.childList, function(sixth){ + if(sixth.isWrite > 0){ + var text = $('[name="' + sixth.basisElementCopyId + '"]').hasClass('ant-calendar-picker') ? $('[name="' + sixth.basisElementCopyId + '"] input').val() : $('[name="' + sixth.basisElementCopyId + '"]').val() + result.push({ + taskExecuteRecordId: (sixth.taskExecuteRecord && sixth.taskExecuteRecord.length) ? sixth.taskExecuteRecord[0].taskExecuteRecordId : '', + basisElementId: sixth.basisElementCopyId, + elementTextValue: text || '', + elementNumValue: '' + }) + } + }) + } + }) + }else if(fourth.hasChild > 0 && fourth.isRadio !== 0){ + _.each(fourth.childList, function(fifth){ + result.push({ + taskExecuteRecordId: fifth.taskExecuteRecord && fifth.taskExecuteRecord.length ? fifth.taskExecuteRecord[0].taskExecuteRecordId : '', + basisElementId: fifth.basisElementCopyId, + elementNumValue: $('[value="' + fifth.basisElementCopyId + '"][name="' + fifth.parentId + '"]').prop('checked') ? 1 : -1, + elementTextValue: '' + }) + }) + } + }) + } + }) + } + }) + }else{ + // 是选项,单选或多选 + if(item.isRadio !== 0){ + _.each(item.childList, function(sub){ + result.push({ + taskExecuteRecordId: sub.taskExecuteRecord && sub.taskExecuteRecord.length ? sub.taskExecuteRecord[0].taskExecuteRecordId : '', + basisElementId: sub.basisElementCopyId, + elementNumValue: $('[value="' + sub.basisElementCopyId + '"][name="' + sub.parentId + '"]').prop('checked') ? 1 : -1, + elementTextValue: '' + }) + // TODO:此处后面需看还有没有更多情况 + if(sub.hasChild > 0 && sub.isWrite > 0){ + result.push({ + basisAnswer: sub.childList[0].taskExecuteRecord && sub.childList[0].taskExecuteRecord.length ? sub.childList[0].taskExecuteRecord[0].taskExecuteRecordId : '', + basisElementId: sub.childList[0].basisElementCopyId, + elementTextValue: $('[name="' + sub.childList[0].basisElementCopyId + '"]').val(), + elementNumValue: '' + }) + } + }) + } + } + } + }) + return result + }, + save (){ + var that = this + var result = this.generateAnswers() + console.log(result) + var params = new URLSearchParams(); + const allergy=[] + for(var key in this.optionDataSource){ + _.each(this.optionDataSource[key], function(item){ + allergy.push({ + basisElementId:key, + microbeName:item.microbeName, + antibiotic:item.antibiotic, + antibioticResult:item.antibioticResult, + allergyValue:item.allergyValue + }) + }) + } + params.append('visitTaskStr', JSON.stringify(this.visitTask)) + params.append('taskExecuteRecord', JSON.stringify(result)) + params.append('allergy', JSON.stringify(allergy)) + saveVisitTask(params) + .then(res => { + that.$message.success('保存成功', function(){ + var href = location.href.replace(/\?markId=[\d]+/,'') + location.href = href + '?markId=' + that.basisMaskId + }) + }) + .catch(error => { + console.log(error) + }) + }, + submit (){ + this.form.validateFieldsAndScroll((err, values) => { + if (!err) { + // eslint-disable-next-line no-console + console.log('Received values of form: ', values) + } + }) + return false + }, + initList (list){ + var that = this + _.each(list, function(a){ + if(a.simple > 0 && a.taskExecuteRecord && a.taskExecuteRecord.length){ + a.basisElementId = a.taskExecuteRecord[0].elementNumValue + } + if(typeof a.computeElement !== 'undefined' && a.computeElement === 0 && a.taskExecuteRecord && a.taskExecuteRecord.length) { + that.computeMap[a.basisElementCopyId] = a.taskExecuteRecord[0].elementTextValue + } + if(a.hasChild > 0 && a.isRadio === 0){ + _.each(a.childList,function(b){ + if(typeof b.computeElement !== 'undefined' && b.computeElement === 0 && b.taskExecuteRecord && b.taskExecuteRecord.length) { + that.computeMap[b.basisElementCopyId] = b.taskExecuteRecord[0].elementTextValue + } + if(b.simple > 0 && b.taskExecuteRecord && b.taskExecuteRecord.length){ + b.basisElementId = b.taskExecuteRecord[0].elementNumValue + } + //单选 + if(b.hasChild > 0 && b.isRadio > 0){ + var re = _.filter(b.childList, function(v){return v.taskExecuteRecord && v.taskExecuteRecord.length && v.taskExecuteRecord[0].elementNumValue > 0}) + if(re.length) b.basisElementId = re[0].basisElementId + _.each(b.childList, function(c){ + if(c.logicValue > 0 && c.hasChild > 0 && c.isRadio === 0){ + _.each(c.childList, function(d){ + if(d.simple > 0 && d.taskExecuteRecord && d.taskExecuteRecord.length){ + d.basisElementId = d.taskExecuteRecord[0].elementNumValue + } + if(d.hasChild > 0 && d.isRadio === 0){ + _.each(d.childList, function(e){ + if(e.simple > 0 && e.taskExecuteRecord && e.taskExecuteRecord.length){ + e.basisElementId = e.taskExecuteRecord[0].elementNumValue + } + }) + } + }) + } + if(c.logicValue > 0 && c.hasChild > 0 && c.isRadio > 0){ + + } + }) + } + //多选 + if(b.hasChild > 0 && b.isRadio < 0){ + if(b.childList[0].taskExecuteRecord && b.childList[0].taskExecuteRecord.length){ + b.elementId = _.map(_.filter(_.flatten(_.map(b.childList,function(v){return v.taskExecuteRecord})),function(v){return v.elementNumValue > 0}),function(v){return v.basisElementId}) + }else{ + b.elementId = [] + } + //多选框控制子选项 + _.each(b.childList,function(c){ + if(c.logicValue > 0 && c.taskExecuteRecord && c.taskExecuteRecord.length && c.taskExecuteRecord[0].elementNumValue > 0){ + var selected = _.filter(_.flatten(_.map(c.childList,function(v){return v.taskExecuteRecord})),function(v){return v.elementNumValue > 0}) + if(selected.length){ + c.basisElementId = _.map(selected,function(v){return v.basisElementId})[0] + } + } + }) + } + //子选项,第三层 + if(b.hasChild > 0 && b.isRadio === 0){ + _.each(b.childList, function(c){ + if(c.simple > 0 && c.taskExecuteRecord && c.taskExecuteRecord.length){ + c.basisElementId = c.taskExecuteRecord[0].elementNumValue + } + if(c.hasChild > 0 && c.isRadio === 0){ + _.each(c.childList, function(d){ + if(d.simple > 0 && d.taskExecuteRecord && d.taskExecuteRecord.length){ + d.basisElementId = d.taskExecuteRecord[0].elementNumValue + } + if(d.hasChild > 0 && d.isRadio < 0){ + if(d.childList[0].taskExecuteRecord && d.childList[0].taskExecuteRecord.length){ + d.elementId = _.map(_.filter(_.flatten(_.map(d.childList,function(v){return v.taskExecuteRecord})),function(v){return v.elementNumValue > 0}),function(v){return v.basisElementId}) + }else{ + d.elementId = [] + } + }else if(d.hasChild > 0 && d.isRadio > 0){ + if(d.childList[0].taskExecuteRecord && d.childList[0].taskExecuteRecord.length){ + var selected = _.filter(_.flatten(_.map(d.childList,function(v){ return v.taskExecuteRecord })),function(v){ return v.elementNumValue > 0 }) + if(selected.length){ + d.basisElementId = _.map(selected,function(v){ return v.basisElementId })[0] + } + } + } + }) + } + if(c.hasChild > 0 && c.isRadio < 0){ + if(c.childList[0].taskExecuteRecord && c.childList[0].taskExecuteRecord.length){ + c.elementId = _.map(_.filter(_.flatten(_.map(c.childList,function(v){return v.taskExecuteRecord})),function(v){return v.elementNumValue > 0}),function(v){return v.basisElementId}) + }else{ + c.elementId = [] + } + _.each(c.childList, function(d){ + if(d.hasChild > 0 && d.isRadio > 0){ + if(d.childList[0].taskExecuteRecord && d.childList[0].taskExecuteRecord.length){ + var selected = _.filter(_.flatten(_.map(d.childList,function(v){ return v.taskExecuteRecord })),function(v){ return v.elementNumValue > 0 }) + if(selected.length){ + d.basisElementId = _.map(selected,function(v){ return v.basisElementId })[0] + } + } + } + }) + } + if(c.hasChild > 0 && c.isRadio > 0){ + if(c.childList[0].taskExecuteRecord && c.childList[0].taskExecuteRecord.length){ + var selected = _.filter(_.flatten(_.map(c.childList,function(v){ return v.taskExecuteRecord })),function(v){ return v.elementNumValue > 0 }) + if(selected.length){ + c.basisElementId = _.map(selected,function(v){ return v.basisElementId })[0] + } + } + } + }) + } + }) + }else if(a.hasChild > 0 && a.isRadio < 0){ + if(a.childList[0].taskExecuteRecord && a.childList[0].taskExecuteRecord.length){ + a.elementId = _.map(_.filter(_.flatten(_.map(a.childList,function(v){return v.taskExecuteRecord})),function(v){return v.elementNumValue > 0}),function(v){return v.basisElementId}) + }else{ + a.elementId = [] + } + }else if(a.hasChild > 0 && a.isRadio > 0){ + var re = _.filter(a.childList, function(v){return v.taskExecuteRecord && v.taskExecuteRecord.length && v.taskExecuteRecord[0].elementNumValue > 0}) + if(re.length) a.basisElementId = re[0].basisElementId + } + }) + return list + }, + compute (id){ + console.log(id) + var that = this + var result = this.generateAnswers() + var params = new URLSearchParams(); + params.append('basisElementId', id) + params.append('basisAnswer', JSON.stringify(result)) + computeScore(params) + .then(res => { + console.log(res) + console.log('计算成功,结果为:' + res.data[id]) + if(typeof res.data[id] !== 'undefined') { + that.computeMap[id] = res.data[id] + } + }) + .catch(error => { + console.log(error) + }) + } + } +} +</script> + +<style lang="less" scoped> + /deep/ #baselineHeader{ + .ant-card-body{ + padding: 10px + } + } + + .ml-10{ + margin-left: 10px; + } + .UserNameCard{ + font-size: 20px; + .anticon{ + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } + } +.clear { + clear: both; +} +.ant-col-4 .ant-calendar-picker, +.ant-col-6 .ant-calendar-picker { + width: 100%; +} +.ant-checkbox-wrapper + .ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #CFF4FF; +} + + +/deep/.ant-menu-vertical .ant-menu-item:after, .ant-menu-vertical-left .ant-menu-item:after, .ant-menu-vertical-right .ant-menu-item:after, .ant-menu-inline .ant-menu-item:after{ + border-right: 6px solid #1890ff; +} +/deep/ .ant-row { + clear: both; +} +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 10px 15px; + } + /deep/ .tree-title { + border-right: 1px solid #e8e8e8; + color: #25aefe; + font-size: 22px; + padding-left: 70px; + padding-top: 5px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + padding-left: 20p; + background-position-x: 15px; + padding-bottom: 26px; + } + /deep/ .ant-menu-inline > .ant-menu-submenu > .ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245,251,255); + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245,251,255); + padding-left: 20px; + .treeSubTitle{ + font-size: 14px; + } + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + .ant-menu-item:hover, + .ant-menu-item-active, + .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, + .ant-menu-submenu-active, + .ant-menu-submenu-title:hover { + background-color: #eaf2fd; + } + .placeholderI { + display: inline-block; + width: 27px; + } + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + /deep/ .ant-menu-submenu { + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + .action { + font-size: 18px; + &.anticon-check-circle { + color: #8ac51b; + } + &.anticon-clock-circle { + color: #06a0e2; + } + } + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + .fr { + float: right; + } + .btn { + margin-right: 10px; + } + .baselineForm { + height: 350px; + overflow: auto; + + padding: 40px 20px; + .ant-row { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + &.no-border{ + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + &:hover { + } + } + /deep/ .ant-form-item-label { + text-align: left; + label:after { + content: ''; + } + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + } + } + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + .itemRow:hover { + background-color: #e6f7ff; + } + } +} +.question-title{ + text-align: center; + font-size: 22px; + color: #3398DC; +} +.question-des{ + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding:0 10px ; +} +.question-t{ + font-size: 18px; + line-height: 40px; + font-weight: 700; +} +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle{ + width: 120px; +} +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} +</style> diff --git a/src/views/account/index.vue b/src/views/account/index.vue new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/views/account/maskWrap.vue b/src/views/account/maskWrap.vue new file mode 100644 index 0000000000..5647613e7f --- /dev/null +++ b/src/views/account/maskWrap.vue @@ -0,0 +1,710 @@ +<template> +<div> +<a-form :form="form" @submit="handleSubmit"> + <div style="overflow: hidden;"> + <a-button class="btn fr" v-if="patientBasis.type === 3" @click="_import">导入</a-button> + <a-button class="btn fr" type="primary" html-type="submit">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle" v-if="maskId === 1"> + <div class="title">1.基本病史</div> + <a-form-item label="(1) 留全血:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a_1', require1]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(2) 留血清:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a_2', require1]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(3) 患者支扩确诊时间:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" @change="changeDate" :disabled-date="disabledDate" v-decorator="['a_3', dateRequire]" style="width: 200px;"></a-date-picker> + </a-form-item> + <a-form-item label="(4) 主要临床症状(多选):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['a_4', selectRequired]"> + <a-checkbox value="1">咳嗽</a-checkbox> + <a-checkbox value="2" :checked="controlList[maskId].control_a_4_1" @change="changeSelect($event, 'control_a_4_1')">咳痰</a-checkbox> + <a-checkbox value="3">痰血</a-checkbox> + <a-checkbox value="4" :checked="controlList[maskId].control_a_4_2" @change="changeSelect($event, 'control_a_4_2')">咯血</a-checkbox> + <a-checkbox value="5">胸闷</a-checkbox> + <a-checkbox value="6">喘息</a-checkbox> + <a-checkbox value="7">活动后气促</a-checkbox> + <a-checkbox value="8">胸痛</a-checkbox> + <a-checkbox value="9">发热</a-checkbox> + <a-checkbox value="10">全身疲乏</a-checkbox> + <a-checkbox value="11">纳差</a-checkbox> + <a-checkbox value="12">消瘦</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="痰量" v-if="controlList[maskId].control_a_4_1" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="ml/日" style="width: 200px;" v-decorator="['a_4_1', inputRequired]"></a-input> + </a-form-item> + <a-form-item label="咯血量(最多)" v-if="controlList[maskId].control_a_4_2" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="ml/日" style="width: 200px;" v-decorator="['a_4_2', inputRequired]"></a-input> + </a-form-item> + <div class="title">2.既往病史</div> + <a-form-item label="(1) 过去一年的急性加重次数:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="次" style="width: 200px;" v-decorator="['b_1', inputRequired]"></a-input> + </a-form-item> + <a-form-item label="(2) 过去一年的住院急性加重次数:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="次" style="width: 200px;" v-decorator="['b_2', inputRequired]"></a-input> + </a-form-item> + <a-form-item label="(3) 过去一年的门诊急性加重次数:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="次" style="width: 200px;" v-decorator="['b_3', inputRequired]"></a-input> + </a-form-item> + <a-form-item label="(4) 过去一年的门诊急性加重次数:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 200px;" v-decorator="['b_4', dateRequire]"></a-date-picker> + </a-form-item> + <a-form-item label="(5) 有无病因相关的病史及事件(多选):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b_5', selectRequired]"> + <a-checkbox value="1" :disabled="detect('b_5', '7')">既往有无麻疹</a-checkbox> + <a-checkbox value="2" :disabled="detect('b_5', '7')">百日咳</a-checkbox> + <a-checkbox value="3" :disabled="detect('b_5', '7')">肺结核</a-checkbox> + <a-checkbox value="4" :disabled="detect('b_5', '7')">NTM</a-checkbox> + <a-checkbox value="5" :disabled="detect('b_5', '7')">溺水</a-checkbox> + <a-checkbox value="6" :disabled="detect('b_5', '7')">其他</a-checkbox> + <a-checkbox value="7" @change="handleNone($event, 'b_5', '7')">无</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="(6) 目前合并呼吸系统相关疾病:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b_6', selectRequired]"> + <a-checkbox value="1" :checked="controlList[maskId].control_b_6_1" @change="changeSelect($event, 'control_b_6_1')">鼻炎</a-checkbox> + <a-checkbox value="2" :checked="controlList[maskId].control_b_6_2" @change="changeSelect($event, 'control_b_6_2')">鼻窦炎</a-checkbox> + <a-checkbox value="3" :checked="controlList[maskId].control_b_6_3" @change="changeSelect($event, 'control_b_6_3')">鼻息肉</a-checkbox> + <a-checkbox value="4" :checked="controlList[maskId].control_b_6_4" @change="changeSelect($event, 'control_b_6_4')">哮喘</a-checkbox> + <a-checkbox value="5" :checked="controlList[maskId].control_b_6_5" @change="changeSelect($event, 'control_b_6_5')">慢阻肺</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="鼻炎具体诊断日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_6_1"> + <a-date-picker placeholder="请选择" style="width: 200px;" v-decorator="['b_6_1']"></a-date-picker> + </a-form-item> + <a-form-item class="no-border" label="鼻窦炎具体诊断日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_6_2"> + <a-date-picker placeholder="请选择" style="width: 200px;" v-decorator="['b_6_2']"></a-date-picker> + </a-form-item> + <a-form-item class="no-border" label="鼻息肉具体诊断日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_6_3"> + <a-date-picker placeholder="请选择" style="width: 200px;" v-decorator="['b_6_3']"></a-date-picker> + </a-form-item> + <a-form-item class="no-border" label="哮喘具体诊断日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_6_4"> + <a-date-picker placeholder="请选择" style="width: 200px;" v-decorator="['b_6_4']"></a-date-picker> + </a-form-item> + <a-form-item class="no-border" label="慢阻肺具体诊断日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_6_5"> + <a-date-picker placeholder="请选择" style="width: 200px;" v-decorator="['b_6_5']"></a-date-picker> + </a-form-item> + <a-form-item label="(7) 心血管系统" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b_7', require2]" @change="changeRadio($event, 'control_b_7')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="心血管系统疾病类型(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_7"> + <a-checkbox-group v-decorator="['b_7_1', selectRequired]"> + <a-checkbox value="1">心梗</a-checkbox> + <a-checkbox value="2">心绞痛</a-checkbox> + <a-checkbox value="3">冠心病</a-checkbox> + <a-checkbox value="4">慢性心衰</a-checkbox> + <a-checkbox value="5">心律失常</a-checkbox> + <a-checkbox value="6">心脏瓣膜病</a-checkbox> + <a-checkbox value="7">肺动脉高压</a-checkbox> + <a-checkbox value="8">中风或短暂性缺血发作</a-checkbox> + <a-checkbox value="9">外周血管疾病</a-checkbox> + <a-checkbox value="10" :checked="controlList[maskId].control_b_7_2" @change="changeSelect($event, 'control_b_7_2')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="疾病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_7_2"> + <a-input style="width: 200px;" v-decorator="['b_7_2', dateRequire]"></a-input> + </a-form-item> + <a-form-item label="(8) 消化系统疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b_8', require2]" @change="changeRadio($event, 'control_b_8')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="消化系统疾病类型(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_8"> + <a-checkbox-group v-decorator="['b_8_1', selectRequired]"> + <a-checkbox value="1" :checked="controlList[maskId].control_b_8_1_1" @change="changeSelect($event, 'control_b_8_1_1')">炎性肠病</a-checkbox> + <a-checkbox value="2">胃食管反流</a-checkbox> + <a-checkbox value="3">消化道溃疡</a-checkbox> + <a-checkbox value="4">慢性肝病</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="炎性肠病" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_8_1_1"> + <a-radio-group v-decorator="['b_8_1_1', require2]"> + <a-radio value="1">溃疡性结肠炎</a-radio> + <a-radio value="2">克罗恩病</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(9) 内分泌系统" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b_9', require2]" @change="changeRadio($event, 'control_b_9')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="内分泌系统疾病类型(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_9"> + <a-checkbox-group v-decorator="['b_9_1', selectRequired]"> + <a-checkbox value="1" :checked="controlList[maskId].control_b_9_1_1" @change="changeSelect($event, 'control_b_9_1_1')">糖尿病</a-checkbox> + <a-checkbox value="2">骨质疏松</a-checkbox> + <a-checkbox value="3">高脂血症</a-checkbox> + <a-checkbox value="4">甲亢</a-checkbox> + <a-checkbox value="5">甲减</a-checkbox> + <a-checkbox value="6">高尿酸血症</a-checkbox> + <a-checkbox value="7">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="糖尿病" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_9_1_1"> + <a-radio-group v-decorator="['b_9_1_1', require2]"> + <a-radio value="1">I型</a-radio> + <a-radio value="2">II型</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(10) 血液系统疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b_10', require2]" @change="changeRadio($event, 'control_b_10')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="血液系统疾病类型(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_10"> + <a-checkbox-group v-decorator="['b_10_1', selectRequired]"> + <a-checkbox value="1" :checked="controlList[maskId].control_b_10_1_1" @change="changeSelect($event, 'control_b_10_1_1')">缺铁性贫血</a-checkbox> + <a-checkbox value="2">白血病</a-checkbox> + <a-checkbox value="3">淋巴瘤</a-checkbox> + <a-checkbox value="4">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="缺铁性贫血" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_10_1_1"> + <a-radio-group v-decorator="['b_10_1_1', require2]"> + <a-radio value="1">I型</a-radio> + <a-radio value="2">II型</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(11) 泌尿系统疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b_11', require2]" @change="changeRadio($event, 'control_b_11')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="泌尿系统疾病类型(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_11"> + <a-checkbox-group v-decorator="['b_11_1', selectRequired]"> + <a-checkbox value="1" :checked="controlList[maskId].control_b_11_1_1" @change="changeSelect($event, 'control_b_11_1_1')">慢性肾病</a-checkbox> + <a-checkbox value="2">慢性尿路感染</a-checkbox> + <a-checkbox value="3">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="慢性肾病" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_11_1_1"> + <a-checkbox v-decorator="['b_11_1_1']">有透析</a-checkbox> + </a-form-item> + <a-form-item label="(12) 风湿系统疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b_12', require2]" @change="changeRadio($event, 'control_b_12')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="风湿系统疾病类型(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_12"> + <a-checkbox-group v-decorator="['b_12_1', selectRequired]"> + <a-checkbox value="1">系统性红斑狼疮</a-checkbox> + <a-checkbox value="2">干燥综合征</a-checkbox> + <a-checkbox value="3">系统性硬化</a-checkbox> + <a-checkbox value="4">皮肌炎</a-checkbox> + <a-checkbox value="5">先天性结缔组织发育不全病</a-checkbox> + <a-checkbox value="6">青少年特发性关节炎</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="(13) 是否有HIV" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b_13', require1]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(14) 是否有恶性肿瘤" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b_14', require1]" @change="changeRadio($event, 'control_b_14')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlList[maskId].control_b_14"> + <a-form-item class="border-dotted" label="当前正患病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b_14_1', require1]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="血液性" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b_14_2', require1]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="肿瘤部位(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b_14_3', selectRequired]"> + <a-checkbox value="1">头颈部</a-checkbox> + <a-checkbox value="2">肺</a-checkbox> + <a-checkbox value="3">乳腺</a-checkbox> + <a-checkbox value="4">胃</a-checkbox> + <a-checkbox value="5">小肠</a-checkbox> + <a-checkbox value="6">结肠</a-checkbox> + <a-checkbox value="7">肝</a-checkbox> + <a-checkbox value="8">胰腺</a-checkbox> + <a-checkbox value="9">肾</a-checkbox> + <a-checkbox value="10">前列腺</a-checkbox> + <a-checkbox value="11">膀胱</a-checkbox> + <a-checkbox value="12">子宫附件</a-checkbox> + <a-checkbox value="13">骨</a-checkbox> + <a-checkbox value="14">皮肤</a-checkbox> + <a-checkbox value="15">脑</a-checkbox> + <a-checkbox value="16">其他</a-checkbox> + <a-checkbox value="17">未知</a-checkbox> + </a-checkbox-group> + </a-form-item> + </div> + <a-form-item label="(15) 免疫缺陷" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b_15', require2]" @change="changeRadio($event, 'control_b_15')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlList[maskId].control_b_15"> + <a-form-item class="border-dotted" label="B细胞缺陷类疾病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 200px;" v-decorator="['b_15_1', inputRequired]"></a-input> + </a-form-item> + <a-form-item class="border-dotted" label="T细胞及联合免疫缺陷病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 200px;" v-decorator="['b_15_2', inputRequired]"></a-input> + </a-form-item> + <a-form-item class="border-dotted" label="继发性免疫缺陷(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b_15_3', selectRequired]"> + <a-checkbox value="1">慢性淋巴性白血病</a-checkbox> + <a-checkbox value="2">多发性骨髓瘤</a-checkbox> + <a-checkbox value="3">血液肿瘤相关免疫缺陷</a-checkbox> + <a-checkbox value="4">系统化疗后免疫缺陷</a-checkbox> + <a-checkbox value="5">免疫抑制药物后免疫缺陷</a-checkbox> + <a-checkbox value="6">干细胞移植</a-checkbox> + <a-checkbox value="7">实体器官移植</a-checkbox> + <a-checkbox value="8">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="border-dotted" label="巨噬细胞缺陷疾病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 200px;" v-decorator="['b_15_4', inputRequired]"></a-input> + </a-form-item> + <a-form-item class="border-dotted" label="补体缺陷疾病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 200px;" v-decorator="['b_15_5', inputRequired]"></a-input> + </a-form-item> + </div> + <a-form-item label="(16) 其他疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b_16', require2]" @change="changeRadio($event, 'control_b_16')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="疾病类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlList[maskId].control_b_16"> + <a-checkbox-group v-decorator="['b_16_1', selectRequired]"> + <a-checkbox value="1">抑郁</a-checkbox> + <a-checkbox value="2">焦虑</a-checkbox> + <a-checkbox value="3">认知功能障碍</a-checkbox> + <a-checkbox value="4">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="(17) 其他系统相关治疗" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + </a-form-item> + <a-form-item label="调脂" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b_17_1', require1]" @change="changeRadio($event, 'control_b_17_1')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-row v-if="controlList[maskId].control_b_17_1"> + <a-col :span="18" :push="6"> + <a-form-item label="他汀类" :labelCol="labelColHor" :wrapperCol="wrapper18" class="border-dotted"> + <a-radio-group v-decorator="['b_17_1_1', require1]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + </a-col> + </a-row> + <a-form-item label="抗凝" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b_17_2', require1]" @change="changeRadio($event, 'control_b_17_2')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-row v-if="controlList[maskId].control_b_17_2"> + <a-col :span="18" :push="6"> + <a-form-item label="阿司匹林" :labelCol="labelColHor" :wrapperCol="wrapper18" class="border-dotted"> + <a-radio-group v-decorator="['b_17_2_1', require1]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="非阿司匹林抑制剂(如:氯吡格雷)" :labelCol="labelColHor" :wrapperCol="wrapper18" class="border-dotted"> + <a-radio-group v-decorator="['b_17_2_2', require1]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="华法林/口服抗凝药" :labelCol="labelColHor" :wrapperCol="wrapper18" class="border-dotted"> + <a-radio-group v-decorator="['b_17_2_3', require1]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + </a-col> + </a-row> + <a-form-item label="(18) 家族史" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + </a-form-item> + <a-form-item label="是否近亲结婚史" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b_18_1', require1]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="既往直系亲属有无支扩" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b_18_2', require1]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="遗传性疾病病史" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b_18_3', require1]" @change="changeRadio($event, 'control_b_18_3_1')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="具体疾病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlList[maskId].control_b_18_3_1"> + <a-input style="width: 200px;" v-decorator="['b_18_3_1', inputRequired]"></a-input> + </a-form-item> + <a-form-item label="(19) 吸烟史(单选)" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b_19', selectRequired]" @change="changeRadio($event, 'control_b_19_1')"> + <a-radio value="1">既往吸烟</a-radio> + <a-radio value="2">已戒烟</a-radio> + <a-radio value="3">无吸烟</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="吸烟指数" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlList[maskId].control_b_19_1"> + <a-input addonAfter="包/年" style="width: 200px;" v-decorator="['b_19_1', inputRequired]"></a-input> + </a-form-item> + <a-form-item label="(20) 胸部手术病史" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b_20', require2]" @change="changeRadio($event, 'control_b_20')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="手术类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlList[maskId].control_b_20"> + <a-checkbox-group v-decorator="['b_20_1', selectRequired]"> + <a-checkbox value="1" :checked="controlList[maskId].control_b_20_2" @change="changeSelect($event, 'control_b_20_2')">肺叶切除术</a-checkbox> + <a-checkbox value="2">胸膜剥脱术</a-checkbox> + <a-checkbox value="3">肺减容术</a-checkbox> + <a-checkbox value="4">胸腔闭式引流</a-checkbox> + <a-checkbox value="5">冠脉搭桥术</a-checkbox> + <a-checkbox value="6">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="肺叶切除术" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlList[maskId].control_b_20_2"> + <a-radio-group v-decorator="['b_20_2', require2]"> + <a-radio value="1">I型</a-radio> + <a-radio value="2">II型</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(21) 支气管动脉栓塞病史" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b_21', require2]" @change="changeRadio($event, 'control_b_21')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlList[maskId].control_b_21"> + <a-form-item label="若行支气管动脉栓塞术:时间" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-date-picker placeholder="请选择" style="width: 200px;" v-decorator="['b_21_1', dateRequire]"></a-date-picker> + </a-form-item> + <a-form-item label="支气管动脉栓塞术部位" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-input style="width: 200px;" v-decorator="['b_21_2', inputRequired]"></a-input> + </a-form-item> + </div> + </div> + <div class="baselineForm" :style="baselineFormStyle" v-if="maskId === 2"> + <div class="title">1.体格检查</div> + <a-form-item label="(1) T:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['a_1', inputRequired]" style="width: 200px;"></a-input> + </a-form-item> + <a-form-item label="(2) BP:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['a_2', inputRequired]" style="width: 200px;"></a-input> + </a-form-item> + <a-form-item label="(3) R:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['a_3', inputRequired]" style="width: 200px;"></a-input> + </a-form-item> + <a-form-item label="(4) HR:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['a_4', inputRequired]" style="width: 200px;"></a-input> + </a-form-item> + <a-form-item label="(5) SpO2:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['a_5', inputRequired]" style="width: 200px;"></a-input> + </a-form-item> + <a-form-item label="(6) 身高:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['a_6', inputRequired]" style="width: 200px;"></a-input> + </a-form-item> + <a-form-item label="(7) 体重:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['a_7', inputRequired]" style="width: 200px;"></a-input> + </a-form-item> + <a-form-item label="(8) BMI(自动演算出):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['a_8', inputRequired]" style="width: 200px;"></a-input> + </a-form-item> + <a-form-item label="(9) 肺部体征:双肺呼吸音:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + </a-form-item> + <a-form-item label="啰音" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['a_9', require2]" @change="changeRadio($event, 'control_a_9')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlList[maskId].control_a_9"> + <a-form-item label="啰音类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['a_9_1', selectRequired]"> + <a-radio value="1">湿罗音</a-radio> + <a-radio value="2">干啰音</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="啰音部位" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-input style="width: 200px;" v-decorator="['a_9_2', inputRequired]"></a-input> + </a-form-item> + </div> + </div> + <div class="baselineForm" :style="baselineFormStyle" v-if="maskId === 3"> + + </div> + </a-form> +</div> +</template> +<script> +export default{ + props: { + maskId: { + type: Number, + required: true + } + }, + data() { + return { + baselineInfoStyle: { + overflow:"auto", + height:(window.screen.height-330)+'px', + "padding-right":"0px", + "border-right":"1px solid #ddd" + }, + baselineFormStyle:{ + height:(window.screen.height-350)+'px', + }, + form: this.$form.createForm(this), + controlList: { + /** 支扩病史资料 */ + 1: { + control_a_4_1: false, + control_a_4_2: false, + control_b_6_1: false, + control_b_6_2: false, + control_b_6_3: false, + control_b_6_4: false, + control_b_6_5: false, + control_b_7: false, + control_b_7_2: false, + control_b_8: false, + control_b_8_1_1: false, + control_b_9: false, + control_b_9_1_1: false, + control_b_10: false, + control_b_10_1_1: false, + control_b_11: false, + control_b_11_1_1: false, + control_b_12: false, + control_b_14: false, + control_b_15: false, + control_b_16: false, + control_b_17_1: false, + control_b_17_2: false, + control_b_18_3_1: false, + control_b_19_1: false, + control_b_20: false, + control_b_20_2: false, + control_b_21: false + }, + /** 体格检查 */ + 2: { + control_a_9: false + } + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6} + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24} + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + dateRequire: { + rules: [{type: 'object', required: true, message: '请选择时间!'}] + }, + require1: { + rules: [{required: true, message: '请选择是或否!'}] + }, + require2: { + rules: [{required: true, message: '请选择有或无!'}] + }, + selectRequired: { + rules: [{required: true, message: '请选择!'}] + }, + inputRequired: { + rules: [{required: true, message: '请填写!'}] + } + } + }, + methods: { + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + handleNone(e, d, v, arr) { + if(e.target.checked){ + let data = {} + data[d] = [v] + this.$nextTick(() => { + this.form.setFieldsValue(data) + arr.forEach((t) => { + this[t] = false + }) + }) + } + }, + detect(d, v) { + if(Array.isArray(this.form.getFieldValue(d)) && this.form.getFieldValue(d).indexOf(v) > -1) { + return true + } else { + return false + } + }, + changeDate(date) { + let timeDiff = Math.abs(new Date(date._d) - new Date(this.getBirthdayByIdNO(this.patient.card))); + // 将毫秒数转换为年数 + let yearDiff = timeDiff / (1000 * 3600 * 24 * 365.25); // 考虑闰年 + // 判断年数是否大于 10 年 + if (yearDiff < 10) { + this.$message.warning('是否为儿童确诊支扩'); + } + }, + changeSelect(e, t) { + this.controlList[this.maskId][t] = e.target.checked + }, + changeRadio(e, t) { + if(t === 'control_b_19_1' && this.maskId === 1){ + if(e.target.value === '1' || e.target.value === '2'){ + this.controlList[this.maskId][t] = true + }else{ + this.controlList[this.maskId][t] = false + } + }else if(e.target.value === '1'){ + this.controlList[this.maskId][t] = true + }else{ + this.controlList[this.maskId][t] = false + } + }, + handleSubmit() { + + } + } +} +</script> +<style lang="less" scoped> + /deep/ #baselineHeader{ + .ant-card-body{ + padding: 10px + } + } + .baselineForm { + overflow: auto; + .title{ + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + &.no-border{ + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + &:hover { + } + &.border-dotted{ + border-bottom: 1px dotted #eee; + } + } + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + label:after { + content: ''; + } + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + /deep/ .ant-form-item-control-wrapper .ant-form-item-control{ + line-height: 56px; + } + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + .itemRow:hover { + background-color: #e6f7ff; + } + } +</style> \ No newline at end of file diff --git a/src/views/acute/CardList.vue b/src/views/acute/CardList.vue new file mode 100644 index 0000000000..7e5375a332 --- /dev/null +++ b/src/views/acute/CardList.vue @@ -0,0 +1,109 @@ +<template> + <div class="card-list" ref="content"> + <a-list + :grid="{gutter: 24, lg: 3, md: 2, sm: 1, xs: 1}" + :dataSource="dataSource" + > + <a-list-item slot="renderItem" slot-scope="item"> + <template v-if="item === null"> + <a-button class="new-btn" type="dashed"> + <a-icon type="plus"/> + 新增产品 + </a-button> + </template> + <template v-else> + <a-card :hoverable="true"> + <a-card-meta> + <div style="margin-bottom: 3px" slot="title">{{ item.title }}</div> + <a-avatar class="card-avatar" slot="avatar" :src="item.avatar" size="large"/> + <div class="meta-content" slot="description">{{ item.content }}</div> + </a-card-meta> + <template class="ant-card-actions" slot="actions"> + <a>操作一</a> + <a>操作二</a> + </template> + </a-card> + </template> + </a-list-item> + </a-list> + </div> +</template> + +<script> + +const dataSource = [] +dataSource.push(null) +for (let i = 0; i < 11; i++) { + dataSource.push({ + title: 'Alipay', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', + content: '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件,这些类似的组件会被抽离成一套标准规范。' + }) +} + +export default { + name: 'CardList', + data () { + return { + description: '段落示意:蚂蚁金服务设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态, 提供跨越设计与开发的体验解决方案。', + linkList: [ + { icon: 'rocket', href: '#', title: '快速开始' }, + { icon: 'info-circle-o', href: '#', title: '产品简介' }, + { icon: 'file-text', href: '#', title: '产品文档' } + ], + extraImage: 'https://gw.alipayobjects.com/zos/rmsportal/RzwpdLnhmvDJToTdfDPe.png', + dataSource + } + } +} +</script> + +<style lang="less" scoped> + .card-avatar { + width: 48px; + height: 48px; + border-radius: 48px; + } + + .ant-card-actions { + background: #f7f9fa; + li { + float: left; + text-align: center; + margin: 12px 0; + color: rgba(0, 0, 0, 0.45); + width: 50%; + + &:not(:last-child) { + border-right: 1px solid #e8e8e8; + } + + a { + color: rgba(0, 0, 0, .45); + line-height: 22px; + display: inline-block; + width: 100%; + &:hover { + color: #1890ff; + } + } + } + } + + .new-btn { + background-color: #fff; + border-radius: 2px; + width: 100%; + height: 188px; + } + + .meta-content { + position: relative; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + height: 64px; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical; + } +</style> diff --git a/src/views/acute/QueryList.vue b/src/views/acute/QueryList.vue new file mode 100644 index 0000000000..b3a2ca5dab --- /dev/null +++ b/src/views/acute/QueryList.vue @@ -0,0 +1,50 @@ +<template> + <a-card :bordered="false"> + <component @onEdit="handleEdit" @onGoBack="handleGoBack" :record="record" :is="currentComponet"></component> + </a-card> +</template> + +<script> + +import ATextarea from 'ant-design-vue/es/input/TextArea' +import AInput from 'ant-design-vue/es/input/Input' +// 动态切换组件 +import List from '@/views/list/table/List' +import Edit from '@/views/list/table/Edit' + +export default { + name: 'TableListWrapper', + components: { + AInput, + ATextarea, + List, + Edit + }, + data () { + return { + currentComponet: 'List', + record: '' + } + }, + created () { + + }, + methods: { + handleEdit (record) { + this.record = record || '' + this.currentComponet = 'Edit' + console.log(record) + }, + handleGoBack () { + this.record = '' + this.currentComponet = 'List' + } + }, + watch: { + '$route.path' () { + this.record = '' + this.currentComponet = 'List' + } + } +} +</script> diff --git a/src/views/acute/StandardList.vue b/src/views/acute/StandardList.vue new file mode 100644 index 0000000000..b1d2e1ec45 --- /dev/null +++ b/src/views/acute/StandardList.vue @@ -0,0 +1,167 @@ +<template> + <div> + <a-card :bordered="false"> + <a-row> + <a-col :sm="8" :xs="24"> + <head-info title="我的待办" content="8个任务" :bordered="true"/> + </a-col> + <a-col :sm="8" :xs="24"> + <head-info title="本周任务平均处理时间" content="32分钟" :bordered="true"/> + </a-col> + <a-col :sm="8" :xs="24"> + <head-info title="本周完成任务数" content="24个"/> + </a-col> + </a-row> + </a-card> + + <a-card + style="margin-top: 24px" + :bordered="false" + title="标准列表"> + + <div slot="extra"> + <a-radio-group> + <a-radio-button>全部</a-radio-button> + <a-radio-button>进行中</a-radio-button> + <a-radio-button>等待中</a-radio-button> + </a-radio-group> + <a-input-search style="margin-left: 16px; width: 272px;" /> + </div> + + <div class="operate"> + <a-button type="dashed" style="width: 100%" icon="plus" @click="$refs.taskForm.add()">添加</a-button> + </div> + + <a-list size="large" :pagination="{showSizeChanger: true, showQuickJumper: true, pageSize: 5, total: 50}"> + <a-list-item :key="index" v-for="(item, index) in data"> + <a-list-item-meta :description="item.description"> + <a-avatar slot="avatar" size="large" shape="square" :src="item.avatar"/> + <a slot="title">{{ item.title }}</a> + </a-list-item-meta> + <div slot="actions"> + <a>编辑</a> + </div> + <div slot="actions"> + <a-dropdown> + <a-menu slot="overlay"> + <a-menu-item><a>编辑</a></a-menu-item> + <a-menu-item><a>删除</a></a-menu-item> + </a-menu> + <a>更多<a-icon type="down"/></a> + </a-dropdown> + </div> + <div class="list-content"> + <div class="list-content-item"> + <span>Owner</span> + <p>{{ item.owner }}</p> + </div> + <div class="list-content-item"> + <span>开始时间</span> + <p>{{ item.startAt }}</p> + </div> + <div class="list-content-item"> + <a-progress :percent="item.progress.value" :status="!item.progress.status ? null : item.progress.status" style="width: 180px" /> + </div> + </div> + </a-list-item> + </a-list> + + <task-form ref="taskForm" /> + </a-card> + </div> +</template> + +<script> +import HeadInfo from '@/components/tools/HeadInfo' +import TaskForm from './modules/TaskForm' + +const data = [] +data.push({ + title: 'Alipay', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png', + description: '那是一种内在的东西, 他们到达不了,也无法触及的', + owner: '付晓晓', + startAt: '2018-07-26 22:44', + progress: { + value: 90 + } +}) +data.push({ + title: 'Angular', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/zOsKZmFRdUtvpqCImOVY.png', + description: '希望是一个好东西,也许是最好的,好东西是不会消亡的', + owner: '曲丽丽', + startAt: '2018-07-26 22:44', + progress: { + value: 54 + } +}) +data.push({ + title: 'Ant Design', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png', + description: '生命就像一盒巧克力,结果往往出人意料', + owner: '林东东', + startAt: '2018-07-26 22:44', + progress: { + value: 66 + } +}) +data.push({ + title: 'Ant Design Pro', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png', + description: '城镇中有那么多的酒馆,她却偏偏走进了我的酒馆', + owner: '周星星', + startAt: '2018-07-26 22:44', + progress: { + value: 30 + } +}) +data.push({ + title: 'Bootstrap', + avatar: 'https://gw.alipayobjects.com/zos/rmsportal/siCrBXXhmvTQGWPNLBow.png', + description: '那时候我只会想自己想要什么,从不想自己拥有什么', + owner: '吴加好', + startAt: '2018-07-26 22:44', + progress: { + status: 'exception', + value: 100 + } +}) + +export default { + name: 'StandardList', + components: { + HeadInfo, + TaskForm + }, + data () { + return { + data + } + } +} +</script> + +<style lang="less" scoped> + .ant-avatar-lg { + width: 48px; + height: 48px; + line-height: 48px; + } + + .list-content-item { + color: rgba(0, 0, 0, .45); + display: inline-block; + vertical-align: middle; + font-size: 14px; + margin-left: 40px; + span { + line-height: 20px; + } + p { + margin-top: 4px; + margin-bottom: 0; + line-height: 22px; + } + } +</style> diff --git a/src/views/acute/TableList.vue b/src/views/acute/TableList.vue new file mode 100644 index 0000000000..42b26d7c34 --- /dev/null +++ b/src/views/acute/TableList.vue @@ -0,0 +1,361 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form :form="form" layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索患者姓名、身份证号" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="toggleAdvanced" style="margin-left: 8px" class="toggleAdvanced"> + {{ advanced ? '更多筛选' : '更多筛选' }} + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col :md="13" style="text-align:right" :sm="24"> + <a-button type="primary" @click="$refs.createModal.add()">新建</a-button> + <!-- <a-button type="primary" style="margin-left: 10px;">导出</a-button> --> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch(9)">全部急性加重期</p> + <p @click="tableSearch(7)">本月新增急性加重期</p> + <p @click="tableSearch(8)">本年新增急性加重期</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="是否ICON"> + <a-radio-group v-model="queryParam.isIcon"> + <a-radio value="-1">否</a-radio> + <a-radio value="1">是</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="姓名"> + <a-input v-model.trim="queryParam.patientName" style="width: 100%" /> + </a-form-item> + <a-form-item label="身份证号"> + <a-input v-model.trim="queryParam.card" style="width: 100%" /> + </a-form-item> + <a-form-item label="急性加重日期" style="margin-bottom:0;"> + <a-range-picker @change="changeTime" style="width: 100%" :value="dateArr" /> + </a-form-item> + <a-form-item style="text-align: right;margin-bottom: 0;margin-top: 15px;"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px;" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" size="small" :scroll="scroll" rowKey="patientBasisId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <template slot="patientName" slot-scope="text, record"> + <a @click="showUser(record)">{{modifyName(text)}}</a> + </template> + <span slot="submitStatus" slot-scope="text"> + <a-badge :status="text | visitTypeFilter" :text="text | visitFilter" /></span> + <span slot="serial" slot-scope="text, record, index">{{ index + 1 }}</span> + <span slot="description" slot-scope="text"> + <ellipsis :length="8" tooltip>{{ text }}</ellipsis> + </span> + <span slot="action" slot-scope="text, record" style="text-align: center;"> + <template> + <a @click="exec(record)">执行</a> + </template> + </span> + </s-table> + <create-form ref="createModal" @ok="handleOk" /> + <user-detail ref="detailModal" /> + </a-card> +</template> +<script> +import moment from 'moment'; +import { STable, Ellipsis } from '@/components' +import StepByStepModal from './modules/StepByStepModal' +import CreateForm from './modules/CreateForm' +import { getSFJxDataList } from '@/api/basis' +import UserDetail from './modules/UserDetail' +import $ from 'jquery' + +const visitMap = { + '已提交': { + status: 'success', + text: '已提交' + }, + '未提交': { + status: 'error', + text: '未提交' + } +}; +export default { + name: 'acute', + components: { + STable, + Ellipsis, + CreateForm, + StepByStepModal, + UserDetail + }, + data() { + return { + dateArr: [], + mdl: {}, + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + // 表头 + columns: [ + { + title: '患者姓名', + dataIndex: 'patientName', + width: 100, + scopedSlots: { customRender: 'patientName' } + }, { + title: '是否ICON', + dataIndex: 'research', + width: 80 + }, + { + title: '提交状态', + dataIndex: 'submitStatusStr', + width: 120, + scopedSlots: { + customRender: 'submitStatus' + } + }, + { + title: '创建人', + dataIndex: 'creatorName', + width: 100 + }, + { + title: '创建日期', + dataIndex: 'createDate', + width: 120, + customRender: createDate => moment(createDate).format('YYYY-MM-DD') + }, + { + title: '分支中心', + dataIndex: 'centerName', + width: 200 + }, { + title: '操作', + dataIndex: 'action', + width: 100, + className: 'operation', + scopedSlots: { customRender: 'action' } + } + ], + // 加载数据方法 必须为 Promise 对象 + loadData: parameter => { + return getSFJxDataList(Object.assign(parameter, this.queryParam)).then(res => { + return res; + }); + }, + selectedRowKeys: [], + selectedRows: [], + + // custom table alert & rowSelection + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = []; + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + scroll: false, + optionAlertShow: false, + form: this.$form.createForm(this), + }; + }, + created() { + this.scroll = { + y: (window.screen.height - 368) + "px" + } + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + }, + filters: { + statusFilter(type) { + return statusMap[type].text; + }, + statusTypeFilter(type) { + return statusMap[type].status; + }, + visitFilter(type) { + return visitMap[type].text; + }, + visitTypeFilter(type) { + return visitMap[type].status; + } + }, + methods: { + modifyName(name) { + return name.replace(/(.)(.*)/, (_, $1, $2) => $1 + '*'.repeat($2.length)) + }, + clearForm() { + this.queryParam = {} + this.dateArr = [] + }, + tableSearch(type) { + this.queryParam.queryType = type + this.$refs.table.refresh(); + this.advanced = false; + }, + refreshTable() { + this.advanced = false; + this.$refs.table.refresh(); + }, + showUser(record) { + this.$refs.detailModal.show(record); + }, + exec(record) { + console.log(record) + if(record.type === 7){ + this.$router.push('/icon/jxjzq/' + record.patientBasisId) + }else{ + this.$router.push('/jxjzq/' + record.patientBasisId) + } + }, + handleOk() { + this.$refs.table.refresh(); + }, + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + toggleAdvanced() { + this.advanced = !this.advanced; + }, + changeTime(time) { + this.dateArr = time; + this.queryParam.createDateStart = moment(time[0]).format('YYYY-MM-DD') + this.queryParam.createDateEnd = moment(time[1]).format('YYYY-MM-DD') + }, + } +}; +</script> +<style lang="less" scoped> +.ant-table td { + white-space: nowrap; +} + +/deep/th.operation { + text-align: center !important; +} + +/deep/.ant-table-tbody>tr>td.operation { + text-align: center !important; +} + +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px +} + +/deep/.ant-table-row:hover .progressTag .ant-progress-inner { + background-color: #ffffff !important; +} + +.progressTag { + display: inline-block; + width: 250px; + + /deep/ .progressTagContent { + display: inline-block; + width: 80px; + margin-right: 5px; + } + + /deep/ .progressTagTitle { + font-size: 12px; + text-align: center; + color: #000; + margin-bottom: 0; + margin-right: 15px; + display: inline-block; + } + + /deep/ .progressTag .anticon { + color: #4bc5ac; + font-size: 18px; + vertical-align: bottom; + } + + /deep/ .ant-progress-inner { + background-color: #e5f6ff; + } + + /deep/ .progressTag .ant-progress-span { + color: rgb(0, 160, 233); + } +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} + +.userName { + color: #1fb2fa; + margin: 0; + + &:active, + &:hover { + text-decoration: underline; + text-underline-position: under; + text-decoration-color: #1fb2fa; + cursor: pointer; + } +} +</style> \ No newline at end of file diff --git a/src/views/acute/modules/CreateForm.vue b/src/views/acute/modules/CreateForm.vue new file mode 100644 index 0000000000..d4f8b34b73 --- /dev/null +++ b/src/views/acute/modules/CreateForm.vue @@ -0,0 +1,145 @@ +<template> + <a-modal :title="options.title" :width="700" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :destroyOnClose="destroyOnClose" :centered="centered" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item> + <a-input-search placeholder="搜索患者姓名,身份证号" @search="onSearch" v-decorator="['card', { rules: [{ required: true , message: '该选项必填'}] }]" enterButton autocomplete="off" /> + </a-form-item> + <a-table v-if="data.length > 0" :columns="columns" :rowSelection="rowSelection" :dataSource="data" :pagination="pagination" rowKey="patientId" @change="handleTableChange"> + </a-table> + </a-form> + </a-spin> + </a-modal> +</template> +<script> +import { getPatientDataList } from '@/api/patient' +import { createSFJx } from '@/api/basis' +import moment from 'moment' +const columns = [{ + title: '患者编号', + dataIndex: 'code' + }, + { + title: '患者姓名', + dataIndex: 'name' + }, + { + title: '身份证号', + dataIndex: 'card' + }, + { + title: '联系方式', + dataIndex: 'telephone1' + } +]; +export default { + data() { + return { + options: {}, + residences: [], + patientId: undefined, + maskClosable: false, + data: [], + labelCol: { + xs: { span: 24 }, + sm: { span: 7 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 14 } + }, + visible: false, + confirmLoading: false, + centered: true, + destroyOnClose: true, + bodyStyle: { + height: '500px', + overflow: 'auto' + }, + form: this.$form.createForm(this), + requiredRule: { rules: [{ required: true, message: '该选项必填' }] }, + pagination: {}, + columns, + keyword: '' + }; + }, + computed: { + rowSelection() { + const { selectedRowKeys } = this; + return { + type: 'radio', + onChange: (selectedRowKeys, selectedRows) => { + this.patientId = selectedRows[0].patientId + }, + getCheckboxProps: record => ({ + props: { + disabled: record.name === 'Disabled User', // Column configuration not to be checked + name: record.name + } + }) + }; + } + }, + methods: { + add() { + this.options.title = '新建急性加重期'; + this.visible = true; + this.data = []; + this.patientId = null; + }, + onSearch(value) { + this.keyword = value + this.getPatientList(1, 5); + }, + handleTableChange(pagination) { + console.log(pagination); + const pager = { ...this.pagination }; + pager.current = pagination.current; + this.pagination = pager; + this.getPatientList(pagination.current, 5); + }, + handleSubmit() { + if (!this.patientId) { + this.$message.error('请选择患者') + return + } + this.confirmLoading = true + const p = new URLSearchParams(); + p.append('patientId', this.patientId) + createSFJx(p).then(res => { + this.$emit('ok') + this.visible = false + this.$message.success(res.msg); + this.confirmLoading = false + }) + }, + handleCancel() { + this.visible = false; + }, + getPatientList(pageNumber, pageSize) { + const Params = new URLSearchParams(); + Params.append('pageNumber', pageNumber); + Params.append('pageSize', pageSize); + Params.append('keyWord', this.keyword); + getPatientDataList(Params).then(res => { + this.data = res.data; + const pagination = { ...this.pagination }; + pagination.total = res.total; + // this.confirmLoading = false; + this.pagination = pagination; + }); + } + } +}; +</script> +<style> +.ant-modal-header { + padding: 12px 24px !important; +} + +.ant-modal-close-x { + width: 50px !important; + height: 50px !important; + line-height: 50px !important; +} +</style> \ No newline at end of file diff --git a/src/views/acute/modules/StepByStepModal.vue b/src/views/acute/modules/StepByStepModal.vue new file mode 100644 index 0000000000..4d0b9c7f3c --- /dev/null +++ b/src/views/acute/modules/StepByStepModal.vue @@ -0,0 +1,171 @@ +<template> + <a-modal + title="分步对话框" + :width="640" + :visible="visible" + :confirmLoading="confirmLoading" + @cancel="handleCancel" + > + <a-spin :spinning="confirmLoading"> + <a-steps :current="currentStep" :style="{ marginBottom: '28px' }" size="small"> + <a-step title="基本信息" /> + <a-step title="配置规则属性" /> + <a-step title="设定调度周期" /> + </a-steps> + <a-form :form="form"> + <!-- step1 --> + <div v-show="currentStep === 0"> + <a-form-item + label="规则名称" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-input v-decorator="['name', {rules: [{required: true}]}]" /> + </a-form-item> + <a-form-item + label="规则描述" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-textarea :rows="4" v-decorator="['desc', {rules: [{required: true}]}]"></a-textarea> + </a-form-item> + </div> + <div v-show="currentStep === 1"> + <a-form-item + label="监控对象" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-select v-decorator="['target', {initialValue: 0, rules: [{required: true}]}]" style="width: 100%"> + <a-select-option :value="0">表一</a-select-option> + <a-select-option :value="1">表二</a-select-option> + </a-select> + </a-form-item> + + <a-form-item + label="规则模板" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-select v-decorator="['template', { initialValue: 0, rules: [{required: true}]}]" style="width: 100%"> + <a-select-option :value="0">规则模板一</a-select-option> + <a-select-option :value="1">规则模板二</a-select-option> + </a-select> + </a-form-item> + + <a-form-item + label="规则类型" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-radio-group v-decorator="['type', {initialValue: 0, rules: [{required: true}]}]" style="width: 100%"> + <a-radio :value="0">强</a-radio> + <a-radio :value="1">弱</a-radio> + </a-radio-group> + </a-form-item> + </div> + + <div v-show="currentStep === 2"> + <a-form-item + label="开始时间" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-date-picker v-decorator="['time', {rules: [{ type: 'object', required: true, message: 'Please select time!' }]}]" style="width: 100%" /> + </a-form-item> + <a-form-item + label="调度周期" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-select v-decorator="['frequency', { initialValue: 'month', rules: [{required: true}]}]" style="width: 100%"> + <a-select-option value="month">月</a-select-option> + <a-select-option value="week">周</a-select-option> + </a-select> + </a-form-item> + </div> + <!-- step1 end --> + </a-form> + </a-spin> + <template slot="footer"> + <a-button key="back" @click="backward" v-if="currentStep > 0" :style="{ float: 'left' }" >上一步</a-button> + <a-button key="cancel" @click="handleCancel">取消</a-button> + <a-button key="forward" :loading="confirmLoading" type="primary" @click="handleNext(currentStep)">{{ currentStep === 2 && '完成' || '下一步' }}</a-button> + </template> + </a-modal> +</template> + +<script> +import pick from 'lodash.pick' +const stepForms = [ + ['name', 'desc'], + ['target', 'template', 'type'], + ['time', 'frequency'] +] + +export default { + name: 'StepByStepModal', + data () { + return { + labelCol: { + xs: { span: 24 }, + sm: { span: 7 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 13 } + }, + visible: false, + confirmLoading: false, + currentStep: 0, + mdl: {}, + + form: this.$form.createForm(this) + } + }, + methods: { + edit (record) { + this.visible = true + const { form: { setFieldsValue } } = this + this.$nextTick(() => { + setFieldsValue(pick(record, [])) + }) + }, + handleNext (step) { + const { form: { validateFieldsAndScroll } } = this + const currentStep = step + 1 + if (currentStep <= 2) { + // stepForms + validateFieldsAndScroll(stepForms[ this.currentStep ], (errors, values) => { + if (!errors) { + this.currentStep = currentStep + } + }) + return + } + // last step + this.confirmLoading = true + validateFieldsAndScroll((errors, values) => { + console.log('errors:', errors, 'val:', values) + if (!errors) { + console.log('values:', values) + setTimeout(() => { + this.confirmLoading = false + this.$emit('ok', values) + }, 1500) + } else { + this.confirmLoading = false + } + }) + }, + backward () { + this.currentStep-- + }, + handleCancel () { + // clear form & currentStep + this.visible = false + this.currentStep = 0 + } + } +} +</script> diff --git a/src/views/acute/modules/TaskForm.vue b/src/views/acute/modules/TaskForm.vue new file mode 100644 index 0000000000..474b962d9a --- /dev/null +++ b/src/views/acute/modules/TaskForm.vue @@ -0,0 +1,79 @@ +<template> + <a-modal :width="640" :visible="visible" title="任务添加" @ok="handleSubmit" @cancel="visible = false"> + <a-form @submit="handleSubmit" :form="form"> + <a-form-item + label="任务名称" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-input v-decorator="['taskName', {rules:[{required: true, message: '请输入任务名称'}]}]" /> + </a-form-item> + <a-form-item + label="开始时间" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-date-picker style="width: 100%" v-decorator="['startTime', {rules:[{required: true, message: '请选择开始时间'}]}]" /> + </a-form-item> + <a-form-item + label="任务负责人" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-select v-decorator="['owner', {rules:[{required: true, message: '请选择开始时间'}]}]"> + <a-select-option :value="0">付晓晓</a-select-option> + <a-select-option :value="1">周毛毛</a-select-option> + </a-select> + </a-form-item> + <a-form-item + label="产品描述" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-textarea v-decorator="['desc']"></a-textarea> + </a-form-item> + </a-form> + </a-modal> +</template> + +<script> +export default { + name: 'TaskForm', + data () { + return { + labelCol: { + xs: { span: 24 }, + sm: { span: 7 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 13 } + }, + + visible: false, + form: this.$form.createForm(this) + } + }, + methods: { + add () { + this.visible = true + }, + edit (record) { + const { form: { setFieldsValue } } = this + this.visible = true + this.$nextTick(() => { + setFieldsValue({ taskName: 'test' }) + }) + }, + handleSubmit () { + const { form: { validateFieldsAndScroll } } = this + this.visible = true + validateFieldsAndScroll((errors, values) => { + if (!errors) { + console.log('values', values) + } + }) + } + } +} +</script> diff --git a/src/views/acute/modules/UserDetail.vue b/src/views/acute/modules/UserDetail.vue new file mode 100644 index 0000000000..e733b58d20 --- /dev/null +++ b/src/views/acute/modules/UserDetail.vue @@ -0,0 +1,353 @@ +<template> + <a-modal + title="患者详情" + :width="800" + :bodyStyle="bodyStyle" + :maskClosable="maskClosable" + :centered="centered" + :destroyOnClose="destroyOnClose" + :visible="visible" + :confirmLoading="confirmLoading" + :footer="null" + @cancel="handleCancel" + > + <a-spin :spinning="confirmLoading"> + <user-detail :option="patient"></user-detail> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="详细信息" key="1"> + <div class="userCard"> + <a-row id="userInfo"> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>患者同意注册日期:</span> + {{ patient.registerDate | formDate }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>文化程度:</span> + {{ patient.censusName }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>访视状态:</span> + {{ patient.visit | visitStatus }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>医疗费用支付情况:</span> + {{ patient.payTypeName }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>职业:</span> + {{ patient.workName }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>家庭年收入:</span> + {{ patient.income }}万 + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>创建机构:</span> + {{ patient.centerName }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>创建时间:</span> + {{ patient.ceateDate | formDate }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>创建人:</span> + {{ patient.creatorName }} + </p> + </a-col> + </a-row> + </div> + </a-tab-pane> + <a-tab-pane tab="待访视任务" key="2" forceRender> + <div class="userCard" v-if="visitTasks.length>0"> + <div class="followupItem" v-for="item in visitTasks" :key="item.id"> + <my-icon class="my-icon-huaban" type="iconshijian_huaban" /> + <p> + <span>计划时间:</span> + {{item.planDate|formDate}} + </p> + <p> + <span>随访摘要:</span> + {{item.typeName}} + </p> + <a @click="exec(item.patientBasisId)"> + <a-button type="primary" size="small" style="float:right;"> + <my-icon type="iconxiangqing_huaban" /> + 执行 + </a-button> + </a> + </div> + </div> + <div v-else class="userCard"> + <div style="text-align: center;"> + <img src="@/assets/noData.png" alt=""> + <p>暂无数据</p> + </div> + </div> + </a-tab-pane> + <a-tab-pane tab="访视情况" key="3"> + <div class="userCard" v-if="patientBasisList.length>0"> + <a-timeline> + <a-timeline-item v-for="item in patientBasisList" :key="item.id"> + <span class="followupDate">{{item.createDate|formDate}}</span> + <div class="followupInfoItem"> + <div class="followupInfoItemType"> + <p> + 访视类型: + <span>{{item.type|patientBasisType}}</span> + </p> + <p>访视时间: {{item.wirteDate|formDate}}</p> + </div> + <div class="followupInfoItemPro"> + <p> + 访视进度: + <span>{{item.executeStatus == 3 ? '已完成' : '未完成'}}</span> + </p> + <!-- <span>访视进度:</span> + <p> + <a-progress :percent="item.progress" status="active" /> + </p> --> + </div> + <a v-if="item.type == 1" @click="basisDetail(item.patientBasisId)"> + <a-button type="primary" size="small" style="float:right;margin-top:5px ;"> + <my-icon type="iconxiangqing_huaban" /> + 详情 + </a-button> + </a> + <a v-else-if="item.type == 2||item.type == 3" @click="taskDetail(item.patientBasisId)"> + <a-button type="primary" size="small" style="float:right;margin-top:5px ;"> + <my-icon type="iconxiangqing_huaban" /> + 详情 + </a-button> + </a> + <a v-else-if="item.type == 4" @click="jxjzq(item.patientBasisId)"> + <a-button type="primary" size="small" style="float:right;margin-top:5px;"> + <my-icon type="iconxiangqing_huaban" /> + 详情 + </a-button> + </a> + </div> + </a-timeline-item> + </a-timeline> + </div> + <div v-else class="userCard"> + <div style="text-align: center;"> + <img src="@/assets/noData.png" alt=""> + <p>暂无数据</p> + </div> + </div> + </a-tab-pane> + </a-tabs> + </a-spin> + </a-modal> +</template> + +<script> +import { getPatientDetail } from '@/api/patient'; +import UserDetail from './UserDetailTop'; +import { MyIcon } from '@/components/_util/util'; +import moment from 'moment'; +import _ from 'lodash'; +export default { + components: { + UserDetail, + MyIcon + }, + data() { + return { + patientBasisList: [], + visitTasks: [], + patient: {}, + visible: false, + confirmLoading: false, + centered: true, + maskClosable: false, + destroyOnClose: true, + bodyStyle: { + height: '500px', + overflow: 'auto', + background:"#F8FBFC" + } + }; + }, + filters: { + formDate(date) { + return moment(date).format('YYYY-MM-DD'); + }, + visitStatus(value) { + const visitMap = { + '1': '忽略', + '2': '未执行', + '3': '执行中', + '4': '已完成' + }; + return visitMap[value]; + }, + patientBasisType(type){ + const patientBasisTypeMap=['','支扩基线','半年随访','年访视','急性加重期随访', '', 'ICON常规随访', '急性加重期随访', 'ICON基线'] + return patientBasisTypeMap[type]; + } + }, + methods: { + show(value) { + this.visible = true; + this.confirmLoading = true; + const Params = new URLSearchParams(); + Params.append('patientId', value.patientId); + getPatientDetail(Params).then(res => { + this.patient = res.data.patient; + this.patientBasisList = res.data.patientBasisList; + this.visitTasks = res.data.visitTasks; + this.confirmLoading = false; + }); + }, + handleCancel() { + this.visible = false; + }, + basisDetail(id) { + this.visible = false + this.$router.push('/list/basis/' + id) + }, + taskDetail(id) { + this.visible = false + this.$router.push('/list/task/' + id) + }, + jxjzq(id) { + this.visible = false + this.$router.push('/jxjzq/' + id) + }, + exec(id) { + this.visible = false + this.$router.push('/list/task/' + id) + } + } +}; +</script> +<style lang="less" scoped> +/deep/ .ant-modal-body { + background-color: #fdfdfd; +} +.userCard { + background: #ffffff; + padding: 20px; + border: 1px solid #f1f1f1; + padding-right:0px; + height: 300px; + overflow: auto; + #userInfo { + p.userInfoItem { + color: #000000; + span { + color: #888888; + } + } + } + .followupItem { + border-bottom: 1px dashed #f3f3f3; + padding-bottom: 10px; + margin-bottom: 15px; + padding-right: 20px; + .my-icon-huaban { + color: #26adfa; + font-size: 30px; + margin-right: 10px; + vertical-align: middle; + } + p { + display: inline-block; + margin: 0px; + margin-right: 40px; + color: #000000; + span { + color: #888888; + } + } + } + span.followupDate{ + display: inline-block; + border: 1px solid #dddddd; + padding: 5px 10px; + font-size: 12px; + border-radius: 15px; + vertical-align: top; + position: relative; + top: -3px; + } + div.followupInfoItem{ + display: inline-block; + width: 590px; + background: #F1F8FE; + margin-left: 20px; + position: relative; + top: -11px; + padding: 5px 20px; + div.followupInfoItemType{ + display: inline-block; + width: 200px; + font-size: 12px; + p:first-child{ + color: #000; + margin-bottom: 5px; + font-size: 14px; + span{ + color: #F0C070; + } + } + p:nth-child(2){ + margin: 0; + } + } + div.followupInfoItemPro{ + display: inline-block; + width: 200px; + vertical-align: top; + span{ + font-size: 14px; + color: #000; + } + p{ + width: 100px; + display: inline-block; + margin: 0; + margin-left: 10px; + /deep/ .ant-progress-inner{ + background-color:#C4C4C4; + } + } + } + } + +} + +::-webkit-scrollbar-track-piece { //滚动条凹槽的颜色,还可以设置边框属性 +background-color:#f8f8f8; +} +::-webkit-scrollbar {//滚动条的宽度 +width:5px; +height:9px; +} +::-webkit-scrollbar-thumb {//滚动条的设置 +background-color:#dddddd; +background-clip:padding-box; +min-height:28px; +} +::-webkit-scrollbar-thumb:hover { +background-color:#bbb; +} +</style> diff --git a/src/views/acute/modules/UserDetailTop.vue b/src/views/acute/modules/UserDetailTop.vue new file mode 100644 index 0000000000..55d96eb974 --- /dev/null +++ b/src/views/acute/modules/UserDetailTop.vue @@ -0,0 +1,171 @@ +<template> + <div class="userDetail" :option="option"> + <div class="userDetailTop"> + <img src="../../../assets/woman.png" alt="" v-if="option.sex == 0" /> + <img src="../../../assets/man.png" alt="" v-else /> + <div class="userDetailInfo"> + <h4> + {{ option.name }} + <span class="userDetailCard">{{ option.card }}</span> + </h4> + <p> + <span class="userDetailAge" :class="option.sex == 0 ? 'womenBg' : ''"> + <a-icon :type="option.sex == 1 ? 'man':'woman'" /> + {{getAge}}岁 + </span> + <span class="userDetailNation">{{option.nationName}}</span> + </p> + </div> + </div> + <div class="userDetailContent"> + <p class="userDetailItem"> + <span class="userDetailItemTitle">患者编号</span> + <span class="userDetailItemInfo"> {{option.code}}</span> + </p> + <p class="userDetailItem"> + <span class="userDetailItemTitle">联系电话</span> + <span class="userDetailItemInfo">{{option.telephone1}}</span> + </p> + <p class="userDetailItem"> + <span class="userDetailItemTitle">出生日期</span> + <span class="userDetailItemInfo">{{birthDay}}</span> + </p> + <p class="userDetailItem"> + <span class="userDetailItemTitle">居住地</span> + <span class="userDetailItemInfo">{{option.address}}</span> + </p> + </div> + </div> +</template> + +<script> +import _ from 'lodash' +export default { + data() { + return {}; + }, + props: { + option: { + type: Object, + default: {} + } + }, + mounted() {}, + methods: { + }, + computed:{ + birthDay() { + if (_.isEmpty(this.option)) { + return '' + } + let card = this.option.card; + let birthDay = '' + if (card.length == 15) { + birthDay = card.substr(6,6).replace(/(.{4})(.{2})/,"$1-$2-") + } else if (card.length == 18) { + birthDay = card.substr(6,8).replace(/(.{4})(.{2})/,"$1-$2-") + } + return birthDay + }, + getAge() { + if(_.isEmpty(this.option)){ + return '' + } + var identityCard=this.option.card; + var len = (identityCard + '').length; + if (len == 0) { + return 0; + } else { + if (len != 15 && len != 18) { + //身份证号码只能为15位或18位其它不合法 + return 0; + } + } + var strBirthday = ''; + if (len == 18) { + //处理18位的身份证号码从号码中得到生日和性别代码 + strBirthday = identityCard.substr(6, 4) + '/' + identityCard.substr(10, 2) + '/' + identityCard.substr(12, 2); + } + if (len == 15) { + strBirthday = '19' + identityCard.substr(6, 2) + '/' + identityCard.substr(8, 2) + '/' + identityCard.substr(10, 2); + } + //时间字符串里,必须是“/” + var birthDate = new Date(strBirthday); + var nowDateTime = new Date(); + var age = nowDateTime.getFullYear() - birthDate.getFullYear(); + //再考虑月、天的因素;.getMonth()获取的是从0开始的,这里进行比较,不需要加1 + if (nowDateTime.getMonth() < birthDate.getMonth() || (nowDateTime.getMonth() == birthDate.getMonth() && nowDateTime.getDate() < birthDate.getDate())) { + age--; + } + return age; + } + } +}; +</script> +<style lang="less" scoped> +.userDetail { + border: 1px solid #f8f8f8; + border-top: 4px solid #168ffd; + padding: 15px 25px; + background-color: #ffffff; + .userDetailTop { + img { + display: inline-block; + vertical-align: top; + width: 60px; + height: 60px; + } + .userDetailInfo { + display: inline-block; + padding-top: 5px; + padding-left: 15px; + h4 { + font-size: 18px; + margin-bottom: 0px; + span { + font-weight: normal; + font-size: 17px; + margin-left: 10px; + display: inline-block; + } + } + p { + .womenBg { + background-color: #fd94dc!important; + } + .userDetailAge { + display: inline-block; + background-color: #96dcfd; + color: #ffffff; + padding: 0px 10px; + border-radius: 3px; + .anticon { + margin-right: 5px; + } + } + .userDetailNation { + display: inline-block; + background-color: #e8e8e8; + padding: 0px 10px; + border-radius: 3px; + margin-left: 10px; + } + } + } + } + .userDetailContent { + margin-top: 20px; + overflow: hidden; + .userDetailItem { + display: inline-block; + width: 20%; + color: #000000; + vertical-align: top; + .userDetailItemTitle { + display: block; + color: #a9a9a9; + } + } + } +} +</style> diff --git a/src/views/acute/modules/Visit.vue b/src/views/acute/modules/Visit.vue new file mode 100644 index 0000000000..b63bd0bbff --- /dev/null +++ b/src/views/acute/modules/Visit.vue @@ -0,0 +1,131 @@ +<template> + <a-popover trigger="click" v-model="visible"> + <div class="visitInfo" slot="content"> + <a-timeline> + <a-timeline-item> + <div slot="dot"> + <div class="visitContent"> + <span class="visitYear"><a-icon type="file-text" /></span> + <span class="visitYearText">第1年</span> + </div> + </div> + <div class="visiItem"> + <p class="visiItemTitle"> + <span class="visiItemName">半年随访</span> + <span class="visiItemTime"> + <a-icon type="clock-circle" /> + 2019-08-01 + </span> + </p> + <div class="visiItemPro"><a-progress :percent="30" showInfo="false" /></div> + </div> + </a-timeline-item> + <a-timeline-item> + <div class="visiItem"> + <p class="visiItemTitle"> + <span class="visiItemName">半年随访</span> + <span class="visiItemTime"> + <a-icon type="clock-circle" /> + 2019-08-01 + </span> + </p> + <div class="visiItemPro"><a-progress :percent="30" showInfo="false" /></div> + </div> + </a-timeline-item> + <a-timeline-item color="red"> + <div class="visiItem"> + <p class="visiItemTitle"> + <span class="visiItemName">半年随访</span> + <span class="visiItemTime"> + <a-icon type="clock-circle" /> + 2019-08-01 + </span> + </p> + <div class="visiItemPro"><a-progress :percent="30" showInfo="false" /></div> + </div> + </a-timeline-item> + <a-timeline-item> + <div slot="dot"> + <div class="visitContent"> + <span class="visitYear"><a-icon type="file-text" /></span> + <span class="visitYearText">第1年</span> + </div> + </div> + <div class="visiItem"> + <p class="visiItemTitle"> + <span class="visiItemName">半年随访</span> + <span class="visiItemTime"> + <a-icon type="clock-circle" /> + 2019-08-01 + </span> + </p> + <div class="visiItemPro"><a-progress :percent="30" showInfo="false" /></div> + </div> + </a-timeline-item> + </a-timeline> + </div> + <span>更多</span> + </a-popover> +</template> + +<script> +import _ from 'lodash'; +export default { + data() { + return { + visible: false + }; + }, + filters: {}, + methods: { + hide() { + console.log(111); + this.visible = false; + } + } +}; +</script> +<style lang="less" scoped> + .visitInfo{ + padding:20px; + padding-bottom: 0px; + padding-top: 40px; + height: 200px; + overflow: auto; + } +.visitContent { + .visitYear { + display: block; + background: #cbe5f7; + border-radius: 50%; + font-size: 14px; + color: #54bde7; + height: 25px; + width: 25px; + text-align: center; + line-height: 25px; + } + .visitYearText { + display: block; + font-size: 12px; + } +} +.visiItem { + height: 50px; + width: 194px; + padding: 5px; + border: 1px solid #dddddd; + margin-left: 10px; + position: relative; + top:-15px; + .visiItemTitle { + margin: 0; + overflow: hidden; + .visiItemTime { + font-size: 12px; + float: right; + color: #9dadb3; + } + } +} +</style> diff --git a/src/views/acute/search/Applications.vue b/src/views/acute/search/Applications.vue new file mode 100644 index 0000000000..d5b3bd18c3 --- /dev/null +++ b/src/views/acute/search/Applications.vue @@ -0,0 +1,186 @@ +<template> + <div> + <a-card :bordered="false" class="ant-pro-components-tag-select"> + <a-form :form="form" layout="inline"> + <standard-form-row title="所属类目" block style="padding-bottom: 11px;"> + <a-form-item> + <tag-select> + <tag-select-option value="Category1">类目一</tag-select-option> + <tag-select-option value="Category2">类目二</tag-select-option> + <tag-select-option value="Category3">类目三</tag-select-option> + <tag-select-option value="Category4">类目四</tag-select-option> + <tag-select-option value="Category5">类目五</tag-select-option> + <tag-select-option value="Category6">类目六</tag-select-option> + <tag-select-option value="Category7">类目七</tag-select-option> + <tag-select-option value="Category8">类目八</tag-select-option> + <tag-select-option value="Category9">类目九</tag-select-option> + <tag-select-option value="Category10">类目十</tag-select-option> + </tag-select> + </a-form-item> + </standard-form-row> + + <standard-form-row title="其它选项" grid last> + <a-row> + <a-col :lg="8" :md="10" :sm="10" :xs="24"> + <a-form-item :wrapper-col="{ sm: { span: 16 }, xs: { span: 24 } }" label="作者"> + <a-select + style="max-width: 200px; width: 100%;" + mode="multiple" + placeholder="不限" + v-decorator="['author']" + @change="handleChange" + > + <a-select-option value="lisa">王昭君</a-select-option> + </a-select> + </a-form-item> + </a-col> + <a-col :lg="8" :md="10" :sm="10" :xs="24"> + <a-form-item :wrapper-col="{ sm: { span: 16 }, xs: { span: 24 } }" label="好评度"> + <a-select + style="max-width: 200px; width: 100%;" + placeholder="不限" + v-decorator="['rate']" + > + <a-select-option value="good">优秀</a-select-option> + <a-select-option value="normal">普通</a-select-option> + </a-select> + </a-form-item> + </a-col> + </a-row> + </standard-form-row> + </a-form> + </a-card> + + <div class="ant-pro-pages-list-applications-filterCardList"> + <a-list :loading="loading" :data-source="data" :grid="{ gutter: 24, xl: 4, lg: 3, md: 3, sm: 2, xs: 1 }" style="margin-top: 24px;"> + <a-list-item slot="renderItem" slot-scope="item"> + <a-card :body-style="{ paddingBottom: 20 }" hoverable> + <a-card-meta :title="item.title"> + <template slot="avatar"> + <a-avatar size="small" :src="item.avatar"/> + </template> + </a-card-meta> + <template slot="actions"> + <a-tooltip title="下载"> + <a-icon type="download" /> + </a-tooltip> + <a-tooltip title="编辑"> + <a-icon type="edit" /> + </a-tooltip> + <a-tooltip title="分享"> + <a-icon type="share-alt" /> + </a-tooltip> + <a-dropdown> + <a class="ant-dropdown-link"> + <a-icon type="ellipsis" /> + </a> + <a-menu slot="overlay"> + <a-menu-item> + <a href="javascript:;">1st menu item</a> + </a-menu-item> + <a-menu-item> + <a href="javascript:;">2nd menu item</a> + </a-menu-item> + <a-menu-item> + <a href="javascript:;">3rd menu item</a> + </a-menu-item> + </a-menu> + </a-dropdown> + </template> + <div class=""> + <card-info active-user="100" new-user="999"></card-info> + </div> + </a-card> + </a-list-item> + </a-list> + </div> + </div> +</template> + +<script> +import moment from 'moment' +import { TagSelect, StandardFormRow, Ellipsis, AvatarList } from '@/components' +import CardInfo from './components/CardInfo' +const TagSelectOption = TagSelect.Option +const AvatarListItem = AvatarList.AvatarItem + +export default { + components: { + AvatarList, + AvatarListItem, + Ellipsis, + TagSelect, + TagSelectOption, + StandardFormRow, + CardInfo + }, + data () { + return { + data: [], + form: this.$form.createForm(this), + loading: true + } + }, + filters: { + fromNow (date) { + return moment(date).fromNow() + } + }, + mounted () { + this.getList() + }, + methods: { + handleChange (value) { + console.log(`selected ${value}`) + }, + getList () { + this.$http.get('/list/article', { params: { count: 8 } }).then(res => { + console.log('res', res) + this.data = res.result + this.loading = false + }) + } + } +} +</script> + +<style lang="less" scoped> +.ant-pro-components-tag-select { + /deep/ .ant-pro-tag-select .ant-tag { + margin-right: 24px; + padding: 0 8px; + font-size: 14px; + } +} +.ant-pro-pages-list-projects-cardList { + margin-top: 24px; + + /deep/ .ant-card-meta-title { + margin-bottom: 4px; + } + + /deep/ .ant-card-meta-description { + height: 44px; + overflow: hidden; + line-height: 22px; + } + + .cardItemContent { + display: flex; + height: 20px; + margin-top: 16px; + margin-bottom: -4px; + line-height: 20px; + + > span { + flex: 1 1; + color: rgba(0,0,0,.45); + font-size: 12px; + } + + /deep/ .ant-pro-avatar-list { + flex: 0 1 auto; + } + } +} +</style> diff --git a/src/views/acute/search/Article.vue b/src/views/acute/search/Article.vue new file mode 100644 index 0000000000..531c9a6271 --- /dev/null +++ b/src/views/acute/search/Article.vue @@ -0,0 +1,185 @@ +<template> + <div> + <a-card :bordered="false" class="ant-pro-components-tag-select"> + <a-form :form="form" layout="inline"> + <standard-form-row title="所属类目" block style="padding-bottom: 11px;"> + <a-form-item> + <tag-select> + <tag-select-option value="Category1">类目一</tag-select-option> + <tag-select-option value="Category2">类目二</tag-select-option> + <tag-select-option value="Category3">类目三</tag-select-option> + <tag-select-option value="Category4">类目四</tag-select-option> + <tag-select-option value="Category5">类目五</tag-select-option> + <tag-select-option value="Category6">类目六</tag-select-option> + <tag-select-option value="Category7">类目七</tag-select-option> + <tag-select-option value="Category8">类目八</tag-select-option> + <tag-select-option value="Category9">类目九</tag-select-option> + <tag-select-option value="Category10">类目十</tag-select-option> + </tag-select> + </a-form-item> + </standard-form-row> + + <standard-form-row title="owner" grid> + <a-row> + <a-col :md="24"> + <a-form-item :wrapper-col="{ span: 24 }"> + <a-select + style="max-width: 268px; width: 100%;" + mode="multiple" + placeholder="选择 onwer" + v-decorator="['owner']" + @change="handleChange" + > + <a-select-option v-for="item in owners" :key="item.id">{{ item.name }}</a-select-option> + </a-select> + <a class="list-articles-trigger" @click="setOwner">只看自己的</a> + </a-form-item> + </a-col> + </a-row> + </standard-form-row> + + <standard-form-row title="其它选项" grid last> + <a-row :gutter="16"> + <a-col :xs="24" :sm="24" :md="12" :lg="10" :xl="8"> + <a-form-item label="活跃用户" :wrapper-col="{ xs: 24, sm: 24, md: 12 }"> + <a-select placeholder="不限" style="max-width: 200px; width: 100%;"> + <a-select-option value="李三">李三</a-select-option> + </a-select> + </a-form-item> + </a-col> + <a-col :xs="24" :sm="24" :md="12" :lg="10" :xl="8"> + <a-form-item label="好评度" :wrapper-col="{ xs: 24, sm: 24, md: 12 }"> + <a-select placeholder="不限" style="max-width: 200px; width: 100%;"> + <a-select-option value="优秀">优秀</a-select-option> + </a-select> + </a-form-item> + </a-col> + </a-row> + </standard-form-row> + </a-form> + </a-card> + + <a-card style="margin-top: 24px;" :bordered="false"> + <a-list + size="large" + rowKey="id" + :loading="loading" + itemLayout="vertical" + :dataSource="data" + > + <a-list-item :key="item.id" slot="renderItem" slot-scope="item"> + <template slot="actions"> + <icon-text type="star-o" :text="item.star" /> + <icon-text type="like-o" :text="item.like" /> + <icon-text type="message" :text="item.message" /> + </template> + <a-list-item-meta> + <a slot="title" href="https://vue.ant.design/">{{ item.title }}</a> + <template slot="description"> + <span> + <a-tag>Ant Design</a-tag> + <a-tag>设计语言</a-tag> + <a-tag>蚂蚁金服</a-tag> + </span> + </template> + </a-list-item-meta> + <article-list-content :description="item.description" :owner="item.owner" :avatar="item.avatar" :href="item.href" :updateAt="item.updatedAt" /> + </a-list-item> + <div slot="footer" v-if="data.length > 0" style="text-align: center; margin-top: 16px;"> + <a-button @click="loadMore" :loading="loadingMore">加载更多</a-button> + </div> + </a-list> + </a-card> + </div> +</template> + +<script> +import { TagSelect, StandardFormRow, ArticleListContent } from '@/components' +import IconText from './components/IconText' +const TagSelectOption = TagSelect.Option + +const owners = [ + { + id: 'wzj', + name: '我自己' + }, + { + id: 'wjh', + name: '吴家豪' + }, + { + id: 'zxx', + name: '周星星' + }, + { + id: 'zly', + name: '赵丽颖' + }, + { + id: 'ym', + name: '姚明' + } +] + +export default { + components: { + TagSelect, + TagSelectOption, + StandardFormRow, + ArticleListContent, + IconText + }, + data () { + return { + owners, + loading: true, + loadingMore: false, + data: [], + form: this.$form.createForm(this) + } + }, + mounted () { + this.getList() + }, + methods: { + handleChange (value) { + console.log(`selected ${value}`) + }, + getList () { + this.$http.get('/list/article').then(res => { + console.log('res', res) + this.data = res.result + this.loading = false + }) + }, + loadMore () { + this.loadingMore = true + this.$http.get('/list/article').then(res => { + this.data = this.data.concat(res.result) + }).finally(() => { + this.loadingMore = false + }) + }, + setOwner () { + const { form: { setFieldsValue } } = this + setFieldsValue({ + owner: ['wzj'] + }) + } + } +} +</script> + +<style lang="less" scoped> +.ant-pro-components-tag-select { + /deep/ .ant-pro-tag-select .ant-tag { + margin-right: 24px; + padding: 0 8px; + font-size: 14px; + } +} + +.list-articles-trigger { + margin-left: 12px; +} +</style> diff --git a/src/views/acute/search/Projects.vue b/src/views/acute/search/Projects.vue new file mode 100644 index 0000000000..28a4633801 --- /dev/null +++ b/src/views/acute/search/Projects.vue @@ -0,0 +1,168 @@ +<template> + <div> + <a-card :bordered="false" class="ant-pro-components-tag-select"> + <a-form :form="form" layout="inline"> + <standard-form-row title="所属类目" block style="padding-bottom: 11px;"> + <a-form-item> + <tag-select> + <tag-select-option value="Category1">类目一</tag-select-option> + <tag-select-option value="Category2">类目二</tag-select-option> + <tag-select-option value="Category3">类目三</tag-select-option> + <tag-select-option value="Category4">类目四</tag-select-option> + <tag-select-option value="Category5">类目五</tag-select-option> + <tag-select-option value="Category6">类目六</tag-select-option> + <tag-select-option value="Category7">类目七</tag-select-option> + <tag-select-option value="Category8">类目八</tag-select-option> + <tag-select-option value="Category9">类目九</tag-select-option> + <tag-select-option value="Category10">类目十</tag-select-option> + </tag-select> + </a-form-item> + </standard-form-row> + + <standard-form-row title="其它选项" grid last> + <a-row> + <a-col :lg="8" :md="10" :sm="10" :xs="24"> + <a-form-item :wrapper-col="{ sm: { span: 16 }, xs: { span: 24 } }" label="作者"> + <a-select + style="max-width: 200px; width: 100%;" + mode="multiple" + placeholder="不限" + v-decorator="['author']" + @change="handleChange" + > + <a-select-option value="lisa">王昭君</a-select-option> + </a-select> + </a-form-item> + </a-col> + <a-col :lg="8" :md="10" :sm="10" :xs="24"> + <a-form-item :wrapper-col="{ sm: { span: 16 }, xs: { span: 24 } }" label="好评度"> + <a-select + style="max-width: 200px; width: 100%;" + placeholder="不限" + v-decorator="['rate']" + > + <a-select-option value="good">优秀</a-select-option> + <a-select-option value="normal">普通</a-select-option> + </a-select> + </a-form-item> + </a-col> + </a-row> + </standard-form-row> + </a-form> + </a-card> + + <div class="ant-pro-pages-list-projects-cardList"> + <a-list :loading="loading" :data-source="data" :grid="{ gutter: 24, xl: 4, lg: 3, md: 3, sm: 2, xs: 1 }"> + <a-list-item slot="renderItem" slot-scope="item"> + <a-card class="ant-pro-pages-list-projects-card" hoverable> + <img slot="cover" :src="item.cover" :alt="item.title" /> + <a-card-meta :title="item.title"> + <template slot="description"> + <ellipsis :length="50">{{ item.description }}</ellipsis> + </template> + </a-card-meta> + <div class="cardItemContent"> + <span>{{ item.updatedAt | fromNow }}</span> + <div class="avatarList"> + <avatar-list size="mini"> + <avatar-list-item + v-for="(member, i) in item.members" + :key="`${item.id}-avatar-${i}`" + :src="member.avatar" + :tips="member.name" + /> + </avatar-list> + </div> + </div> + </a-card> + </a-list-item> + </a-list> + </div> + </div> +</template> + +<script> +import moment from 'moment' +import { TagSelect, StandardFormRow, Ellipsis, AvatarList } from '@/components' +const TagSelectOption = TagSelect.Option +const AvatarListItem = AvatarList.AvatarItem + +export default { + components: { + AvatarList, + AvatarListItem, + Ellipsis, + TagSelect, + TagSelectOption, + StandardFormRow + }, + data () { + return { + data: [], + form: this.$form.createForm(this), + loading: true + } + }, + filters: { + fromNow (date) { + return moment(date).fromNow() + } + }, + mounted () { + this.getList() + }, + methods: { + handleChange (value) { + console.log(`selected ${value}`) + }, + getList () { + this.$http.get('/list/article', { params: { count: 8 } }).then(res => { + console.log('res', res) + this.data = res.result + this.loading = false + }) + } + } +} +</script> + +<style lang="less" scoped> +.ant-pro-components-tag-select { + /deep/ .ant-pro-tag-select .ant-tag { + margin-right: 24px; + padding: 0 8px; + font-size: 14px; + } +} +.ant-pro-pages-list-projects-cardList { + margin-top: 24px; + + /deep/ .ant-card-meta-title { + margin-bottom: 4px; + } + + /deep/ .ant-card-meta-description { + height: 44px; + overflow: hidden; + line-height: 22px; + } + + .cardItemContent { + display: flex; + height: 20px; + margin-top: 16px; + margin-bottom: -4px; + line-height: 20px; + + > span { + flex: 1 1; + color: rgba(0,0,0,.45); + font-size: 12px; + } + + /deep/ .ant-pro-avatar-list { + flex: 0 1 auto; + } + } +} +</style> diff --git a/src/views/acute/search/SearchLayout.vue b/src/views/acute/search/SearchLayout.vue new file mode 100644 index 0000000000..345ce069d1 --- /dev/null +++ b/src/views/acute/search/SearchLayout.vue @@ -0,0 +1,78 @@ +<template> + <div class="search-content"> + <router-view /> + </div> +</template> + +<script> +export default { + name: 'SearchLayout', + data () { + return { + tabs: { + items: [ + { + key: '1', + title: '文章' + }, + { + key: '2', + title: '项目' + }, + { + key: '3', + title: '应用' + } + ], + active: () => { + switch (this.$route.path) { + case '/list/search/article': + return '1' + case '/list/search/project': + return '2' + case '/list/search/application': + return '3' + default: + return '1' + } + }, + callback: (key) => { + switch (key) { + case '1': + this.$router.push('/list/search/article') + break + case '2': + this.$router.push('/list/search/project') + break + case '3': + this.$router.push('/list/search/application') + break + default: + this.$router.push('/workplace') + } + } + }, + search: true + } + }, + computed: { + + }, + methods: { + } +} +</script> + +<style lang="less" scoped> + .search-head{ + background-color: #fff; + margin: -25px -24px -24px; + .search-input{ + text-align: center; + margin-bottom: 16px; + } + } + .search-content{ + margin-top: 48px; + } +</style> diff --git a/src/views/acute/search/components/CardInfo.vue b/src/views/acute/search/components/CardInfo.vue new file mode 100644 index 0000000000..1c54c992eb --- /dev/null +++ b/src/views/acute/search/components/CardInfo.vue @@ -0,0 +1,58 @@ +<template> + <div class="cardInfo"> + <div> + <p>活跃用户</p> + <p>{{ activeUser }}</p> + </div> + <div> + <p>新增用户</p> + <p>{{ newUser }}</p> + </div> + </div> +</template> + +<script> +export default { + name: 'CardInfo', + props: { + activeUser: { + type: [String, Number], + default: 0 + }, + newUser: { + type: [String, Number], + default: 0 + } + } +} +</script> + +<style lang="less" scoped> +@import "~@/components/index.less"; +@import "~@/utils/utils.less"; + +.cardInfo { + + .clearfix(); + + margin-top: 16px; + margin-left: 40px; + & > div { + position: relative; + float: left; + width: 50%; + text-align: left; + p { + margin: 0; + font-size: 24px; + line-height: 32px; + } + p:first-child { + margin-bottom: 4px; + color: @text-color-secondary; + font-size: 12px; + line-height: 20px; + } + } +} +</style> diff --git a/src/views/acute/search/components/IconText.vue b/src/views/acute/search/components/IconText.vue new file mode 100644 index 0000000000..c7dd9e01ef --- /dev/null +++ b/src/views/acute/search/components/IconText.vue @@ -0,0 +1,22 @@ +<template> + <span> + <a-icon :type="type" style="margin-right: 8px" /> + {{ text }} + </span> +</template> + +<script> +export default { + name: 'IconText', + props: { + 'type': { + type: String, + required: true + }, + text: { + type: [String, Number], + required: true + } + } +} +</script> diff --git a/src/views/acute/table/Edit.vue b/src/views/acute/table/Edit.vue new file mode 100644 index 0000000000..c8a1b51164 --- /dev/null +++ b/src/views/acute/table/Edit.vue @@ -0,0 +1,160 @@ +<template> + <div> + <a-form :form="form" @submit="handleSubmit"> + + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="规则编号" + hasFeedback + validateStatus="success" + > + <a-input + placeholder="规则编号" + v-decorator="[ + 'no', + {rules: [{ required: true, message: '请输入规则编号' }]} + ]" + :disabled="true" + ></a-input> + </a-form-item> + + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="服务调用次数" + hasFeedback + validateStatus="success" + > + <a-input-number :min="1" style="width: 100%" v-decorator="['callNo', {rules: [{ required: true }]}]" /> + </a-form-item> + + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="状态" + hasFeedback + validateStatus="warning" + > + <a-select v-decorator="['status', {rules: [{ required: true, message: '请选择状态' }], initialValue: '1'}]"> + <a-select-option :value="1">Option 1</a-select-option> + <a-select-option :value="2">Option 2</a-select-option> + <a-select-option :value="3">Option 3</a-select-option> + </a-select> + </a-form-item> + + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="描述" + hasFeedback + help="请填写一段描述" + > + <a-textarea :rows="5" placeholder="..." v-decorator="['description', {rules: [{ required: true }]}]" /> + </a-form-item> + + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="更新时间" + hasFeedback + validateStatus="error" + > + <a-date-picker + style="width: 100%" + showTime + format="YYYY-MM-DD HH:mm:ss" + placeholder="Select Time" + v-decorator="['updatedAt']" + /> + </a-form-item> + + <a-form-item + v-bind="buttonCol" + > + <a-row> + <a-col span="6"> + <a-button type="primary" html-type="submit">提交</a-button> + </a-col> + <a-col span="10"> + <a-button @click="handleGoBack">返回</a-button> + </a-col> + <a-col span="8"></a-col> + </a-row> + </a-form-item> + </a-form> + </div> +</template> + +<script> +import moment from 'moment' +import pick from 'lodash.pick' + +export default { + name: 'TableEdit', + props: { + record: { + type: [Object, String], + default: '' + } + }, + data () { + return { + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 12 } + }, + buttonCol: { + wrapperCol: { + xs: { span: 24 }, + sm: { span: 12, offset: 5 } + } + }, + form: this.$form.createForm(this), + id: 0 + } + }, + // beforeCreate () { + // this.form = this.$form.createForm(this) + // }, + mounted () { + this.$nextTick(() => { + this.loadEditInfo(this.record) + }) + }, + methods: { + handleGoBack () { + this.$emit('onGoBack') + }, + handleSubmit () { + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((err, values) => { + if (!err) { + // eslint-disable-next-line no-console + console.log('Received values of form: ', values) + } + }) + }, + handleGetInfo () { + + }, + loadEditInfo (data) { + const { form } = this + // ajax + console.log(`将加载 ${this.id} 信息到表单`) + new Promise((resolve) => { + setTimeout(resolve, 1500) + }).then(() => { + const formData = pick(data, ['no', 'callNo', 'status', 'description', 'updatedAt']) + formData.updatedAt = moment(data.updatedAt) + console.log('formData', formData) + form.setFieldsValue(formData) + }) + } + } +} +</script> diff --git a/src/views/acute/table/List.vue b/src/views/acute/table/List.vue new file mode 100644 index 0000000000..8e5da0bce0 --- /dev/null +++ b/src/views/acute/table/List.vue @@ -0,0 +1,240 @@ +<template> + <div> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="48"> + <a-col :md="8" :sm="24"> + <a-form-item label="规则编号"> + <a-input v-model="queryParam.id" placeholder=""/> + </a-form-item> + </a-col> + <a-col :md="8" :sm="24"> + <a-form-item label="使用状态"> + <a-select v-model="queryParam.status" placeholder="请选择" default-value="0"> + <a-select-option value="0">全部</a-select-option> + <a-select-option value="1">关闭</a-select-option> + <a-select-option value="2">运行中</a-select-option> + </a-select> + </a-form-item> + </a-col> + <template v-if="advanced"> + <a-col :md="8" :sm="24"> + <a-form-item label="调用次数"> + <a-input-number v-model="queryParam.callNo" style="width: 100%"/> + </a-form-item> + </a-col> + <a-col :md="8" :sm="24"> + <a-form-item label="更新日期"> + <a-date-picker v-model="queryParam.date" style="width: 100%" placeholder="请输入更新日期"/> + </a-form-item> + </a-col> + <a-col :md="8" :sm="24"> + <a-form-item label="使用状态"> + <a-select v-model="queryParam.useStatus" placeholder="请选择" default-value="0"> + <a-select-option value="0">全部</a-select-option> + <a-select-option value="1">关闭</a-select-option> + <a-select-option value="2">运行中</a-select-option> + </a-select> + </a-form-item> + </a-col> + <a-col :md="8" :sm="24"> + <a-form-item label="使用状态"> + <a-select placeholder="请选择" default-value="0"> + <a-select-option value="0">全部</a-select-option> + <a-select-option value="1">关闭</a-select-option> + <a-select-option value="2">运行中</a-select-option> + </a-select> + </a-form-item> + </a-col> + </template> + <a-col :md="!advanced && 8 || 24" :sm="24"> + <span class="table-page-search-submitButtons" :style="advanced && { float: 'right', overflow: 'hidden' } || {} "> + <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button> + <a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button> + <a @click="toggleAdvanced" style="margin-left: 8px"> + {{ advanced ? '收起' : '展开' }} + <a-icon :type="advanced ? 'up' : 'down'"/> + </a> + </span> + </a-col> + </a-row> + </a-form> + </div> + + <div class="table-operator"> + <a-button type="primary" icon="plus" @click="handleEdit()">新建</a-button> + <a-button type="dashed" @click="tableOption">{{ optionAlertShow && '关闭' || '开启' }} alert</a-button> + <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0"> + <a-menu slot="overlay"> + <a-menu-item key="1"><a-icon type="delete" />删除</a-menu-item> + <!-- lock | unlock --> + <a-menu-item key="2"><a-icon type="lock" />锁定</a-menu-item> + </a-menu> + <a-button style="margin-left: 8px"> + 批量操作 <a-icon type="down" /> + </a-button> + </a-dropdown> + </div> + + <s-table + ref="table" + size="default" + rowKey="key" + :columns="columns" + :data="loadData" + :alert="options.alert" + :rowSelection="options.rowSelection" + > + <span slot="serial" slot-scope="text, record, index"> + {{ index + 1 }} + </span> + <span slot="action" slot-scope="text, record"> + <template> + <a @click="handleEdit(record)">编辑</a> + <a-divider type="vertical" /> + </template> + <a-dropdown> + <a class="ant-dropdown-link"> + 更多 <a-icon type="down" /> + </a> + <a-menu slot="overlay"> + <a-menu-item> + <a href="javascript:;">详情</a> + </a-menu-item> + <a-menu-item v-if="$auth('table.disable')"> + <a href="javascript:;">禁用</a> + </a-menu-item> + <a-menu-item v-if="$auth('table.delete')"> + <a href="javascript:;">删除</a> + </a-menu-item> + </a-menu> + </a-dropdown> + </span> + </s-table> + </div> +</template> + +<script> +import moment from 'moment' +import { STable } from '@/components' +import { getRoleList, getServiceList } from '@/api/manage' + +export default { + name: 'TableList', + components: { + STable + }, + data () { + return { + mdl: {}, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + // 表头 + columns: [ + { + title: '#', + scopedSlots: { customRender: 'serial' } + }, + { + title: '规则编号', + dataIndex: 'no' + }, + { + title: '描述', + dataIndex: 'description' + }, + { + title: '服务调用次数', + dataIndex: 'callNo', + sorter: true, + needTotal: true, + customRender: (text) => text + ' 次' + }, + { + title: '状态', + dataIndex: 'status', + needTotal: true + }, + { + title: '更新时间', + dataIndex: 'updatedAt', + sorter: true + }, + { + title: '操作', + dataIndex: 'action', + width: '150px', + scopedSlots: { customRender: 'action' } + } + ], + // 加载数据方法 必须为 Promise 对象 + loadData: parameter => { + console.log('loadData.parameter', parameter) + return getServiceList(Object.assign(parameter, this.queryParam)) + .then(res => { + return res.result + }) + }, + selectedRowKeys: [], + selectedRows: [], + + // custom table alert & rowSelection + options: { + alert: { show: true, clear: () => { this.selectedRowKeys = [] } }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + optionAlertShow: false + } + }, + created () { + this.tableOption() + getRoleList({ t: new Date() }) + }, + methods: { + tableOption () { + if (!this.optionAlertShow) { + this.options = { + alert: { show: true, clear: () => { this.selectedRowKeys = [] } }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + } + this.optionAlertShow = true + } else { + this.options = { + alert: false, + rowSelection: null + } + this.optionAlertShow = false + } + }, + + handleEdit (record) { + this.$emit('onEdit', record) + }, + handleOk () { + + }, + + onSelectChange (selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys + this.selectedRows = selectedRows + }, + toggleAdvanced () { + this.advanced = !this.advanced + }, + + resetSearchForm () { + this.queryParam = { + date: moment(new Date()) + } + } + } +} +</script> diff --git a/src/views/case/index.vue b/src/views/case/index.vue new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/views/caseTransfer/index.vue b/src/views/caseTransfer/index.vue new file mode 100644 index 0000000000..13f4b1d089 --- /dev/null +++ b/src/views/caseTransfer/index.vue @@ -0,0 +1,268 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索患者姓名、身份证号" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col :md="13" style="text-align:right" :sm="24"> + <a-button type="primary" @click="$refs.registerModal.show()">新建</a-button> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch(3)">全部申请</p> + <p @click="tableSearch(1)">本月新增申请</p> + <p @click="tableSearch(2)">本年新增申请</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="入组编号"> + <a-input v-model.trim="queryParam.fileCode" style="width: 100%" /> + </a-form-item> + <a-form-item label="姓名"> + <a-input v-model.trim="queryParam.patientName" style="width: 100%" /> + </a-form-item> + <a-form-item label="身份证号"> + <a-input v-model.trim="queryParam.card" style="width: 100%" /> + </a-form-item> + <a-form-item label="申请时间" style="margin-bottom:0;"> + <a-range-picker @change="changeTime" style="width: 100%" :value="dateArr" /> + </a-form-item> + <a-form-item style="text-align: right;margin-bottom: 0;margin-top: 15px;"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px;" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="distractId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <template slot="executeStatus" slot-scope="text"> + <a-badge :status="text == 0 ? 'default' : text == 1 ? 'success' : 'error'" :text="text == 0 ? '未审核': text == 1 ? '审核通过' : '审核不通过'" /> + </template> + <template slot="patientName" slot-scope="text,record"> + <p>{{modifyName(text)}}</p> + </template> + <template slot="reason" slot-scope="text"> + <a-tooltip placement="topLeft"> + <template slot="title">{{ text }}</template> + <span class="reason">{{ text }}</span> + </a-tooltip> + </template> + </s-table> + <register-form ref="registerModal" @ok="handleOk"></register-form> + </a-card> +</template> +<script> +import moment from 'moment' +import { STable } from '@/components' +import { getZyDataList } from '@/api/distract' +import RegisterForm from './modules/RegisterForm' +import $ from 'jquery' + +export default { + name: 'Gallery', + components: { + STable, + RegisterForm + }, + data() { + return { + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + dateArr: [], + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + // 表头 + columns: [{ + title: '申请单号', + dataIndex: 'distractCode', + width: 120 + }, + { + title: '入组编号', + dataIndex: 'fileCode', + width: 150 + }, + { + title: '患者姓名', + dataIndex: 'patientName', + width: 120, + scopedSlots: { customRender: 'patientName' } + }, + { + title: '原中心', + dataIndex: 'centerName', + width: 200 + }, + { + title: '申请时间', + dataIndex: 'createDate', + customRender: createDate => moment(createDate).format('YYYY-MM-DD'), + width: 180 + }, + { + title: '审核状态', + dataIndex: 'executeStatus', + scopedSlots: { customRender: 'executeStatus' }, + width: 150 + }, + { + title: '驳回理由', + dataIndex: 'rejectionReason', + scopedSlots: { customRender: 'rejectionReason' }, + width: 180 + } + ], + // 加载数据方法 必须为 Promise 对象 + loadData: parameter => { + return getZyDataList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + selectedRowKeys: [], + selectedRows: [], + scroll: false, + // custom table alert & rowSelection + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + optionAlertShow: false + } + }, + created() { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + }, + methods: { + modifyName(name) { + return name.replace(/(.)(.*)/, (_, $1, $2) => $1 + '*'.repeat($2.length)) + }, + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + clearForm() { + this.queryParam = {} + this.dateArr = [] + }, + tableSearch(type) { + this.queryParam.queryType = type + this.$refs.table.refresh(); + this.advanced = false; + }, + refreshTable() { + this.advanced = false + this.$refs.table.refresh() + }, + handleOk() { + this.$refs.table.refresh() + }, + changeTime(time) { + this.dateArr = time + this.queryParam.createDateStart = moment(time[0]).format('YYYY-MM-DD') + this.queryParam.createDateEnd = moment(time[1]).format('YYYY-MM-DD') + } + } +} +</script> +<style lang="less" scoped> +td.operation { + text-align: center !important; +} + +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} + +.reason { + display: inline-block; + width: 11em; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.userName { + color: #1fb2fa; + margin: 0; + + &:active, + &:hover { + text-decoration: underline; + text-underline-position: under; + text-decoration-color: #1fb2fa; + cursor: pointer; + } +} +</style> diff --git a/src/views/caseTransfer/modules/RegisterForm.vue b/src/views/caseTransfer/modules/RegisterForm.vue new file mode 100644 index 0000000000..a63c07d35f --- /dev/null +++ b/src/views/caseTransfer/modules/RegisterForm.vue @@ -0,0 +1,242 @@ +<template> + <a-modal title="新建申请" :width="800" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :centered="centered" :destroyOnClose="destroyOnClose" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item> + <a-input-search placeholder="搜索患者身份证号" @search="onSearch" v-decorator="['card', requiredRule]" enterButton /> + </a-form-item> + + <div v-if="JSON.stringify(patient) != '{}'"> + <a-divider orientation="left">患者信息</a-divider> + <user-detail :patient="patient"></user-detail> + <a-divider orientation="left">申请理由</a-divider> + <a-form-item> + <a-textarea rows="3" v-decorator="['reason', { rules: [{ required: JSON.stringify(patient) != '{}', message: '该选项必填' }] }]" placeholder="请输入申请理由" style="margin-bottom: 0" /> + </a-form-item> + </div> + + <div v-else> + <div class="zwhz" v-if="tipCode == 3"></div> + <div class="bkzy" v-else-if="tipMsg == 0 || tipMsg == 5"></div> + <div class="zwsj">{{ tipMsg }}</div> + </div> + </a-form> + </a-spin> + </a-modal> +</template> + +<script> + import { getPatientDetailByCard } from '@/api/patient' + import { addDistract } from '@/api/distract' + import UserDetail from './UserDetailTop'; + export default { + components: { + UserDetail + }, + data() { + return { + bodyStyle: { + height: '500px', + overflow: 'auto' + }, + maskClosable: false, + centered: true, + destroyOnClose: true, + visible: false, + confirmLoading: false, + form: this.$form.createForm(this), + requiredRule: { rules: [{ required: true, message: '该选项必填' }] }, + patient: {}, + tipMsg: '暂无数据', + tipCode: -200 + } + }, + methods: { + show() { + this.patient = {}; + this.tipMsg = '暂无数据' + this.tipCode = -200 + this.visible = true; + }, + onSearch(value) { + this.confirmLoading = true; + this.patient = {}; + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll(['card'], (errors, values) => { + if (errors) { + this.confirmLoading = false; + return + } + const params = new FormData() + params.append('type', 1) + params.append('card', value); + getPatientDetailByCard(params).then(res => { + this.confirmLoading = false; + if (res.code == 1) { + this.patient = res.data + } else { + this.tipMsg = res.msg + this.tipCode = res.code + } + }) + }) + }, + handleSubmit() { + this.confirmLoading = false + this.form.validateFieldsAndScroll((errors, fieldsValue) => { + if (errors) { + this.confirmLoading = false + return + } + if (JSON.stringify(this.patient) == '{}') return + + const distract = { + ...fieldsValue, + patientId: this.patient.patientId, + centerId: this.patient.centerId, + } + const params = new FormData() + params.append('distract', JSON.stringify(distract)) + addDistract(params).then(res => { + this.$message.success(res.msg); + this.visible = false + this.confirmLoading = false + this.$emit('ok') + }) + }) + }, + handleCancel() { + this.visible = false + }, + validateCard(rule, value, callback) { + if (!value) { + callback('该选项必填'); + return; + } + var num = value.toUpperCase(); //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。 + if (!/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num)) { + callback('身份证号长度不正确或不符合规定!'); + return; + } + //验证前2位,城市符合 + var aCity = { + 11: '北京', + 12: '天津', + 13: '河北', + 14: '山西', + 15: '内蒙古', + 21: '辽宁', + 22: '吉林', + 23: '黑龙江 ', + 31: '上海', + 32: '江苏', + 33: '浙江', + 34: '安徽', + 35: '福建', + 36: '江西', + 37: '山东', + 41: '河南', + 42: '湖北', + 43: '湖南', + 44: '广东', + 45: '广西', + 46: '海南', + 50: '重庆', + 51: '四川', + 52: '贵州', + 53: '云南', + 54: '西藏', + 61: '陕西', + 62: '甘肃', + 63: '青海', + 64: '宁夏', + 65: '新疆', + 71: '台湾', + 81: '香港', + 82: '澳门', + 91: '国外' + }; + if (aCity[parseInt(num.substr(0, 2))] == null) { + callback('身份证号不正确或不符合规定!'); + return; + } + + //下面分别分析出生日期和校验位 + var len, re; + len = num.length; + if (len == 15) { + re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/); + var arrSplit = num.match(re); //检查生日日期是否正确 + var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]); + var bGoodDay; + bGoodDay = dtmBirth.getYear() == Number(arrSplit[2]) && dtmBirth.getMonth() + 1 == Number(arrSplit[3]) && dtmBirth.getDate() == Number(arrSplit[4]); + if (!bGoodDay) { + callback('身份证号的出生日期不对!'); + } else { + //将15位身份证转成18位 //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 + var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); + var nTemp = 0, + i; + num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6); + for (i = 0; i < 17; i++) { + nTemp += num.substr(i, 1) * arrInt[i]; + } + num += arrCh[nTemp % 11]; + } + } + if (len == 18) { + re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/); + var arrSplit = num.match(re); //检查生日日期是否正确 + var dtmBirth = new Date(arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]); + var bGoodDay; + bGoodDay = dtmBirth.getFullYear() == Number(arrSplit[2]) && dtmBirth.getMonth() + 1 == Number(arrSplit[3]) && dtmBirth.getDate() == Number(arrSplit[4]); + if (!bGoodDay) { + callback('身份证号的出生日期不对!'); + } else { + //检验18位身份证的校验码是否正确。 //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 + var valnum; + var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); + var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); + var nTemp = 0, + i; + for (i = 0; i < 17; i++) { + nTemp += num.substr(i, 1) * arrInt[i]; + } + valnum = arrCh[nTemp % 11]; + if (valnum != num.substr(17, 1)) { + callback('18位身份证号的校验码不正确!'); + } + } + } + callback() + } + } + } +</script> +<style lang="less" scoped> + /deep/ .ant-divider-horizontal.ant-divider-with-text-left { + color: #1890ff; + } + + .zwhz { + width: 220px; + height: 220px; + margin: auto; + margin-bottom: 20px; + background: url('../../../assets/zwhz.png') 80% 80% no-repeat; + } + .bkzy { + width: 220px; + height: 220px; + margin: auto; + margin-bottom: 20px; + background: url('../../../assets/bkzy.png') 80% 80% no-repeat; + } + .zwsj { + height: 50px; + line-height: 50px; + font-size: 16px; + text-align: center; + color: #1890ff; + } +</style> \ No newline at end of file diff --git a/src/views/caseTransfer/modules/ReviewForm.vue b/src/views/caseTransfer/modules/ReviewForm.vue new file mode 100644 index 0000000000..c5f06e149e --- /dev/null +++ b/src/views/caseTransfer/modules/ReviewForm.vue @@ -0,0 +1,119 @@ +<template> + <a-modal title="病例转移审核" :width="800" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :centered="centered" :destroyOnClose="destroyOnClose" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item label="申请单号" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['distractCode']" readOnly /> + </a-form-item> + <a-form-item label="入组编号" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['fileBasisCode']" readOnly /> + </a-form-item> + <a-form-item label="患者姓名" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['patientName']" readOnly /> + </a-form-item> + <a-form-item label="身份号码" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['card']" readOnly /> + </a-form-item> + <a-form-item label="申请中心" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['centerName']" readOnly /> + </a-form-item> + <a-form-item label="申请时间" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-date-picker style="width: 100%" format="YYYY-MM-DD" v-decorator="['createDate']" disabled /> + </a-form-item> + <a-form-item label="申请理由" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['reason']" readOnly /> + </a-form-item> + <a-form-item label="审核" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group v-decorator="['executeStatus', requiredRule]"> + <a-radio value="1">通过</a-radio> + <a-radio value="2">驳回</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item v-if="form.getFieldValue('executeStatus') == 2" label="驳回理由" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-textarea rows="3" v-decorator="['rejectionReason', requiredRule]" placeholder="请输入驳回理由" /> + </a-form-item> + </a-form> + </a-spin> + </a-modal> +</template> + +<script> + import { verifyDistract } from '@/api/distract' + export default { + data() { + return { + bodyStyle: { + height: '500px', + overflow: 'auto' + }, + maskClosable: false, + centered: true, + destroyOnClose: true, + visible: false, + confirmLoading: false, + form: this.$form.createForm(this), + targetCenterId: '', + distractId: '', + patientId: '', + labelCol: { + xs: { span: 24 }, + sm: { span: 6 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 14 } + }, + requiredRule: { rules: [{ required: true, message: '该选项必填' }] } + } + }, + methods: { + show(recode) { + this.visible = true; + this.confirmLoading = false; + this.targetCenterId = recode.targetCenterId + this.distractId = recode.distractId + this.patientId = recode.patientId + this.$nextTick(() => { + this.form.setFieldsValue(recode); + }) + }, + handleSubmit() { + this.confirmLoading = true; + + const { form: { validateFieldsAndScroll } } = this; + + validateFieldsAndScroll((errors, fieldsValue) => { + const that = this; + if (errors) { + this.confirmLoading = false; + return; + } + const params = new FormData(); + const distract = { + ...fieldsValue, + targetCenterId: this.targetCenterId, + distractId: this.distractId, + patientId: this.patientId, + createDate: fieldsValue['createDate'].format('YYYY-MM-DD') + } + params.append('distract', JSON.stringify(distract)) + verifyDistract(params).then(res => { + that.$message.success(res.msg); + that.visible = false; + that.confirmLoading = false; + that.$emit('ok') + }) + }) + }, + handleCancel() { + this.visible = false + } + }, + } +</script> + +<style lang="less" scoped> + /deep/ .ant-form-item:last-child { + margin-bottom: 0; + } +</style> \ No newline at end of file diff --git a/src/views/caseTransfer/modules/UserDetail.vue b/src/views/caseTransfer/modules/UserDetail.vue new file mode 100644 index 0000000000..3182d88978 --- /dev/null +++ b/src/views/caseTransfer/modules/UserDetail.vue @@ -0,0 +1,320 @@ +<template> + <a-modal + title="患者详情" + :width="800" + :bodyStyle="bodyStyle" + :maskClosable="maskClosable" + :centered="centered" + :destroyOnClose="destroyOnClose" + :visible="visible" + :confirmLoading="confirmLoading" + :footer="null" + @cancel="handleCancel" + > + <a-spin :spinning="confirmLoading"> + <user-detail :patient="patient"></user-detail> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="详细信息" key="1"> + <div class="userCard"> + <a-row id="userInfo"> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>患者同意注册日期:</span> + {{ patient.registerDate | formDate }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>文化程度:</span> + {{ patient.censusName }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>访视状态:</span> + {{ patient.visit | visitStatus }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>医疗费用支付情况:</span> + {{ patient.payTypeName }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>职业:</span> + {{ patient.workName }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>家庭年收入:</span> + {{ patient.income }}万 + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>创建机构:</span> + {{ patient.centerName }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>创建时间:</span> + {{ patient.ceateDate | formDate }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>创建人:</span> + {{ patient.creatorName }} + </p> + </a-col> + </a-row> + </div> + </a-tab-pane> + <a-tab-pane tab="待访视任务" key="2" forceRender> + <div class="userCard" v-if="visitTasks.length>0"> + <div class="followupItem" v-for="item in visitTasks"> + <my-icon class="my-icon-huaban" type="iconshijian_huaban" /> + <p> + <span>计划时间:</span> + {{item.planDate}} + </p> + <p> + <span>随访摘要:</span> + {{item.taskName}} + </p> + <router-link :to="{path:'/list/task/' + item.visitTaskId}"> + <a-button type="primary" size="small" style="float:right;"> + <my-icon type="iconxiangqing_huaban" /> + 执行 + </a-button> + </router-link> + </div> + </div> + <div v-else class="userCard"> + <div style="text-align: center;"> + <img src="@/assets/noData.png" alt=""> + <p>暂无数据</p> + </div> + </div> + </a-tab-pane> + <a-tab-pane tab="访视情况" key="3"> + <div class="userCard" v-if="patientBasisList.length>0"> + <a-timeline> + <a-timeline-item v-for="item in patientBasisList"> + <span class="followupDate">{{item.createDate|formDate}}</span> + <div class="followupInfoItem"> + <div class="followupInfoItemType"> + <p> + 访视类型: + <span>{{item.type|patientBasisType}}</span> + </p> + <p>访视时间: {{item.wirteDate|formDate}}</p> + </div> + <div class="followupInfoItemPro"> + <span>访视进度:</span> + <p> + <a-progress :percent="item.progress" status="active" /> + </p> + </div> + <router-link :to="{path:'/list/basis/' + item.patientBasisId}"> + <a-button type="primary" size="small" style="float:right;margin-top:5px ;"> + <my-icon type="iconxiangqing_huaban" /> + 详情 + </a-button> + </router-link> + </div> + </a-timeline-item> + </a-timeline> + </div> + <div v-else class="userCard"> + <div style="text-align: center;"> + <img src="@/assets/noData.png" alt=""> + <p>暂无数据</p> + </div> + </div> + </a-tab-pane> + </a-tabs> + </a-spin> + </a-modal> +</template> + +<script> +import { getPatientDetail } from '@/api/patient'; +import UserDetail from './UserDetailTop'; +import { MyIcon } from '@/components/_util/util'; +import moment from 'moment'; +import _ from 'lodash'; +export default { + components: { + UserDetail, + MyIcon + }, + data() { + return { + patientBasisList: [], + visitTasks: [], + patient: {}, + visible: false, + confirmLoading: false, + centered: true, + maskClosable: false, + destroyOnClose: true, + bodyStyle: { + height: '500px', + overflow: 'auto', + background:"#F8FBFC" + } + }; + }, + filters: { + formDate(date) { + return moment(date).format('YYYY-MM-DD'); + }, + visitStatus(value) { + const visitMap = { + '1': '忽略', + '2': '未执行', + '3': '执行中', + '4': '已完成' + }; + return visitMap[value]; + }, + patientBasisType(type){ + const patientBasisTypeMap=['','支扩基线','半年随访','年访视','急性加重期随访', '', 'ICON常规随访', '急性加重期随访', 'ICON基线'] + return patientBasisTypeMap[type]; + } + }, + methods: { + show(value) { + this.visible = true; + this.confirmLoading = true; + const Params = new URLSearchParams(); + Params.append('patientId', value.patientId); + getPatientDetail(Params).then(res => { + this.patient = res.data.patient; + this.patientBasisList = res.data.patientBasisList; + this.visitTasks = res.data.visitTasks; + this.confirmLoading = false; + }); + }, + handleCancel() { + this.visible = false; + } + } +}; +</script> +<style lang="less" scoped> +/deep/ .ant-modal-body { + background-color: #fdfdfd; +} +.userCard { + background: #ffffff; + padding: 20px; + border: 1px solid #f1f1f1; + padding-right:0px; + overflow: auto; + #userInfo { + p.userInfoItem { + color: #000000; + span { + color: #888888; + } + } + } + .followupItem { + border-bottom: 1px dashed #f3f3f3; + padding-bottom: 10px; + margin-bottom: 15px; + padding-right: 20px; + .my-icon-huaban { + color: #26adfa; + font-size: 30px; + margin-right: 10px; + vertical-align: middle; + } + p { + display: inline-block; + margin: 0px; + margin-right: 40px; + color: #000000; + span { + color: #888888; + } + } + } + span.followupDate{ + display: inline-block; + border: 1px solid #dddddd; + padding: 5px 10px; + font-size: 12px; + border-radius: 15px; + vertical-align: top; + position: relative; + top: -3px; + } + div.followupInfoItem{ + display: inline-block; + width: 590px; + background: #F1F8FE; + margin-left: 20px; + position: relative; + top: -11px; + padding: 5px 20px; + div.followupInfoItemType{ + display: inline-block; + width: 200px; + font-size: 12px; + p:first-child{ + color: #000; + margin-bottom: 5px; + font-size: 14px; + span{ + color: #F0C070; + } + } + p:nth-child(2){ + margin: 0; + } + } + div.followupInfoItemPro{ + display: inline-block; + width: 200px; + vertical-align: top; + span{ + font-size: 14px; + color: #000; + } + p{ + width: 100px; + display: inline-block; + margin: 0; + margin-left: 10px; + /deep/ .ant-progress-inner{ + background-color:#C4C4C4; + } + } + } + } + +} + +::-webkit-scrollbar-track-piece { //滚动条凹槽的颜色,还可以设置边框属性 +background-color:#f8f8f8; +} +::-webkit-scrollbar {//滚动条的宽度 +width:5px; +height:9px; +} +::-webkit-scrollbar-thumb {//滚动条的设置 +background-color:#dddddd; +background-clip:padding-box; +min-height:28px; +} +::-webkit-scrollbar-thumb:hover { +background-color:#bbb; +} +</style> diff --git a/src/views/caseTransfer/modules/UserDetailTop.vue b/src/views/caseTransfer/modules/UserDetailTop.vue new file mode 100644 index 0000000000..f9836f5560 --- /dev/null +++ b/src/views/caseTransfer/modules/UserDetailTop.vue @@ -0,0 +1,114 @@ +<template> + <div class="patient"> + <div class="patient-box"> + <img src="../../../assets/woman.png" height="60px" v-if="patient.sex == 0" /> + <img src="../../../assets/man.png" height="60px" v-else /> + <div class="patient-info"> + <span class="patient-name">{{ patient.name }}</span> + <span class="patient-age" :class="patient.sex == 0 ? 'womenBg' : ''"> + <a-icon :type="patient.sex == 1 ? 'man':'woman'" /> + {{getAge}}岁 + </span> + <span class="patient-nation">{{patient.nationName}}</span> + </div> + </div> + <a-row> + <a-col :span="8"> + <p>患者编号:{{patient.code}}</p> + </a-col> + <a-col :span="8"> + <p>身份证号:{{patient.card}}</p> + </a-col> + <a-col :span="8"> + <p>创建人:{{patient.creatorName}}</p> + </a-col> + </a-row> + <a-row> + <a-col :span="8"> + <p>联系电话:{{patient.telephone1}}</p> + </a-col> + <a-col :span="8"> + <p>所属中心:{{patient.centerName}}</p> + </a-col> + <a-col :span="8"> + <p>创建时间:{{patient.createDate | moment}}</p> + </a-col> + </a-row> + </div> +</template> + +<script> + import moment from 'moment' + export default { + props: ['patient'], + computed: { + getAge() { + var identityCard = this.patient.card + var len = (identityCard + '').length + var strBirthday = '' + if (len == 18) { + //处理18位的身份证号码从号码中得到生日和性别代码 + strBirthday = identityCard.substr(6, 4) + '/' + identityCard.substr(10, 2) + '/' + identityCard.substr(12, 2) + } + if (len == 15) { + strBirthday = + '19' + identityCard.substr(6, 2) + '/' + identityCard.substr(8, 2) + '/' + identityCard.substr(10, 2) + } + //时间字符串里,必须是“/” + var birthDate = new Date(strBirthday) + var nowDateTime = new Date() + var age = nowDateTime.getFullYear() - birthDate.getFullYear() + //再考虑月、天的因素;.getMonth()获取的是从0开始的,这里进行比较,不需要加1 + if ( + nowDateTime.getMonth() < birthDate.getMonth() || + (nowDateTime.getMonth() == birthDate.getMonth() && nowDateTime.getDate() < birthDate.getDate()) + ) { + age-- + } + return age + } + } + } +</script> +<style lang="less" scoped> + .patient { + border: 1px solid rgba(22, 143, 253, 0.15); + background: #f5f9fd; + padding: 15px 20px; + .patient-box { + border-bottom: 1px dashed rgba(22, 143, 253, 0.15); + padding-bottom: 15px; + margin-bottom: 15px; + display: flex; + .patient-info { + flex: 1; + display: flex; + align-items: center; + span { + height: 24px; + line-height: 24px; + font-size: 14px; + margin-left: 15px; + } + .patient-name { + font-size: 20px; + } + .womenBg { + background-color: #fd94dc !important; + } + .patient-age { + color: #fff; + background-color: #96dcfd; + padding: 0px 10px; + border-radius: 3px; + } + .patient-nation { + background-color: #e8e8e8; + padding: 0px 10px; + border-radius: 3px; + margin-left: 10px; + } + } + } + } +</style> diff --git a/src/views/caseTransfer/modules/UserList.vue b/src/views/caseTransfer/modules/UserList.vue new file mode 100644 index 0000000000..89681ea654 --- /dev/null +++ b/src/views/caseTransfer/modules/UserList.vue @@ -0,0 +1,132 @@ +<template> + <a-modal + title="选择患者" + :width="800" + :destroyOnClose="destroyOnClose" + :bodyStyle="bodyStyle" + :centered="centered" + :visible="visible" + :confirmLoading="confirmLoading" + @ok="checkuUser" + @cancel="handleCancel" + > + <a-spin :spinning="confirmLoading"> + <div class="patientDetail-box"> + <a-row> + <a-col :span="12"> + <p class> + <span class>患者编号:</span> + <span class>{{patientDetail.code}}</span> + </p> + </a-col> + <a-col :span="12"> + <p class> + <span class>患者姓名:</span> + <span class>{{patientDetail.name}}</span> + </p> + </a-col> + </a-row> + <a-row> + <a-col :span="12"> + <p class> + <span class>身份证号:</span> + <span class>{{patientDetail.card}}</span> + </p> + </a-col> + <a-col :span="12"> + <p class> + <span class>电话号码:</span> + <span class>{{patientDetail.telephone1}}</span> + </p> + </a-col> + </a-row> + <a-row> + <a-col :span="12"> + <p class> + <span class>所属中心:</span> + <span class>{{patientDetail.centerName}}</span> + </p> + </a-col> + </a-row> + + </div> + </a-spin> + </a-modal> +</template> + +<script> +import { getPatientDetailByCard } from '@/api/patient' +import moment from 'moment' +import _ from 'lodash' + +export default { + data() { + return { + name: '', + userData: {}, + loading: false, + visible: false, + confirmLoading: false, + destroyOnClose: true, + centered: true, + bodyStyle: { + height: '500px', + overflow: 'auto' + }, + patientDetail: {} + } + }, + mounted() { + this.userData = {} + }, + methods: { + add(value) { + this.visible = true + this.confirmLoading = true + this.getPatientDetailByCard(value) + }, + checkuUser() { + this.$emit('listen', this.patientDetail) + this.visible = false + }, + handleCancel() { + this.visible = false + }, + getPatientDetailByCard(card) { + const Card = card ? card : '' + const params = new URLSearchParams() + params.append('card', card) + params.append('type', 1) + this.confirmLoading = false + getPatientDetailByCard(params).then(res => { + this.patientDetail = res.data + // this.confirmLoading = false + }) + } + }, + computed: { + rowSelection() { + const { selectedRowKeys } = this + return { + type: 'radio', + onChange: (selectedRowKeys, selectedRows) => { + this.userData = selectedRows + }, + getCheckboxProps: record => ({ + props: { + disabled: record.name === 'Disabled User', // Column configuration not to be checked + name: record.name + } + }) + } + } + } +} +</script> + +<style lang="less"> +.patientDetail-box { + padding: 20px; + font-size: 18px; +} +</style> diff --git a/src/views/caseTransfer/review.vue b/src/views/caseTransfer/review.vue new file mode 100644 index 0000000000..a7ce5890bd --- /dev/null +++ b/src/views/caseTransfer/review.vue @@ -0,0 +1,144 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="18"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索患者姓名、身份证号" /> + </a-form-item> + </a-col> + <a-col :md="4" :sm="6"> + <a-form-item> + <a-button type="primary" @click="$refs.table.refresh()">查询</a-button> + </a-form-item> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="distractId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <template slot="patientName" slot-scope="text,record"> + <p>{{modifyName(text)}}</p> + </template> + <span slot="operation" slot-scope="text, record"> + <template> + <a @click="handleReview(record)">审核</a> + </template> + </span> + </s-table> + <review-form ref="reviewModal" @ok="handleOk"></review-form> + </a-card> +</template> +<script> +import moment from 'moment' +import { getSqDataList } from '@/api/distract' +import { STable } from '@/components' +import ReviewForm from './modules/ReviewForm' +export default { + components: { + STable, + ReviewForm + }, + data() { + return { + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 查询参数 + queryParam: {}, + scroll: false, + loadData: parameter => { + return getSqDataList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [{ + title: '申请单号', + dataIndex: 'distractCode', + width: '120px' + }, + { + title: '入组编号', + dataIndex: 'fileCode', + width: '180px' + }, + { + title: '患者姓名', + dataIndex: 'patientName', + width: '120px', + scopedSlots: { customRender: 'patientName' } + }, + { + title: '申请中心', + dataIndex: 'centerName', + width: '150px' + }, + { + title: '申请时间', + dataIndex: 'createDate', + customRender: createDate => moment(createDate).format('YYYY-MM-DD'), + width: '150px' + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '100px' + } + ], + } + }, + created() { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + methods: { + modifyName(name) { + return name.replace(/(.)(.*)/, (_, $1, $2) => $1 + '*'.repeat($2.length)) + }, + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + handleReview(recode) { + const data = { + targetCenterId: recode.targetCenterId, + distractId: recode.distractId, + distractCode: recode.distractCode, + fileBasisCode: recode.fileBasisCode, + patientId: recode.patientId, + patientName: recode.patientName, + card: recode.card, + centerName: recode.centerName, + createDate: moment(recode.createDate, 'x'), + reason: recode.reason, + } + this.$refs.reviewModal.show(data) + }, + handleOk() { + this.$refs.table.refresh() + } + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} +</style> \ No newline at end of file diff --git a/src/views/center/CenterDetail.vue b/src/views/center/CenterDetail.vue new file mode 100644 index 0000000000..eb348666f0 --- /dev/null +++ b/src/views/center/CenterDetail.vue @@ -0,0 +1,134 @@ +<template> + <a-modal :title="options.title" :width="800" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :destroyOnClose="destroyOnClose" :centered="centered" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item label="中心编码" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['code', requiredRule]" /> + </a-form-item> + <a-form-item label="中心名称" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['name', requiredRule]" /> + </a-form-item> + <a-form-item label="计划患者数" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['planNum', requiredRule]" /> + </a-form-item> + <a-form-item label="所在地" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-row :gutter="8"> + <a-col :span="12"> + <a-form-item> + <a-cascader v-decorator="['residence', requiredRule]" :options="residences" :fieldNames="{ label: 'city', value: 'cityId', children: 'children' }" placeholder="选择省/市" /> + </a-form-item> + </a-col> + <a-col :span="12"> + <a-form-item> + <a-input v-decorator="['address', requiredRule]" placeholder="请输入详细地址" /> + </a-form-item> + </a-col> + </a-row> + </a-form-item> + </a-form> + </a-spin> + </a-modal> +</template> +<script> +import { getProvinceAndCity } from '@/api/basis' +import { saveCenter } from '@/api/center' +import moment from 'moment' +import _ from 'lodash' +export default { + data() { + return { + options: {}, + residences: [], + maskClosable: false, + labelCol: { + xs: { span: 24 }, + sm: { span: 7 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 15 } + }, + visible: false, + confirmLoading: false, + centered: true, + destroyOnClose: true, + bodyStyle: { + height: '500px', + overflow: 'auto' + }, + form: this.$form.createForm(this), + requiredRule: { rules: [{ required: true, message: '该选项必填!' }] }, + centerId: undefined + }; + }, + created() { + const that = this; + getProvinceAndCity().then(res => { + const keyMap = { province: 'city', provinceId: 'cityId' } + _.each(res.data, function(item, index) { + that.residences[index] = Object.keys(item).reduce((newData, key) => { + let newKey = keyMap[key] || key + newData[newKey] = item[key] + return newData + }, {}) + }) + }) + }, + methods: { + add() { + this.options.title = '新建中心' + this.centerId = undefined + this.visible = true + }, + edit(value) { + console.log('value', value); + this.options.title = '编辑中心' + this.centerId = value.centerId + value.residence = [String(value.addressP), String(value.addressC)] + setTimeout(() => { + this.form.setFieldsValue({ + code: value.code, + name: value.name, + residence: value.residence, + address: value.addressDetail, + planNum: value.planNum + }) + }, 0); + this.visible = true + }, + handleSubmit() { + this.confirmLoading = true; + this.form.validateFieldsAndScroll((errors, fieldsValue) => { + const that = this; + if (errors) { + this.confirmLoading = false + return + } + const residence = fieldsValue['residence'] + const values = { + ...fieldsValue, + addressP: residence[0], + addressC: residence[1], + centerId: this.centerId + }; + const params = new URLSearchParams() + params.append('centerStr', JSON.stringify(values)) + saveCenter(params).then(res => { + that.visible = false + that.confirmLoading = false + that.$message.success(res.msg) + that.$emit('ok', values) + }); + }); + }, + handleCancel() { + this.visible = false + } + } +}; +</script> +<style lang="less" scoped> +/deep/ .ant-form-item:last-child { + margin-bottom: 0; +} +</style> \ No newline at end of file diff --git a/src/views/center/list.vue b/src/views/center/list.vue new file mode 100644 index 0000000000..3e4d6c98c9 --- /dev/null +++ b/src/views/center/list.vue @@ -0,0 +1,204 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索中心名称" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col :md="13" style="text-align:right" :sm="24"> + <a-button type="primary" @click="$refs.centerDetail.add()">新增</a-button> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch()">全部中心</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="中心名称"> + <a-input v-model.trim="queryParam.centerName" /> + </a-form-item> + <a-form-item style="text-align: right;margin-bottom: 0;margin-top: 15px;"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px;" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + </a-row> + </a-form> + </div> + + <s-table ref="table" :scroll="scroll" size="small" rowKey="centerId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <span slot="operation" slot-scope="text, record"> + <template> + <a @click="handleReview(record)">编辑</a> + </template> + </span> + </s-table> + <center-detail ref="centerDetail" @ok="handleOk"></center-detail> + </a-card> +</template> + +<script> + import moment from 'moment' + import { getCenterDataList } from '@/api/center' + import { STable } from '@/components' + import CenterDetail from './CenterDetail' + export default { + components: { + STable, + CenterDetail + }, + data() { + return { + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + scroll: false, + loadData: parameter => { + return getCenterDataList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [ + { + title: '中心编码', + dataIndex: 'code', + width: '150px' + }, + { + title: '中心名称', + dataIndex: 'name', + width: '150px' + }, + { + title: '计划患者数', + dataIndex: 'planNum', + width: '120px' + }, + { + title: '详细地址', + dataIndex: 'addressDetail', + width: '120px' + }, + { + title: '创建时间', + dataIndex: 'createDate', + customRender: createDate => moment(createDate).format('YYYY-MM-DD'), + width: '120px' + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '100px' + } + ], + } + }, + created() { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + }, + methods: { + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + clearForm() { + this.queryParam = {} + }, + tableSearch(type) { + this.queryParam.isUser = type + this.$refs.table.refresh() + this.advanced = false + }, + refreshTable() { + this.advanced = false + this.$refs.table.refresh() + }, + handleReview(record) { + this.$refs.centerDetail.edit(record) + }, + handleOk() { + this.$refs.table.refresh() + } + } + } +</script> + +<style lang="less" scoped> + /deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; + } + .tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item > .ant-form-item-label { + width: 70px !important; + } + .commonRetrieval { + padding: 10px; + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } + } +</style> \ No newline at end of file diff --git a/src/views/dashboard/Analysis.vue b/src/views/dashboard/Analysis.vue index c296846628..c947c7dfd1 100644 --- a/src/views/dashboard/Analysis.vue +++ b/src/views/dashboard/Analysis.vue @@ -1,413 +1,536 @@ -<template> - <div class="page-header-index-wide"> - <a-row :gutter="24"> - <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }"> - <chart-card :loading="loading" title="总销售额" total="¥126,560"> - <a-tooltip title="指标说明" slot="action"> - <a-icon type="info-circle-o" /> - </a-tooltip> - <div> - <trend flag="up" style="margin-right: 16px;"> - <span slot="term">周同比</span> - 12% - </trend> - <trend flag="down"> - <span slot="term">日同比</span> - 11% - </trend> - </div> - <template slot="footer">日均销售额<span>¥ 234.56</span></template> - </chart-card> - </a-col> - <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }"> - <chart-card :loading="loading" title="访问量" :total="8846 | NumberFormat"> - <a-tooltip title="指标说明" slot="action"> - <a-icon type="info-circle-o" /> - </a-tooltip> - <div> - <mini-area /> - </div> - <template slot="footer">日访问量<span> {{ '1234' | NumberFormat }}</span></template> - </chart-card> - </a-col> - <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }"> - <chart-card :loading="loading" title="支付笔数" :total="6560 | NumberFormat"> - <a-tooltip title="指标说明" slot="action"> - <a-icon type="info-circle-o" /> - </a-tooltip> - <div> - <mini-bar /> - </div> - <template slot="footer">转化率 <span>60%</span></template> - </chart-card> - </a-col> - <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '24px' }"> - <chart-card :loading="loading" title="运营活动效果" total="78%"> - <a-tooltip title="指标说明" slot="action"> - <a-icon type="info-circle-o" /> - </a-tooltip> - <div> - <mini-progress color="rgb(19, 194, 194)" :target="80" :percentage="78" height="8px" /> - </div> - <template slot="footer"> - <trend flag="down" style="margin-right: 16px;"> - <span slot="term">同周比</span> - 12% - </trend> - <trend flag="up"> - <span slot="term">日环比</span> - 80% - </trend> - </template> - </chart-card> - </a-col> - </a-row> - - <a-card :loading="loading" :bordered="false" :body-style="{padding: '0'}"> - <div class="salesCard"> - <a-tabs default-active-key="1" size="large" :tab-bar-style="{marginBottom: '24px', paddingLeft: '16px'}"> - <div class="extra-wrapper" slot="tabBarExtraContent"> - <div class="extra-item"> - <a>今日</a> - <a>本周</a> - <a>本月</a> - <a>本年</a> - </div> - <a-range-picker :style="{width: '256px'}" /> - </div> - <a-tab-pane loading="true" tab="销售额" key="1"> - <a-row> - <a-col :xl="16" :lg="12" :md="12" :sm="24" :xs="24"> - <bar :data="barData" title="销售额排行" /> - </a-col> - <a-col :xl="8" :lg="12" :md="12" :sm="24" :xs="24"> - <rank-list title="门店销售排行榜" :list="rankList"/> - </a-col> - </a-row> - </a-tab-pane> - <a-tab-pane tab="访问量" key="2"> - <a-row> - <a-col :xl="16" :lg="12" :md="12" :sm="24" :xs="24"> - <bar :data="barData2" title="销售额趋势" /> - </a-col> - <a-col :xl="8" :lg="12" :md="12" :sm="24" :xs="24"> - <rank-list title="门店销售排行榜" :list="rankList"/> - </a-col> - </a-row> - </a-tab-pane> - </a-tabs> - </div> - </a-card> - - <div class="antd-pro-pages-dashboard-analysis-twoColLayout" :class="isDesktop() ? 'desktop' : ''"> - <a-row :gutter="24"> - <a-col :xl="12" :lg="24" :md="24" :sm="24" :xs="24"> - <a-card :loading="loading" :bordered="false" title="线上热门搜索" :style="{ marginTop: '24px', minHeight: '500px' }"> - <a-dropdown :trigger="['click']" placement="bottomLeft" slot="extra"> - <a class="ant-dropdown-link" href="#"> - <a-icon type="ellipsis" /> - </a> - <a-menu slot="overlay"> - <a-menu-item> - <a href="javascript:;">操作一</a> - </a-menu-item> - <a-menu-item> - <a href="javascript:;">操作二</a> - </a-menu-item> - </a-menu> - </a-dropdown> - <a-row :gutter="68"> - <a-col :xs="24" :sm="12" :style="{ marginBottom: ' 24px'}"> - <number-info :total="12321" :sub-total="17.1"> - <span slot="subtitle"> - <span>搜索用户数</span> - <a-tooltip title="指标说明" slot="action"> - <a-icon type="info-circle-o" :style="{ marginLeft: '8px' }" /> - </a-tooltip> - </span> - </number-info> - <!-- miniChart --> - <div> - <mini-smooth-area :style="{ height: '45px' }" :dataSource="searchUserData" :scale="searchUserScale" /> - </div> - </a-col> - <a-col :xs="24" :sm="12" :style="{ marginBottom: ' 24px'}"> - <number-info :total="2.7" :sub-total="26.2" status="down"> - <span slot="subtitle"> - <span>人均搜索次数</span> - <a-tooltip title="指标说明" slot="action"> - <a-icon type="info-circle-o" :style="{ marginLeft: '8px' }" /> - </a-tooltip> - </span> - </number-info> - <!-- miniChart --> - <div> - <mini-smooth-area :style="{ height: '45px' }" :dataSource="searchUserData" :scale="searchUserScale" /> - </div> - </a-col> - </a-row> - <div class="ant-table-wrapper"> - <a-table - row-key="index" - size="small" - :columns="searchTableColumns" - :dataSource="searchData" - :pagination="{ pageSize: 5 }" - > - <span slot="range" slot-scope="text, record"> - <trend :flag="record.status === 0 ? 'up' : 'down'"> - {{ text }}% - </trend> - </span> - </a-table> - </div> - </a-card> - </a-col> - <a-col :xl="12" :lg="24" :md="24" :sm="24" :xs="24"> - <a-card class="antd-pro-pages-dashboard-analysis-salesCard" :loading="loading" :bordered="false" title="销售额类别占比" :style="{ marginTop: '24px', minHeight: '500px' }"> - <div slot="extra" style="height: inherit;"> - <!-- style="bottom: 12px;display: inline-block;" --> - <span class="dashboard-analysis-iconGroup"> - <a-dropdown :trigger="['click']" placement="bottomLeft"> - <a-icon type="ellipsis" class="ant-dropdown-link" /> - <a-menu slot="overlay"> - <a-menu-item> - <a href="javascript:;">操作一</a> - </a-menu-item> - <a-menu-item> - <a href="javascript:;">操作二</a> - </a-menu-item> - </a-menu> - </a-dropdown> - </span> - <div class="analysis-salesTypeRadio"> - <a-radio-group defaultValue="a"> - <a-radio-button value="a">全部渠道</a-radio-button> - <a-radio-button value="b">线上</a-radio-button> - <a-radio-button value="c">门店</a-radio-button> - </a-radio-group> - </div> - - </div> - <h4>销售额</h4> - <div> - <!-- style="width: calc(100% - 240px);" --> - <div> - <v-chart :force-fit="true" :height="405" :data="pieData" :scale="pieScale"> - <v-tooltip :showTitle="false" dataKey="item*percent" /> - <v-axis /> - <!-- position="right" :offsetX="-140" --> - <v-legend dataKey="item"/> - <v-pie position="percent" color="item" :vStyle="pieStyle" /> - <v-coord type="theta" :radius="0.75" :innerRadius="0.6" /> - </v-chart> - </div> - - </div> - </a-card> - </a-col> - </a-row> - </div> - </div> -</template> - -<script> -import moment from 'moment' -import { ChartCard, MiniArea, MiniBar, MiniProgress, RankList, Bar, Trend, NumberInfo, MiniSmoothArea } from '@/components' -import { mixinDevice } from '@/utils/mixin' - -const barData = [] -const barData2 = [] -for (let i = 0; i < 12; i += 1) { - barData.push({ - x: `${i + 1}月`, - y: Math.floor(Math.random() * 1000) + 200 - }) - barData2.push({ - x: `${i + 1}月`, - y: Math.floor(Math.random() * 1000) + 200 - }) -} - -const rankList = [] -for (let i = 0; i < 7; i++) { - rankList.push({ - name: '白鹭岛 ' + (i + 1) + ' 号店', - total: 1234.56 - i * 100 - }) -} - -const searchUserData = [] -for (let i = 0; i < 7; i++) { - searchUserData.push({ - x: moment().add(i, 'days').format('YYYY-MM-DD'), - y: Math.ceil(Math.random() * 10) - }) -} -const searchUserScale = [ - { - dataKey: 'x', - alias: '时间' - }, - { - dataKey: 'y', - alias: '用户数', - min: 0, - max: 10 - }] - -const searchTableColumns = [ - { - dataIndex: 'index', - title: '排名', - width: 90 - }, - { - dataIndex: 'keyword', - title: '搜索关键词' - }, - { - dataIndex: 'count', - title: '用户数' - }, - { - dataIndex: 'range', - title: '周涨幅', - align: 'right', - sorter: (a, b) => a.range - b.range, - scopedSlots: { customRender: 'range' } - } -] -const searchData = [] -for (let i = 0; i < 50; i += 1) { - searchData.push({ - index: i + 1, - keyword: `搜索关键词-${i}`, - count: Math.floor(Math.random() * 1000), - range: Math.floor(Math.random() * 100), - status: Math.floor((Math.random() * 10) % 2) - }) -} - -const DataSet = require('@antv/data-set') - -const sourceData = [ - { item: '家用电器', count: 32.2 }, - { item: '食用酒水', count: 21 }, - { item: '个护健康', count: 17 }, - { item: '服饰箱包', count: 13 }, - { item: '母婴产品', count: 9 }, - { item: '其他', count: 7.8 } -] - -const pieScale = [{ - dataKey: 'percent', - min: 0, - formatter: '.0%' -}] - -const dv = new DataSet.View().source(sourceData) -dv.transform({ - type: 'percent', - field: 'count', - dimension: 'item', - as: 'percent' -}) -const pieData = dv.rows - -export default { - name: 'Analysis', - mixins: [mixinDevice], - components: { - ChartCard, - MiniArea, - MiniBar, - MiniProgress, - RankList, - Bar, - Trend, - NumberInfo, - MiniSmoothArea - }, - data () { - return { - loading: true, - rankList, - - // 搜索用户数 - searchUserData, - searchUserScale, - searchTableColumns, - searchData, - - barData, - barData2, - - // - pieScale, - pieData, - sourceData, - pieStyle: { - stroke: '#fff', - lineWidth: 1 - } - } - }, - created () { - setTimeout(() => { - this.loading = !this.loading - }, 1000) - } -} -</script> - -<style lang="less" scoped> - .extra-wrapper { - line-height: 55px; - padding-right: 24px; - - .extra-item { - display: inline-block; - margin-right: 24px; - - a { - margin-left: 24px; - } - } - } - - .antd-pro-pages-dashboard-analysis-twoColLayout { - position: relative; - display: flex; - display: block; - flex-flow: row wrap; - - &.desktop div[class^=ant-col]:last-child { - position: absolute; - right: 0; - height: 100%; - } - } - - .antd-pro-pages-dashboard-analysis-salesCard { - height: calc(100% - 24px); - /deep/ .ant-card-head { - position: relative; - } - } - - .dashboard-analysis-iconGroup { - i { - margin-left: 16px; - color: rgba(0,0,0,.45); - cursor: pointer; - transition: color .32s; - color: black; - } - } - .analysis-salesTypeRadio { - position: absolute; - right: 54px; - bottom: 12px; - } -</style> +<template> + <div class="page-header-index-wide"> + <div class="menuSty"> + <a-menu mode="horizontal" style=""> + <a-menu-item key="zk" @click="zkData"> 支扩</a-menu-item> + <a-menu-item key="icon" @click="iconData"> ICON</a-menu-item> + </a-menu> + </div> + <a-row :gutter="10"> + <a-col :sm="20" :md="10" :xl="4" :style="{ marginBottom: '10px' }"> + <chart-card :loading="loading" title="本月入组数" :total="indexData.currMonthPatients"> + <a-tooltip title="指标说明" slot="action"> + <a-icon type="info-circle-o" /> + </a-tooltip> + <template slot="footer"> + 上月入组数 + <span>{{ indexData.lastMonthPatients }}</span> + </template> + <div class="page-header-index-img"> + <img style="width: 64px; height: 64px" src="../../assets/home2.png"> + </div> + </chart-card> + </a-col> + <a-col :sm="20" :md="10" :xl="4" :style="{ marginBottom: '10px' }"> + <chart-card :loading="loading" title="本月提交数" :total="indexData.currMonthSubmits "> + <a-tooltip title="指标说明" slot="action"> + <a-icon type="info-circle-o" /> + </a-tooltip> + <template slot="footer"> + 上月提交数 + <span>{{ indexData.lastMonthSubmits }}</span> + </template> + <div class="page-header-index-img"> + <img style="width: 64px; height: 64px" src="../../assets/home-5.png"> + </div> + </chart-card> + </a-col> + <a-col :sm="20" :md="10" :xl="4" :style="{ marginBottom: '10px' }"> + <chart-card :loading="loading" title="本月访视数" :total="indexData.currMonthBasis"> + <a-tooltip title="指标说明" slot="action"> + <a-icon type="info-circle-o" /> + </a-tooltip> + <template slot="footer"> + 上月访视数 + <span>{{ indexData.lastMonthBasis }}</span> + </template> + <div class="page-header-index-img"> + <img style="width: 64px; height: 64px" src="../../assets/home3.png"> + </div> + </chart-card> + </a-col> + <a-col :sm="20" :md="10" :xl="4" :style="{ marginBottom: '10px' }"> + <chart-card :loading="loading" title="本年患者数" :total="indexData.currYearPatients"> + <a-tooltip title="指标说明" slot="action"> + <a-icon type="info-circle-o" /> + </a-tooltip> + <template slot="footer"> + 上年患者数 + <span>{{ indexData.lastYearPatients }}</span> + </template> + <div class="page-header-index-img"> + <img style="width: 64px; height: 64px" src="../../assets/home1.png"> + </div> + </chart-card> + </a-col> + <a-col :sm="20" :md="10" :xl="4" :style="{ marginBottom: '10px' }"> + <chart-card :loading="loading" title="患者总数" :total="indexData.realNum"> + <a-tooltip title="指标说明" slot="action"> + <a-icon type="info-circle-o" /> + </a-tooltip> + <div> + <mini-progress color="rgb(24,144,255)" :target="indexData.completionRate" :percentage="indexData.completionRate" height="8px" /> + </div> + <template slot="footer"> + <p style="margin-right: 16px;display: inline-block;margin-bottom: 0;"> + <span slot="term">计划数</span> + {{ indexData.planNum }} + </p> + </template> + </chart-card> + </a-col> + </a-row> + <a-row :gutter="10"> + <a-col :sm="48" :md="24" :xl="12" :style="{ marginBottom: '10px' }"> + <a-card :loading="loading" :bodyStyle="bodyStyle" title="我的工作" total="¥126,560"> + <a-row :gutter="10"> + <a-col :xs="24" :sm="12" :style="{ marginBottom: ' 12px' }"> + <router-link :to="{name:'Task'}"> + <div class="card-wait-data"> + <span class="myIcon"> + <my-icon type="iconziyuan1" /></span> + <div> + <p>待办访视</p> + <h1>{{ myWork.nodoVisitsNum }}</h1> + </div> + </div> + </router-link> + </a-col> + <a-col :xs="24" :sm="12" :style="{ marginBottom: ' 12px' }"> + <router-link :to="{name:'caseTransferReview'}"> + <div class="card-wait-data"> + <span class="myIcon"> + <my-icon type="iconqitabingli" /></span> + <div> + <p>待审转移病例</p> + <h1>{{ myWork.noDoPatientTransferNum }}</h1> + </div> + </div> + </router-link> + </a-col> + <a-col :xs="24" :sm="12" :style="{ marginBottom: ' 12px' }"> + <router-link :to="{name:'wxQuestionReview'}"> + <div class="card-wait-data"> + <span class="myIcon"> + <my-icon type="iconziyuan" /></span> + <div> + <p>待审问卷</p> + <h1>{{ myWork.noDoQuestionNum }}</h1> + </div> + </div> + </router-link> + </a-col> + <a-col :xs="24" :sm="12" :style="{ marginBottom: ' 12px' }"> + <router-link :to="{name:'wxPatientReportReview'}"> + <div class="card-wait-data"> + <span class="myIcon"> + <my-icon type="icondaishenzhuanyibingli" /></span> + <div> + <p>待审阅报告</p> + <h1>{{ myWork.otherNum }}</h1> + </div> + </div> + </router-link> + </a-col> + </a-row> + </a-card> + </a-col> + <a-col :sm="48" :md="24" :xl="12" :style="{ marginBottom: '10px' }"> + <a-card :loading="loading" title="病例省份占比"> + <div> + <pie></pie> + </div> + </a-card> + </a-col> + </a-row> + <a-row :gutter="10"> + <a-col :sm="48" :md="24" :lg="14" :style="{ marginBottom: '10px' }"> + <a-card :loading="loading" :bordered="false" :body-style="{ padding: '0' }"> + <div class="salesCard tooltip-y"> + <a-tabs default-active-key="1" size="large" :tab-bar-style="{ marginBottom: '10px', paddingLeft: '16px' }"> + <a-tab-pane loading="true" tab="新增病例数" key="1"> + <a-row> + <a-col :push="1" :xl="22" :lg="22" :md="22" :sm="48" :xs="48"> + <bar :data="eachMonthPatients" title="新增病例数" /> + </a-col> + </a-row> + </a-tab-pane> + <a-tab-pane tab="新增访视数" key="2"> + <a-row> + <a-col :push="1" :xl="22" :lg="22" :md="22" :sm="48" :xs="48"> + <bar :data="eachMonthBasiss" title="新增访视数" /> + </a-col> + </a-row> + </a-tab-pane> + </a-tabs> + </div> + </a-card> + </a-col> + <a-col :sm="48" :md="24" :lg="10" :style="{ marginBottom: '10px' }"> + <a-card :loading="loading" title="资料下载" :tab-list="tabList" :active-tab-key="key" + @tabChange="key => onTabChange(key, 'key')" :bordered="false" :body-style="{ padding: '0' }" :style="{ height: '208px' }"> + <div class="card-wrap" v-if="key === '3'"> + <rank-list :list="rankList3" /> + </div> + <div class="card-wrap" v-if="key === '4'"> + <rank-list :list="rankList4" /> + </div> + <div class="card-wrap" v-if="key === '5'"> + <rank-list :list="rankList5" /> + </div> + </a-card> + </a-col> + <a-col :sm="48" :md="24" :lg="10" :style="{ marginBottom: '10px' }"> + <a-card :loading="loading" title="伦理批件上传" :bordered="false" :body-style="{ padding: '0' }" :style="{ height: '140px' }"> + <div class="uploadFile" :style="file" > + <p v-if="showFile"> + <img style="height: 30px;" src="../../assets/pdf.png"/> + </p> + <div v-if="showList" style="margin-bottom: 10px;"> + <img src="../../assets/file.png" style="margin: -1px 10px 0 0;"/> + <span style="color: #3aa1ff;">{{fileName}}</span> + </div> + <a-upload + name="file" + :multiple="true" + :action="uploadUrl" + :headers="headers" + :showUploadList= "false" + @change="handleChange" + > + <a-button>上传文件</a-button> + </a-upload> + </div> + + </a-card> + </a-col> + </a-row> + </div> +</template> +<script> +import moment from 'moment'; +import { Pie, ChartCard, MiniArea, MiniBar, MiniProgress, RankList, Bar, NumberInfo, MiniSmoothArea } from '@/components'; +import { mixinDevice } from '@/utils/mixin'; +import { getAllNumbers, getMyWork, getPatientsAndBasiss, getProvinceCompare, manualList,uploadFlie,fileList } from '@/api/home'; +import { MyIcon } from '@/components/_util/util'; + +export default { + name: 'Analysis', + mixins: [mixinDevice], + components: { + ChartCard, + MiniArea, + MiniBar, + MiniProgress, + RankList, + Bar, + NumberInfo, + MiniSmoothArea, + Pie, + MyIcon + }, + data() { + return { + bodyStyle: { + padding: '12px 20px', + }, + indexData: {}, + myWork: {}, + loading: true, + rankList1: [], + rankList2: [], + rankList3: [], + rankList4: [], + rankList5: [], + eachMonthPatients: [], + eachMonthBasiss: [], + pieStyle: { + stroke: '#fff', + lineWidth: 1 + }, + headers: { + authorization: 'authorization-text', + }, + uploadUrl: process.env.VUE_APP_API_BASE_URL + 'ethics/uploadFile', + showFile:true, + showList:false, + fileName:'', + current: '', + file:"text-align: center; padding: 10px 0 10px 25px;", + tabList: [{key: '3', tab: '伦理'},{key: '4', tab: '操作手册'},{key: '5', tab: '其他'}], + key: '3' + }; + }, + created() { + var that = this + fileList().then(res => { + if(res.fileName){ + this.showFile = false + this.showList = true + this.file = "text-align: left; padding: 10px 0 10px 25px;" + } + this.fileName = res.fileName; + }); + getAllNumbers('').then(res => { + this.indexData = res.data.allNumbers; + }); + getMyWork().then(res => { + this.myWork = res.data.myWork; + }); + this.getAllPatientData('') + manualList().then(res => { + that.rankList1 = _.filter(res.data,function(v){return v.type === 1}) + that.rankList2 = _.filter(res.data,function(v){return v.type === 2}) + that.rankList3 = _.filter(res.data,function(v){return v.type === 3}) + that.rankList4 = _.filter(res.data,function(v){return v.type === 4}) + that.rankList5 = _.filter(res.data,function(v){return v.type === 5}) + }) + setTimeout(() => { + this.loading = !this.loading; + }, 1000) + // this.loadComments() + }, + methods: { + getAllPatientData (data) { + var that = this + getPatientsAndBasiss(data).then(res => { + that.eachMonthPatients = [] + that.eachMonthBasiss = [] + const keyMap = { monthDate: 'x', monthPatients: 'y' }; + const keyMap1 = { monthDate: 'x', monthBasis: 'y' } + _.each(res.data.eachMonthPatients, function(item, index) { + // console.log(item) + item.monthDate = item.monthDate + "月" + // item.monthPatients=item.monthPatients; + that.eachMonthPatients[index] = Object.keys(item).reduce((newData, key) => { + let newKey = keyMap[key] || key + newData[newKey] = item[key] + return newData + }, {}) + }) + _.each(res.data.eachMonthBasiss, function(item, index) { + // console.log(item) + item.monthDate = item.monthDate + "月"; + that.eachMonthBasiss[index] = Object.keys(item).reduce((newData, key) => { + let newKey = keyMap1[key] || key; + newData[newKey] = item[key]; + return newData; + }, {}) + }) + }) + }, + // loadComments() { + // var list = JSON.parse(localStorage.getItem("pro__Access-Token")); + // this.uploadUrl = list.value.uploadPicURL; + // }, + zkData () { + getAllNumbers(-1).then(res => { + this.indexData = res.data.allNumbers; + }); + this.getAllPatientData(-1) + }, + iconData () { + getAllNumbers(1).then(res => { + this.indexData = res.data.allNumbers; + }); + this.getAllPatientData(1) + }, + handleChange(info) { + + var url = info.file.response.fileName + var fileNames = info.file.response.originalFileName + // 判断文件格式 + var filextension = fileNames.substring(fileNames.lastIndexOf("."),fileNames.length); + filextension = filextension.toLowerCase(); + + if (filextension == '.pdf') { + const params = new URLSearchParams() + params.append('url', url) + params.append('fileName', fileNames) + uploadFlie(params).then(res => { + this.$message.success('文件上传成功'); + this.fileName = info.file.response.originalFileName + this.showFile = false + this.showList = true + this.file = "text-align: left; padding: 10px 0 10px 25px;" + }) + .catch(()=>{ + this.$message.error('文件上传失败'); + }) + + }else{ + this.$message.error('对不起,系统仅支持pdf格式的文件'); + return + } + + }, + onTabChange(key, type) { + console.log(key, type); + this[type] = key; + }, + }, +}; +</script> +<style lang="less" scoped> +/deep/ .ant-col-sm-20 { + width: 20%; +} +/deep/.ant-pro-trend .up { + color: #1aa355; +} + +/deep/.ant-tabs .ant-tabs-large-bar .ant-tabs-tab { + padding: 12px 16px; +} + +/deep/.ant-card-head-title { + padding: 10px 0px; +} + +.extra-wrapper { + line-height: 55px; + padding-right: 24px; + + .extra-item { + display: inline-block; + margin-right: 24px; + + a { + margin-left: 24px; + } + } +} + +.antd-pro-pages-dashboard-analysis-twoColLayout { + position: relative; + display: flex; + display: block; + flex-flow: row wrap; + + &.desktop div[class^='ant-col']:last-child { + position: absolute; + right: 0; + height: 100%; + } +} + +.antd-pro-pages-dashboard-analysis-salesCard { + height: calc(100% - 24px); + + /deep/ .ant-card-head { + position: relative; + } +} + +.dashboard-analysis-iconGroup { + i { + margin-left: 16px; + color: rgba(0, 0, 0, 0.45); + cursor: pointer; + transition: color 0.32s; + color: black; + } +} + +.analysis-salesTypeRadio { + position: absolute; + right: 54px; + bottom: 12px; +} + +.card-wait-data { + box-sizing: border-box; + padding: 20px; + background-color: #f7f8f8; + height: 90px; + background-image: url(''); + + span.myIcon { + display: inline-block; + vertical-align: top; + width: 40px; + + .anticon { + font-size: 25px; + } + } + + div { + display: inline-block; + + p { + margin-bottom: 0px; + } + + h1 { + font-size: 30px; + font-weight: normal; + color: #000000; + } + } +} + +/deep/.tooltip-y { + /deep/.g2-tooltip-list li { + font-size: 0px; + position: relative; + + /deep/.g2-tooltip-marker { + display: none !important; + } + + /deep/.g2-tooltip-value { + position: absolute; + font-size: 12px; + left: -30px; + } + } +} + +.page-header-index-img { + position: absolute; + top: -50px; + right: 40px; +} + +.rank{ + padding: 0 32px 32px 30px; +} +// 上传文件 +.uploadFile button{ + background: #3aa1ff; + border: none; + color: white; + border-radius: 10px; + padding: 2px 10px; + font-size: 14px; + line-height: 22px; +} + +.sxDataBox{ + position: absolute; + left: 100px; + top: 100px; +} + +.menuSty { + position: fixed; + top: 17px; + z-index: 999; + left: 276px; +} + +/deep/ .ant-card-head-wrapper{ + float: left; +} + +/deep/ .ant-card-head .ant-tabs{ + float: right; + clear: none; +} +/deep/ .card-wrap{ + height: calc(208px - 48px); + overflow: auto; +} + +</style> \ No newline at end of file diff --git a/src/views/dashboard/Workplace.vue b/src/views/dashboard/Workplace.vue index 1d2e8fe767..91bff5fd6a 100644 --- a/src/views/dashboard/Workplace.vue +++ b/src/views/dashboard/Workplace.vue @@ -1,360 +1,173 @@ <template> - <page-view :avatar="avatar" :title="false"> - <div slot="headerContent"> - <div class="title">{{ timeFix }},{{ user.name }}<span class="welcome-text">,{{ welcome() }}</span></div> - <div>前端工程师 | 蚂蚁金服 - 某某某事业群 - VUE平台</div> - </div> - <div slot="extra"> - <a-row class="more-info"> - <a-col :span="8"> - <head-info title="项目数" content="56" :center="false" :bordered="false"/> - </a-col> - <a-col :span="8"> - <head-info title="团队排名" content="8/24" :center="false" :bordered="false"/> - </a-col> - <a-col :span="8"> - <head-info title="项目访问" content="2,223" :center="false" /> - </a-col> - </a-row> - </div> - - <div> - <a-row :gutter="24"> - <a-col :xl="16" :lg="24" :md="24" :sm="24" :xs="24"> - <a-card - class="project-list" - :loading="loading" - style="margin-bottom: 24px;" - :bordered="false" - title="进行中的项目" - :body-style="{ padding: 0 }"> - <a slot="extra">全部项目</a> - <div> - <a-card-grid class="project-card-grid" :key="i" v-for="(item, i) in projects"> - <a-card :bordered="false" :body-style="{ padding: 0 }"> - <a-card-meta> - <div slot="title" class="card-title"> - <a-avatar size="small" :src="item.cover"/> - <a>{{ item.title }}</a> - </div> - <div slot="description" class="card-description"> - {{ item.description }} - </div> - </a-card-meta> - <div class="project-item"> - <a href="/#/">科学搬砖组</a> - <span class="datetime">9小时前</span> - </div> - </a-card> - </a-card-grid> - </div> - </a-card> - - <a-card :loading="loading" title="动态" :bordered="false"> - <a-list> - <a-list-item :key="index" v-for="(item, index) in activities"> - <a-list-item-meta> - <a-avatar slot="avatar" :src="item.user.avatar" /> - <div slot="title"> - <span>{{ item.user.nickname }}</span> - 在 <a href="#">{{ item.project.name }}</a> - <span>{{ item.project.action }}</span> - <a href="#">{{ item.project.event }}</a> - </div> - <div slot="description">{{ item.time }}</div> - </a-list-item-meta> - </a-list-item> - </a-list> - </a-card> - </a-col> - <a-col - style="padding: 0 12px" - :xl="8" - :lg="24" - :md="24" - :sm="24" - :xs="24"> - <a-card title="快速开始 / 便捷导航" style="margin-bottom: 24px" :bordered="false" :body-style="{padding: 0}"> - <div class="item-group"> - <a>操作一</a> - <a>操作二</a> - <a>操作三</a> - <a>操作四</a> - <a>操作五</a> - <a>操作六</a> - <a-button size="small" type="primary" ghost icon="plus">添加</a-button> - </div> - </a-card> - <a-card title="XX 指数" style="margin-bottom: 24px" :loading="radarLoading" :bordered="false" :body-style="{ padding: 0 }"> - <div style="min-height: 400px;"> - <!-- :scale="scale" :axis1Opts="axis1Opts" :axis2Opts="axis2Opts" --> - <radar :data="radarData" /> + <div> + <button @click="submit">提交</button> + <div v-for="(qu1, index) in list" :key="index"> + <p class="fl">{{qu1.questionName||''}}</p> + <div v-if="qu1.simple > 0" class="fl" style="margin-left: 50px;"> + <label><input type="radio" :name="qu1.basisElementId" :value="1" :checked="qu1.answers && qu1.answers.length && qu1.answers[0].elementNumValue === 1">是</label> + <label><input type="radio" :name="qu1.basisElementId" :value="-1" :checked="qu1.answers && qu1.answers.length && qu1.answers[0].elementNumValue === -1">否</label> + </div> + <div v-if="qu1.simple < 0 && qu1.isWrite > 0"> + <input type="text" style="margin-left: 50px;" :name="qu1.basisElementId" :value="qu1.answers && qu1.answers.length && qu1.answers[0].elementTextValue"> + </div> + <div v-if="qu1.hasChild > 0" :class="{clear: qu1.showType === 2}"> + <!-- 单选 --> + <div class="radio-group" v-if="qu1.isRadio > 0"> + <div :class="{fl: qu1.showType !== 2}" v-for="(op,index) in qu1.childList" :key="index"> + <label :class="{fl: qu1.showType !== 2}"><input type="radio" :name="op.parentId" :value="op.basisElementId">{{op.questionName||''}}</label> + <p :class="{fl: qu1.showType !== 2}" v-if="op.isWrite > 0"><input type="text" name="">{{op.unit}}</p> + </div> + </div> + <!-- 多选 --> + <div class="check-group" v-if="qu1.isRadio < 0"> + <div :class="{fl: qu1.showType !== 2}" class="clear" v-for="(op,index) in qu1.childList" :key="index" style="margin-right: 20px;"> + <label class="fl"><input type="checkbox" :name="op.parentId" :value="op.basisElementId" :data-nip="op.isWrite" :checked="op.answers && op.answers.length && op.answers[0].elementNumValue > 0">{{op.questionName||''}}</label> + <p style="margin-left: 10px;" class="fl" v-if="op.isWrite > 0"><input type="text" :name="[op.basisElementId+'-text']" :value="op.answers && op.answers.length && op.answers[0].elementTextValue || ''">{{op.unit}}</p> + <!-- 子选项 --> + <div v-if="op.hasChild > 0"> + <div class="radio-group" v-if="op.isRadio > 0"> + <div v-for="(sub,index) in op.childList"> + <label class="fl"><input type="radio" :name="sub.parentId" :value="sub.basisElementId">{{sub.questionName||''}}</label> + </div> + </div> + <div class="check-group" v-if="op.isRadio < 0"> + <div v-for="(sub,index) in op.childList"> + <label class="fl"><input type="checkbox" :name="sub.parentId" :value="sub.basisElementId">{{sub.questionName||''}}</label> + </div> + </div> </div> - </a-card> - <a-card :loading="loading" title="团队" :bordered="false"> - <div class="members"> - <a-row> - <a-col :span="12" v-for="(item, index) in teams" :key="index"> - <a> - <a-avatar size="small" :src="item.avatar" /> - <span class="member">{{ item.name }}</span> - </a> - </a-col> - </a-row> + </div> + </div> + <!-- 是题目,下面有选项 --> + <div v-else> + <div v-for="(sub, index) in qu1.childList" :key="index" class="clear"> + <p :class="{fl: sub.showType === 1}">{{sub.sort}}.{{sub.questionName||''}}:</p> + <p :class="{fl: sub.showType === 1}" v-if="sub.isWrite > 0"><input type="text" :name="sub.basisElementId" :value="sub.answers && sub.answers.length && sub.answers[0].elementTextValue||''">{{sub.unit}}</p> + <div class="radio-group" v-if="sub.isRadio > 0"> + <div v-for="(subOp,index) in sub.childList" :key="index"> + <label :class="{fl: sub.showType === 1}"><input type="radio" :name="subOp.parentId" :value="subOp.basisElementId" :data-answer-id="subOp.answers && subOp.answers.length ? subOp.answers[0].basisAnswerId : ''" :checked="subOp.answers && subOp.answers.length && subOp.answers[0].elementNumValue > 0">{{subOp.questionName||''}}</label> + </div> </div> - </a-card> - </a-col> - </a-row> + <div class="check-group" v-if="sub.isRadio < 0"></div> + </div> + </div> + </div> + <div class="clear"></div> </div> - </page-view> + </div> </template> <script> -import { timeFix } from '@/utils/util' -import { mapGetters } from 'vuex' - -import { PageView } from '@/layouts' -import HeadInfo from '@/components/tools/HeadInfo' -import { Radar } from '@/components' - -import { getRoleList, getServiceList } from '@/api/manage' - -const DataSet = require('@antv/data-set') +import { getElementsAnswer, submit } from '@/api/basis' +import _ from 'lodash' +import $ from 'jquery' export default { + name: 'Workplace', - components: { - PageView, - HeadInfo, - Radar - }, data () { return { - timeFix: timeFix(), - avatar: '', - user: {}, - - projects: [], - loading: true, - radarLoading: true, - activities: [], - teams: [], - - // data - axis1Opts: { - dataKey: 'item', - line: null, - tickLine: null, - grid: { - lineStyle: { - lineDash: null - }, - hideFirstLine: false - } - }, - axis2Opts: { - dataKey: 'score', - line: null, - tickLine: null, - grid: { - type: 'polygon', - lineStyle: { - lineDash: null - } - } - }, - scale: [{ - dataKey: 'score', - min: 0, - max: 80 - }], - axisData: [ - { item: '引用', a: 70, b: 30, c: 40 }, - { item: '口碑', a: 60, b: 70, c: 40 }, - { item: '产量', a: 50, b: 60, c: 40 }, - { item: '贡献', a: 40, b: 50, c: 40 }, - { item: '热度', a: 60, b: 70, c: 40 }, - { item: '引用', a: 70, b: 50, c: 40 } - ], - radarData: [] + list: [] } }, - computed: { - userInfo () { - return this.$store.getters.userInfo - } - }, - created () { - this.user = this.userInfo - this.avatar = this.userInfo.avatar - - getRoleList().then(res => { - // console.log('workplace -> call getRoleList()', res) - }) - - getServiceList().then(res => { - // console.log('workplace -> call getServiceList()', res) - }) - }, mounted () { - this.getProjects() - this.getActivity() - this.getTeams() - this.initRadar() + var that = this + var params = new URLSearchParams(); + params.append('basisMaskId', 10) + params.append('patientBasisId', 1) + getElementsAnswer(params) + .then(res => { + that.list = res.data + }) }, methods: { - ...mapGetters(['nickname', 'welcome']), getProjects () { - this.$http.get('/list/search/projects') + this.$http.get('/element/list') .then(res => { - this.projects = res.result && res.result.data - this.loading = false + this.list = res.result && res.result.second }) }, - getActivity () { - this.$http.get('/workplace/activity') - .then(res => { - this.activities = res.result - }) - }, - getTeams () { - this.$http.get('/workplace/teams') - .then(res => { - this.teams = res.result - }) - }, - initRadar () { - this.radarLoading = true - - this.$http.get('/workplace/radar') - .then(res => { - const dv = new DataSet.View().source(res.result) - dv.transform({ - type: 'fold', - fields: ['个人', '团队', '部门'], - key: 'user', - value: 'score' + submit(){ + var result = []; + var a = _.each(this.list, function(item){ + if(item.simple > 0){ + result.push({ + basisAnswerId: (item.answers && item.answers.length) ? item.answers[0].basisAnswerId : '', + basisElementId: item.basisElementId, + elementNumValue: $('input[name="' + item.basisElementId + '"]:checked').val() }) - - this.radarData = dv.rows - this.radarLoading = false - }) + }else if(item.isWrite > 0){ + result.push({ + basisAnswerId: (item.answers && item.answers.length) ? item.answers[0].basisAnswerId : '', + basisElementId: item.basisElementId, + elementTextValue: $('input[name="' + item.basisElementId + '"]').val() + }) + } + if(item.hasChild > 0){ + if(item.childList[0].type === 1){ + _.each(item.childList, function(sub){ + if(sub.isWrite > 0){ + result.push({ + basisAnswerId: (sub.answers && sub.answers.length) ? sub.answers[0].basisAnswerId : '', + basisElementId: sub.basisElementId, + elementTextValue: $('input[name="' + sub.basisElementId + '"]').val() + }) + } + $('input[name="' + sub.basisElementId + '"][type!="text"]').each(function(i,v){ + result.push({ + basisAnswerId: $(v).data('answerId'), + basisElementId: parseInt($(v).val()), + elementNumValue: $(v).prop('checked') ? 1 : -1 + }) + }) + }) + }else{ + $('input[name="' + item.basisElementId + '"][type!="text"]').each(function(i,v){ + if($(v).data('nip') && $(v).data('nip') > 0){ + result.push({ + basisAnswerId: (item.answers && item.answers.length) ? item.answers[0].basisAnswerId : '', + basisElementId: parseInt($(v).val()), + elementNumValue: $(v).prop('checked') ? 1 : -1, + elementTextValue: $('[name="' + $(v).val() +'-text"]').val() + }) + }else{ + result.push({ + basisAnswerId: (item.answers && item.answers.length) ? item.answers[0].basisAnswerId : '', + basisElementId: parseInt($(v).val()), + elementNumValue: $(v).prop('checked') ? 1 : -1 + }) + } + }) + } + } + }) + console.log(result) + var patientBasis = {patientBasisId:1,"patientId":1,"type":1,"executeId":1,"executeStatus":1,"status":0} + var patientBasisMark = {patientBasisId:1,"basisMarkId":10,"basisMarkName":"其他实验室检查","level":2,"progress":"10%"} + var params = new URLSearchParams(); + params.append('basisAnswer', JSON.stringify(result)) + params.append('patientBasis', JSON.stringify(patientBasis)) + params.append('patientBasisMark', JSON.stringify(patientBasisMark)) + submit(params) + .then(res => { + console.log(res) + alert('保存成功') + location.href = location.href + }) + .catch(error => { + console.log(error) + }) } } } </script> <style lang="less" scoped> - .project-list { - - .card-title { - font-size: 0; - - a { - color: rgba(0, 0, 0, 0.85); - margin-left: 12px; - line-height: 24px; - height: 24px; - display: inline-block; - vertical-align: top; - font-size: 14px; - - &:hover { - color: #1890ff; - } - } - } - .card-description { - color: rgba(0, 0, 0, 0.45); - height: 44px; - line-height: 22px; - overflow: hidden; - } - .project-item { - display: flex; - margin-top: 8px; - overflow: hidden; - font-size: 12px; - height: 20px; - line-height: 20px; - a { - color: rgba(0, 0, 0, 0.45); - display: inline-block; - flex: 1 1 0; - - &:hover { - color: #1890ff; - } - } - .datetime { - color: rgba(0, 0, 0, 0.25); - flex: 0 0 auto; - float: right; - } - } - .ant-card-meta-description { - color: rgba(0, 0, 0, 0.45); - height: 44px; - line-height: 22px; - overflow: hidden; - } + .fl{ + float: left; } - - .item-group { - padding: 20px 0 8px 24px; - font-size: 0; - a { - color: rgba(0, 0, 0, 0.65); - display: inline-block; - font-size: 14px; - margin-bottom: 13px; - width: 25%; - } - } - - .members { - a { - display: block; - margin: 12px 0; - line-height: 24px; - height: 24px; - .member { - font-size: 14px; - color: rgba(0, 0, 0, .65); - line-height: 24px; - max-width: 100px; - vertical-align: top; - margin-left: 12px; - transition: all 0.3s; - display: inline-block; - } - &:hover { - span { - color: #1890ff; - } - } - } + .clear{ + clear: both; } - - .mobile { - - .project-list { - - .project-card-grid { - width: 100%; - } - } - - .more-info { - border: 0; - padding-top: 16px; - margin: 16px 0 16px; - } - - .headerContent .title .welcome-text { - display: none; - } - } - </style> diff --git a/src/views/form/BasicForm.vue b/src/views/form/BasicForm.vue index 2107f74972..bbbe1e9c7e 100644 --- a/src/views/form/BasicForm.vue +++ b/src/views/form/BasicForm.vue @@ -1,6 +1,16 @@ <template> <a-card :body-style="{padding: '24px 32px'}" :bordered="false"> <a-form @submit="handleSubmit" :form="form"> + <a-form-item v-for="(item, index) in list" + :key="index" :label="item.sort + '.' + item.questionName" + :labelCol="{lg: {span: 7}, sm: {span: 7}}" + :wrapperCol="{lg: {span: 10}, sm: {span: 17} }"> + <a-radio-group v-decorator="[item.basisElementCopyId+'', {rules: [{required: item.required > 0, message: '请选择一个'}], initialValue: 2}]" v-model="item.basisElementId" :name="item.basisElementCopyId+''"> + <a-radio :value="1">公开</a-radio> + <a-radio :value="2">部分公开</a-radio> + <a-radio :value="3">不公开</a-radio> + </a-radio-group> + </a-form-item> <a-form-item label="标题" :labelCol="{lg: {span: 7}, sm: {span: 7}}" @@ -8,7 +18,7 @@ <a-input v-decorator="[ 'name', - {rules: [{ required: true, message: '请输入标题' }]} + {rules: [{ required: checkRe, message: '请输入标题' }], initialValue: '风动旛动'} ]" name="name" placeholder="给目标起个名字" /> @@ -22,7 +32,7 @@ style="width: 100%" v-decorator="[ 'buildTime', - {rules: [{ required: true, message: '请选择起止日期' }]} + {rules: [{ required: true, message: '请选择起止日期' }], initialValue: [moment('2019-10-01'), moment('2019-10-02')]} ]" /> </a-form-item> <a-form-item @@ -37,6 +47,17 @@ {rules: [{ required: true, message: '请输入目标描述' }]} ]" /> </a-form-item> + <a-form-item + label="多选框" + :labelCol="{lg: {span: 7}, sm: {span: 7}}" + :wrapperCol="{lg: {span: 10}, sm: {span: 17} }" + required="true"> + <a-checkbox-group v-decorator="['checkbox', {rules: [{required: true, message: '请选择'}], initialValue: [1,2]}]"> + <a-checkbox :value="1">风动旛动</a-checkbox> + <a-checkbox :value="2">辅导辅导费</a-checkbox> + <a-checkbox :value="3">法典菲尔</a-checkbox> + </a-checkbox-group> + </a-form-item> <a-form-item label="衡量标准" :labelCol="{lg: {span: 7}, sm: {span: 7}}" @@ -64,7 +85,6 @@ label="邀评人" :labelCol="{lg: {span: 7}, sm: {span: 7}}" :wrapperCol="{lg: {span: 10}, sm: {span: 17} }" - :required="false" > <a-input placeholder="请直接 @姓名/工号,最多可邀请 5 人" /> </a-form-item> @@ -72,31 +92,10 @@ label="权重" :labelCol="{lg: {span: 7}, sm: {span: 7}}" :wrapperCol="{lg: {span: 10}, sm: {span: 17} }" - :required="false" > <a-input-number :min="0" :max="100" /> <span> %</span> </a-form-item> - <a-form-item - label="目标公开" - :labelCol="{lg: {span: 7}, sm: {span: 7}}" - :wrapperCol="{lg: {span: 10}, sm: {span: 17} }" - :required="false" - help="客户、邀评人默认被分享" - > - <a-radio-group v-model="value"> - <a-radio :value="1">公开</a-radio> - <a-radio :value="2">部分公开</a-radio> - <a-radio :value="3">不公开</a-radio> - </a-radio-group> - <a-form-item> - <a-select mode="multiple" v-if="value === 2"> - <a-select-option value="4">同事一</a-select-option> - <a-select-option value="5">同事二</a-select-option> - <a-select-option value="6">同事三</a-select-option> - </a-select> - </a-form-item> - </a-form-item> <a-form-item :wrapperCol="{ span: 24 }" style="text-align: center" @@ -109,24 +108,35 @@ </template> <script> +import moment from 'moment' export default { name: 'BaseForm', data () { return { description: '表单页用于向用户收集或验证信息,基础表单常见于数据项较少的表单场景。', - value: 1, + value: undefined, // form - form: this.$form.createForm(this) - + form: this.$form.createForm(this), + list: [{"isReport":0,"answers":[{"basisAnswerId":56,"elementTextValue":"","elementNumValue":-1,"basisElementId":1001}],"simple":1,"type":1,"required":1,"childEleName":"","showType":0,"event":"","elementId":1001,"level":1,"questionName":"留全血:","sort":1,"isRadio":0,"isShow":0,"unit":"","basisElementCopyId":1001,"basisElementId":1,"hasChild":-1,"isProgress":1,"logicValue":0,"isWrite":-1}] + } + }, + computed: { + checkRe() { + return function(e){ + console.log(e) + return false + } } }, + created() { + }, methods: { - + moment, // handler handleSubmit (e) { e.preventDefault() - this.form.validateFields((err, values) => { + this.form.validateFieldsAndScroll((err, values) => { if (!err) { // eslint-disable-next-line no-console console.log('Received values of form: ', values) diff --git a/src/views/form/advancedForm/AdvancedForm.vue b/src/views/form/advancedForm/AdvancedForm.vue index 596aabfa67..4b0c7db5c6 100644 --- a/src/views/form/advancedForm/AdvancedForm.vue +++ b/src/views/form/advancedForm/AdvancedForm.vue @@ -229,7 +229,7 @@ export default { validate () { const { $refs: { repository, task }, $notification } = this const repositoryForm = new Promise((resolve, reject) => { - repository.form.validateFields((err, values) => { + repository.form.validateFieldsAndScroll((err, values) => { if (err) { reject(err) return @@ -238,7 +238,7 @@ export default { }) }) const taskForm = new Promise((resolve, reject) => { - task.form.validateFields((err, values) => { + task.form.validateFieldsAndScroll((err, values) => { if (err) { reject(err) return diff --git a/src/views/form/advancedForm/RepositoryForm.vue b/src/views/form/advancedForm/RepositoryForm.vue index 6b326aa0de..6af8546c32 100644 --- a/src/views/form/advancedForm/RepositoryForm.vue +++ b/src/views/form/advancedForm/RepositoryForm.vue @@ -94,7 +94,7 @@ export default { methods: { handleSubmit (e) { e.preventDefault() - this.form.validateFields((err, values) => { + this.form.validateFieldsAndScroll((err, values) => { if (!err) { this.$notification['error']({ message: 'Received values of form:', diff --git a/src/views/form/advancedForm/TaskForm.vue b/src/views/form/advancedForm/TaskForm.vue index eceaa9b89d..97e997fe4c 100644 --- a/src/views/form/advancedForm/TaskForm.vue +++ b/src/views/form/advancedForm/TaskForm.vue @@ -89,7 +89,7 @@ export default { methods: { handleSubmit (e) { e.preventDefault() - this.form.validateFields((err, values) => { + this.form.validateFieldsAndScroll((err, values) => { if (!err) { this.$notification['error']({ message: 'Received values of form:', diff --git a/src/views/form/stepForm/Step1.vue b/src/views/form/stepForm/Step1.vue index ff106003fa..13fa92c82b 100644 --- a/src/views/form/stepForm/Step1.vue +++ b/src/views/form/stepForm/Step1.vue @@ -72,9 +72,9 @@ export default { }, methods: { nextStep () { - const { form: { validateFields } } = this + const { form: { validateFieldsAndScroll } } = this // 先校验,通过表单校验后,才进入下一步 - validateFields((err, values) => { + validateFieldsAndScroll((err, values) => { if (!err) { this.$emit('nextStep') } diff --git a/src/views/form/stepForm/Step2.vue b/src/views/form/stepForm/Step2.vue index dc50a7fb66..f2ac3a3a98 100644 --- a/src/views/form/stepForm/Step2.vue +++ b/src/views/form/stepForm/Step2.vue @@ -73,9 +73,9 @@ export default { methods: { nextStep () { const that = this - const { form: { validateFields } } = this + const { form: { validateFieldsAndScroll } } = this that.loading = true - validateFields((err, values) => { + validateFieldsAndScroll((err, values) => { if (!err) { console.log('表单 values', values) that.timer = setTimeout(function () { diff --git a/src/views/gallery/components/mask-51.vue b/src/views/gallery/components/mask-51.vue new file mode 100644 index 0000000000..5ab94de769 --- /dev/null +++ b/src/views/gallery/components/mask-51.vue @@ -0,0 +1,676 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="4" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + <!-- 受访者:{{ $route.params.name }} --> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + <!-- 身份证:{{ $route.params.card }} --> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patient.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <!-- 血常规 --> + <a-form :form="form" @submit="handleSubmit" style="height:100%;overflow:hidden auto;-ms-overflow-x: hidden;"> + <div style="overflow: hidden;margin-top: 10px;" v-if="executeStatus !== 1"> + <!-- <a-button class="btn fr" v-if="patientBasis.type === 3" @click="import">导入</a-button> --> + <a-button class="btn fr" type="primary" html-type="submit">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + + <div class="baselineForm" :style="baselineFormStyle"> + <div class="title">血常规</div> + <a-form-item label="报告上传 :" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <div class="clearfix" style="margin-top: 10px;"> + <a-upload :action="uploadUrl" listType="picture-card" :fileList="fileList" @preview="handlePreview" @change="handleChange"> + <div v-if="fileList.length < 1"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-modal :visible="previewVisible" :footer="null" @cancel="handleCancel"> + <img alt="example" style="width: 100%" :src="previewImage" /> + </a-modal> + </div> + </a-form-item> + <a-form-item label="血红蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b1', { initialValue: initValue('b1')}]" addonAfter="g/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="白细胞:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b2', { initialValue: initValue('b2')}]" addonAfter="10^9/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="红细胞:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b3', { initialValue: initValue('b3')}]" addonAfter="10^12/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="血小板:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b4', { initialValue: initValue('b4')}]" addonAfter="10^9/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="中性粒细胞绝对值:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b5', { initialValue: initValue('b5')}]" addonAfter="10^9/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="嗜酸细胞绝对值:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b6', { initialValue: initValue('b6')}]" addonAfter="10^9/L" autocomplete="off"></a-input> + </a-form-item> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree2' +import { mapActions } from 'vuex' +import _ from 'lodash' +import $ from 'jquery' +import moment from 'moment' +import { MyIcon } from '@/components/_util/util' +import { getReportTypeMark, saveReport, getReportFormData } from '@/api/report' + +export default { + name: 'Exec51', + components: { + STree, + MyIcon + }, + data() { + return { + previewVisible: false, + previewImage: '', + uploadUrl: process.env.VUE_APP_API_UPLOAD_URL, + viewPicUrl: process.env.VUE_APP_API_VIEW_PIC_URL, + fileList: [], + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + title: '报告采集', + baselineFormStyle: { + // height: '444px', + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + openKeys: [], + defaultSelectedKeys: [51], + orgTree: [], + patient: {}, + patientBasis: {}, + reportCollectBaseId: parseInt(this.$route.params.id), + formData: undefined, + businessType: 6, + reportTypeId: 51, + reportCollectDetailId: undefined, + executeStatus: undefined, + spinning: false + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('reportCollectBaseId', this.reportCollectBaseId) + getReportTypeMark(params) + .then(res => { + that.orgTree = res.data.rcdList + that.reportCollectDetailId = _.find(res.data.rcdList, function(v) { return v.reportTypeId === 51 }).reportCollectDetailId + that.executeStatus = _.find(res.data.rcdList, function(v) { return v.reportTypeId === 51 }).collectDetailStatus + that.patient = res.data.patient + that.getFormData() + }) + .catch(error => { + console.log(error) + }) + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeRadio(e, t) { + if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + getFormData() { + var that = this + var params = new URLSearchParams() + params.append('reportCollectDetailId', this.reportCollectDetailId) + params.append('reportTypeId', this.reportTypeId) + params.append('businessType', this.businessType) + getReportFormData(params) + .then(res => { + that.formData = that.dealAnswers(res.data.bgXcg) + that.fileList = _.map(res.data.annexList, function(v) { + return { + uid: v.annexId, + url: that.viewPicUrl + v.annexAddress, + name: v.annexAddress, + status: 'done' + } + }) + }) + .catch(error => { + console.log(error) + }) + }, + initValue(key, type = 'normal') { + if (!this.formData) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.formData[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.formData[key]) + } else if (type === 'array') { + return this.formData[key].split(',') + } else { + return this.formData[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + + } + return answer + }, + handleClick(e) { + if (e.key !== this.reportCollectBaseId) { + this.$router.replace('/gallery/execute/' + this.reportCollectBaseId + '/' + e.key) + } + }, + save() { + if (!this.fileList.length) { + this.$message.warning('请上传检查报告') + return false + } + var re = this.form.getFieldsValue() + var that = this + var params = new URLSearchParams() + if (this.formData && this.formData.xcgId) { + re.xcgId = this.formData.xcgId + } + params.append('formData', JSON.stringify(re)) + params.append('reportCollectBase', JSON.stringify({ reportCollectBaseId: this.reportCollectBaseId })) + params.append('reportCollectDetail', JSON.stringify({ reportCollectDetailId: this.reportCollectDetailId, reportTypeId: this.reportTypeId, status: 1 })) + params.append('businessType', this.businessType) + var a = [] + _.each(this.fileList, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + this.spinning = true + saveReport(params) + .then(res => { + that.getFormData() + that.spinning = false + that.$message.success(res.msg) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + }, + handleSubmit(e) { + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + this.confirmLoading = true + validateFieldsAndScroll((errors, values) => { + if (!errors) { + console.log('values', values) + if (!this.fileList.length) { + this.$message.warning('请上传检查报告') + return false + } + var re = this.form.getFieldsValue() + var that = this + var params = new URLSearchParams() + if (this.formData && this.formData.xcgId) { + re.xcgId = this.formData.xcgId + } + params.append('formData', JSON.stringify(re)) + params.append('reportCollectBase', JSON.stringify({ reportCollectBaseId: this.reportCollectBaseId })) + params.append('reportCollectDetail', JSON.stringify({ reportCollectDetailId: this.reportCollectDetailId, reportTypeId: this.reportTypeId, status: 2 })) + params.append('businessType', this.businessType) + var a = [] + _.each(this.fileList, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + this.spinning = true + saveReport(params) + .then(res => { + that.getFormData() + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('reportCollectBaseId', this.reportCollectBaseId) + getReportTypeMark(params) + .then(res => { + that.orgTree = res.data.rcdList + that.reportCollectDetailId = _.find(res.data.rcdList, function(v) { return v.reportTypeId === 51 }).reportCollectDetailId + that.executeStatus = _.find(res.data.rcdList, function(v) { return v.reportTypeId === 51 }).collectDetailStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + handleCancel() { + this.previewVisible = false; + }, + handlePreview(file) { + this.previewImage = file.url || file.thumbUrl + this.previewVisible = true + }, + handleChange({ fileList }) { + var that = this + this.fileList = fileList; + if (fileList.every(function(v) { return v.status === 'done'})) { + this.spinning = false + this.fileList.forEach((f,i) => { + if(f.response){ + that.$set(that.fileList,i,{ + name: f.response.fileName, + status: 'done', + uid: f.uid, + url: f.response.data.src + }) + } + }) + } + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo{ + height:calc(100% - 10px); +} +/deep/ .card-box{ + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + .treeSubTitle{ + font-size: 14px; + } + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .baselineForm { + + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} +</style> \ No newline at end of file diff --git a/src/views/gallery/components/mask-52.vue b/src/views/gallery/components/mask-52.vue new file mode 100644 index 0000000000..906e724ef8 --- /dev/null +++ b/src/views/gallery/components/mask-52.vue @@ -0,0 +1,732 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="4" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + <!-- 受访者:{{ $route.params.name }} --> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + <!-- 身份证:{{ $route.params.card }} --> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patient.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <!-- 血生化 --> + <a-form :form="form" @submit="handleSubmit" style="height:100%;overflow:hidden auto;-ms-overflow-x: hidden;"> + <div style="overflow: hidden;margin-top: 10px;" v-if="executeStatus !== 1"> + <!-- <a-button class="btn fr" v-if="patientBasis.type === 3" @click="import">导入</a-button> --> + <a-button class="btn fr" type="primary" html-type="submit">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + + <div class="baselineForm" :style="baselineFormStyle"> + <div class="title">血生化</div> + <a-form-item label="报告上传 :" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <div class="clearfix" style="margin-top: 10px;"> + <a-upload :action="uploadUrl" listType="picture-card" :fileList="fileList" @preview="handlePreview" @change="handleChange"> + <div v-if="fileList.length < 1"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-modal :visible="previewVisible" :footer="null" @cancel="handleCancel"> + <img alt="example" style="width: 100%" :src="previewImage" /> + </a-modal> + </div> + </a-form-item> + <a-form-item label="血糖:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c1', { initialValue: initValue('c1')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="谷丙转氨酶:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c2', { initialValue: initValue('c2')}]" addonAfter="IU/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="谷草转氨酶:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c3', { initialValue: initValue('c3')}]" addonAfter="IU/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="白蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c4', { initialValue: initValue('c4')}]" addonAfter="g/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="前白蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c5', { initialValue: initValue('c5')}]" addonAfter="g/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="球蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c6', { initialValue: initValue('c6')}]" addonAfter="g/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="肌酐:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c7', { initialValue: initValue('c7')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="尿素:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c8', { initialValue: initValue('c8')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="钾:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c9', { initialValue: initValue('c9')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="钠:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c10', { initialValue: initValue('c10')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="钙:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c11', { initialValue: initValue('c11')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="磷:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c12', { initialValue: initValue('c12')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="总胆固醇:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c13', { initialValue: initValue('c13')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="甘油三脂:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c14', { initialValue: initValue('c14')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="高密度脂蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c15', { initialValue: initValue('c15')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="低密度脂蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c16', { initialValue: initValue('c16')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="DD二聚体:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-input style="width: 240px;" v-decorator="['c17', { initialValue: initValue('c17')}]" addonAfter="ng/ml" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="DD二聚体:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['c171', { initialValue: initValue('c171')}]"> + <a-radio value="1">正常</a-radio> + <a-radio value="2">降低</a-radio> + <a-radio value="3">升高</a-radio> + <a-radio value="4">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="维生素D:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-input style="width: 240px;" v-decorator="['c18', { initialValue: initValue('c18')}]" addonAfter="nmol/l" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="维生素D:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['c181', { initialValue: initValue('c181')}]"> + <a-radio value="1">正常</a-radio> + <a-radio value="2">降低</a-radio> + <a-radio value="3">升高</a-radio> + <a-radio value="4">未测量</a-radio> + </a-radio-group> + </a-form-item> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree2' +import { mapActions } from 'vuex' +import _ from 'lodash' +import $ from 'jquery' +import moment from 'moment' +import { MyIcon } from '@/components/_util/util' +import { getReportTypeMark, saveReport, getReportFormData } from '@/api/report' + +export default { + name: 'Exec52', + components: { + STree, + MyIcon + }, + data() { + return { + previewVisible: false, + previewImage: '', + uploadUrl: process.env.VUE_APP_API_UPLOAD_URL, + viewPicUrl: process.env.VUE_APP_API_VIEW_PIC_URL, + fileList: [], + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + title: '报告采集', + baselineFormStyle: { + // height: '444px', + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + openKeys: [], + defaultSelectedKeys: [52], + orgTree: [], + patient: {}, + patientBasis: {}, + reportCollectBaseId: parseInt(this.$route.params.id), + controla21: false, + controla31: false, + controla41: false, + controla51: false, + controla61: false, + formData: undefined, + businessType: 7, + reportTypeId: 52, + reportCollectDetailId: undefined, + spinning: false, + executeStatus: false + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('reportCollectBaseId', this.reportCollectBaseId) + getReportTypeMark(params) + .then(res => { + that.orgTree = res.data.rcdList + that.reportCollectDetailId = _.find(res.data.rcdList, function(v) { return v.reportTypeId === 52 }).reportCollectDetailId + that.executeStatus = _.find(res.data.rcdList, function(v) { return v.reportTypeId === 52 }).collectDetailStatus + that.patient = res.data.patient + that.getFormData() + }) + .catch(error => { + console.log(error) + }) + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeRadio(e, t) { + if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + getFormData() { + var that = this + var params = new URLSearchParams() + params.append('reportCollectDetailId', this.reportCollectDetailId) + params.append('reportTypeId', this.reportTypeId) + params.append('businessType', this.businessType) + getReportFormData(params) + .then(res => { + that.formData = that.dealAnswers(res.data.bgXsh) + that.fileList = _.map(res.data.annexList, function(v) { + return { + uid: v.annexId, + url: that.viewPicUrl + v.annexAddress, + name: v.annexAddress, + status: 'done' + } + }) + }) + .catch(error => { + console.log(error) + }) + }, + initValue(key, type = 'normal') { + if (!this.formData) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.formData[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.formData[key]) + } else if (type === 'array') { + return this.formData[key].split(',') + } else { + return this.formData[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + + } + return answer + }, + handleClick(e) { + if (e.key !== this.reportCollectBaseId) { + this.$router.replace('/gallery/execute/' + this.reportCollectBaseId + '/' + e.key) + } + }, + save() { + if (!this.fileList.length) { + this.$message.warning('请上传检查报告') + return false + } + var re = this.form.getFieldsValue() + var that = this + var params = new URLSearchParams() + if (this.formData && this.formData.xshId) { + re.xshId = this.formData.xshId + } + params.append('formData', JSON.stringify(re)) + params.append('reportCollectBase', JSON.stringify({ reportCollectBaseId: this.reportCollectBaseId })) + params.append('reportCollectDetail', JSON.stringify({ reportCollectDetailId: this.reportCollectDetailId, reportTypeId: this.reportTypeId, status: 1 })) + params.append('businessType', this.businessType) + var a = [] + _.each(this.fileList, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + this.spinning = true + saveReport(params) + .then(res => { + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + }, + handleSubmit(e) { + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + console.log('values', values) + if (!this.fileList.length) { + this.$message.warning('请上传检查报告') + return false + } + var re = this.form.getFieldsValue() + var that = this + var params = new URLSearchParams() + if (this.formData && this.formData.xshId) { + re.xshId = this.formData.xshId + } + params.append('formData', JSON.stringify(re)) + params.append('reportCollectBase', JSON.stringify({ reportCollectBaseId: this.reportCollectBaseId })) + params.append('reportCollectDetail', JSON.stringify({ reportCollectDetailId: this.reportCollectDetailId, reportTypeId: this.reportTypeId, status: 2 })) + params.append('businessType', this.businessType) + var a = [] + _.each(this.fileList, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + this.spinning = true + saveReport(params) + .then(res => { + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('reportCollectBaseId', this.reportCollectBaseId) + getReportTypeMark(params) + .then(res => { + that.orgTree = res.data.rcdList + that.reportCollectDetailId = _.find(res.data.rcdList, function(v) { return v.reportTypeId === 52 }).reportCollectDetailId + that.executeStatus = _.find(res.data.rcdList, function(v) { return v.reportTypeId === 52 }).collectDetailStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + handleCancel() { + this.previewVisible = false + }, + handlePreview(file) { + this.previewImage = file.url || file.thumbUrl + this.previewVisible = true + }, + handleChange({ fileList }) { + var that = this + this.fileList = fileList; + if (fileList.every(function(v) { return v.status === 'done'})) { + this.spinning = false + this.fileList.forEach((f,i) => { + if(f.response){ + that.$set(that.fileList,i,{ + name: f.response.fileName, + status: 'done', + uid: f.uid, + url: f.response.data.src + }) + } + }) + } + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo{ + height:calc(100% - 10px); +} +/deep/ .card-box{ + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + .treeSubTitle{ + font-size: 14px; + } + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .baselineForm { + + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} +</style> \ No newline at end of file diff --git a/src/views/gallery/components/mask-53.vue b/src/views/gallery/components/mask-53.vue new file mode 100644 index 0000000000..a34ed7dcc6 --- /dev/null +++ b/src/views/gallery/components/mask-53.vue @@ -0,0 +1,737 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="4" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + <!-- 受访者:{{ $route.params.name }} --> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + <!-- 身份证:{{ $route.params.card }} --> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patient.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <!-- 吸入支气管舒张剂前 --> + <a-form :form="form" @submit="handleSubmit" style="height:100%;overflow:hidden auto;-ms-overflow-x: hidden;"> + <div style="overflow: hidden;margin-top: 10px;" v-if="executeStatus !== 1"> + <!-- <a-button class="btn fr" v-if="patientBasis.type === 3" @click="import">导入</a-button> --> + <a-button class="btn fr" type="primary" html-type="submit">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + + <div class="baselineForm" :style="baselineFormStyle"> + <div class="title">吸入支气管舒张剂前</div> + <a-form-item label="报告上传 :" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <div class="clearfix" style="margin-top: 10px;"> + <a-upload :action="uploadUrl" listType="picture-card" :fileList="fileList" @preview="handlePreview" @change="handleChange"> + <div v-if="fileList.length < 1"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-button style="position: absolute;top: 84px;left: 120px;font-size: 12px;padding: 0 5px;height: 30px;" @click="_import">OCR识别</a-button> + <a-modal :visible="previewVisible" :footer="null" @cancel="handleCancel"> + <img alt="example" style="width: 100%" :src="previewImage" /> + </a-modal> + </div> + </a-form-item> + <a-form-item label="FEV1:" :labelCol="labelColHor" :wrapperCol="wrapperHor" style="border: none;"> + <a-radio-group v-decorator="['a21', {...require2, initialValue: initValue('a21')}]" @change="changeRadio($event, 'controla21')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="具体数值:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla21" class="border-dotted"> + <a-input style="width: 240px;" v-decorator="['a22', {...inputRequired, initialValue: initValue('a22')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="FEV1%pred:" :labelCol="labelColHor" :wrapperCol="wrapperHor" style="border: none;"> + <a-radio-group v-decorator="['a31', {...require2, initialValue: initValue('a31')}]" @change="changeRadio($event, 'controla31')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="具体数值:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla31" class="border-dotted"> + <a-input style="width: 240px;" v-decorator="['a32', {...inputRequired, initialValue: initValue('a32')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="FVC:" :labelCol="labelColHor" :wrapperCol="wrapperHor" style="border: none;"> + <a-radio-group v-decorator="['a41', {...require2, initialValue: initValue('a41')}]" @change="changeRadio($event, 'controla41')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="具体数值:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla41" class="border-dotted"> + <a-input style="width: 240px;" v-decorator="['a42', {...inputRequired, initialValue: initValue('a42')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="FVC%pred:" :labelCol="labelColHor" :wrapperCol="wrapperHor" style="border: none;"> + <a-radio-group v-decorator="['a51', {...require2, initialValue: initValue('a51')}]" @change="changeRadio($event, 'controla51')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="具体数值:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla51" class="border-dotted"> + <a-input style="width: 240px;" v-decorator="['a52', {...inputRequired, initialValue: initValue('a52')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="FEV1/FVC%pred:" :labelCol="labelColHor" :wrapperCol="wrapperHor" style="border: none;"> + <a-radio-group v-decorator="['a61', {...require2, initialValue: initValue('a61')}]" @change="changeRadio($event, 'controla61')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="具体数值:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla61" class="border-dotted"> + <a-input style="width: 240px;" v-decorator="['a62', {...inputRequired, initialValue: initValue('a62')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree2' +import { mapActions } from 'vuex' +import _ from 'lodash' +import $ from 'jquery' +import moment from 'moment' +import { MyIcon } from '@/components/_util/util' +import { getReportTypeMark, saveReport, getReportFormData } from '@/api/report' + +export default { + name: 'Exec53', + components: { + STree, + MyIcon + }, + data() { + return { + previewVisible: false, + previewImage: '', + uploadUrl: process.env.VUE_APP_API_UPLOAD_URL, + viewPicUrl: process.env.VUE_APP_API_VIEW_PIC_URL, + fileList: [], + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + title: '报告采集', + baselineFormStyle: { + // height: '444px', + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + openKeys: [], + defaultSelectedKeys: [53], + orgTree: [], + patient: {}, + patientBasis: {}, + reportCollectBaseId: parseInt(this.$route.params.id), + controla21: false, + controla31: false, + controla41: false, + controla51: false, + controla61: false, + formData: undefined, + businessType: 3, + reportTypeId: 53, + reportCollectDetailId: undefined, + spinning: false, + executeStatus: false + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('reportCollectBaseId', this.reportCollectBaseId) + getReportTypeMark(params) + .then(res => { + that.orgTree = res.data.rcdList + that.reportCollectDetailId = _.find(res.data.rcdList, function(v) { return v.reportTypeId === 53 }).reportCollectDetailId + that.executeStatus = _.find(res.data.rcdList, function(v) { return v.reportTypeId === 53 }).collectDetailStatus + that.patient = res.data.patient + that.getFormData() + }) + .catch(error => { + console.log(error) + }) + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeRadio(e, t) { + if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + getFormData() { + var that = this + var params = new URLSearchParams() + params.append('reportCollectDetailId', this.reportCollectDetailId) + params.append('reportTypeId', this.reportTypeId) + params.append('businessType', this.businessType) + getReportFormData(params) + .then(res => { + that.formData = that.dealAnswers(res.data.bgFgnq) + that.fileList = _.map(res.data.annexList, function(v) { + return { + uid: v.annexId, + url: that.viewPicUrl + v.annexAddress, + name: v.annexAddress, + status: 'done' + } + }) + }) + .catch(error => { + console.log(error) + }) + }, + initValue(key, type = 'normal') { + if (!this.formData) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.formData[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.formData[key]) + } else if (type === 'array') { + return this.formData[key].split(',') + } else { + return this.formData[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + if (answer.a21 === 1) { + this.controla21 = true + } + if (answer.a31 === 1) { + this.controla31 = true + } + if (answer.a41 === 1) { + this.controla41 = true + } + if (answer.a51 === 1) { + this.controla51 = true + } + if (answer.a61 === 1) { + this.controla61 = true + } + } + return answer + }, + handleClick(e) { + if (e.key !== this.reportCollectBaseId) { + this.$router.replace('/gallery/execute/' + this.reportCollectBaseId + '/' + e.key) + } + }, + save() { + if (!this.fileList.length) { + this.$message.warning('请上传检查报告') + return false + } + var re = this.form.getFieldsValue() + var that = this + var params = new URLSearchParams() + if (this.formData && this.formData.fgnqId) { + re.fgnqId = this.formData.fgnqId + } + params.append('formData', JSON.stringify(re)) + params.append('reportCollectBase', JSON.stringify({ reportCollectBaseId: this.reportCollectBaseId })) + params.append('reportCollectDetail', JSON.stringify({ reportCollectDetailId: this.reportCollectDetailId, reportTypeId: this.reportTypeId, status: 1 })) + params.append('businessType', this.businessType) + var a = [] + _.each(this.fileList, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + this.spinning = true + saveReport(params) + .then(res => { + that.getFormData() + that.spinning = false + that.$message.success(res.msg) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + }, + handleSubmit(e) { + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + console.log('values', values) + if (!this.fileList.length) { + this.$message.warning('请上传检查报告') + return false + } + var re = this.form.getFieldsValue() + var that = this + var params = new URLSearchParams() + if (this.formData && this.formData.fgnqId) { + re.fgnqId = this.formData.fgnqId + } + params.append('formData', JSON.stringify(re)) + params.append('reportCollectBase', JSON.stringify({ reportCollectBaseId: this.reportCollectBaseId })) + params.append('reportCollectDetail', JSON.stringify({ reportCollectDetailId: this.reportCollectDetailId, reportTypeId: this.reportTypeId, status: 2 })) + params.append('businessType', this.businessType) + var a = [] + _.each(this.fileList, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + this.spinning = true + saveReport(params) + .then(res => { + that.getFormData() + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('reportCollectBaseId', this.reportCollectBaseId) + getReportTypeMark(params) + .then(res => { + that.orgTree = res.data.rcdList + that.reportCollectDetailId = _.find(res.data.rcdList, function(v) { return v.reportTypeId === 53 }).reportCollectDetailId + that.executeStatus = _.find(res.data.rcdList, function(v) { return v.reportTypeId === 53 }).collectDetailStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + handleCancel() { + this.previewVisible = false + }, + handlePreview(file) { + this.previewImage = file.url || file.thumbUrl + this.previewVisible = true + }, + handleChange({ fileList }) { + var that = this + this.fileList = fileList; + if (fileList.every(function(v) { return v.status === 'done'})) { + this.spinning = false + this.fileList.forEach((f,i) => { + if(f.response){ + that.$set(that.fileList,i,{ + name: f.response.fileName, + status: 'done', + uid: f.uid, + url: f.response.data.src + }) + } + }) + } + }, + _import() { + var answer = { + a21: 1, + a31: 1, + a41: 1, + a51: 1, + a61: 1, + a22: '3.19', + a32: '96.6', + a42: '4.05', + a52: '98.4', + a62: '98.4', + } + this.formData = _.extend(this.formData || {}, this.dealAnswers(answer)) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo{ + height:calc(100% - 10px); +} +/deep/ .card-box{ + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + .treeSubTitle{ + font-size: 14px; + } + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .baselineForm { + + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} +</style> \ No newline at end of file diff --git a/src/views/gallery/components/mask-54.vue b/src/views/gallery/components/mask-54.vue new file mode 100644 index 0000000000..1f6ea4a693 --- /dev/null +++ b/src/views/gallery/components/mask-54.vue @@ -0,0 +1,721 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="4" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + <!-- 受访者:{{ patient.name }} --> + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + <!-- 身份证:{{ patient.card }} --> + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patient.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <!-- 吸入支气管舒张剂前 --> + <a-form :form="form" @submit="handleSubmit" style="height:100%;overflow:hidden auto;-ms-overflow-x: hidden;"> + <div style="overflow: hidden;margin-top: 10px;" v-if="executeStatus !== 1"> + <!-- <a-button class="btn fr" v-if="patientBasis.type === 3" @click="import">导入</a-button> --> + <a-button class="btn fr" type="primary" html-type="submit">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + + <div class="baselineForm" :style="baselineFormStyle"> + <div class="title">吸入支气管舒张剂后</div> + <a-form-item label="报告上传 :" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <div class="clearfix" style="margin-top: 10px;"> + <a-upload :action="uploadUrl" listType="picture-card" :fileList="fileList" @preview="handlePreview" @change="handleChange"> + <div v-if="fileList.length < 1"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-modal :visible="previewVisible" :footer="null" @cancel="handleCancel"> + <img alt="example" style="width: 100%" :src="previewImage" /> + </a-modal> + </div> + </a-form-item> + <a-form-item label="FEV1:" :labelCol="labelColHor" :wrapperCol="wrapperHor" style="border: none;"> + <a-radio-group v-decorator="['b23', {...require2, initialValue: initValue('b23')}]" @change="changeRadio($event, 'controlb23')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="具体数值:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb23" class="border-dotted"> + <a-input style="width: 240px;" v-decorator="['b24', {...inputRequired, initialValue: initValue('b24')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="FEV1%pred:" :labelCol="labelColHor" :wrapperCol="wrapperHor" style="border: none;"> + <a-radio-group v-decorator="['b33', {...require2, initialValue: initValue('b33')}]" @change="changeRadio($event, 'controlb33')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="具体数值:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb33" class="border-dotted"> + <a-input style="width: 240px;" v-decorator="['b34', {...inputRequired, initialValue: initValue('b34')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="FVC:" :labelCol="labelColHor" :wrapperCol="wrapperHor" style="border: none;"> + <a-radio-group v-decorator="['b43', {...require2, initialValue: initValue('b43')}]" @change="changeRadio($event, 'controlb43')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="具体数值:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb43" class="border-dotted"> + <a-input style="width: 240px;" v-decorator="['b44', {...inputRequired, initialValue: initValue('b44')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="FVC%pred:" :labelCol="labelColHor" :wrapperCol="wrapperHor" style="border: none;"> + <a-radio-group v-decorator="['b53', {...require2, initialValue: initValue('b53')}]" @change="changeRadio($event, 'controlb53')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="具体数值:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb53" class="border-dotted"> + <a-input style="width: 240px;" v-decorator="['b54', {...inputRequired, initialValue: initValue('b54')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="FEV1/FVC%pred:" :labelCol="labelColHor" :wrapperCol="wrapperHor" style="border: none;"> + <a-radio-group v-decorator="['b63', {...require2, initialValue: initValue('b63')}]" @change="changeRadio($event, 'controlb63')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="具体数值:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb63" class="border-dotted"> + <a-input style="width: 240px;" v-decorator="['b64', {...inputRequired, initialValue: initValue('b64')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree2' +import { mapActions } from 'vuex' +import _ from 'lodash' +import $ from 'jquery' +import moment from 'moment' +import { MyIcon } from '@/components/_util/util' +import { getReportTypeMark, saveReport, getReportFormData } from '@/api/report' + +export default { + name: 'Exec54', + components: { + STree, + MyIcon + }, + data() { + return { + previewVisible: false, + previewImage: '', + uploadUrl: process.env.VUE_APP_API_UPLOAD_URL, + viewPicUrl: process.env.VUE_APP_API_VIEW_PIC_URL, + fileList: [], + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + title: '报告采集', + baselineFormStyle: { + // height: '444px' + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + openKeys: [], + defaultSelectedKeys: [54], + orgTree: [], + patient: {}, + patientBasis: {}, + reportCollectBaseId: parseInt(this.$route.params.id), + controlb23: false, + controlb33: false, + controlb43: false, + controlb53: false, + controlb63: false, + formData: undefined, + businessType: 4, + reportTypeId: 54, + reportCollectDetailId: undefined, + spinning: false, + executeStatus: false + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('reportCollectBaseId', this.reportCollectBaseId) + getReportTypeMark(params) + .then(res => { + that.orgTree = res.data.rcdList + that.reportCollectDetailId = _.find(res.data.rcdList, function(v) { return v.reportTypeId === 54 }).reportCollectDetailId + that.executeStatus = _.find(res.data.rcdList, function(v) { return v.reportTypeId === 54 }).collectDetailStatus + that.patient = res.data.patient + that.getFormData() + }) + .catch(error => { + console.log(error) + }) + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeRadio(e, t) { + if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + getFormData() { + var that = this + var params = new URLSearchParams() + params.append('reportCollectDetailId', this.reportCollectDetailId) + params.append('reportTypeId', this.reportTypeId) + params.append('businessType', this.businessType) + getReportFormData(params) + .then(res => { + that.formData = that.dealAnswers(res.data.bgFgnh) + that.fileList = _.map(res.data.annexList, function(v) { + return { + uid: v.annexId, + url: that.viewPicUrl + v.annexAddress, + name: v.annexAddress, + status: 'done' + } + }) + }) + .catch(error => { + console.log(error) + }) + }, + initValue(key, type = 'normal') { + if (!this.formData) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.formData[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.formData[key]) + } else if (type === 'array') { + return this.formData[key].split(',') + } else { + return this.formData[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + if (answer.b23 === 1) { + this.controlb23 = true + } + if (answer.b33 === 1) { + this.controlb33 = true + } + if (answer.b43 === 1) { + this.controlb43 = true + } + if (answer.b53 === 1) { + this.controlb53 = true + } + if (answer.b63 === 1) { + this.controlb63 = true + } + } + return answer + }, + handleClick(e) { + if (e.key !== this.reportCollectBaseId) { + this.$router.replace('/gallery/execute/' + this.reportCollectBaseId + '/' + e.key) + } + }, + save() { + if (!this.fileList.length) { + this.$message.warning('请上传检查报告') + return false + } + var re = this.form.getFieldsValue() + var that = this + var params = new URLSearchParams() + if (this.formData && this.formData.fgnhId) { + re.fgnhId = this.formData.fgnhId + } + params.append('formData', JSON.stringify(re)) + params.append('reportCollectBase', JSON.stringify({ reportCollectBaseId: this.reportCollectBaseId })) + params.append('reportCollectDetail', JSON.stringify({ reportCollectDetailId: this.reportCollectDetailId, reportTypeId: this.reportTypeId, status: 1 })) + params.append('businessType', this.businessType) + var a = [] + _.each(this.fileList, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + this.spinning = true + saveReport(params) + .then(res => { + that.getFormData() + that.spinning = false + that.$message.success(res.msg) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + }, + handleSubmit(e) { + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + console.log('values', values) + if (!this.fileList.length) { + this.$message.warning('请上传检查报告') + return false + } + var re = this.form.getFieldsValue() + var that = this + var params = new URLSearchParams() + if (this.formData && this.formData.fgnhId) { + re.fgnhId = this.formData.fgnhId + } + params.append('formData', JSON.stringify(re)) + params.append('reportCollectBase', JSON.stringify({ reportCollectBaseId: this.reportCollectBaseId })) + params.append('reportCollectDetail', JSON.stringify({ reportCollectDetailId: this.reportCollectDetailId, reportTypeId: this.reportTypeId, status: 2 })) + params.append('businessType', this.businessType) + var a = [] + _.each(this.fileList, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + this.spinning = true + saveReport(params) + .then(res => { + that.getFormData() + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('reportCollectBaseId', this.reportCollectBaseId) + getReportTypeMark(params) + .then(res => { + that.orgTree = res.data.rcdList + that.reportCollectDetailId = _.find(res.data.rcdList, function(v) { return v.reportTypeId === 54 }).reportCollectDetailId + that.executeStatus = _.find(res.data.rcdList, function(v) { return v.reportTypeId === 54 }).collectDetailStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + handleCancel() { + this.previewVisible = false + }, + handlePreview(file) { + this.previewImage = file.url || file.thumbUrl + this.previewVisible = true + }, + handleChange({ fileList }) { + var that = this + this.fileList = fileList; + if (fileList.every(function(v) { return v.status === 'done'})) { + this.spinning = false + this.fileList.forEach((f,i) => { + if(f.response){ + that.$set(that.fileList,i,{ + name: f.response.fileName, + status: 'done', + uid: f.uid, + url: f.response.data.src + }) + } + }) + } + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo{ + height:calc(100% - 10px); +} +/deep/ .card-box{ + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + .treeSubTitle{ + font-size: 14px; + } + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .baselineForm { + + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} +</style> \ No newline at end of file diff --git a/src/views/gallery/execute.vue b/src/views/gallery/execute.vue new file mode 100644 index 0000000000..27ba360b5a --- /dev/null +++ b/src/views/gallery/execute.vue @@ -0,0 +1,429 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="4" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <!-- 支扩病史资料 --> + </a-col> + </a-row> + </a-card> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree2' +import { mapActions } from 'vuex' +import _ from 'lodash' +import $ from 'jquery' +import moment from 'moment' +import { MyIcon } from '@/components/_util/util' +import { getReportTypeMark } from '@/api/report' + +export default { + name: 'galleryExec', + components: { + STree, + MyIcon + }, + data() { + return { + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + title: '报告采集', + openKeys: [], + defaultSelectedKeys: [], + orgTree: [], + patient: {}, + patientBasis: {}, + reportCollectBaseId: this.$route.params.id + } + }, + created() { + var that = this + this.CloseSidebar() + // var params = new URLSearchParams() + // params.append('patientBasisId', this.patientBasisId) + // getPatientBasis(params) + // .then(res => { + // that.patient = res.data.patient + // that.patientBasis = res.data.patientBasis + // that.orgTree = res.data.list + // that.basisMaskId = that.orgTree[0].basisMarkId + // // that.getElementsAnswer() + // that.defaultSelectedKeys = [that.basisMaskId] + // that.$router.replace('/list/basis/' + that.patientBasisId + '/' + that.basisMaskId) + // }) + var params = new URLSearchParams() + params.append('reportCollectBaseId', this.reportCollectBaseId) + getReportTypeMark(params) + .then(res => { + that.orgTree = res.data.rcdList + that.patient = res.data.patient + var a = that.orgTree[0].reportTypeId + that.defaultSelectedKeys = [a] + that.$router.replace('/gallery/execute/' + that.reportCollectBaseId + '/' + a) + }) + .catch(error => { + console.log(error) + }) + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + handleClick(e) { + this.basisMaskId = e.key + // this.getElementsAnswer() + }, + save() { + + }, + submit() { + this.form.validateFieldsAndScroll((err, values) => { + if (!err) { + // eslint-disable-next-line no-console + console.log('Received values of form: ', values) + } + }) + return false + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo{ + height:calc(100% - 10px); +} +/deep/ .card-box{ + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + .treeSubTitle{ + font-size: 14px; + } + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .baselineForm { + + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} +</style> \ No newline at end of file diff --git a/src/views/gallery/index.vue b/src/views/gallery/index.vue new file mode 100644 index 0000000000..2abe81d6d7 --- /dev/null +++ b/src/views/gallery/index.vue @@ -0,0 +1,284 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索患者姓名、身份证号" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="toggleAdvanced" style="margin-left: 8px"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col :md="13" style="text-align:right" :sm="24"> + <a-button type="primary" @click="$refs.registerModal.add()">添加采集</a-button> + <!-- <a-button type="primary" style="margin-left: 10px;">导出</a-button> --> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch(3)">全部报告</p> + <p @click="tableSearch(1)">本月新增报告</p> + <p @click="tableSearch(2)">本年新增报告</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="入组编号"> + <a-input v-model.trim="queryParam.fileBasisCode" style="width: 100%" /> + </a-form-item> + <a-form-item label="姓名"> + <a-input v-model.trim="queryParam.patientName" style="width: 100%" /> + </a-form-item> + <a-form-item label="身份证号"> + <a-input v-model.trim="queryParam.card" style="width: 100%" /> + </a-form-item> + <a-form-item label="创建日期" style="margin-bottom:0;"> + <a-range-picker @change="changeTime" style="width: 100%" :value="dateArr" /> + </a-form-item> + <a-form-item style="text-align: right;margin-bottom: 0;margin-top: 15px;"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px;" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="reportCode" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <span slot="name" slot-scope="text,record" @click="showUser(record)"> + <p class="userName">{{text}}</p> + </span> + <span slot="collectStatus" slot-scope="text"> + <a-badge :status="text | statusTypeFilter" :text="text | statusFilter" /> + </span> + <template slot="action" slot-scope="text, record"> + <a @click="handleEdit(record)">执行</a> + </template> + </s-table> + <user-detail ref="detailModal" /> + <register-form ref="registerModal" @ok="handleOk"></register-form> + </a-card> +</template> +<script> +import moment from 'moment' +import { STable, Ellipsis } from '@/components' +import { getReportList } from '@/api/report' +import RegisterForm from './modules/RegisterForm' +import UserDetail from '../list/modules/UserDetail' +const statusMap = { + 0: { + status: 'default', + text: '未执行' + }, + 1: { + status: 'processing', + text: '执行中' + }, + 2: { + status: 'success', + text: '已完成' + } +} + +export default { + name: 'Gallery', + components: { + STable, + Ellipsis, + RegisterForm, + UserDetail + }, + data() { + return { + dateArr: [], + bodyStyle: { + padding: "10px", + paddingBottom: "0px" + }, + mdl: {}, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + // 表头 + columns: [{ + title: '报告编号', + dataIndex: 'reportCode', + width: '150px', + }, + { + title: '入组编号', + dataIndex: 'fileBasisCode', + width: '180px', + }, + { + title: '患者姓名', + dataIndex: 'patientName', + scopedSlots: { customRender: 'name' }, + width: '120px', + }, + { + title: '身份证号', + dataIndex: 'patientCard', + width: '200px', + }, + { + title: '创建时间', + dataIndex: 'collectDate', + customRender: collectDate => moment(collectDate).format('YYYY-MM-DD'), + width: '180px', + }, + { + title: '采集状态', + dataIndex: 'collectStatus', + scopedSlots: { customRender: 'collectStatus' }, + width: '180px', + }, + { + title: '操作', + dataIndex: 'action', + width: '100px', + className: 'operation', + scopedSlots: { customRender: 'action' } + } + ], + // 加载数据方法 必须为 Promise 对象 + loadData: parameter => { + return getReportList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + selectedRowKeys: [], + selectedRows: [], + scroll: false, + // custom table alert & rowSelection + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + optionAlertShow: false + } + }, + filters: { + statusFilter(type) { + return statusMap[type].text + }, + statusTypeFilter(type) { + return statusMap[type].status + } + }, + created() { + this.scroll = { + y: (window.screen.height - 368) + "px" + } + }, + methods: { + clearForm() { + this.queryParam = {} + this.dateArr = [] + }, + tableSearch(type) { + this.queryParam.queryType = type + this.$refs.table.refresh(); + this.advanced = false; + }, + refreshTable() { + this.advanced = false + this.$refs.table.refresh() + }, + showUser(record) { + this.$refs.detailModal.show(record) + }, + toggleAdvanced() { + this.advanced = !this.advanced + }, + handleOk() { + this.$refs.table.refresh() + }, + handleEdit(record) { + // this.$router.push({ + // name: 'Exec51', + // params: { + // id: record.reportCollectBaseId, + // name: record.patientName, + // card: record.patientCard + // } + // }) + this.$router.push('/gallery/execute/' + record.reportCollectBaseId) + }, + changeTime(time) { + this.dateArr = time; + this.queryParam.createDateStart = moment(time[0]).format('YYYY-MM-DD') + this.queryParam.createDateEnd = moment(time[1]).format('YYYY-MM-DD') + } + } +} +</script> +<style lang="less" scoped> +td.operation { + text-align: center !important; +} + +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} + +.userName { + color: #1fb2fa; + margin: 0; + + &:active, + &:hover { + text-decoration: underline; + text-underline-position: under; + text-decoration-color: #1fb2fa; + cursor: pointer; + } +} +</style> \ No newline at end of file diff --git a/src/views/gallery/modules/RegisterForm.vue b/src/views/gallery/modules/RegisterForm.vue new file mode 100644 index 0000000000..236e42e96c --- /dev/null +++ b/src/views/gallery/modules/RegisterForm.vue @@ -0,0 +1,124 @@ +<template> + <a-modal title="添加采集" :width="800" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :centered="centered" :destroyOnClose="destroyOnClose" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item v-if="JSON.stringify(userData) == '{}'"> + <a-input-search placeholder="搜索患者姓名、身份证号" @search="onSearch" v-decorator="['card', { rules: [{ required: true , message: '该选项必填'}] }]" enterButton /> + </a-form-item> + <div v-else> + <user-detail :option="userData"></user-detail> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="采集报告" key="1"> + <a-form-item> + <a-checkbox-group v-decorator="['basisElementId', { rules: [{ required: true , message: '该选项必填'}] }]" style="width:100%"> + <a-row> + <a-col :span="8" style="margin-top: 20px;" v-for="item in registerList" :key="item.id"> + <a-checkbox :value="item.value">{{ item.label }}</a-checkbox> + </a-col> + </a-row> + </a-checkbox-group> + </a-form-item> + </a-tab-pane> + </a-tabs> + </div> + </a-form> + <user-list ref="userListModule" @listen="checkuUser" /> + </a-spin> + </a-modal> +</template> +<script> + import { getReportType, createReport } from '@/api/report'; + import UserList from './UserList'; + import UserDetail from '../../list/modules/UserDetailTop.vue'; + import _ from 'lodash'; + export default { + components: { + UserList, + UserDetail + }, + data() { + return { + userData: {}, + registerList: [], + labelCol: { + xs: { span: 24 }, + sm: { span: 8 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 8 } + }, + visible: false, + confirmLoading: false, + centered: true, + maskClosable: false, + destroyOnClose: true, + bodyStyle: { + height: '480px', + overflow: 'auto' + }, + form: this.$form.createForm(this), + requiredRule: { rules: [{ required: true, message: '该选项必填' }] } + }; + }, + methods: { + add() { + this.userData = {}; + this.visible = true; + }, + handleSubmit() { + const { + form: { validateFieldsAndScroll } + } = this; + this.confirmLoading = true; + validateFieldsAndScroll((errors, fieldsValue) => { + const that = this; + if (errors) { + this.confirmLoading = false; + return; + } + const params = new URLSearchParams(); + + params.append('patientId', this.userData.patientId) + params.append('basisMarkIds', fieldsValue.basisElementId.join(',')) + createReport(params).then(res => { + console.log(res); + that.visible = false; + that.confirmLoading = false; + that.$emit('ok'); + // that.$router.push({ + // path: '/gallery/detail/' + res.data.reportCollectBaseId + // }) + }); + }); + }, + handleCancel() { + this.visible = false; + }, + onSearch(value) { + // this.form.validateFieldsAndScroll(['card'], (errors, values) => { + // if (errors) { + // return + // } + this.$refs.userListModule.add(value); + // }) + }, + checkuUser(data) { + const that = this; + this.userData = data; + getReportType() + .then(res => { + that.registerList = _.map(res.data, function (v) { + return { + value: v.basisMarkId, + label: v.basisMarkName + } + }) + }) + .catch(error => { + console.log(error) + }) + } + } + }; +</script> \ No newline at end of file diff --git a/src/views/gallery/modules/UserList.vue b/src/views/gallery/modules/UserList.vue new file mode 100644 index 0000000000..0ebed3005f --- /dev/null +++ b/src/views/gallery/modules/UserList.vue @@ -0,0 +1,126 @@ +<template> + <a-modal + title="选择患者" + :width="800" + :destroyOnClose="destroyOnClose" + :bodyStyle="bodyStyle" + :centered="centered" + :visible="visible" + :confirmLoading="confirmLoading" + @ok="checkuUser" + @cancel="handleCancel" + > + <a-spin :spinning="confirmLoading"> + <a-table :columns="columns" rowKey="patientId" :rowSelection="rowSelection" :dataSource="data" :pagination="pagination" :loading="loading" @change="handleTableChange"> + <template slot="name" slot-scope="name"> + {{ name.first }} {{ name.last }} + </template> + </a-table> + </a-spin> + </a-modal> +</template> + +<script> +import { getPatientList } from '@/api/patient' +import moment from 'moment' +import _ from 'lodash' +const columns = [ + { + title: '入组编号', + dataIndex: 'fileBasisCode' + }, + { + title: '患者姓名', + dataIndex: 'name' + }, + { + title: '身份证号', + dataIndex: 'card' + }, + { + title: '联系方式', + dataIndex: 'telephone1' + }, + { + title: '创建日期', + dataIndex: 'createDate', + customRender: createDate => moment(createDate).format('YYYY-MM-DD') + } +]; +export default { + data() { + return { + name: '', + userData: {}, + data: [], + pagination: { + defaultPageSize: 5, + pageSize: 5, + hideOnSinglePage: true, + total: 0 + }, + loading: false, + columns, + visible: false, + confirmLoading: false, + destroyOnClose: true, + centered: true, + bodyStyle: { + height: '480px', + overflow: 'auto' + } + }; + }, + methods: { + add(value) { + this.visible = true; + this.confirmLoading = true; + this.userData = {}; + this.getPatientList(1, this.pagination.pageSize, value); + }, + checkuUser() { + if (JSON.stringify(this.userData) == '{}') { + this.$message.error('您还未选择患者!') + return + } + this.$emit('listen', this.userData); + this.visible = false; + }, + handleCancel() { + this.visible = false; + }, + handleTableChange(pagination, filters, sorter) { + this.getPatientList(pagination.current, pagination.pageSize); + }, + getPatientList(pageNumber, pageSize, keyword) { + const keyWord = keyword ? keyword : ''; + const Params = new URLSearchParams(); + Params.append('pageNumber', pageNumber); + Params.append('pageSize', pageSize); + Params.append('keyWord', keyWord); + getPatientList(Params).then(res => { + this.data = res.data; + this.pagination.total = res.total; + this.confirmLoading = false; + }); + } + }, + computed: { + rowSelection() { + const { selectedRowKeys } = this; + return { + type: 'radio', + onChange: (selectedRowKeys, selectedRows) => { + this.userData = selectedRows[0]; + }, + getCheckboxProps: record => ({ + props: { + disabled: record.name === 'Disabled User', // Column configuration not to be checked + name: record.name + } + }) + }; + } + } +}; +</script> diff --git a/src/views/group/addProject.vue b/src/views/group/addProject.vue new file mode 100644 index 0000000000..773749c495 --- /dev/null +++ b/src/views/group/addProject.vue @@ -0,0 +1,301 @@ +<template> + <a-row :gutter="24" > + <a-col :sm="6"> + <a-card :bordered="false"> + <a-spin :spinning="confirmLoading"> + <div class="filterCondition" :style="{height:height}"> + <h4> + <img src="../../assets/proTitle.png" alt="" /> + 入组条件 + </h4> + <a-checkbox-group @change="onChange" :value="filterCondition"> + <a-row> + <a-col :span="24" v-for="(item, i) in filterConditionList"> + <p class="filterConditionItem"> + <a-checkbox :value="item.value">{{ item.label }}</a-checkbox> + </p> + </a-col> + </a-row> + </a-checkbox-group> + <a-button type="primary" block @click="selectfilter">查询</a-button> + </div> + </a-spin> + </a-card> + </a-col> + <a-col :sm="18"> + <a-card :bordered="false"> + <div :style="{height:height}"> + <a-row style="margin-bottom: 5px;"> + <a-col :sm="6"><p style="margin-bottom: 0px;" class="queryResults">查询结果</p></a-col> + <a-col :sm="18" style="text-align:right"> + <a-button type="primary" style="margin-right: 24px;" @click="selectAll">全选</a-button> + <a-button type="primary" @click="clearSelected">重置</a-button> + </a-col> + </a-row> + <s-table + style="text:left;" + ref="table" + size="small" + rowKey="patientId" + :columns="columns" + :data="loadData" + :alert="options.alert" + :rowSelection="options.rowSelection" + :showPagination="options.showPagination" + :scroll="options.scroll" + > + <span slot="serial" slot-scope="text, record, index">{{ index + 1 }}</span> + <span slot="visit" slot-scope="text"><a-badge :status="text | visitTypeFilter" :text="text | visitFilter" /></span> + <span slot="description" slot-scope="text"> + <ellipsis :length="8" tooltip>{{ text }}</ellipsis> + </span> + </s-table> + <a-row style="margin-top: 20px;"> + <a-col :sm="6"> + <p> + 共{{ this.total }}个,已添加 + <span>{{ this.selectedRowKeys.length }}</span> + 个 + </p> + </a-col> + <a-col :sm="18" style="text-align:right"> + <a-button type="default" style="margin-right: 24px;" @click="goGroup">取消</a-button> + <a-button type="primary" @click="addProject">添加</a-button> + </a-col> + </a-row> + </div> + </a-card> + </a-col> + </a-row> +</template> +<script> +import moment from 'moment'; +import { STable, Ellipsis } from '@/components'; +import { getDatalList, getPatientList, joinProject } from '@/api/group'; +import { getDictionaryAttributeByDictionaryId } from '@/api/basis'; +import UserDetail from '../list/modules/UserDetail'; +import Drawer from './modules/Drawer'; +import _ from 'lodash'; + +const visitMap = { + 0: { + status: 'default', + text: '死亡' + }, + 1: { + status: 'processing', + text: '跟踪' + }, + 2: { + status: 'success', + text: '完成' + }, + 3: { + status: 'error', + text: '失访' + }, + 4: { + status: "warning", + text: "警告" + } +}; + +export default { + name: 'TableList', + components: { + STable, + Ellipsis, + UserDetail, + Drawer + }, + data() { + return { + mdl: {}, + total: 0, + confirmLoading: false, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + projectId: '', + // 表头 + columns: [ + { + title: '入组编号', + dataIndex: 'fileBasisCode', + width: '120px', + }, + { + title: '患者姓名', + dataIndex: 'name', + scopedSlots: { customRender: 'name' }, + width: '140px', + }, + { + title: '身份证号', + dataIndex: 'card', + width: '220px', + }, + { + title: '创建日期', + dataIndex: 'createDate', + customRender: createDate => moment(createDate).format('YYYY-MM-DD HH:mm:ss'), + width: '200px', + }, + { + title: '访视状态', + dataIndex: 'visit', + scopedSlots: { customRender: 'visit' }, + width: '150px', + } + ], + // 加载数据方法 必须为 Promise 对象 + loadData: parameter => { + parameter.pageSize = 1000; + this.queryParam.projectId = this.project.projectId; + this.queryParam.flag = 1; + return getPatientList(Object.assign(parameter, this.queryParam)).then(res => { + this.total = res.data.length; + return res; + }); + }, + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = []; + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + }, + showPagination: false, + scroll: false + }, + optionAlertShow: false, + filterConditionList: [], + filterCondition: [], + height:(window.screen.height-270)+"px" + }; + }, + filters: { + statusFilter(type) { + return statusMap[type].text; + }, + statusTypeFilter(type) { + return statusMap[type].status; + }, + visitFilter(type) { + return visitMap[type].text; + }, + visitTypeFilter(type) { + return visitMap[type].status; + } + }, + created() { + this.options.scroll={ + y:(window.screen.height-400)+"px" + } + var that = this; + const dictionary1 = new URLSearchParams(); + dictionary1.append('dictionaryId', 6); + dictionary1.append('status', 1); + this.confirmLoading = true; + getDictionaryAttributeByDictionaryId(dictionary1).then(res => { + that.filterConditionList = _.map(res.data, function(v) { + return { + label: v.name, + value: v.dictionaryAttributeId + }; + }); + _.forEach(that.filterConditionList, function(item) { + that.filterCondition.push(item.value); + }); + console.log('this.$route.query.id', that.$route.query.patientId); + that.confirmLoading = false; + // }); + }); + }, + mounted() { + + }, + methods: { + onChange(checkedValues) { + this.filterCondition = checkedValues; + }, + selectfilter() { + const key = { + // filterCondition: this.filterCondition.join(',') + }; + console.log('key', key); + this.$refs.table.search(key); + this.$refs.table.clearSelected(); + }, + goGroup() { + this.$router.push({ path: '/group/index' }); + }, + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + addProject() { + var that = this; + this.$confirm({ + title: '提示', + content: '确认添加患者至该项目', + onOk() { + if (!that.project.projectId) { + that.$message.error("请选择项目!") + that.$router.push({path:'/group/index'}) + return; + } + const params = new URLSearchParams(); + params.append('patientArray', that.selectedRowKeys); + params.append('projectId', that.project.projectId); + that.confirmLoading = true; + + joinProject(params).then(res => { + if(res.code==0){ + that.$router.push({path:'/group/index'}) + } + that.confirmLoading = false; + }); + }, + onCancel() {} + }); + + // console.log(this.selectedRowKeys); + }, + selectAll() { + this.$refs.table.selectAll(); + }, + clearSelected() { + this.$refs.table.clearSelected(); + } + } +}; +</script> +<style lang="less" scoped> +.filterCondition { + h4 { + border-bottom: 1px solid #dddddd; + img { + width: 65px; + vertical-align: middle; + } + font-size: 20px; + } + .filterConditionItem { + margin: 20px 0; + } +} +.queryResults { + color: #1990fe; + border-left: 10px solid #1990fe; + padding-left: 20px; + font-size: 18px; +} +</style> diff --git a/src/views/group/index.vue b/src/views/group/index.vue new file mode 100644 index 0000000000..e4c7deb763 --- /dev/null +++ b/src/views/group/index.vue @@ -0,0 +1,422 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索患者姓名、身份证号" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="toggleAdvanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col :md="13" class="button-group" :sm="24"> + <span><img v-if="this.projectName" src="../../assets/duigou.png" alt="" /> {{this.projectName}}</span> + <a-button type="primary" @click="addCaces()">添加病例</a-button> + <a-button type="primary" @click="checkProject()" style="background: #ff8736;border: none;">选择项目</a-button> + <!-- <a-button type="primary" style="margin-left: 10px;">导出</a-button> --> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch(1)">本月新增病例</p> + <p @click="tableSearch(2)">本年新增病例</p> + <p @click="tableSearch(3)">全部病例</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="入组编号"> + <a-input v-model.trim="queryParam.fileBasisCode" style="width: 100%" /> + </a-form-item> + <a-form-item label="姓名"> + <a-input v-model.trim="queryParam.patientName" style="width: 100%" /> + </a-form-item> + <a-form-item label="身份证号"> + <a-input v-model.trim="queryParam.card" style="width: 100%" /> + </a-form-item> + <a-form-item label="入组日期" style="margin-bottom:0;"> + <a-range-picker @change="changeTime" style="width: 100%" :value="dateArr" /> + </a-form-item> + <a-form-item style="text-align: right;margin-bottom: 0;margin-top: 15px;"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px;" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" size="small" :scroll="scroll" rowKey="patientId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <span slot="name" slot-scope="text,record" @click="showUser(record)"> + <p class="userName">{{text}}</p> + </span> + <span slot="serial" slot-scope="text, record, index">{{ index + 1 }}</span> + <span slot="visit" slot-scope="text"> + <a-badge :status="text | visitTypeFilter" :text="text | visitFilter" /></span> + <span slot="basisList" slot-scope="basisList"> + <div v-for="pro in basisList" class="progressTag"> + <div class="progressTagContent"> + <p class="progressTagTitle">{{ pro.name }}</p> + <a-progress :strokeColor="pro.progress == 100 ? '#4BC5AC' : '#00A0E9'" :strokeWidth="10" :showInfo="false" :percent="parseInt(pro.progress)" size="small" /> + </div> + <a-icon v-if="pro.progress == 100" type="check-circle" theme="filled" /> + <span class="ant-progress-span" v-if="pro.progress < 100 && pro.progress > 0">23%</span> + <a-icon style="color:#00A0E9" v-if="pro.progress == 0" type="clock-circle" theme="filled" /> + </div> + </span> + <span slot="description" slot-scope="text"> + <ellipsis :length="8" tooltip>{{ text }}</ellipsis> + </span> + <span slot="action" slot-scope="text, record"> + <template> + <a @click="handleEdit(record)"> + 出组 + </a> + </template> + </span> + </s-table> + <user-detail ref="detailModal" /> + <drawer :maskClosable="true" ref="drawerModal" @checkedP="checkedP"></drawer> + </a-card> +</template> +<script> +import moment from 'moment' +import { STable, Ellipsis } from '@/components' +import { getDatalList, getPatientList, deleteCase } from '@/api/group' +import UserDetail from '../list/modules/UserDetail' +import Drawer from './modules/Drawer' +import $ from 'jquery' + +const visitMap = { + 0: { + status: 'default', + text: '忽略' + }, + 1: { + status: 'processing', + text: '未执行' + }, + 2: { + status: 'success', + text: '执行中' + }, + 3: { + status: 'error', + text: '已完成' + } +}; + +export default { + name: 'Group', + components: { + STable, + Ellipsis, + UserDetail, + Drawer + }, + data() { + return { + dateArr: [], + mdl: {}, + bodyStyle: { + padding: "10px", + paddingBottom: "0px" + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + // 表头 + columns: [{ + title: '入组编号', + dataIndex: 'fileBasisCode', + width: '200px', + }, + { + title: '患者姓名', + dataIndex: 'name', + scopedSlots: { customRender: 'name' }, + width: "200px" + }, + { + title: '身份证号', + dataIndex: 'card', + width: "250px" + }, + { + title: '入组日期', + dataIndex: 'joinDate', + customRender: joinDate => moment(joinDate).format('YYYY-MM-DD'), + width: "200px" + }, + // { + // title: '访视状态', + // dataIndex: 'visit', + // scopedSlots: { customRender: 'visit' }, + // width: "200px" + // }, + { + title: '操作', + dataIndex: 'action', + width: '80px', + scopedSlots: { customRender: 'action' } + } + ], + // 加载数据方法 必须为 Promise 对象 + loadData: parameter => { + this.queryParam.projectId = this.project.projectId; + return getPatientList(Object.assign(parameter, this.queryParam)).then(res => { + return res; + }); + }, + selectedRowKeys: [], + selectedRows: [], + projectName: '', + // custom table alert & rowSelection + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = []; + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + scroll: false, + optionAlertShow: false + } + }, + filters: { + statusFilter(type) { + return statusMap[type].text; + }, + statusTypeFilter(type) { + return statusMap[type].status; + }, + visitFilter(type) { + return visitMap[type].text; + }, + visitTypeFilter(type) { + return visitMap[type].status; + } + }, + created() { + this.scroll = { + y: (window.screen.height - 368) + "px" + } + }, + mounted() { + this.checkProject() + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + }, + methods: { + clearForm() { + this.queryParam = {} + this.dateArr = [] + }, + tableSearch(type) { + this.queryParam.type = type + this.$refs.table.refresh(); + this.advanced = false; + }, + refreshTable() { + this.advanced = false; + this.$refs.table.refresh(); + }, + showUser(record) { + this.$refs.detailModal.show(record); + }, + handleEdit(record) { + var that = this; + this.$confirm({ + title: '提示', + content: '确认将该患者移除项目?', + onOk() { + const params = new URLSearchParams(); + params.append('patientId', record.patientId); + params.append('projectId', that.project.projectId); + that.confirmLoading = true; + deleteCase(params).then(res => { + if (res.code == 0) { + that.$message.success(res.msg); + that.$refs.table.refresh(); + } + that.confirmLoading = false; + }); + }, + onCancel() {} + }); + }, + handleSub(record) { + if (record.status !== 0) { + this.$message.info(`${record.no} 订阅成功`); + } else { + this.$message.error(`${record.no} 订阅失败,规则已关闭`); + } + }, + handleOk() { + this.$refs.table.refresh(); + }, + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + toggleAdvanced() { + this.advanced = !this.advanced; + }, + resetSearchForm() { + this.queryParam = { + date: moment(new Date()) + }; + }, + addCaces() { + this.$router.push({ path: '/group/addProject' }) + }, + checkProject() { + this.$refs.drawerModal.showDrawer(); + }, + checkedP(data) { + this.project.projectId = data.projectId; + this.projectName = data.projectName; + const key = { + projectId: data.projectId + }; + this.$refs.table.search(key) + }, + changeTime(time) { + this.dateArr = time; + this.queryParam.joinDateStart = moment(time[0]).format('YYYY-MM-DD') + this.queryParam.joinDateEnd = moment(time[1]).format('YYYY-MM-DD') + } + } +}; +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} + +.progressTag { + display: inline-block; + width: 140px; + + /deep/ .progressTagContent { + display: inline-block; + width: 100px; + margin-right: 5px; + } + + /deep/ .progressTagTitle { + padding-left: 40px; + margin-bottom: 2px; + } + + /deep/ .progressTag .anticon { + color: #4bc5ac; + font-size: 18px; + vertical-align: bottom; + } + + /deep/ .ant-progress-inner { + background-color: #e5f6ff; + } + + /deep/ .progressTag .ant-progress-span { + color: rgb(0, 160, 233); + } +} + +.tableSearch { + background: #FFFFFF; + position: absolute; + top: 52px; + z-index: 100; +} + +.userName { + color: #1FB2FA; + margin: 0; +} + +.userName:active, +.userName:hover { + text-decoration: underline; + text-underline-position: under; + text-decoration-color: #1FB2FA; + cursor: pointer; +} + +.button-group { + overflow: hidden; + + span { + float: left; + color: #1890ff; + font-size: 18px; + height: 32px; + line-height: 32px; + + img { + display: inline-block; + width: 18px; + height: 18px; + margin-bottom: 3px; + } + } + + button { + float: right; + margin-right: 10px; + } +} +</style> \ No newline at end of file diff --git a/src/views/group/modules/Drawer.vue b/src/views/group/modules/Drawer.vue new file mode 100644 index 0000000000..535bcfa32f --- /dev/null +++ b/src/views/group/modules/Drawer.vue @@ -0,0 +1,107 @@ +<template> + <div> + <a-drawer width="350" placement="right" :closable="false" @close="onClose" :visible="visible" :maskClosable="maskClosable"> + <div class="porjectInfo"> + <h4 class="proJectInfoTitle"> + <img src="../../../assets/proTitle.png" alt="" /> + 项目 + </h4> + <p :class="[{checkedPro:i==n},'porjectItem']" @click="checkedPro(item,i)" v-for="(item,i) in dataList"> + <my-icon type="iconziyuan1" /> + {{item.projectName}} + </p> + </div> + <div + :style="{ + position: 'absolute', + left: 0, + bottom: 0, + width: '100%', + borderTop: '1px solid #e9e9e9', + padding: '10px 16px', + background: '#fff', + textAlign: 'right' + }" + > + </div> + </a-drawer> + </div> +</template> +<script> +import { MyIcon } from '@/components/_util/util' +import { getDatalList,getPatientList,joinProject } from '@/api/group' +export default { + data() { + return { + dataList:[], + n:0, + checkedP:{}, + visible: false, + maskClosable: true, + pStyle: { + fontSize: '16px', + color: 'rgba(0,0,0,0.85)', + lineHeight: '24px', + display: 'block', + marginBottom: '16px' + }, + pStyle2: { + marginBottom: '24px' + } + }; + }, + created(){ + const parems = new URLSearchParams() + parems.append('pageNumber', 1) + parems.append('pageSize', 10) + getDatalList(parems).then(res => { + this.dataList=res.data + }) + }, + components: { + MyIcon + }, + methods: { + showDrawer() { + this.visible = true + }, + onClose() { + this.$emit('checkedP', this.dataList[this.n]) + this.visible = false + }, + checkedPro(value,i){ + this.n = i + this.$emit('checkedP', this.dataList[this.n]) + this.visible = false + } + } +}; +</script> +<style lang="less" scoped> +.porjectInfo { + .proJectInfoTitle { + height: 65px; + color: #019fe7; + font-size: 20px; + border-bottom: 1px solid #dddddd; + img { + width: 65px; + } + } + .porjectItem { + margin: 0px; + font-size: 18px; + padding:20px; + color: #838383; + &:hover,&.checkedPro{ + background-color: #eaf2fd; + color: #35b4ed; + } + .anticon{ + font-size: 25px; + margin-right: 15px; + vertical-align: text-top; + } + } +} +</style> diff --git a/src/views/gw/article.vue b/src/views/gw/article.vue new file mode 100644 index 0000000000..5f882fa3a4 --- /dev/null +++ b/src/views/gw/article.vue @@ -0,0 +1,139 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.title" placeholder="搜索文章标题" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + </a-form-item> + </a-col> + <a-col :md="13" style="text-align:right" :sm="24"> + <a-button type="primary" @click="handleReview">新增</a-button> + </a-col> + </a-row> + </a-form> + </div> + + <s-table ref="table" :scroll="scroll" size="small" rowKey="textId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <template slot="terminal" slot-scope="text"> + <span v-if="text == 1">微信</span> + <span v-if="text == 2">官网</span> + </template> + <template slot="operation" slot-scope="text, record"> + <a @click="handleReview(record)">编辑</a> + </template> + </s-table> + + <article-detail ref="articleDetail" @ok="handleOk"></article-detail> + </a-card> +</template> + +<script> + import moment from 'moment' + import { getWebsiteList } from '@/api/text' + import { STable } from '@/components' + import ArticleDetail from './modules/ArticleDetail' + export default { + components: { + STable, + ArticleDetail + }, + data() { + return { + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 查询参数 + queryParam: {}, + scroll: false, + loadData: parameter => { + return getWebsiteList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [ + { + title: '文章标题', + dataIndex: 'title', + width: '220px' + }, + { + title: '文章发布人', + dataIndex: 'publisher', + width: '100px' + }, + { + title: '发布终端', + dataIndex: 'terminal', + scopedSlots: { customRender: 'terminal' }, + width: '100px' + }, + { + title: '发布时间', + dataIndex: 'publishDate', + customRender: publishDate => moment(publishDate).format('YYYY-MM-DD'), + width: '150px' + }, + { + title: '阅读量', + dataIndex: 'num', + width: '100px' + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '100px' + } + ], + } + }, + created() { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + methods: { + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + refreshTable() { + this.$refs.table.refresh() + }, + handleReview(recode) { + this.$refs.articleDetail.show(recode.textId) + }, + handleOk() { + this.$refs.table.refresh() + } + }, + } +</script> + +<style lang="less" scoped> + /deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; + } +</style> \ No newline at end of file diff --git a/src/views/gw/modules/ArticleDetail.vue b/src/views/gw/modules/ArticleDetail.vue new file mode 100644 index 0000000000..d5c3c20de6 --- /dev/null +++ b/src/views/gw/modules/ArticleDetail.vue @@ -0,0 +1,245 @@ +<template> + <a-modal :title="title" okText="发布" :width="800" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :centered="centered" :destroyOnClose="destroyOnClose" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item label="文章标题" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['title', requiredRule]" /> + </a-form-item> + <a-form-item label="标题配图" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-upload v-decorator="[ 'url', { ...requiredRule, valuePropName: 'fileList', getValueFromEvent: normFile }]" :action="action" list-type="picture" @preview="handlePreview" :remove="handleRemove"> + <a-button v-if="!fileName"> + <a-icon type="upload" />点击上传 + </a-button> + </a-upload> + <a-modal :visible="previewVisible" :footer="null" @cancel="previewVisible=false"> + <img alt="example" style="width: 100%" :src="previewImage" /> + </a-modal> + </a-form-item> + <a-form-item label="模块类型" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-select style="width: 100%" v-decorator="['type', requiredRule]"> + <a-select-option value="1">新闻动态</a-select-option> + <a-select-option value="2">通知公告</a-select-option> + <a-select-option value="3">前沿热点</a-select-option> + <a-select-option value="4">继教学院</a-select-option> + <a-select-option value="6">科普文章</a-select-option> + <a-select-option value="7">患教课件</a-select-option> + <a-select-option value="8">关于我们</a-select-option> + </a-select> + </a-form-item> + <a-form-item label="文章发布人" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['publisher', requiredRule]" /> + </a-form-item> + <a-form-item class="textarea" label="文章内容" :labelCol="labelCol" :wrapperCol="wrapperCol" style="margin-bottom:0"> + <quill-editor v-decorator="['text', { valuePropName: 'value', getValueFromEvent: normEditor }]" :options="editorOption"></quill-editor> + </a-form-item> + <a-form-item label="附件上传" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-upload v-decorator="[ 'annexUrl', { valuePropName: 'fileList', getValueFromEvent: normFile2 }]" :action="action" list-type="text" :remove="handleRemove2"> + <a-button v-if="!fileName2"> + <a-icon type="upload" />点击上传 + </a-button> + </a-upload> + </a-form-item> + </a-form> + </a-spin> + </a-modal> +</template> +<script> +import { getArticleDetail, addOrEdit } from '@/api/text' +import { quillEditor, Quill } from 'vue-quill-editor' +import Video from '@/utils/quill-video.js' +import 'quill/dist/quill.snow.css' +import quillConfig from '@/utils/quillConfig' +Quill.register(Video, true) +export default { + components: { + quillEditor + }, + data() { + return { + editorOption: quillConfig, + title: '', + bodyStyle: { + height: '500px', + overflow: 'auto' + }, + maskClosable: false, + centered: true, + destroyOnClose: true, + visible: false, + confirmLoading: false, + form: this.$form.createForm(this), + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 17 } + }, + requiredRule: { rules: [{ required: true, message: '该选项必填' }] }, + textId: '', + previewVisible: false, + previewImage: '', + action: process.env.VUE_APP_API_UPLOAD_URL, + attachsPrefix: process.env.VUE_APP_API_VIEW_PIC_URL, + fileName: '', + fileName2: '', + originalFileName: '' + } + }, + methods: { + show(textId) { + this.visible = true; + this.textId = textId; + + if (textId) { + this.confirmLoading = true + this.title = '修改文章' + const params = { + textId, + terminal: '2' + } + getArticleDetail(params).then(res => { + this.confirmLoading = false + this.form.setFieldsValue({ + title: res.data.title, + type: String(res.data.type), + publisher: res.data.publisher, + text: res.data.text + }); + if (res.data.url) { + this.form.setFieldsValue({ + url: [{ + uid: '1', + name: res.data.url, + status: 'done', + url: this.attachsPrefix + res.data.url + }], + }) + } + this.fileName = res.data.url + if (res.data.annexUrl) { + this.form.setFieldsValue({ + annexUrl: [{ + uid: '2', + name: res.data.annexUrl, + status: 'done', + url: this.attachsPrefix + res.data.annexUrl + }], + }) + } + this.fileName2 = res.data.annexUrl + this.originalFileName = res.data.originalFileName + }) + } else { + this.title = '新增文章' + this.fileName = '' + this.fileName2 = '' + this.originalFileName = '' + } + }, + handleChange(e) { + if (e.target.value) { + this.form.setFieldsValue({ type: '' }) + } + }, + normEditor(e) { + return e && e.html + }, + normFile(e) { + if (Array.isArray(e)) { + return e; + } + const isJPG = e.file.type === 'image/jpeg'; + const isPNG = e.file.type === 'image/png'; + if (!(isJPG || isPNG)) { + this.$message.error('请上传正确的图片格式'); + } + const isLt1M = e.file.size / 1024 / 1024 < 1; + if (!isLt1M) { + this.$message.error('图片大小不能超过1MB!'); + } + if (e.file.status == 'done') { + this.fileName = e.file.response.fileName + } + if ((isJPG || isPNG) && isLt1M) { + return e && e.fileList; + } + return [] + }, + normFile2(e) { + if (Array.isArray(e)) { + return e; + } + if (e.file.status == 'done') { + this.fileName2 = e.file.response.fileName + this.originalFileName = e.file.response.originalFileName + } + return e && e.fileList + }, + handleRemove(file) { + this.fileName = '' + }, + handleRemove2(file) { + this.fileName2 = '' + this.originalFileName = '' + }, + handlePreview(file) { + this.previewImage = file.url || file.thumbUrl + this.previewVisible = true + }, + handleSubmit() { + this.confirmLoading = true + + const { form: { validateFieldsAndScroll } } = this; + + validateFieldsAndScroll((errors, fieldsValue) => { + if (errors) { + this.confirmLoading = false; + return; + } + + const params = new FormData() + const textWx = { + ...fieldsValue, + terminal: '2', + url: this.fileName, + annexUrl: this.fileName2, + originalFileName: this.originalFileName + } + if (this.textId) { + textWx.textId = this.textId + } + params.append('entity', JSON.stringify(textWx)) + + addOrEdit(params).then(res => { + this.$message.success(res.msg); + this.visible = false + this.confirmLoading = false + this.$emit('ok') + }) + }) + }, + handleCancel() { + this.visible = false + } + } +} +</script> +<style lang="less" scoped> +.textarea { + /deep/.ant-form-item-control { + line-height: 1; + } +} + +/deep/ .ql-editor { + height: 350px; +} +/deep/ .ql-video[type='file'] { + display: none; +} +/deep/ .ql-editor .ql-video { + width: 100%; +} +</style> \ No newline at end of file diff --git a/src/views/gw/pageConfigure.vue b/src/views/gw/pageConfigure.vue new file mode 100644 index 0000000000..35d2658f34 --- /dev/null +++ b/src/views/gw/pageConfigure.vue @@ -0,0 +1,299 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <a-spin :spinning="isLoading"> + <a-row class="btns" type="flex" justify="end"> + <a-button type="primary" :loading="isLoading" @click="save">保存</a-button> + </a-row> + <a-row class="content"> + <a-divider orientation="left">Banner</a-divider> + <a-row class="block-item" type="flex" justify="space-between"> + <a-col class="banner-item" v-for="(item, index) in bannerData" :key="index"> + <a-row class="banner-item-top" type="flex" justify="space-between" align="middle"> + <span class="title">banner{{index+1}}</span> + <a-upload v-if="item.src" :beforeUpload="(res)=>beforeUpload(res,index)" :showUploadList="false" :action="action" @change="handleBannerChange"> + <a-button> + <a-icon type="upload" />替换 + </a-button> + </a-upload> + </a-row> + <div class="banner-item-img" :class="item.src ? 'active' : ''"> + <img v-if="item.src" :src="attachsPrefix + item.src"> + <a-upload-dragger v-else :beforeUpload="(res)=>beforeUpload(res,index)" :showUploadList="false" :action="action" @change="handleBannerChange"> + <p class="ant-upload-drag-icon"> + <a-icon type="upload" /> + </p> + <p class="ant-upload-text">上传图片</p> + </a-upload-dragger> + </div> + <a-row type="flex" align="middle"> + <span class="tip-icon"></span> + <span>建议图片尺寸1100*400px,小于1MB</span> + </a-row> + </a-col> + </a-row> + + <a-divider orientation="left">项目介绍</a-divider> + <a-row class="block-item"> + <quill-editor v-model="text" :options="editorOption"></quill-editor> + </a-row> + + <a-divider orientation="left">项目轮播图</a-divider> + <a-row class="block-item" type="flex" justify="space-between"> + <a-col class="lunbo-item" v-for="(item, index) in lunboData" :key="index"> + <a-row class="lunbo-item-top" type="flex" justify="space-between" align="middle"> + <span class="title">轮播图{{index+1}}</span> + <a-upload v-if="item.src" :beforeUpload="(res)=>beforeUpload(res,index)" :showUploadList="false" :action="action" @change="handleLunboChange"> + <a-button> + <a-icon type="upload" />替换 + </a-button> + </a-upload> + </a-row> + <div class="lunbo-item-img" :class="item.src ? 'active' : ''"> + <img v-if="item.src" :src="attachsPrefix + item.src"> + <a-upload-dragger v-else :beforeUpload="(res)=>beforeUpload(res,index)" :showUploadList="false" :action="action" @change="handleLunboChange"> + <p class="ant-upload-drag-icon"> + <a-icon type="upload" /> + </p> + <p class="ant-upload-text">上传图片</p> + </a-upload-dragger> + </div> + <a-row type="flex" align="middle"> + <span class="tip-icon"></span> + <span>建议图片尺寸320*240px,小于500KB</span> + </a-row> + <a-row style="margin-top:10px"> + <a-input v-model="item.remake" placeholder="填写图片说明" /> + </a-row> + </a-col> + </a-row> + + <a-divider orientation="left">友情链接</a-divider> + <a-row type="flex" justify="space-between"> + <a-col class="blog-item" v-for="(item, index) in blogData" :key="index"> + <a-row class="blog-item-top" type="flex" justify="space-between" align="middle"> + <span class="title">友情链接{{index+1}}</span> + <a-upload v-if="item.url" :beforeUpload="(res)=>beforeUpload(res,index)" :showUploadList="false" :action="action" @change="handleBlogChange"> + <a-button> + <a-icon type="upload" />替换 + </a-button> + </a-upload> + </a-row> + <div class="blog-item-img" :class="item.url ? 'active' : ''"> + <img v-if="item.url" :src="attachsPrefix + item.url"> + <a-upload-dragger v-else :beforeUpload="(res)=>beforeUpload(res,index)" :showUploadList="false" :action="action" @change="handleBlogChange"> + <p class="ant-upload-drag-icon"> + <a-icon type="upload" /> + </p> + <p class="ant-upload-text">上传图片</p> + </a-upload-dragger> + </div> + <a-row type="flex" align="middle"> + <span class="tip-icon"></span> + <span>建议图片尺寸240*100px,小于500KB</span> + </a-row> + <a-row style="margin-top:10px"> + <a-input v-model="item.link" placeholder="链接地址" /> + </a-row> + </a-col> + </a-row> + </a-row> + </a-spin> + </a-card> +</template> + +<script> + import { getDataList, saveData } from '@/api/textGwLb' + import { quillEditor } from 'vue-quill-editor' + import 'quill/dist/quill.snow.css' + import quillConfig from '@/utils/quillConfig' + export default { + components: { + quillEditor + }, + data() { + return { + bodyStyle: { + padding: '10px' + }, + isLoading: false, + bannerData: [ + { src: '' }, + { src: '' }, + { src: '' } + ], + text: '', + editorOption: quillConfig, + lunboData: [ + { src: '', remake: '' }, + { src: '', remake: '' }, + { src: '', remake: '' } + ], + blogData: [ + { url: '', link: '' }, + { url: '', link: '' }, + { url: '', link: '' }, + { url: '', link: '' } + ], + activeIndex: 0, + action: process.env.VUE_APP_API_UPLOAD_URL, + attachsPrefix: process.env.VUE_APP_API_VIEW_PIC_URL, + } + }, + mounted() { + this.getData(); + }, + methods: { + getData() { + this.isLoading = true + getDataList().then(res => { + this.isLoading = false + + this.bannerData[0].src = res.data.textGwLb.topUrl1 + this.bannerData[1].src = res.data.textGwLb.topUrl2 + this.bannerData[2].src = res.data.textGwLb.topUrl3 + this.lunboData[0].src = res.data.textGwLb.projectUrl1 + this.lunboData[1].src = res.data.textGwLb.projectUrl2 + this.lunboData[2].src = res.data.textGwLb.projectUrl3 + this.lunboData[0].remake = res.data.textGwLb.url1Remake + this.lunboData[1].remake = res.data.textGwLb.url2Remake + this.lunboData[2].remake = res.data.textGwLb.url3Remake + this.text = res.data.textGwLb.text + + res.data.textGwLbDetailList.forEach((item, index) => { + this.blogData[index].url = item.url + this.blogData[index].link = item.link + }) + }) + }, + beforeUpload(file, index) { + this.activeIndex = index + const isJPG = file.type === 'image/jpeg'; + const isPNG = file.type === 'image/png'; + if (!(isJPG || isPNG)) { + this.$message.error('只能上传jpg或png格式的图片!'); + } + const isLt1M = file.size / 1024 / 1024 < 1; + if (!isLt1M) { + this.$message.error('图片大小不能超过1MB!'); + } + return (isJPG || isPNG) && isLt1M; + }, + handleBannerChange(info) { + if (info.file.status === 'done') { + this.bannerData[this.activeIndex].src = info.file.response.fileName + } + }, + handleLunboChange(info) { + if (info.file.status === 'done') { + this.lunboData[this.activeIndex].src = info.file.response.fileName + } + }, + handleBlogChange(info) { + if (info.file.status === 'done') { + this.blogData[this.activeIndex].url = info.file.response.fileName + } + }, + save() { + const params = new FormData() + const textGwLb = { + textId: 1, + top_url1: this.bannerData[0].src, + top_url2: this.bannerData[1].src, + top_url3: this.bannerData[2].src, + text: this.text, + project_url1: this.lunboData[0].src, + url1Remake: this.lunboData[0].remake, + project_url2: this.lunboData[1].src, + url2Remake: this.lunboData[1].remake, + project_url3: this.lunboData[2].src, + url3Remake: this.lunboData[2].remake, + } + params.append('textGwLb', JSON.stringify(textGwLb)) + params.append('entity', JSON.stringify(this.blogData)) + + this.isLoading = true + saveData(params).then(res => { + this.isLoading = false + this.$message.success(res.msg) + }) + } + }, + } +</script> + +<style lang="less" scoped> + /deep/ .ql-editor { + height: 350px; + } + /deep/ .ant-spin-nested-loading > div > .ant-spin { + max-height: inherit; + } + /deep/ .ant-divider-horizontal.ant-divider-with-text-left { + margin: 10px 0; + } + img { + width: 100%; + height: 100%; + } + .btns { + padding-bottom: 10px; + } + .content { + height: 780px; + padding: 0 20px 20px; + overflow: auto; + } + .block-item { + margin-bottom: 80px; + } + .title { + height: 20px; + line-height: 20px; + font-size: 16px; + font-weight: bold; + border-left: 5px solid #1890ff; + padding-left: 5px; + } + .tip-icon { + width: 16px; + height: 20px; + background-image: url('../../assets/tip-icon.png'); + background-size: 100% 100%; + margin-right: 5px; + } + .active { + // border: 2px solid #40a9ff; + border: 2px solid rgba(64, 169, 255, 0.6); + padding: 5px; + } + .banner-item { + width: 450px; + &-top { + height: 36px; + } + &-img { + height: 170px; + margin: 15px 0; + } + } + .lunbo-item { + width: 350px; + &-top { + height: 36px; + } + &-img { + height: 250px; + margin: 15px 0; + } + } + .blog-item { + width: 300px; + &-top { + height: 36px; + } + &-img { + height: 130px; + margin: 15px 0; + } + } +</style> \ No newline at end of file diff --git a/src/views/icon/jxjzq.vue b/src/views/icon/jxjzq.vue new file mode 100644 index 0000000000..1a35514300 --- /dev/null +++ b/src/views/icon/jxjzq.vue @@ -0,0 +1,1271 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height: 100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <a-form-item label="(1) 急性加重日期" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" :disabledDate="disabledDate" v-decorator="['t', {...dateRequire, initialValue: initValue('t', 'time')}]"></a-date-picker> + </a-form-item> + <a-form-item label="(2) 急性加重结束日期" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" :disabledDate="disabledDate" v-decorator="['t4', {...dateRequire, initialValue: initValue('t4', 'time')}]"></a-date-picker> + </a-form-item> + <a-form-item label="(3) 急性加重的症状(多选):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['t1', {...selectRequired, initialValue: initValue('t1', 'array')}]" class="control-m-line"> + <a-checkbox value="1">咳嗽</a-checkbox> + <a-checkbox value="2">咳痰</a-checkbox> + <a-checkbox value="3">脓性痰</a-checkbox> + <a-checkbox value="4">痰血</a-checkbox> + <a-checkbox value="5">咯血</a-checkbox> + <a-checkbox value="6">胸闷</a-checkbox> + <a-checkbox value="7">喘息</a-checkbox> + <a-checkbox value="8">呼吸困难</a-checkbox> + <a-checkbox value="9">胸痛</a-checkbox> + <a-checkbox value="10">发热</a-checkbox> + <a-checkbox value="11">乏力</a-checkbox> + <a-checkbox value="12">纳差</a-checkbox> + <a-checkbox value="13">消瘦</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="(4) 气道分泌物微生物培养" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['t2', {nitialValue: initValue('t2')}]" @change="changeRadio($event, 'controlt2')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlt2"> + <a-form-item label="分离到微生物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['a', { initialValue: initValue('a', 'array')}]"> + <a-checkbox value="1" @change="changeSelect($event, 'control1')">细菌</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'control2')">真菌</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'control3')">分枝杆菌</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'control4')">其他</a-checkbox> + <a-checkbox value="5" @change="changeSelect($event, 'control5')">无</a-checkbox> + </a-checkbox-group> + </a-form-item> + <div v-if="control1"> + <div class="title">1.细菌</div> + <a-form-item label="(1) 取样日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['a1', { initialValue: initValue('a1', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="(2) 种类:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['a11', { initialValue: initValue('a11', 'array')}]"> + <a-checkbox value="1">铜绿假单胞菌</a-checkbox> + <a-checkbox value="2">肺炎链球菌</a-checkbox> + <a-checkbox value="3">肺炎克雷伯菌</a-checkbox> + <a-checkbox value="4">阴沟肠杆菌</a-checkbox> + <a-checkbox value="5">副流感嗜血杆菌</a-checkbox> + <a-checkbox value="6">鲍曼不动杆菌</a-checkbox> + <a-checkbox value="7">金黄色葡萄球菌</a-checkbox> + <a-checkbox value="8" @change="changeSelect($event, 'controla118')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他细菌名称:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controla118"> + <a-input style="width: 240px;margin-right: 10px;" autocomplete="off" v-decorator="['a12', {...inputRequired, initialValue: initValue('a12')}]"></a-input> + </a-form-item> + </div> + <div v-if="control2"> + <div class="title">2.真菌</div> + <a-form-item label="(1) 取样日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['a2', { initialValue: initValue('a2', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="(2) 种类:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['a21', { initialValue: initValue('a21', 'array')}]"> + <a-checkbox value="0">白色念珠菌</a-checkbox> + <a-checkbox value="1">曲霉</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controla212')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他真菌名称:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controla212"> + <a-input style="width: 240px;margin-right: 10px;" autocomplete="off" v-decorator="['a22', {...inputRequired, initialValue: initValue('a22')}]"></a-input> + </a-form-item> + </div> + <div v-if="control3"> + <div class="title">3.分枝杆菌</div> + <a-form-item label="(1) 取样日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['a3', { initialValue: initValue('a3', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="(2) 种类:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['a31', { initialValue: initValue('a31', 'array')}]"> + <a-checkbox value="1">结核分枝杆菌</a-checkbox> + <a-checkbox value="2">非结核分枝杆菌</a-checkbox> + </a-checkbox-group> + </a-form-item> + </div> + <div v-if="control4"> + <div class="title">4.其他病原</div> + <a-form-item label="(1) 取样日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['a4', { initialValue: initValue('a4', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="(2) 种类:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['a41', {...inputRequired, initialValue: initValue('a41')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + </div> + <a-form-item label="(5) 其他方法获得的病原学信息" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + </a-form-item> + <a-form-item label="取样日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['a5', {initialValue: initValue('a5', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="种类:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['a51', {initialValue: initValue('a51')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(6) 血常规检测结果" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b1', {initialValue: initValue('b1')}]" @change="changeRadio($event, 'controlb1')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb1"> + <a-form-item label="检查时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['b11', { initialValue: initValue('b11', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> + <a-form-item label="白细胞:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b12', { initialValue: initValue('b12')}]" addonAfter="10^9/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="中性粒细胞绝对值:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b13', { initialValue: initValue('b13')}]" addonAfter="10^9/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="淋巴细胞绝对值:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b14', { initialValue: initValue('b14')}]" addonAfter="10^9/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="C反应蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b15', { initialValue: initValue('b15')}]" addonAfter="mg/L" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(7) 急性加重是否住院" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b2', {initialValue: initValue('b2')}]" @change="changeRadio($event, 'controlb2')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb2"> + <a-form-item label="(7-1) 本次支气管扩张急性加重的住院日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-date-picker placeholder="请选择" v-decorator="['b21', {initialValue: initValue('b21', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> + <a-form-item label="(7-2) 本次支气管扩张急性加重的出院日期" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['b22', {initialValue: initValue('b22', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> + </div> + <a-form-item label="(8) 本次支气管扩张急性加重时的抗生素治疗" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-checkbox-group v-decorator="['b3', {...selectRequired, initialValue: initValue('b3', 'array')}]" class="control-m-line"> + <a-checkbox value="1" @change="changeSelect($event, 'controlb31')">哌拉西林</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controlb32')">哌拉西林/他唑巴坦</a-checkbox> + <a-checkbox value="19" @change="changeSelect($event, 'controlb319')">头孢曲松</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'controlb33')">头孢他啶</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'controlb34')">头孢哌酮</a-checkbox> + <a-checkbox value="5" @change="changeSelect($event, 'controlb35')">头孢哌酮/舒巴坦</a-checkbox> + <a-checkbox value="6" @change="changeSelect($event, 'controlb36')">头孢吡肟</a-checkbox> + <a-checkbox value="20" @change="changeSelect($event, 'controlb320')">头孢类抗生素(头孢呋辛、头孢西丁等)</a-checkbox> + <a-checkbox value="7" @change="changeSelect($event, 'controlb37')">亚胺培南</a-checkbox> + <a-checkbox value="8" @change="changeSelect($event, 'controlb38')">美罗培南</a-checkbox> + <a-checkbox value="9" @change="changeSelect($event, 'controlb39')">氨曲南</a-checkbox> + <a-checkbox value="10" @change="changeSelect($event, 'controlb310')">环丙沙星</a-checkbox> + <a-checkbox value="11" @change="changeSelect($event, 'controlb311')">左氧氟沙星</a-checkbox> + <a-checkbox value="12" @change="changeSelect($event, 'controlb312')">阿米卡星</a-checkbox> + <a-checkbox value="13" @change="changeSelect($event, 'controlb313')">妥布霉素</a-checkbox> + <a-checkbox value="14" @change="changeSelect($event, 'controlb314')">庆大霉素</a-checkbox> + <a-checkbox value="15" @change="changeSelect($event, 'controlb315')">多黏菌素E</a-checkbox> + <a-checkbox value="16" @change="changeSelect($event, 'controlb316')">多黏菌素B</a-checkbox> + <a-checkbox value="17" @change="changeSelect($event, 'controlb317')">磷霉素</a-checkbox> + <a-checkbox value="18" @change="changeSelect($event, 'controlb318')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <div v-if="controlb31"> + <a-form-item label="哌拉西林起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b31', { initialValue: initValue('b31', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="哌拉西林停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b32', { initialValue: initValue('b32', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb32"> + <a-form-item label="哌拉西林/他唑巴坦起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b41', { initialValue: initValue('b41', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="哌拉西林/他唑巴坦停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b42', { initialValue: initValue('b42', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb319"> + <a-form-item label="头孢曲松起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b231', { initialValue: initValue('b231', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="头孢曲松停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b232', { initialValue: initValue('b232', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb33"> + <a-form-item label="头孢他啶起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b51', { initialValue: initValue('b51', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="头孢他啶停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b52', { initialValue: initValue('b52', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb34"> + <a-form-item label="头孢哌酮起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b61', { initialValue: initValue('b61', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="头孢哌酮停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b62', { initialValue: initValue('b62', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb35"> + <a-form-item label="头孢哌酮/舒巴坦起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b71', { initialValue: initValue('b71', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="头孢哌酮/舒巴坦停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b72', { initialValue: initValue('b72', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb36"> + <a-form-item label="头孢吡肟起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b81', { initialValue: initValue('b81', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="头孢吡肟停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b82', { initialValue: initValue('b82', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb320"> + <a-form-item label="头孢类抗生素(头孢呋辛、头孢西丁等)起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b241', { initialValue: initValue('b241', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="头孢类抗生素(头孢呋辛、头孢西丁等)停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b242', { initialValue: initValue('b242', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb37"> + <a-form-item label="亚胺培南起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b91', { initialValue: initValue('b91', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="亚胺培南停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b92', { initialValue: initValue('b92', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb38"> + <a-form-item label="美罗培南起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b101', { initialValue: initValue('b101', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="美罗培南停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b102', { initialValue: initValue('b102', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb39"> + <a-form-item label="氨曲南起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b111', { initialValue: initValue('b111', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="氨曲南停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b112', { initialValue: initValue('b112', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb310"> + <a-form-item label="环丙沙星起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b121', { initialValue: initValue('b121', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="环丙沙星停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b122', { initialValue: initValue('b122', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb311"> + <a-form-item label="左氧氟沙星起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b131', { initialValue: initValue('b131', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="左氧氟沙星停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b132', { initialValue: initValue('b132', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb312"> + <a-form-item label="阿米卡星起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b141', { initialValue: initValue('b141', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="阿米卡星停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b142', { initialValue: initValue('b142', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb313"> + <a-form-item label="妥布霉素起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b151', { initialValue: initValue('b151', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="妥布霉素停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b152', { initialValue: initValue('b152', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb314"> + <a-form-item label="庆大霉素起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b161', { initialValue: initValue('b161', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="庆大霉素停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b162', { initialValue: initValue('b162', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb315"> + <a-form-item label="多黏菌素E起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b171', { initialValue: initValue('b171', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="多黏菌素E停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b172', { initialValue: initValue('b172', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb316"> + <a-form-item label="多黏菌素B起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b181', { initialValue: initValue('b181', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="多黏菌素B停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b182', { initialValue: initValue('b182', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb317"> + <a-form-item label="磷霉素起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b191', { initialValue: initValue('b191', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="磷霉素停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b192', { initialValue: initValue('b192', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <div v-if="controlb318"> + <a-form-item label="其他抗生素种类" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;margin-right: 10px;" autocomplete="off" v-decorator="['b201', { initialValue: initValue('b201')}]"></a-input> + </a-form-item> + <a-form-item label="其他抗生素起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b202', {initialValue: initValue('b202', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="其他抗生素停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b203', {initialValue: initValue('b203', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="其他抗生素种类" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;margin-right: 10px;" autocomplete="off" v-decorator="['b211', {...inputRequired, initialValue: initValue('b211')}]"></a-input> + </a-form-item> + <a-form-item label="其他抗生素起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b212', {initialValue: initValue('b212', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="其他抗生素停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b213', {initialValue: initValue('b213', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="其他抗生素种类" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;margin-right: 10px;" autocomplete="off" v-decorator="['b221', {...inputRequired, initialValue: initValue('b221')}]"></a-input> + </a-form-item> + <a-form-item label="其他抗生素起始日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b222', {initialValue: initValue('b222', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="其他抗生素停药日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b223', {initialValue: initValue('b223', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, getMedicineAllergyList, recoverSubmit } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import AddTable from "@/views/account/center/model/table" +import { ACCESS_TOKEN } from '@/store/mutation-types' +export default { + name: 'iconJxjzq', + components: { + STree, + MyIcon, + AddTable + }, + data() { + return { + markName: 'iconjxjz', + title: '急性加重期', + openKeys: [], + orgTree: [], + patient: {}, + patientBasis: {}, + defaultSelectedKeys: [], + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + baselineFormStyle: { + // height: '444px', + 'padding-top': '52px' + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 5, offset: 3 } + }, + wrapperOffset: { + md: { span: 16 } + }, + labelColOffset2: { + md: { span: 6, offset: 3 } + }, + wrapperOffset2: { + md: { span: 15 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + inputNumRequired: { + rules: [{ type: 'number', required: true, message: '请填写数字!',transform:(value)=> {return Number(value)} }] + }, + form: this.$form.createForm(this), + patientBasisId: this.$route.params.id, + iconjxjz: undefined, + maskId: undefined, + spinning: false, + executeStatus: false, + optionDataSource: [], + picList: [], + type: '', + controlt2: false, + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + control1: false, + control2: false, + control3: false, + control4: false, + control5: false, + controla118: false, + controla212: false, + controlb1: false, + controlb2: false, + controlb31: false, + controlb32: false, + controlb33: false, + controlb34: false, + controlb35: false, + controlb36: false, + controlb37: false, + controlb38: false, + controlb39: false, + controlb310: false, + controlb311: false, + controlb312: false, + controlb313: false, + controlb314: false, + controlb315: false, + controlb316: false, + controlb317: false, + controlb318: false, + controlb319: false, + controlb320: false + } + }, + created() { + var that = this + + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.maskId = res.data.list[1].basisMarkId + that.defaultSelectedKeys = [that.maskId] + that.executeStatus = res.data.list[1].executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + that.getFormData() + }) + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeSelect(e, t) { + var that = this + this[t] = e.target.checked + if (t === 'control5' && e.target.checked) { + this.control1 = false + this.control2 = false + this.control3 = false + this.control4 = false + //赋值必须要延时 + setTimeout(function() { + that.form.setFieldsValue({ a: ['5'] }) + }, 0) + } + }, + changeRadio(e, t) { + if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + if (e.key > 64) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + e.key) + } + return false + }, + handleSubmit(e) { + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + this.confirmLoading = true + validateFieldsAndScroll((errors, values) => { + if (!errors) { + console.log('values', values) + var re = this.form.getFieldsValue() + re = { + ...re, + 'a': typeof re['a'] !== 'undefined' ? re['a'].join(',') : '', + 't1': typeof re['t1'] !== 'undefined' ? re['t1'].join(',') : '', + 'a11': typeof re['a11'] !== 'undefined' ? re['a11'].join(',') : '', + 'a21': typeof re['a21'] !== 'undefined' ? re['a21'].join(',') : '', + 'a31': typeof re['a31'] !== 'undefined' ? re['a31'].join(',') : '', + 'b3': typeof re['b3'] !== 'undefined' ? re['b3'].join(',') : '', + 'a1': typeof re['a1'] !== 'undefined' ? re['a1'].format('YYYY-MM-DD') : '', + 't': typeof re['t'] !== 'undefined' ? re['t'].format('YYYY-MM-DD') : '', + 't4': typeof re['t4'] !== 'undefined' ? re['t4'].format('YYYY-MM-DD') : '', + 'a2': typeof re['a2'] !== 'undefined' ? re['a2'].format('YYYY-MM-DD') : '', + 'a3': typeof re['a3'] !== 'undefined' ? re['a3'].format('YYYY-MM-DD') : '', + 'a4': typeof re['a4'] !== 'undefined' ? re['a4'].format('YYYY-MM-DD') : '', + 'a5': typeof re['a5'] !== 'undefined' ? re['a5'].format('YYYY-MM-DD') : '', + 'b11': typeof re['b11'] !== 'undefined' ? re['b11'].format('YYYY-MM-DD') : '', + 'b21': typeof re['b21'] !== 'undefined' ? re['b21'].format('YYYY-MM-DD') : '', + 'b22': typeof re['b22'] !== 'undefined' ? re['b22'].format('YYYY-MM-DD') : '', + 'b31': typeof re['b31'] !== 'undefined' ? re['b31'].format('YYYY-MM-DD') : '', + 'b32': typeof re['b32'] !== 'undefined' ? re['b32'].format('YYYY-MM-DD') : '', + 'b41': typeof re['b41'] !== 'undefined' ? re['b41'].format('YYYY-MM-DD') : '', + 'b42': typeof re['b42'] !== 'undefined' ? re['b42'].format('YYYY-MM-DD') : '', + 'b51': typeof re['b51'] !== 'undefined' ? re['b51'].format('YYYY-MM-DD') : '', + 'b52': typeof re['b52'] !== 'undefined' ? re['b52'].format('YYYY-MM-DD') : '', + 'b61': typeof re['b61'] !== 'undefined' ? re['b61'].format('YYYY-MM-DD') : '', + 'b62': typeof re['b62'] !== 'undefined' ? re['b62'].format('YYYY-MM-DD') : '', + 'b71': typeof re['b71'] !== 'undefined' ? re['b71'].format('YYYY-MM-DD') : '', + 'b72': typeof re['b72'] !== 'undefined' ? re['b72'].format('YYYY-MM-DD') : '', + 'b81': typeof re['b81'] !== 'undefined' ? re['b81'].format('YYYY-MM-DD') : '', + 'b82': typeof re['b82'] !== 'undefined' ? re['b82'].format('YYYY-MM-DD') : '', + 'b91': typeof re['b91'] !== 'undefined' ? re['b91'].format('YYYY-MM-DD') : '', + 'b92': typeof re['b92'] !== 'undefined' ? re['b92'].format('YYYY-MM-DD') : '', + 'b101': typeof re['b101'] !== 'undefined' ? re['b101'].format('YYYY-MM-DD') : '', + 'b102': typeof re['b102'] !== 'undefined' ? re['b102'].format('YYYY-MM-DD') : '', + 'b111': typeof re['b111'] !== 'undefined' ? re['b111'].format('YYYY-MM-DD') : '', + 'b112': typeof re['b112'] !== 'undefined' ? re['b112'].format('YYYY-MM-DD') : '', + 'b121': typeof re['b121'] !== 'undefined' ? re['b121'].format('YYYY-MM-DD') : '', + 'b122': typeof re['b122'] !== 'undefined' ? re['b122'].format('YYYY-MM-DD') : '', + 'b131': typeof re['b131'] !== 'undefined' ? re['b131'].format('YYYY-MM-DD') : '', + 'b132': typeof re['b132'] !== 'undefined' ? re['b132'].format('YYYY-MM-DD') : '', + 'b141': typeof re['b141'] !== 'undefined' ? re['b141'].format('YYYY-MM-DD') : '', + 'b142': typeof re['b142'] !== 'undefined' ? re['b142'].format('YYYY-MM-DD') : '', + 'b151': typeof re['b151'] !== 'undefined' ? re['b151'].format('YYYY-MM-DD') : '', + 'b152': typeof re['b152'] !== 'undefined' ? re['b152'].format('YYYY-MM-DD') : '', + 'b161': typeof re['b161'] !== 'undefined' ? re['b161'].format('YYYY-MM-DD') : '', + 'b162': typeof re['b162'] !== 'undefined' ? re['b162'].format('YYYY-MM-DD') : '', + 'b171': typeof re['b171'] !== 'undefined' ? re['b171'].format('YYYY-MM-DD') : '', + 'b172': typeof re['b172'] !== 'undefined' ? re['b172'].format('YYYY-MM-DD') : '', + 'b181': typeof re['b181'] !== 'undefined' ? re['b181'].format('YYYY-MM-DD') : '', + 'b182': typeof re['b182'] !== 'undefined' ? re['b182'].format('YYYY-MM-DD') : '', + 'b191': typeof re['b191'] !== 'undefined' ? re['b191'].format('YYYY-MM-DD') : '', + 'b192': typeof re['b192'] !== 'undefined' ? re['b192'].format('YYYY-MM-DD') : '', + 'b203': typeof re['b203'] !== 'undefined' ? re['b203'].format('YYYY-MM-DD') : '', + 'b202': typeof re['b202'] !== 'undefined' ? re['b202'].format('YYYY-MM-DD') : '', + 'b213': typeof re['b213'] !== 'undefined' ? re['b213'].format('YYYY-MM-DD') : '', + 'b212': typeof re['b212'] !== 'undefined' ? re['b212'].format('YYYY-MM-DD') : '', + 'b223': typeof re['b223'] !== 'undefined' ? re['b223'].format('YYYY-MM-DD') : '', + 'b222': typeof re['b222'] !== 'undefined' ? re['b222'].format('YYYY-MM-DD') : '', + 'b231': typeof re['b231'] !== 'undefined' ? re['b231'].format('YYYY-MM-DD') : '', + 'b232': typeof re['b232'] !== 'undefined' ? re['b232'].format('YYYY-MM-DD') : '', + 'b241': typeof re['b241'] !== 'undefined' ? re['b241'].format('YYYY-MM-DD') : '', + 'b242': typeof re['b242'] !== 'undefined' ? re['b242'].format('YYYY-MM-DD') : '' + } + var that = this + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.iconjxjz && this.iconjxjz.iconJxjzqId) { + re.iconJxjzqId = this.iconjxjz.iconJxjzqId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.maskId = res.data.list[1].basisMarkId + that.defaultSelectedKeys = [that.maskId] + that.executeStatus = res.data.list[1].executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + initValue(key, type = 'normal') { + if (!this.iconjxjz) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.iconjxjz[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.iconjxjz[key]) + } else if (type === 'array') { + return this.iconjxjz[key].split(',') + } else { + return this.iconjxjz[key] + '' + } + }, + getFormData() { + this.spinning = true + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', that.maskId) + getBasisForm(params) + .then(res => { + this.spinning = false + if (res.data && res.data.iconjxjz) + that.iconjxjz = that.dealAnswers(res.data) + }) + .catch(error => { + this.spinning = false + console.log(error) + }) + }, + dealAnswers(data) { + var that = this + var answer = data.iconjxjz + if (answer && !_.isEmpty(answer)) { + var splitArr = [] + if (answer.a) { + splitArr = answer.a.split(',') + if (splitArr.indexOf('1') > -1) { + this.control1 = true + } + if (splitArr.indexOf('2') > -1) { + this.control2 = true + } + if (splitArr.indexOf('3') > -1) { + this.control3 = true + } + if (splitArr.indexOf('4') > -1) { + this.control4 = true + } + } + if (answer.a11) { + splitArr = answer.a11.split(',') + if (splitArr.indexOf('8') > -1) { + this.controla118 = true + } + } + if (answer.a21) { + splitArr = answer.a21.split(',') + if (splitArr.indexOf('2') > -1) { + this.controla212 = true + } + } + if (answer.b1 == 1) { + this.controlb1 = true + } + if (answer.b2 == 1) { + this.controlb2 = true + } + if (answer.t2 == 1) { + this.controlt2 = true + } + if (answer.b3) { + splitArr = answer.b3.split(',') + for (let i in splitArr) { + this['controlb3' + splitArr[i]] = true + } + } + } + return answer + }, + save() { + var re = this.form.getFieldsValue() + re = { + ...re, + 'a': typeof re['a'] !== 'undefined' ? re['a'].join(',') : '', + 't1': typeof re['t1'] !== 'undefined' ? re['t1'].join(',') : '', + 'a11': typeof re['a11'] !== 'undefined' ? re['a11'].join(',') : '', + 'a21': typeof re['a21'] !== 'undefined' ? re['a21'].join(',') : '', + 'a31': typeof re['a31'] !== 'undefined' ? re['a31'].join(',') : '', + 'b3': typeof re['b3'] !== 'undefined' ? re['b3'].join(',') : '', + 'a1': typeof re['a1'] !== 'undefined' ? re['a1'].format('YYYY-MM-DD') : '', + 't': typeof re['t'] !== 'undefined' ? re['t'].format('YYYY-MM-DD') : '', + 't4': typeof re['t4'] !== 'undefined' ? re['t4'].format('YYYY-MM-DD') : '', + 'a2': typeof re['a2'] !== 'undefined' ? re['a2'].format('YYYY-MM-DD') : '', + 'a3': typeof re['a3'] !== 'undefined' ? re['a3'].format('YYYY-MM-DD') : '', + 'a4': typeof re['a4'] !== 'undefined' ? re['a4'].format('YYYY-MM-DD') : '', + 'a5': typeof re['a5'] !== 'undefined' ? re['a5'].format('YYYY-MM-DD') : '', + 'b11': typeof re['b11'] !== 'undefined' ? re['b11'].format('YYYY-MM-DD') : '', + 'b21': typeof re['b21'] !== 'undefined' ? re['b21'].format('YYYY-MM-DD') : '', + 'b22': typeof re['b22'] !== 'undefined' ? re['b22'].format('YYYY-MM-DD') : '', + 'b31': typeof re['b31'] !== 'undefined' ? re['b31'].format('YYYY-MM-DD') : '', + 'b32': typeof re['b32'] !== 'undefined' ? re['b32'].format('YYYY-MM-DD') : '', + 'b41': typeof re['b41'] !== 'undefined' ? re['b41'].format('YYYY-MM-DD') : '', + 'b42': typeof re['b42'] !== 'undefined' ? re['b42'].format('YYYY-MM-DD') : '', + 'b51': typeof re['b51'] !== 'undefined' ? re['b51'].format('YYYY-MM-DD') : '', + 'b52': typeof re['b52'] !== 'undefined' ? re['b52'].format('YYYY-MM-DD') : '', + 'b61': typeof re['b61'] !== 'undefined' ? re['b61'].format('YYYY-MM-DD') : '', + 'b62': typeof re['b62'] !== 'undefined' ? re['b62'].format('YYYY-MM-DD') : '', + 'b71': typeof re['b71'] !== 'undefined' ? re['b71'].format('YYYY-MM-DD') : '', + 'b72': typeof re['b72'] !== 'undefined' ? re['b72'].format('YYYY-MM-DD') : '', + 'b81': typeof re['b81'] !== 'undefined' ? re['b81'].format('YYYY-MM-DD') : '', + 'b82': typeof re['b82'] !== 'undefined' ? re['b82'].format('YYYY-MM-DD') : '', + 'b91': typeof re['b91'] !== 'undefined' ? re['b91'].format('YYYY-MM-DD') : '', + 'b92': typeof re['b92'] !== 'undefined' ? re['b92'].format('YYYY-MM-DD') : '', + 'b101': typeof re['b101'] !== 'undefined' ? re['b101'].format('YYYY-MM-DD') : '', + 'b102': typeof re['b102'] !== 'undefined' ? re['b102'].format('YYYY-MM-DD') : '', + 'b111': typeof re['b111'] !== 'undefined' ? re['b111'].format('YYYY-MM-DD') : '', + 'b112': typeof re['b112'] !== 'undefined' ? re['b112'].format('YYYY-MM-DD') : '', + 'b121': typeof re['b121'] !== 'undefined' ? re['b121'].format('YYYY-MM-DD') : '', + 'b122': typeof re['b122'] !== 'undefined' ? re['b122'].format('YYYY-MM-DD') : '', + 'b131': typeof re['b131'] !== 'undefined' ? re['b131'].format('YYYY-MM-DD') : '', + 'b132': typeof re['b132'] !== 'undefined' ? re['b132'].format('YYYY-MM-DD') : '', + 'b141': typeof re['b141'] !== 'undefined' ? re['b141'].format('YYYY-MM-DD') : '', + 'b142': typeof re['b142'] !== 'undefined' ? re['b142'].format('YYYY-MM-DD') : '', + 'b151': typeof re['b151'] !== 'undefined' ? re['b151'].format('YYYY-MM-DD') : '', + 'b152': typeof re['b152'] !== 'undefined' ? re['b152'].format('YYYY-MM-DD') : '', + 'b161': typeof re['b161'] !== 'undefined' ? re['b161'].format('YYYY-MM-DD') : '', + 'b162': typeof re['b162'] !== 'undefined' ? re['b162'].format('YYYY-MM-DD') : '', + 'b171': typeof re['b171'] !== 'undefined' ? re['b171'].format('YYYY-MM-DD') : '', + 'b172': typeof re['b172'] !== 'undefined' ? re['b172'].format('YYYY-MM-DD') : '', + 'b181': typeof re['b181'] !== 'undefined' ? re['b181'].format('YYYY-MM-DD') : '', + 'b182': typeof re['b182'] !== 'undefined' ? re['b182'].format('YYYY-MM-DD') : '', + 'b191': typeof re['b191'] !== 'undefined' ? re['b191'].format('YYYY-MM-DD') : '', + 'b192': typeof re['b192'] !== 'undefined' ? re['b192'].format('YYYY-MM-DD') : '', + 'b203': typeof re['b203'] !== 'undefined' ? re['b203'].format('YYYY-MM-DD') : '', + 'b202': typeof re['b202'] !== 'undefined' ? re['b202'].format('YYYY-MM-DD') : '', + 'b213': typeof re['b213'] !== 'undefined' ? re['b213'].format('YYYY-MM-DD') : '', + 'b212': typeof re['b212'] !== 'undefined' ? re['b212'].format('YYYY-MM-DD') : '', + 'b223': typeof re['b223'] !== 'undefined' ? re['b223'].format('YYYY-MM-DD') : '', + 'b222': typeof re['b222'] !== 'undefined' ? re['b222'].format('YYYY-MM-DD') : '', + 'b231': typeof re['b231'] !== 'undefined' ? re['b231'].format('YYYY-MM-DD') : '', + 'b232': typeof re['b232'] !== 'undefined' ? re['b232'].format('YYYY-MM-DD') : '', + 'b241': typeof re['b241'] !== 'undefined' ? re['b241'].format('YYYY-MM-DD') : '', + 'b242': typeof re['b242'] !== 'undefined' ? re['b242'].format('YYYY-MM-DD') : '' + } + var that = this + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.iconjxjz && this.iconjxjz.iconJxjzqId) { + re.iconJxjzqId = this.iconjxjz.iconJxjzqId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.maskId = res.data.list[1].basisMarkId + that.defaultSelectedKeys = [that.maskId] + that.executeStatus = res.data.list[1].executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + withdraw() { + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.iconjxjz.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +.single-line { + height: 56px; + overflow: hidden; +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + + .treeSubTitle { + font-size: 14px; + } + + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + // padding-top: 52px; + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .label-overflow .ant-form-item-label { + line-height: 20px; + position: relative; + top: 12px; + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +.control-m-line.ant-checkbox-group { + top: 10px; + position: relative; +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/icon/task.vue b/src/views/icon/task.vue new file mode 100644 index 0000000000..d1ef9d4aa8 --- /dev/null +++ b/src/views/icon/task.vue @@ -0,0 +1,1013 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!</p> + <div class="title">1.呼吸系统相关治疗</div> + <a-form-item label="(1) 随访期间有否长期氧疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b1', {...require1, initialValue: initValue('b1')}]"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(2) 随访期间有否无创辅助通气:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b2', {...require1, initialValue: initValue('b2')}]"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(3) 随访期间有否进行各类物理治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b3', {...require1, initialValue: initValue('b3')}]" @change="changeRadio($event, 'controlb3')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="治疗方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb3"> + <a-checkbox-group v-decorator="['b31', {...selectRequired, initialValue: initValue('b31', 'array')}]"> + <a-checkbox value="1">手动拍击背部排痰</a-checkbox> + <a-checkbox value="2">体位引流</a-checkbox> + <a-checkbox value="3">规律锻炼身体</a-checkbox> + <a-checkbox value="4">借助排痰仪器</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="(4) 随访期间有否进行各类呼吸疾病药物治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b4', {...require1, initialValue: initValue('b4')}]" @change="changeRadio($event, 'controlb4')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb4"> + <a-form-item label="4-1 规律抗生素治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b41', {...selectRequired, initialValue: initValue('b41', 'array')}]"> + <a-checkbox value="0">无</a-checkbox> + <a-checkbox value="1">口服</a-checkbox> + <a-checkbox value="2">吸入/雾化</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="4-2 祛痰药物治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b42', {...selectRequired, initialValue: initValue('b42', 'array')}]"> + <a-checkbox value="0">无</a-checkbox> + <a-checkbox value="1">口服</a-checkbox> + <a-checkbox value="2">雾化</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="4-3 支气管扩张剂:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b43', {...selectRequired, initialValue: initValue('b43', 'array')}]" class="control-m-line"> + <a-checkbox value="0">无</a-checkbox> + <a-checkbox value="1">长效抗胆碱能药物</a-checkbox> + <a-checkbox value="2">长效β受体激动剂</a-checkbox> + <a-checkbox value="3">长效抗胆碱能药物/长效β受体激动剂</a-checkbox> + <a-checkbox value="4" :checked="controlb43" @change="changeSelect($event, 'controlb43')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他支气管扩张剂::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb43"> + <a-input style="width: 240px;" v-decorator="['b431', {...inputRequired, initialValue: initValue('b431')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="4-4 吸入激素:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b44', {...require1, initialValue: initValue('b44')}]"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="4-5 其他治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b45', { initialValue: initValue('b45')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(5) 随访期间有否进行各类免疫调节剂治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b5', {...require1, initialValue: initValue('b5')}]" @change="changeRadio($event, 'controlb5')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb5"> + <a-form-item label="治疗方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b51', {...selectRequired, initialValue: initValue('b51', 'array')}]"> + <a-checkbox value="1">细菌溶解产物胶囊</a-checkbox> + <a-checkbox value="2">匹多莫德</a-checkbox> + <a-checkbox value="3">胸腺肽</a-checkbox> + <a-checkbox value="4">脾氨肽</a-checkbox> + <a-checkbox value="5" :checked="controlb51" @change="changeSelect($event, 'controlb51')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他治疗::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb5 && controlb51"> + <a-input style="width: 240px;" v-decorator="['b52', {...inputRequired, initialValue: initValue('b52')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(6) 胸部CT检查:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['d', {...require1, initialValue: initValue('d')}]" @change="changeRadio($event, 'controld')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controld"> + <a-form-item label="6-1 CT检查日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['d1', {...dateRequire, initialValue: initValue('d1', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="支扩位于CT图像上:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['d2', {...selectRequired, initialValue: initValue('d2', 'array')}]"> + <a-checkbox value="1" @change="changeSelect($event, 'controld3')">右上叶</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controld4')">左上叶</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'controld5')">右中叶</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'controld6')">左舌叶</a-checkbox> + <a-checkbox value="5" @change="changeSelect($event, 'controld7')">右下叶</a-checkbox> + <a-checkbox value="6" @change="changeSelect($event, 'controld8')">左下叶</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="右上叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controld3"> + <a-radio-group v-decorator="['d3', {...selectRequired, initialValue: initValue('d3')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="左上叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controld4"> + <a-radio-group v-decorator="['d4', {...selectRequired, initialValue: initValue('d4')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="右中叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controld5"> + <a-radio-group v-decorator="['d5', {...selectRequired, initialValue: initValue('d5')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="左舌叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controld6"> + <a-radio-group v-decorator="['d6', {...selectRequired, initialValue: initValue('d6')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="右下叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controld7"> + <a-radio-group v-decorator="['d7', {...selectRequired, initialValue: initValue('d7')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="左下叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controld8"> + <a-radio-group v-decorator="['d8', {...selectRequired, initialValue: initValue('d8')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="影像Reiff评分:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['d9', {initialValue: initValue('d9')}]" :readOnly="true" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(7) 各类肺功能测试:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['e', {...require1, initialValue: initValue('e')}]" @change="changeRadio($event, 'controle')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controle"> + <a-form-item label="7-1 检查日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['e1', {...dateRequire, initialValue: initValue('e1', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="7-2 FVC:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="L" style="width: 240px;" v-decorator="['e2', {...inputRequired, initialValue: initValue('e2')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="7-3 FVC pred:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="%" style="width: 240px;" v-decorator="['e3', {...inputRequired, initialValue: initValue('e3')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="7-4 FEV1:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="L" style="width: 240px;" v-decorator="['e4', {...inputRequired, initialValue: initValue('e4')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="7-5 FEV1 pred:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="L" style="width: 240px;" v-decorator="['e5', {...inputRequired, initialValue: initValue('e5')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="7-6 FEV1/FVC:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="L" style="width: 240px;" v-decorator="['e6', {...inputRequired, initialValue: initValue('e6')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="7-7 DLCO SB:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="ml/min/mmHg" style="width: 240px;" v-decorator="['e7', {...inputRequired, initialValue: initValue('e7')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="7-8 DLCO/VA:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="ml/min/mmHg" style="width: 240px;" v-decorator="['e8', {...inputRequired, initialValue: initValue('e8')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="7-9 DLCO SB:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="mmol/min/kPa" style="width: 240px;" v-decorator="['e9', {...inputRequired, initialValue: initValue('e9')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="7-10 DLCO/VA:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="mmol/min/kPa/L" style="width: 240px;" v-decorator="['e10', {...inputRequired, initialValue: initValue('e10')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, recoverSubmit, computeScore } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { ACCESS_TOKEN } from '@/store/mutation-types' +export default { + name: 'iconTask', + components: { + STree, + MyIcon + }, + data() { + return { + markName: 'iconcgsf', + title: 'ICON常规随访', + openKeys: [], + defaultSelectedKeys: [4], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: '100%', + "padding-right": "0px", + "border-right": "1px solid #ddd" + }, + baselineFormStyle: { + // height: '444px', + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 7 }, + md: { span: 7 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 17 }, + md: { span: 17 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 4, offset: 7 } + }, + wrapperOffset: { + md: { span: 13 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: undefined, + patientBasisId: this.$route.params.id, + controlb3: false, + controlb4: false, + controlb43: false, + controlb5: false, + controlb51: false, + spinning: false, + executeStatus: false, + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined, + iconcgsf: undefined, + controld3: false, + controld4: false, + controld5: false, + controld6: false, + controld7: false, + controld8: false, + controld: false, + controle: false + } + }, + created() { + var that = this + this.defaultSelectedKeys = [4] + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.maskId = res.data.list[0].basisMarkId + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + that.getFormData() + }) + + }, + activated() { + // this.getFormData() + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeSelect(e, t) { + var arr = ['controld3', 'controld4', 'controld5', 'controld6', 'controld7', 'controld8'] + if (arr.indexOf(t) > -1 && !e.target.checked) { + this.computeReiff() + } + this[t] = e.target.checked + }, + changeRadio(e, t) { + if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + if (e.key >= 31 && e.key <= 36) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + e.key) + } else if (e.key < 63) { + this.$router.replace('/list/basis/' + this.patientBasisId + '/' + e.key) + } + return false; + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'b31': typeof re['b31'] !== 'undefined' ? re['b31'].join(',') : '', + 'b41': typeof re['b41'] !== 'undefined' ? re['b41'].join(',') : '', + 'b42': typeof re['b42'] !== 'undefined' ? re['b42'].join(',') : '', + 'b43': typeof re['b43'] !== 'undefined' ? re['b43'].join(',') : '', + 'b51': typeof re['b51'] !== 'undefined' ? re['b51'].join(',') : '', + 'd2': typeof re['d2'] !== 'undefined' ? re['d2'].join(',') : '', + 'd1': typeof re['d1'] !== 'undefined' ? re['d1'].format('YYYY-MM-DD') : '', + 'e1': typeof re['e1'] !== 'undefined' ? re['e1'].format('YYYY-MM-DD') : '' + } + var that = this + console.log(re) + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.iconcgsf && this.iconcgsf.iconCgfsId) { + re.iconCgfsId = this.iconcgsf.iconCgfsId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + that.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + } else { + this.spinning = false + } + }) + }, + initValue(key, type = 'normal') { + if (!this.iconcgsf) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.iconcgsf[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.iconcgsf[key]) + } else if (type === 'array') { + return this.iconcgsf[key].split(',') + } else { + return this.iconcgsf[key] + '' + } + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + computeReiff() { + var that = this + this.$nextTick(() => { + var params = new URLSearchParams() + params.append('scoreType', 'iconReiff') + params.append('iconcgfsStr', JSON.stringify(that.form.getFieldsValue())) + computeScore(params) + .then(res => { + console.log(res.data.d9) + that.form.setFieldsValue({ + d9: res.data.d9 + }) + }) + .catch(error => { + console.log(error) + }) + }) + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + var splitArr = [] + if (answer.b3 === 1) { + this.controlb3 = true + } + if (answer.b4 === 1) { + this.controlb4 = true + } + if (answer.b5 === 1) { + this.controlb5 = true + } + if (answer.b43) { + splitArr = answer.b43.split(',') + if (splitArr.indexOf('4') > -1) { + this.controlb43 = true + } + } + if (answer.b51) { + splitArr = answer.b51.split(',') + if (splitArr.indexOf('5') > -1) { + this.controlb51 = true + } + } + if (answer.d === 1) { + this.controld = true + } + if (answer.e === 1) { + this.controle = true + } + if (answer.d2) { + splitArr = answer.d2.split(',') + if (splitArr.indexOf('1') > -1) { + this.controld3 = true + } + if (splitArr.indexOf('2') > -1) { + this.controld4 = true + } + if (splitArr.indexOf('3') > -1) { + this.controld5 = true + } + if (splitArr.indexOf('4') > -1) { + this.controld6 = true + } + if (splitArr.indexOf('5') > -1) { + this.controld7 = true + } + if (splitArr.indexOf('6') > -1) { + this.controld8 = true + } + } + } + return answer + }, + save() { + var re = this.form.getFieldsValue() + re = { + ...re, + 'b31': typeof re['b31'] !== 'undefined' ? re['b31'].join(',') : '', + 'b41': typeof re['b41'] !== 'undefined' ? re['b41'].join(',') : '', + 'b42': typeof re['b42'] !== 'undefined' ? re['b42'].join(',') : '', + 'b43': typeof re['b43'] !== 'undefined' ? re['b43'].join(',') : '', + 'b51': typeof re['b51'] !== 'undefined' ? re['b51'].join(',') : '', + 'd2': typeof re['d2'] !== 'undefined' ? re['d2'].join(',') : '', + 'd1': typeof re['d1'] !== 'undefined' ? re['d1'].format('YYYY-MM-DD') : '', + 'e1': typeof re['e1'] !== 'undefined' ? re['e1'].format('YYYY-MM-DD') : '' + } + var that = this + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.iconcgsf && this.iconcgsf.iconCgfsId) { + re.iconCgfsId = this.iconcgsf.iconCgfsId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + that.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + getFormData() { + this.spinning = true + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + if (res.data && res.data.iconcgsf) { + that.iconcgsf = that.dealAnswers(res.data.iconcgsf) + } else { + that.form.resetFields() + } + this.spinning = false + }) + .catch(error => { + this.spinning = false + console.log(error) + }) + }, + withdraw() { + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.iconcgsf.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + + .treeSubTitle { + font-size: 14px; + } + + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + margin-top: 42px; + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 20px 20px 60px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +@media screen and (max-width: 1366px) { + .control-m-line.ant-checkbox-group { + top: 10px; + position: relative; + } +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/list/TableList.vue b/src/views/list/TableList.vue index 0e48153066..8278a4d530 100644 --- a/src/views/list/TableList.vue +++ b/src/views/list/TableList.vue @@ -1,280 +1,914 @@ -<template> - <a-card :bordered="false"> - <div class="table-page-search-wrapper"> - <a-form layout="inline"> - <a-row :gutter="48"> - <a-col :md="8" :sm="24"> - <a-form-item label="规则编号"> - <a-input v-model="queryParam.id" placeholder=""/> - </a-form-item> - </a-col> - <a-col :md="8" :sm="24"> - <a-form-item label="使用状态"> - <a-select v-model="queryParam.status" placeholder="请选择" default-value="0"> - <a-select-option value="0">全部</a-select-option> - <a-select-option value="1">关闭</a-select-option> - <a-select-option value="2">运行中</a-select-option> - </a-select> - </a-form-item> - </a-col> - <template v-if="advanced"> - <a-col :md="8" :sm="24"> - <a-form-item label="调用次数"> - <a-input-number v-model="queryParam.callNo" style="width: 100%"/> - </a-form-item> - </a-col> - <a-col :md="8" :sm="24"> - <a-form-item label="更新日期"> - <a-date-picker v-model="queryParam.date" style="width: 100%" placeholder="请输入更新日期"/> - </a-form-item> - </a-col> - <a-col :md="8" :sm="24"> - <a-form-item label="使用状态"> - <a-select v-model="queryParam.useStatus" placeholder="请选择" default-value="0"> - <a-select-option value="0">全部</a-select-option> - <a-select-option value="1">关闭</a-select-option> - <a-select-option value="2">运行中</a-select-option> - </a-select> - </a-form-item> - </a-col> - <a-col :md="8" :sm="24"> - <a-form-item label="使用状态"> - <a-select placeholder="请选择" default-value="0"> - <a-select-option value="0">全部</a-select-option> - <a-select-option value="1">关闭</a-select-option> - <a-select-option value="2">运行中</a-select-option> - </a-select> - </a-form-item> - </a-col> - </template> - <a-col :md="!advanced && 8 || 24" :sm="24"> - <span class="table-page-search-submitButtons" :style="advanced && { float: 'right', overflow: 'hidden' } || {} "> - <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button> - <a-button style="margin-left: 8px" @click="() => queryParam = {}">重置</a-button> - <a @click="toggleAdvanced" style="margin-left: 8px"> - {{ advanced ? '收起' : '展开' }} - <a-icon :type="advanced ? 'up' : 'down'"/> - </a> - </span> - </a-col> - </a-row> - </a-form> - </div> - - <div class="table-operator"> - <a-button type="primary" icon="plus" @click="$refs.createModal.add()">新建</a-button> - <a-button type="dashed" @click="tableOption">{{ optionAlertShow && '关闭' || '开启' }} alert</a-button> - <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0"> - <a-menu slot="overlay"> - <a-menu-item key="1"><a-icon type="delete" />删除</a-menu-item> - <!-- lock | unlock --> - <a-menu-item key="2"><a-icon type="lock" />锁定</a-menu-item> - </a-menu> - <a-button style="margin-left: 8px"> - 批量操作 <a-icon type="down" /> - </a-button> - </a-dropdown> - </div> - - <s-table - ref="table" - size="default" - rowKey="key" - :columns="columns" - :data="loadData" - :alert="options.alert" - :rowSelection="options.rowSelection" - showPagination="auto" - > - <span slot="serial" slot-scope="text, record, index"> - {{ index + 1 }} - </span> - <span slot="status" slot-scope="text"> - <a-badge :status="text | statusTypeFilter" :text="text | statusFilter" /> - </span> - <span slot="description" slot-scope="text"> - <ellipsis :length="4" tooltip>{{ text }}</ellipsis> - </span> - - <span slot="action" slot-scope="text, record"> - <template> - <a @click="handleEdit(record)">配置</a> - <a-divider type="vertical" /> - <a @click="handleSub(record)">订阅报警</a> - </template> - </span> - </s-table> - <create-form ref="createModal" @ok="handleOk" /> - <step-by-step-modal ref="modal" @ok="handleOk"/> - </a-card> -</template> - -<script> -import moment from 'moment' -import { STable, Ellipsis } from '@/components' -import StepByStepModal from './modules/StepByStepModal' -import CreateForm from './modules/CreateForm' -import { getRoleList, getServiceList } from '@/api/manage' - -const statusMap = { - 0: { - status: 'default', - text: '关闭' - }, - 1: { - status: 'processing', - text: '运行中' - }, - 2: { - status: 'success', - text: '已上线' - }, - 3: { - status: 'error', - text: '异常' - } -} - -export default { - name: 'TableList', - components: { - STable, - Ellipsis, - CreateForm, - StepByStepModal - }, - data () { - return { - mdl: {}, - // 高级搜索 展开/关闭 - advanced: false, - // 查询参数 - queryParam: {}, - // 表头 - columns: [ - { - title: '#', - scopedSlots: { customRender: 'serial' } - }, - { - title: '规则编号', - dataIndex: 'no' - }, - { - title: '描述', - dataIndex: 'description', - scopedSlots: { customRender: 'description' } - }, - { - title: '服务调用次数', - dataIndex: 'callNo', - sorter: true, - needTotal: true, - customRender: (text) => text + ' 次' - }, - { - title: '状态', - dataIndex: 'status', - scopedSlots: { customRender: 'status' } - }, - { - title: '更新时间', - dataIndex: 'updatedAt', - sorter: true - }, - { - title: '操作', - dataIndex: 'action', - width: '150px', - scopedSlots: { customRender: 'action' } - } - ], - // 加载数据方法 必须为 Promise 对象 - loadData: parameter => { - console.log('loadData.parameter', parameter) - return getServiceList(Object.assign(parameter, this.queryParam)) - .then(res => { - return res.result - }) - }, - selectedRowKeys: [], - selectedRows: [], - - // custom table alert & rowSelection - options: { - alert: { show: true, clear: () => { this.selectedRowKeys = [] } }, - rowSelection: { - selectedRowKeys: this.selectedRowKeys, - onChange: this.onSelectChange - } - }, - optionAlertShow: false - } - }, - filters: { - statusFilter (type) { - return statusMap[type].text - }, - statusTypeFilter (type) { - return statusMap[type].status - } - }, - created () { - this.tableOption() - getRoleList({ t: new Date() }) - }, - methods: { - tableOption () { - if (!this.optionAlertShow) { - this.options = { - alert: { show: true, clear: () => { this.selectedRowKeys = [] } }, - rowSelection: { - selectedRowKeys: this.selectedRowKeys, - onChange: this.onSelectChange, - getCheckboxProps: record => ({ - props: { - disabled: record.no === 'No 2', // Column configuration not to be checked - name: record.no - } - }) - } - } - this.optionAlertShow = true - } else { - this.options = { - alert: false, - rowSelection: null - } - this.optionAlertShow = false - } - }, - - handleEdit (record) { - console.log(record) - this.$refs.modal.edit(record) - }, - handleSub (record) { - if (record.status !== 0) { - this.$message.info(`${record.no} 订阅成功`) - } else { - this.$message.error(`${record.no} 订阅失败,规则已关闭`) - } - }, - handleOk () { - this.$refs.table.refresh() - }, - onSelectChange (selectedRowKeys, selectedRows) { - this.selectedRowKeys = selectedRowKeys - this.selectedRows = selectedRows - }, - toggleAdvanced () { - this.advanced = !this.advanced - }, - resetSearchForm () { - this.queryParam = { - date: moment(new Date()) - } - } - } -} -</script> +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <a-spin :spinning="confirmLoading"> + <div class="table-page-search-wrapper"> + <a-form :form="form" layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索患者姓名、身份证号、入组编号" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="toggleAdvanced" style="margin-left: 8px" class="toggleAdvanced"> + {{ advanced ? '更多筛选' : '更多筛选' }} + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch(3)">全部病例</p> + <p @click="tableSearch(1)">本月新增病例</p> + <p @click="tableSearch(2)">本年新增病例</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-row> + <a-col :md="12"> + <a-form-item label="是否ICON"> + <a-radio-group v-model="queryParam.isIcon"> + <a-radio value="-1">否</a-radio> + <a-radio value="1">是</a-radio> + </a-radio-group> + </a-form-item> + </a-col> + <a-col :md="12"> + <a-form-item label="是否CF筛查" class="wider-label"> + <a-radio-group v-model="queryParam.c1"> + <a-radio value="-1">否</a-radio> + <a-radio value="1">是</a-radio> + </a-radio-group> + </a-form-item> + </a-col> + </a-row> + <a-form-item label="入组编号"> + <a-input v-model.trim="queryParam.fileCode" style="width: 100%" /> + </a-form-item> + <a-form-item label="姓名"> + <a-input v-model.trim="queryParam.patientName" style="width: 100%" /> + </a-form-item> + <a-form-item label="身份证号"> + <a-input v-model.trim="queryParam.card" style="width: 100%" /> + </a-form-item> + <a-form-item label="创建日期" style="margin-bottom:0;"> + <a-range-picker @change="changeTime" style="width: 100%" :value="dateArr" /> + </a-form-item> + <a-form-item style="text-align: right;margin-bottom: 0;margin-top: 15px;"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px;" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + <a-col :md="2" :sm="24" :offset="11"> + <a-form-item> + <a-button type="primary" @click="handleExport" v-if="canExport">导出数据</a-button> + </a-form-item> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" size="small" :scroll="{ x: 1600 }" rowKey="tId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <span slot="name" slot-scope="text, record" @click="showUser(record)"> + <p class="userName">{{modifyName(text)}}</p> + </span> + <span slot="unSubmitquestion" slot-scope="text, record"> + <p>{{ record.unSubmitquestion }}</p> + </span> + <span slot="submitStatus" slot-scope="text"> + <a-badge :status="text | visitTypeFilter" :text="text | visitFilter" /></span> + <span slot="questionStatus" slot-scope="text"> + <a-badge :status="text | visitTypeFilter" :text="text | visitFilter" /></span> + <span slot="basisList" slot-scope="basisList" v-if="basisList.length"> + <div class="progressTag"> + <router-link :to="{path:'/list/basis/' + basisList[0].patientBasisId}"> + <p class="progressTagTitle">{{ basisList[0].typeName }}</p> + <div style="margin-right: 15px;display: inline-block;width: 130px;"> + <div class="progressTagContent"> + <a-progress class="progressline" :strokeColor="basisList[0].progress == 100 ? '#4BC5AC' : '#00A0E9'" :showInfo="false" :percent="parseInt(basisList[0].progress)" size="small" /> + </div> + <a-icon v-if="basisList[0].executeStatus != 3" type="clock-circle" theme="filled" style="color:#00A0E9" /> + <!-- <span class="ant-progress-span" v-if="basisList[0].executeStatus == 2">{{basisList[0].progress}}%</span> --> + <a-icon v-else-if="basisList[0].executeStatus == 3" type="check-circle" theme="filled" style="color:#4BC5AC" /> + </div> + </router-link> + <Visit :patientId="basisList[0].patientId"></Visit> + </div> + </span> + <span slot="description" slot-scope="text"> + <ellipsis :length="8" tooltip>{{ text }}</ellipsis> + </span> + <span slot="action" slot-scope="text, record" style="text-align: center;"> + <template> + <a @click="handleEdit(record)">编辑</a> + <a-divider type="vertical" /> + <a @click="handleSubmit(record)" v-if="record.basisList[0].executeStatus == 3 && record.basisList[0].submitStatus == 0">提交</a> + <span v-else style="color:rgba(0, 0, 0, 0.25)">提交</span> + <a-divider type="vertical" /> + <a @click="handleOut(record)" :disabled="record.visit != 1">退组</a> + </template> + </span> + </s-table> + </a-spin> + <create-form ref="createModal" @ok="handleOk" /> + <user-detail ref="detailModal" /> + <a-modal :visible="visible" title="退组" @ok="outSubmit" :confirmLoading="confirmLoading" :centered="centered" :destroyOnClose="destroyOnClose" @cancel="handleClose"> + <a-form :form="form"> + <input type="hidden" v-model="patientId"> + <a-form-item label="退组原因" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group v-decorator="['status', requiredRule]"> + <a-radio value="1">访视结束</a-radio> + <a-radio value="2">失访</a-radio> + <a-radio value="3">死亡</a-radio> + </a-radio-group> + </a-form-item> + </a-form> + </a-modal> + <a-modal title="基线提交" :width="800" :bodyStyle="detailStyle" :maskClosable="maskClosable" :centered="centered" :destroyOnClose="destroyOnClose" :visible="detailVisible" :footer="null" @cancel="handleCancel"> + <div class="userDetail"> + <div class="userDetailTop"> + <img src="../../assets/woman.png" alt="" v-if="scoreData.sex == 0" /> + <img src="../../assets/man.png" alt="" v-else /> + <div class="name">{{scoreData.patientName}}</div> + <div class="age"> + <span class="userDetailAge" :class="scoreData.sex == 0 ? 'womenBg' : ''"> + <a-icon :type="scoreData.sex == 1 ? 'man':'woman'" /> + {{scoreData.age}}岁 + </span> + </div> + <div class="tl">{{scoreData.isTl}}</div> + </div> + </div> + <div class="scores"> + <p class="title">支扩评分</p> + <a-row :gutter="10"> + <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '10px' }"> + <div class="block clearfix heighter"> + <div class="name">BSI评分</div> + <div class="score">{{scoreData.BSI}}分</div> + <mini-area /> + </div> + </a-col> + <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '10px' }"> + <div class="block clearfix heighter"> + <div class="name">FACED评分</div> + <div class="score">{{scoreData.FACED}}分</div> + <mini-area /> + </div> + </a-col> + <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '10px' }"> + <div class="block clearfix heighter"> + <div class="name">BACI评分</div> + <div class="score">{{scoreData.BACI}}分</div> + <mini-area /> + </div> + </a-col> + <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '10px' }"> + <div class="block clearfix heighter"> + <div class="name">Reffi评分</div> + <div class="score">{{scoreData.Reiff}}分</div> + <mini-area /> + </div> + </a-col> + </a-row> + </div> + <div class="scores"> + <p class="title">问卷评分</p> + <a-row :gutter="10"> + <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '10px' }"> + <div class="block clearfix"> + <div class="name">BHQ评分</div> + <div class="score" style="color: mediumpurple">{{scoreData.BHQ.score}}分</div> + <mini-progress color="mediumpurple" :target="scoreData.BHQ.score" :percentage="scoreData.BHQ.score" height="8px" /> + </div> + </a-col> + <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '10px' }"> + <div class="block clearfix"> + <div class="name">MMRC评分</div> + <div class="score" style="color: #fd94dc">{{scoreData.MMRC.score}}分</div> + <mini-progress color="#fd94dc" :target="scoreData.MMRC.score / 4 * 100" :percentage="scoreData.MMRC.score / 4 * 100" height="8px" /> + </div> + </a-col> + <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '10px' }"> + <div class="block clearfix"> + <div class="name">HADS评分</div> + <div class="score" style="color: orange">{{scoreData.HAD.score}}分</div> + <mini-progress color="orange" :target="scoreData.HAD.score / 42 * 100" :percentage="scoreData.HAD.score / 42 * 100" height="8px" /> + </div> + </a-col> + </a-row> + <a-row> + <a-col :sm="24" :md="24" :xl="24" :style="{ marginBottom: '10px' }"> + <div class="block clearfix"> + <div class="name">LCQ评分</div> + <div class="score" style="color: lightseagreen">总{{scoreData.LCQ.score}}分</div> + <a-row :gutter="10"> + <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '10px' }"> + <label>生理</label> + <mini-progress color="lightseagreen" :target="scoreData.LCQ.score1 / 56 * 100" :percentage="scoreData.LCQ.score1 / 56 * 100" height="8px" /> + <label>{{scoreData.LCQ.score1}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '10px' }"> + <label>心理</label> + <mini-progress color="lightseagreen" :target="scoreData.LCQ.score2 / 49 * 100" :percentage="scoreData.LCQ.score2 / 49 * 100" height="8px" /> + <label>{{scoreData.LCQ.score2}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '10px' }"> + <label>社会</label> + <mini-progress color="lightseagreen" :target="scoreData.LCQ.score3 / 28 * 100" :percentage="scoreData.LCQ.score3/ 28 * 100" height="8px" /> + <label>{{scoreData.LCQ.score3}}分</label> + </a-col> + </a-row> + </div> + </a-col> + </a-row> + <a-row> + <a-col :sm="24" :md="24" :xl="24" :style="{ marginBottom: '10px' }"> + <div class="block clearfix"> + <div class="name">QoL-B评分</div> + <a-row :gutter="10"> + <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '10px' }"> + <label>身体功能性维度</label> + <mini-progress color="rgb(24,144,255)" :target="scoreData.QOLB.score1" :percentage="scoreData.QOLB.score1" height="8px" /> + <label>{{scoreData.QOLB.score1}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '10px' }"> + <label>角色功能性维度</label> + <mini-progress color="rgb(24,144,255)" :target="scoreData.QOLB.score2" :percentage="scoreData.QOLB.score2" height="8px" /> + <label>{{scoreData.QOLB.score2}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '10px' }"> + <label>活力性维度</label> + <mini-progress color="rgb(24,144,255)" :target="scoreData.QOLB.score3" :percentage="scoreData.QOLB.score3" height="8px" /> + <label>{{scoreData.QOLB.score3}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '10px' }"> + <label>情绪功能性维度</label> + <mini-progress color="rgb(24,144,255)" :target="scoreData.QOLB.score4" :percentage="scoreData.QOLB.score4" height="8px" /> + <label>{{scoreData.QOLB.score4}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '10px' }"> + <label>社会功能性维度</label> + <mini-progress color="rgb(24,144,255)" :target="scoreData.QOLB.score5" :percentage="scoreData.QOLB.score5" height="8px" /> + <label>{{scoreData.QOLB.score5}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '10px' }"> + <label>医疗负担性维度</label> + <mini-progress color="rgb(24,144,255)" :target="scoreData.QOLB.score6" :percentage="scoreData.QOLB.score6" height="8px" /> + <label>{{scoreData.QOLB.score6}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '10px' }"> + <label>健康感觉性维度</label> + <mini-progress color="rgb(24,144,255)" :target="scoreData.QOLB.score7" :percentage="scoreData.QOLB.score7" height="8px" /> + <label>{{scoreData.QOLB.score7}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '10px' }"> + <label>呼吸症状性维度</label> + <mini-progress color="rgb(24,144,255)" :target="scoreData.QOLB.score8" :percentage="scoreData.QOLB.score8" height="8px" /> + <label>{{scoreData.QOLB.score8}}分</label> + </a-col> + </a-row> + </div> + </a-col> + </a-row> + </div> + </a-modal> + <contact-form ref="contactModal" @ok="handleOk" /> + </a-card> +</template> +<script> +import moment from 'moment'; +import { + STable, + Ellipsis +} from '@/components' +import StepByStepModal from './modules/StepByStepModal' +import CreateForm from './modules/CreateForm' +import UserDetail from './modules/UserDetail' +import Visit from './modules/Visit' +import { getPatientList } from '@/api/patient' +import { ChartCard, MiniProgress, MiniArea } from '@/components' +import { MyIcon } from '@/components/_util/util' +import ContactForm from '@/views/account/ContactForm' +import { + addVasit, + outGroup, + getJxDataList, + submitCheck, + exportAllData +} from '@/api/basis' +import { + mapGetters, + mapActions +} from 'vuex' +import $ from 'jquery' +import { + ACCESS_TOKEN +} from '@/store/mutation-types' + +const visitMap = { + '已提交': { + status: 'success', + text: '已提交' + }, + '未提交': { + status: 'error', + text: '未提交' + } +}; + +var columns = [{ + title: '入组编号', + width: 110, + dataIndex: 'fileCode' +}, { + title: '患者姓名', + dataIndex: 'name', + width: 80, + scopedSlots: { + customRender: 'name' + } +},{ + title: '是否ICON', + dataIndex: 'research', + width: 80, +},{ + title: '是否CF筛查', + dataIndex: 'c1', + width: 80, +}, { + title: '创建日期', + dataIndex: 'createDate', + width: 90, + customRender: createDate => moment(createDate).format('YYYY-MM-DD') +}, { + title: '提交状态', + dataIndex: 'submitStatus', + width: 80, + scopedSlots: { + customRender: 'submitStatus' + } +}, { + title: '访视进度', + dataIndex: 'basisList', + width: 160, + scopedSlots: { + customRender: 'basisList' + } +}, { + title: '分支中心', + width: 200, + dataIndex: 'centerName' +}, { + title: '问卷状态', + width: 80, + dataIndex: 'questionStatus', + scopedSlots: { + customRender: 'questionStatus' + } +}, { + title: '未提交问卷', + width: 200, + dataIndex: ' unSubmitquestion', + scopedSlots: { + customRender: 'unSubmitquestion' + } +}, { + title: '操作', + dataIndex: 'action', + width: 120, + className: 'operation', + scopedSlots: { + customRender: 'action' + } +}] + +var groupColumns = [{ + title: '入组编号', + width: 110, + dataIndex: 'fileCode' +}, { + title: '创建日期', + dataIndex: 'createDate', + width: 90, + customRender: createDate => moment(createDate).format('YYYY-MM-DD') +}, { + title: '提交状态', + dataIndex: 'submitStatus', + width: 80, + scopedSlots: { + customRender: 'submitStatus' + } +}, { + title: '访视进度', + dataIndex: 'basisList', + width: 160, + scopedSlots: { + customRender: 'basisList' + } +}, { + title: '分支中心', + dataIndex: 'centerName', + width: 200 +}, { + title: '问卷状态', + width: 80, + dataIndex: 'questionStatus', + scopedSlots: { + customRender: 'questionStatus' + } +}, { + title: '未提交问卷', + width: 200, + dataIndex: ' unSubmitquestion', + scopedSlots: { + customRender: 'unSubmitquestion' + } +}] + +export default { + name: 'TableList', + components: { + STable, + Ellipsis, + CreateForm, + StepByStepModal, + UserDetail, + Visit, + MyIcon, + ChartCard, + MiniProgress, + MiniArea, + ContactForm + }, + data() { + return { + confirmLoading: false, + patientBasisId: '', + dateArr: [], + mdl: {}, + baseUrl: process.env.VUE_APP_API_BASE_URL, + bodyStyle: { + padding: "10px", + paddingBottom: "0px" + }, + detailStyle: { + height: '500px', + overflow: 'auto', + background: "#F8FBFC" + }, + maskClosable: false, + centered: true, + destroyOnClose: true, + scoreData: { + isTl: '铜绿感染', + age: 62, + patientName: '宋国军', + sex: 1, + BACI: 0, + BSI: 9, + FACED: 4, + Reiff: 12, + HAD: { + score: 22 + }, + LCQ: { + score: 9.79, + score1: 3.25, + score2: 3.29, + score3: 3.25 + }, + MMRC: { + score: 3 + }, + BHQ: { + score: 46.32649 + }, + QOLB: { + score1: 26.67, + score2: 26.67, + score3: 26.67, + score4: 16.67, + score5: 26.67, + score6: 26.67, + score7: 8.33, + score8: 25.39 + } + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + // 表头 + columns: this.$ls.get(ACCESS_TOKEN).roleId === 1 ? groupColumns : columns, + // 加载数据方法 必须为 Promise 对象 + loadData: parameter => { + return getPatientList(Object.assign(parameter, this.queryParam)).then(res => { + res.data.forEach((item, index) => { + if (item.basisList.length > 0) { + item.basisList[0].progress = item.basisList[0].executeStatus == 3 ? 100 : item.basisList[0].progress + } + item.tId = index + }) + return res; + }); + }, + selectedRowKeys: [], + selectedRows: [], + + // custom table alert & rowSelection + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = []; + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + scroll: false, + optionAlertShow: false, + form: this.$form.createForm(this), + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + visible: false, + labelCol: { + xs: { span: 24 }, + sm: { span: 7 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 15 } + }, + requiredRule: { rules: [{ required: true, message: '该选项必填!' }] }, + patientId: null, + confirmLoading: false, + detailVisible: false, + canExport: this.$ls.get(ACCESS_TOKEN).purviewType === 1 + } + }, + created() { + this.setSidebar(true) + this.scroll = { + y: (window.screen.height - 368) + "px" + } + }, + computed: { + ...mapGetters(['token']) + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + }, + filters: { + statusFilter(type) { + return statusMap[type].text; + }, + statusTypeFilter(type) { + return statusMap[type].status; + }, + visitFilter(type) { + return visitMap[type].text; + }, + visitTypeFilter(type) { + return visitMap[type].status; + } + }, + methods: { + ...mapActions(['setSidebar']), + modifyName(name) { + return name.replace(/(.)(.*)/, (_, $1, $2) => $1 + '*'.repeat($2.length)) + }, + clearForm() { + console.log(this.dateArr) + this.queryParam = {} + this.dateArr = [] + }, + tableSearch(type) { + this.queryParam.queryType = type + this.$refs.table.refresh(); + this.advanced = false; + }, + refreshTable() { + this.advanced = false; + this.$refs.table.refresh(); + }, + showUser(record) { + this.$refs.detailModal.show(record); + }, + handleEdit(record) { + this.$router.push('/list/basis/' + record.basisList[0].patientBasisId) + }, + handleOk() { + this.$refs.table.refresh(); + }, + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + toggleAdvanced() { + this.advanced = !this.advanced; + }, + changeTime(time) { + this.dateArr = time; + this.queryParam.createDateStart = moment(time[0]).format('YYYY-MM-DD') + this.queryParam.createDateEnd = moment(time[1]).format('YYYY-MM-DD') + }, + exportData() { + window.open(this.baseUrl + '/patient/export?doctorId=' + this.token.doctorId) + }, + handleCancel() { + this.detailVisible = false + }, + handleClose() { + this.visible = false + }, + handleSubmit(record) { + this.patientBasisId = record.basisList[0].patientBasisId + this.$refs.contactModal.add() + }, + handleOut(record) { + this.visible = true + this.patientId = record.patientId + }, + outSubmit() { + var that = this + this.form.validateFieldsAndScroll((errors, fieldsValue) => { + if (errors) { + that.confirmLoading = false + return + } + const params = new URLSearchParams() + params.append('patientId', that.patientId) + params.append('status', fieldsValue.status) + outGroup(params).then(res => { + that.visible = false + that.confirmLoading = false + that.$message.success(res.msg) + that.$refs.table.refresh() + }); + }); + }, + handleOk(v) { + var that = this + this.$confirm({ + title: '确认提交?', + onOk() { + var params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + params.append('submitName', v.submitName) + params.append('submitTelephone', v.submitTelephone) + submitCheck(params) + .then(res => { + if (res.code === -1) { + that.$message.error(res.msg) + } else { + that.$message.success(res.msg) + that.$refs.table.refresh() + that.scoreData = res.data + that.detailVisible = true + } + + }).catch(error => { + console.log(error) + }) + } + }) + }, + handleExport() { + window.open(this.baseUrl + 'patientReport/exportAllDate') + } + } +}; +</script> +<style lang="less" scoped> +.ant-table td { + white-space: nowrap; +} + +/deep/th.operation { + text-align: center !important; +} + +/deep/.ant-table-tbody>tr>td.operation { + text-align: center !important; +} + +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px +} + +/deep/.ant-table-row:hover .progressTag .ant-progress-inner { + background-color: #ffffff !important; +} + +.progressTag { + display: inline-block; + width: 250px; + + /deep/ .progressTagContent { + display: inline-block; + width: 80px; + margin-right: 5px; + } + + /deep/ .progressTagTitle { + font-size: 12px; + text-align: center; + color: #000; + margin-bottom: 0; + margin-right: 15px; + display: inline-block; + } + + /deep/ .progressTag .anticon { + color: #4bc5ac; + font-size: 18px; + vertical-align: bottom; + } + + /deep/ .ant-progress-inner { + background-color: #e5f6ff; + } + + /deep/ .progressTag .ant-progress-span { + color: rgb(0, 160, 233); + } +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item.wider-label > .ant-form-item-label { + width: 100px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} + +.userName { + color: #1fb2fa; + margin: 0; + + &:active, + &:hover { + text-decoration: underline; + text-underline-position: under; + text-decoration-color: #1fb2fa; + cursor: pointer; + } +} + +.userDetail { + border: 1px solid #f8f8f8; + border-top: 4px solid #168ffd; + padding: 15px 25px; + background-color: #ffffff; + + .userDetailTop { + overflow: hidden; + + img { + display: inline-block; + vertical-align: top; + width: 60px; + height: 60px; + float: left; + } + + .name { + float: left; + line-height: 60px; + height: 60px; + margin: 0 10px; + } + + .age { + float: left; + margin-top: 20px; + + .userDetailAge { + display: inline-block; + background-color: #96dcfd; + color: #ffffff; + padding: 0px 10px; + border-radius: 3px; + + .anticon { + margin-right: 5px; + } + } + } + + .tl { + float: left; + height: 21px; + line-height: 21px; + background: #ff4856; + border-radius: 3px; + padding: 0 10px; + margin-top: 20px; + margin-left: 10px; + color: #fff; + } + } +} + +.scores { + margin-top: 10px; + border-top: 2px solid #168ffd; + background-color: #fff; + padding: 10px; + + .title { + color: #096dd9; + margin-bottom: 10px; + } + + .block { + border: 1px solid #eee; + padding: 10px; + + &.heighter { + height: 100px; + } + + .name { + float: left; + } + + .score { + float: right; + color: #096dd9; + font-weight: bold; + + &.no { + color: gray; + } + } + + .chart-mini-progress { + clear: both; + } + + .ant-row { + clear: both; + margin-top: 30px; + + .chart-mini-progress { + clear: none; + float: left; + width: 56%; + margin: 0 10px; + } + + label { + float: left; + font-size: 12px; + } + } + + /deep/.antv-chart-mini .chart-wrapper { + bottom: -100px !important; + } + } + +} +</style> \ No newline at end of file diff --git a/src/views/list/modules/CreateForm.vue b/src/views/list/modules/CreateForm.vue index c35c4554af..e58987bcda 100644 --- a/src/views/list/modules/CreateForm.vue +++ b/src/views/list/modules/CreateForm.vue @@ -1,67 +1,682 @@ -<template> - <a-modal - title="新建规则" - :width="640" - :visible="visible" - :confirmLoading="confirmLoading" - @ok="handleSubmit" - @cancel="handleCancel" - > - <a-spin :spinning="confirmLoading"> - <a-form :form="form"> - <a-form-item - label="描述" - :labelCol="labelCol" - :wrapperCol="wrapperCol" - > - <a-input v-decorator="['desc', {rules: [{required: true, min: 5, message: '请输入至少五个字符的规则描述!'}]}]" /> - </a-form-item> - </a-form> - </a-spin> - </a-modal> -</template> - -<script> -export default { - data () { - return { - labelCol: { - xs: { span: 24 }, - sm: { span: 7 } - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 13 } - }, - visible: false, - confirmLoading: false, - - form: this.$form.createForm(this) - } - }, - methods: { - add () { - this.visible = true - }, - handleSubmit () { - const { form: { validateFields } } = this - this.confirmLoading = true - validateFields((errors, values) => { - if (!errors) { - console.log('values', values) - setTimeout(() => { - this.visible = false - this.confirmLoading = false - this.$emit('ok', values) - }, 1500) - } else { - this.confirmLoading = false - } - }) - }, - handleCancel () { - this.visible = false - } - } -} -</script> +<template> + <a-modal :title="options.title" :width="800" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :destroyOnClose="destroyOnClose" :centered="centered" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item label="病例识别号" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input placeholder="请输入身份证号" v-decorator="['card', { rules: [{ validator: isIdCardNo }] }]" /> + </a-form-item> + <!-- <a-form-item label="病例入组编号" :labelCol="labelCol" :wrapperCol="wrapperCol"><a-input v-decorator="['card', { rules: [{ required: true }] }]" /></a-form-item> --> + <a-form-item label="患者同意注册日期" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-date-picker style="width: 100%" format="YYYY-MM-DD" v-decorator="['registerDate', requiredRule]" :disabledDate="disabledDate" /> + </a-form-item> + <a-form-item label="姓名" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['name', requiredRule]" /> + </a-form-item> + <!-- <a-form-item label="是否ICON患者" :labelCol="labelCol" :wrapperCol="wrapperCol" class="aaa"> + <a-popover> + <template slot="content"> + 入选标准:1、临床诊断为支气管扩张症(根据中国2021年《成人支气管扩张症诊治专家共识》,患者既往胸部CT检查必须存在影像学上支气管扩张的表现)。2、年龄≥18岁的患者。<br /> + 排除标准:1、囊性纤维化引起的支气管扩张症。2、入组前4周内曾发生支气管扩张症急性加重*。3、入组前6个月内参与了任何干预性临床试验。4、无法或不愿提供知情同意书的患者。 + </template> + <a-icon + type="exclamation-circle" + style="position: relative; left: -20px; color: #0399ec; cursor: pointer" + /> + </a-popover> + <a-radio-group v-decorator="['isIcon', requiredRule]" @change="changeRadio($event, 'isShowPat')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> --> + <div v-if="isShowPat"> + <a-form-item label="ICON入组时间" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-date-picker style="width: 100%" format="YYYY-MM-DD" v-decorator="['iconJoinDate', requiredRule]" :disabledDate="disabledDate" /> + </a-form-item> + <a-form-item label="既往胸部CT是否存在影像学上支气管扩张的表现" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group v-decorator="['isbiaoxian', { rules: [{ validator: isbiaoxianRule }] }]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="是否有囊性纤维化引起的支气管扩张症" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group v-decorator="['iskuozhang', { rules: [{ validator: iskuozhangRule }] }]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="入组前4周是否发生支气管扩张症急性加重" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group v-decorator="['isjiazhong', { rules: [{ validator: isjiazhongRule }] }]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="入组前6个月是否参加任何干预性临床试验" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group v-decorator="['isshiyan', { rules: [{ validator: isshiyanRule }] }]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="患者是否无法或不愿意提供知情同意书" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group v-decorator="['istongyi', { rules: [{ validator: istongyiRule }] }]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + </div> + <a-form-item label="出现咳嗽咳痰等呼吸相关症状时间" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-date-picker style="width: 100%" format="YYYY-MM-DD" v-decorator="['coughDate']" :disabledDate="disabledDate" /> + </a-form-item> + <a-form-item label="性别" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group v-decorator="['sex', requiredRule]"> + <a-radio value="1">男</a-radio> + <a-radio value="0">女</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="出生日期" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-date-picker style="width: 100%" format="YYYY-MM-DD" :disabled="true" v-decorator="['birthDate', requiredRule]" /> + </a-form-item> + <a-form-item label="常居住地" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-row :gutter="8"> + <a-col :span="12"> + <a-form-item> + <a-cascader v-decorator="['residence', requiredRule]" :options="residences" :fieldNames="{ label: 'city', value: 'cityId', children: 'children' }" placeholder="选择省/市" /> + </a-form-item> + </a-col> + <a-col :span="12"> + <a-form-item> + <a-input v-decorator="['address', requiredRule]" placeholder="请输入详细地址" /> + </a-form-item> + </a-col> + </a-row> + </a-form-item> + <a-form-item label="民族" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-select v-decorator="['nation', requiredRule]" :options="nationList"></a-select> + </a-form-item> + <a-form-item label="职业" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group :options="professionList" v-decorator="['work', requiredRule]" /> + </a-form-item> + <a-form-item label="文化程度" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group :options="censusList" v-decorator="['census', requiredRule]" /> + </a-form-item> + <a-form-item label="家庭年收入" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['income', requiredRule]" addonAfter="万元" /> + </a-form-item> + <a-form-item label="医疗费用支付情况" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group :options="payTypeList" v-decorator="['payType', requiredRule]" /> + </a-form-item> + <a-form-item label="联系电话1" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['telephone1', requiredRule]" /> + </a-form-item> + <a-form-item label="联系电话2" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['telephone2']" /> + </a-form-item> + <a-form-item label="联系电话3" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['telephone3']" /> + </a-form-item> + <a-form-item label="随访开始时间" :labelCol="labelCol" :wrapperCol="wrapperCol" class="aaa"> + <a-popover> + <template slot="content"> 第一次半年随访根据此时间生成 </template> + <a-icon type="exclamation-circle" style="position: relative; left: -20px; color: #0399ec; cursor: pointer" /> + </a-popover> + <a-date-picker style="width: 100%" format="YYYY-MM-DD" v-decorator="['startDate', requiredRule]" /> + </a-form-item> + <a-form-item label="推荐医生" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['doctorName', requiredRule]" /> + </a-form-item> + <a-form-item label="是否去世" v-if="options.title == '编辑患者'" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group v-decorator="['deathFlag', requiredRule]" @change="changeRadio($event, 'isDeath')"> + <a-radio value="0">否</a-radio> + <a-radio value="1">是</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="isDeath"> + <a-form-item label="去世时间" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-date-picker style="width: 100%" format="YYYY-MM-DD" v-decorator="['deathDate', requiredRule]" :disabledDate="disabledDate" /> + </a-form-item> + </div> + <a-form-item :wrapperCol="agrWrapperCol"> + <a-checkbox v-decorator="[ + 'agreeMent', + { rules: [{ required: true, validator: agrValidator }], valuePropName: 'checked' }, + ]" :disabled="options.title == '编辑患者'"> + 患者是否已签署 + <a href="javascript:;" @click="download">知情同意书</a> + </a-checkbox> + </a-form-item> + </a-form> + </a-spin> + </a-modal> +</template> +<script> +import { + getProvinceAndCity, + getNation, + getDictionaryAttributeByDictionaryId, + addOrUpdate, + validateCard, + updateDataEcho +} from '@/api/basis' +import moment from 'moment' +import _ from 'lodash' +export default { + data() { + return { + options: {}, + residences: [], + nationList: [], + professionList: [], + censusList: [], + baseUrl: process.env.VUE_APP_API_BASE_URL, + maskClosable: false, + payTypeList: [], + isShowPat: false, + isDeath: false, + labelCol: { + xs: { span: 24 }, + sm: { span: 10 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 13 }, + }, + agrWrapperCol: { + xs: { + span: 24, + offset: 0, + }, + sm: { + span: 18, + offset: 6, + }, + }, + visible: false, + confirmLoading: false, + centered: true, + destroyOnClose: true, + bodyStyle: { + height: '500px', + overflow: 'auto' + }, + form: this.$form.createForm(this), + requiredRule: { rules: [{ required: true, message: '该选项必填!' }] }, + patientId: undefined, + patientPendingId: undefined, + wxPatientId: undefined + } + }, + created() { + const that = this + getProvinceAndCity().then((res) => { + const keyMap = { province: 'city', provinceId: 'cityId' } + _.each(res.data, function(item, index) { + that.residences[index] = Object.keys(item).reduce((newData, key) => { + let newKey = keyMap[key] || key + newData[newKey] = item[key] + return newData + }, {}) + }) + }) + getNation().then((res) => { + const keyMap = { name: 'title', nationId: 'value' } + _.each(res.data, function(item, index) { + that.nationList[index] = Object.keys(item).reduce((newData, key) => { + let newKey = keyMap[key] || key + newData[newKey] = item[key] + return newData + }, {}) + }) + }) + const dictionary1 = new URLSearchParams() + dictionary1.append('dictionaryId', 1) + dictionary1.append('status', 1) + getDictionaryAttributeByDictionaryId(dictionary1).then((res) => { + const keyMap = { name: 'label', dictionaryAttributeId: 'value' } + _.each(res.data, function(item, index) { + that.professionList[index] = Object.keys(item).reduce((newData, key) => { + let newKey = keyMap[key] || key + newData[newKey] = item[key] + return newData + }, {}) + }) + }) + const dictionary2 = new URLSearchParams() + dictionary2.append('dictionaryId', 2) + dictionary2.append('status', 1) + getDictionaryAttributeByDictionaryId(dictionary2).then((res) => { + const keyMap = { name: 'label', dictionaryAttributeId: 'value' } + _.each(res.data, function(item, index) { + that.censusList[index] = Object.keys(item).reduce((newData, key) => { + let newKey = keyMap[key] || key + newData[newKey] = item[key] + return newData + }, {}) + }) + }) + + const dictionary3 = new URLSearchParams() + dictionary3.append('dictionaryId', 3) + dictionary3.append('status', 1) + getDictionaryAttributeByDictionaryId(dictionary3).then((res) => { + const keyMap = { name: 'label', dictionaryAttributeId: 'value' } + _.each(res.data, function(item, index) { + that.payTypeList[index] = Object.keys(item).reduce((newData, key) => { + let newKey = keyMap[key] || key + newData[newKey] = item[key] + return newData + }, {}) + }) + }) + }, + methods: { + add() { + this.options.title = '新建患者' + this.patientId = undefined + this.visible = true + }, + changeRadio(e, t) { + if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + dataEcho(value) { + this.options.title = '患者入组信息' + this.patientPendingId = value.patientPendingId + this.wxPatientId = value.wxPatientId + value.residence = [value.addressP, value.addressC] + setTimeout(() => { + this.form.setFieldsValue({ + card: value.card, + name: value.name, + sex: String(value.sex), + birthDate: moment(value.birthDate, 'x'), + residence: value.residence, + address: value.address, + nation: value.nation, + work: value.work, + census: value.census, + income: value.income, + payType: value.payType, + telephone1: value.telephone1, + telephone2: value.telephone2, + telephone3: value.telephone3 + }) + if (value.startDate) + this.form.setFieldsValue({ + startDate: moment(value.startDate, 'YYYY-MM-DD'), + }) + }, 0) + this.visible = true + }, + edit(value) { + this.options.title = '编辑患者' + this.patientId = value.patientId + value.residence = [value.addressP, value.addressC] + // if (value.isIcon === 1) { + // this.isShowPat = true + // } else { + // this.isShowPat = false + // } + if (value.deathFlag == 1) { + this.isDeath = true + } else { + this.isDeath = false + } + setTimeout(() => { + this.form.setFieldsValue({ + card: value.card, + registerDate: moment(value.registerDate, 'x'), + coughDate: value.coughDate ? moment(value.coughDate, 'x') : null, + name: value.name, + sex: String(value.sex), + birthDate: moment(value.birthDate, 'x'), + residence: value.residence, + address: value.address, + nation: value.nation, + work: value.work, + census: value.census, + income: value.income, + payType: value.payType, + telephone1: value.telephone1, + telephone2: value.telephone2, + deathFlag: value.deathFlag, + telephone3: value.telephone3, + agreeMent: JSON.parse(value.agreeMent), + doctorName: value.doctorName, + // isIcon: String(value.isIcon) + }) + // if (value.isIcon == 1) { + // this.form.setFieldsValue({ + // isbiaoxian: String(value.isIcon), + // iskuozhang: '-1', + // isjiazhong: '-1', + // isshiyan: '-1', + // istongyi: '-1', + // iconJoinDate: value.iconJoinDate ? moment(value.iconJoinDate, 'YYYY-MM-DD') : null, + // }) + // } + if (value.deathFlag == 1) { + this.form.setFieldsValue({ + deathDate: value.deathDate ? moment(value.deathDate, 'YYYY-MM-DD') : null, + }) + } + if (value.startDate) + this.form.setFieldsValue({ + startDate: moment(value.startDate, 'YYYY-MM-DD') + }) + }, 0) + this.visible = true + }, + handleSubmit() { + if (!this.confirmLoading) { + this.confirmLoading = true + var submitPatientPendingId = this.patientPendingId || '' + var submitWxPatientId = this.wxPatientId || '' + this.form.validateFieldsAndScroll((errors, fieldsValue) => { + // if ( + // this.form.getFieldValue('birthDate') && + // new Date().getFullYear() - this.form.getFieldValue('birthDate')._d.getFullYear() < 18 && + // this.form.getFieldValue('isIcon') == 1 + // ) { + // this.$message.warning('患者不满18岁,不符合ICON患者条件') + // this.confirmLoading = false + // return false + // } + const that = this + if (errors) { + this.confirmLoading = false + return + } + const residence = fieldsValue['residence'] + const values = { + ...fieldsValue, + birthDate: fieldsValue['birthDate'].format('YYYY-MM-DD'), + registerDate: fieldsValue['registerDate'].format('YYYY-MM-DD'), + startDate: fieldsValue['startDate'].format('YYYY-MM-DD'), + addressP: residence[0], + addressC: residence[1], + patientId: this.patientId || '' + } + if (fieldsValue['iconJoinDate']) { + values.iconJoinDate = fieldsValue['iconJoinDate'].format('YYYY-MM-DD') + } + if (fieldsValue['deathDate']) { + console.log(values.deathDate) + values.deathDate = fieldsValue['deathDate'].format('YYYY-MM-DD') + } + if (fieldsValue['coughDate']) { + values.coughDate = fieldsValue['coughDate'].format('YYYY-MM-DD') + } + const params = new URLSearchParams() + params.append('patientStr', JSON.stringify(values)) + params.append('changeCenter', '') + params.append('centerId', '') + if (submitPatientPendingId && submitWxPatientId) { + updateDataEcho(submitPatientPendingId, submitWxPatientId, params).then((res) => { + that.visible = false + that.confirmLoading = false + that.$message.success(res.msg) + that.$emit('ok', values) + }) + } else { + addOrUpdate(params).then((res) => { + that.visible = false + that.confirmLoading = false + that.$message.success(res.msg) + that.$emit('ok', values) + }) + } + }) + } + }, + handleCancel() { + this.visible = false + }, + agrValidator(rule, value, callback) { + if (this.options.title == '编辑患者') { + callback() + return + } + if (!value) { + callback('该选项必填!') + return + } + callback() + }, + isbiaoxianRule(rule, value, callback) { + if (!value) { + callback('该选项必填!') + return + } + if (this.form.getFieldValue('isbiaoxian') == -1) { + callback('患者ICON研究必须符合入选标准,请仔细核对入选标准后再选择。') + return + } + callback() + }, + iskuozhangRule(rule, value, callback) { + if (!value) { + callback('该选项必填!') + return + } + if (this.form.getFieldValue('iskuozhang') == 1) { + callback('患者ICON研究必须符合入选标准,请仔细核对入选标准后再选择。') + return + } + callback() + }, + isjiazhongRule(rule, value, callback) { + if (!value) { + callback('该选项必填!') + return + } + if (this.form.getFieldValue('isjiazhong') == 1) { + callback('患者ICON研究必须符合入选标准,请仔细核对入选标准后再选择。') + return + } + callback() + }, + isshiyanRule(rule, value, callback) { + if (!value) { + callback('该选项必填!') + return + } + if (this.form.getFieldValue('isshiyan') == 1) { + callback('患者ICON研究必须符合入选标准,请仔细核对入选标准后再选择。') + return + } + callback() + }, + istongyiRule(rule, value, callback) { + if (!value) { + callback('该选项必填!') + return + } + if (this.form.getFieldValue('istongyi') == 1) { + callback('患者ICON研究必须符合入选标准,请仔细核对入选标准后再选择。') + return + } + callback() + }, + isIdCardNo(rule, value, callback) { + if (!value) { + callback('该选项必填!') + return + } + if (this.form.getFieldValue('work') === 4 && !value) { + callback() + return + } + if (!value) { + callback('该选项必填!') + return + } + let num = value.toUpperCase() + const reg = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/; + if (!reg.test(num)) { + callback('请输入正确的身份证号!') + return + } + if (num.length === 18) { + //验证城市 + let aCity = { + 11: '北京', + 12: '天津', + 13: '河北', + 14: '山西', + 15: '内蒙古', + 21: '辽宁', + 22: '吉林', + 23: '黑龙江 ', + 31: '上海', + 32: '江苏', + 33: '浙江', + 34: '安徽', + 35: '福建', + 36: '江西', + 37: '山东', + 41: '河南', + 42: '湖北', + 43: '湖南', + 44: '广东', + 45: '广西', + 46: '海南', + 50: '重庆', + 51: '四川', + 52: '贵州', + 53: '云南', + 54: '西藏', + 61: '陕西', + 62: '甘肃', + 63: '青海', + 64: '宁夏', + 65: '新疆', + 71: '台湾', + 81: '香港', + 82: '澳门', + 91: '国外', + } + if (aCity[parseInt(num.substr(0, 2))] == null) { + callback('身份证号不正确或不符合规定!') + return + } + // 验证生日 + let reg = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/) + let arrSplit = num.match(reg) + let dtmBirth = new Date(arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]) + let bGoodDay + bGoodDay = + dtmBirth.getFullYear() == Number(arrSplit[2]) && + dtmBirth.getMonth() + 1 == Number(arrSplit[3]) && + dtmBirth.getDate() == Number(arrSplit[4]) + if (!bGoodDay) { + callback('身份证号不正确或不符合规定!') + return + } + // 验证格式 + var valnum + var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2) + var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2') + var nTemp = 0 + for (var i = 0; i < 17; i++) { + nTemp += num.substr(i, 1) * arrInt[i] + } + valnum = arrCh[nTemp % 11] + if (valnum != num.substr(17, 1)) { + callback('身份证号不正确或不符合规定!') + return + } + // 回显性别、生日 + // this.form.resetFields(['birthDate', 'sex']) + this.confirmLoading = true + const params = new FormData() + params.append('card', num) + validateCard(params).then((res) => { + this.confirmLoading = false + switch (res.code) { + case 2: + callback(res.msg) + this.form.setFieldsValue({card: ''}) + this.$message.warning(res.msg) + break + case 3: + let birthDate = new Date(num.substr(6, 8).replace(/(.{4})(.{2})/, '$1-$2-')).getTime() + let sex = parseInt(num.charAt(16) / 2) * 2 != num.charAt(16) ? '1' : '0' + this.form.setFieldsValue({ + birthDate: moment(birthDate, 'x'), + sex, + }) + callback() + break + case 4: + if(this.patientId) { + callback() + } else { + callback('该患者已存在,请在列表内搜索!') + this.form.setFieldsValue({card: ''}) + this.$message.warning('该患者已存在,请在列表内搜索!') + } + break + default: + callback() + } + }) + } + if (num.length === 15) { + const arr = num.match(/^\d{6}(\d{2})(\d{2})(\d{2})\d{3}$/) + // 回显性别、生日 + this.form.resetFields(['birthDate']) + this.confirmLoading = true + const params = new FormData() + params.append('card', num) + validateCard(params).then((res) => { + this.confirmLoading = false + switch (res.code) { + case 2: + callback(res.msg) + break + case 3: + let birthDate = new Date(arr[1] + '/' + arr[2] + '/' + arr[3]).getTime() + this.form.setFieldsValue({ + birthDate: moment(birthDate, 'x') + }) + callback() + break + case 4: + callback('该患者已存在,请在列表内搜索!') + break + default: + callback() + } + }) + } + callback() + return + }, + disabledDate(current) { + // Can not select days before today and today + return current && (current > moment().endOf('day') || current.get('year') < 1930) + }, + download() { + window.open(this.baseUrl + '/patient/downLoad') + } + }, +} +</script> +<style lang="less" scoped> +/deep/ .ant-form-item:last-child { + margin-bottom: 0; +} + +/deep/ .aaa .ant-form-item-label { + position: relative; + left: -18px; +} + +.aaa .ant-form-item-children>i { + position: absolute !important; + left: -22px !important; + top: 4px; +} +</style> \ No newline at end of file diff --git a/src/views/list/modules/StepByStepModal.vue b/src/views/list/modules/StepByStepModal.vue index 9200a94420..e3db16e067 100644 --- a/src/views/list/modules/StepByStepModal.vue +++ b/src/views/list/modules/StepByStepModal.vue @@ -133,11 +133,11 @@ export default { }) }, handleNext (step) { - const { form: { validateFields } } = this + const { form: { validateFieldsAndScroll } } = this const currentStep = step + 1 if (currentStep <= 2) { // stepForms - validateFields(stepForms[ this.currentStep ], (errors, values) => { + validateFieldsAndScroll(stepForms[ this.currentStep ], (errors, values) => { if (!errors) { this.currentStep = currentStep } @@ -146,7 +146,7 @@ export default { } // last step this.confirmLoading = true - validateFields((errors, values) => { + validateFieldsAndScroll((errors, values) => { console.log('errors:', errors, 'val:', values) if (!errors) { console.log('values:', values) diff --git a/src/views/list/modules/TaskForm.vue b/src/views/list/modules/TaskForm.vue index 4d4cad96b5..474b962d9a 100644 --- a/src/views/list/modules/TaskForm.vue +++ b/src/views/list/modules/TaskForm.vue @@ -66,9 +66,9 @@ export default { }) }, handleSubmit () { - const { form: { validateFields } } = this + const { form: { validateFieldsAndScroll } } = this this.visible = true - validateFields((errors, values) => { + validateFieldsAndScroll((errors, values) => { if (!errors) { console.log('values', values) } diff --git a/src/views/list/modules/UserDetail.vue b/src/views/list/modules/UserDetail.vue new file mode 100644 index 0000000000..93a5e7d194 --- /dev/null +++ b/src/views/list/modules/UserDetail.vue @@ -0,0 +1,577 @@ +<template> + <a-modal title="患者详情" :width="800" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :centered="centered" :destroyOnClose="destroyOnClose" :visible="visible" :confirmLoading="confirmLoading" :footer="null" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <user-detail :option="patient"></user-detail> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="详细信息" key="1"> + <div class="userCard"> + <a-row id="userInfo"> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>患者同意注册日期:</span> + {{ patient.registerDate | formDate }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>文化程度:</span> + {{ patient.censusName }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>访视状态:</span> + {{ patient.visitName }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>医疗费用支付情况:</span> + {{ patient.payTypeName }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>职业:</span> + {{ patient.workName }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>家庭年收入:</span> + {{ patient.income }}万 + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>创建机构:</span> + {{ patient.centerName }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>创建时间:</span> + {{ patient.ceateDate | formDate }} + </p> + </a-col> + <a-col :sm="8"> + <p class="userInfoItem"> + <span>创建人:</span> + {{ patient.creatorName }} + </p> + </a-col> + <a-col :sm="16"> + <p class="userInfoItem"> + <span>出现咳嗽咳痰等呼吸相关症状时间:</span> + {{ patient.coughDate | formDate }} + </p> + </a-col> + </a-row> + </div> + </a-tab-pane> + <a-tab-pane tab="待访视任务" key="2" forceRender> + <div class="userCard" v-if="visitTasks.length>0"> + <div class="followupItem" v-for="item in visitTasks" :key="item.id"> + <my-icon class="my-icon-huaban" type="iconshijian_huaban" /> + <p> + <span>计划时间:</span> + {{item.planDate | formDate}} + </p> + <p> + <span>随访摘要:</span> + {{item.typeName}} + </p> + <a @click="exec(item.type, item.patientBasisId)"> + <a-button type="primary" size="small" style="float:right;"> + <my-icon type="iconxiangqing_huaban" /> + 执行 + </a-button> + </a> + </div> + </div> + <div v-else class="userCard"> + <div style="text-align: center;"> + <img src="@/assets/noData.png" alt=""> + <p>暂无数据</p> + </div> + </div> + </a-tab-pane> + <a-tab-pane tab="访视情况" key="3"> + <div class="userCard" v-if="patientBasisList.length>0"> + <a-timeline> + <a-timeline-item v-for="item in patientBasisList" :key="item.id"> + <span class="followupDate">{{item.createDate|formDate}}</span> + <div class="followupInfoItem"> + <div class="followupInfoItemType"> + <p> + 访视类型: + <span>{{item.type|patientBasisType}}</span> + </p> + <p>访视时间: {{item.wirteDate|formDate}}</p> + </div> + <div class="followupInfoItemPro"> + <p> + 访视进度: + <span>{{item.executeStatus == 3 ? '已完成' : '未完成'}}</span> + </p> + <!-- <p> + <a-progress :percent="item.progress" status="active" /> + </p> --> + </div> + <a v-if="item.type == 1" @click="basisDetail(item.patientBasisId)"> + <a-button type="primary" size="small" style="float:right;margin-top:5px ;"> + <my-icon type="iconxiangqing_huaban" /> + 详情 + </a-button> + </a> + <a v-else-if="item.type == 2||item.type == 3" @click="taskDetail(item.patientBasisId)"> + <a-button type="primary" size="small" style="float:right;margin-top:5px ;"> + <my-icon type="iconxiangqing_huaban" /> + 详情 + </a-button> + </a> + <a v-else-if="item.type == 4" @click="jxjzq(item.patientBasisId)"> + <a-button type="primary" size="small" style="float:right;margin-top:5px;"> + <my-icon type="iconxiangqing_huaban" /> + 详情 + </a-button> + </a> + </div> + </a-timeline-item> + </a-timeline> + </div> + <div v-else class="userCard"> + <div style="text-align: center;"> + <img src="@/assets/noData.png" alt=""> + <p>暂无数据</p> + </div> + </div> + </a-tab-pane> + </a-tabs> + <div class="scores" v-if="zkScore != 0"> + <p class="title">支扩评分</p> + <a-row :gutter="10"> + <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '10px' }"> + <div class="block clearfix heighter"> + <div class="name">BSI评分</div> + <div class="score">{{scoreData.BSI}}分</div> + <mini-area /> + </div> + </a-col> + <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '10px' }"> + <div class="block clearfix heighter"> + <div class="name">FACED评分</div> + <div class="score">{{scoreData.FACED}}分</div> + <mini-area /> + </div> + </a-col> + <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '10px' }"> + <div class="block clearfix heighter"> + <div class="name">BACI评分</div> + <div class="score">{{scoreData.BACI}}分</div> + <mini-area /> + </div> + </a-col> + <a-col :sm="24" :md="12" :xl="6" :style="{ marginBottom: '10px' }"> + <div class="block clearfix heighter"> + <div class="name">Reffi评分</div> + <div class="score">{{scoreData.Reiff}}分</div> + <mini-area /> + </div> + </a-col> + </a-row> + </div> + <div class="scores" v-if="zkScore != 0"> + <p class="title">问卷评分</p> + <a-row :gutter="10"> + <a-col v-if="scoreData.BHQ && scoreData.BHQ.score" :sm="24" :md="scoreData.HAD.score9 ? 9 : 12" :xl="scoreData.HAD.score9 ? 6 : 8" :style="{ marginBottom: '10px' }"> + <div class="block clearfix"> + <div class="name">BHQ评分</div> + <div class="score" style="color: mediumpurple">{{scoreData.BHQ.score}}分</div> + <mini-progress color="mediumpurple" :target="scoreData.BHQ.score" :percentage="scoreData.BHQ.score" height="8px" /> + </div> + </a-col> + <a-col v-if="scoreData.MMRC && scoreData.MMRC.score" :sm="24" :md="scoreData.HAD.score9 ? 9 : 12" :xl="scoreData.HAD.score9 ? 6 : 8" :style="{ marginBottom: '10px' }"> + <div class="block clearfix"> + <div class="name">MMRC评分</div> + <div class="score" style="color: #fd94dc">{{scoreData.MMRC.score}}分</div> + <mini-progress color="#fd94dc" :target="scoreData.MMRC.score / 4 * 100" :percentage="scoreData.MMRC.score / 4 * 100" height="8px" /> + </div> + </a-col> + <a-col :sm="24" :md="scoreData.HAD.score9 ? 9 : 12" :xl="scoreData.HAD.score9 ? 6 : 8" :style="{ marginBottom: '10px' }" v-if="scoreData.HAD && scoreData.HAD.score9"> + <div class="block clearfix"> + <div class="name">HADS<span v-if="scoreData.HAD.score9">-A</span>评分</div> + <div class="score" style="color: orange">{{scoreData.HAD.score}}分</div> + <mini-progress color="orange" :target="scoreData.HAD.score / 42 * 100" :percentage="scoreData.HAD.score / 42 * 100" height="8px" /> + </div> + </a-col> + <a-col :sm="24" :md="scoreData.HAD.score9 ? 9 : 12" :xl="scoreData.HAD.score9 ? 6 : 8" :style="{ marginBottom: '10px' }" v-if="scoreData.HAD && scoreData.HAD.score9"> + <div class="block clearfix"> + <div class="name">HADS-D评分</div> + <div class="score" style="color: #fd94dc">{{scoreData.HAD.score9}}分</div> + <mini-progress color="#fd94dc" :target="scoreData.HAD.score9 / 42 * 100" :percentage="scoreData.HAD.score9 / 42 * 100" height="8px" /> + </div> + </a-col> + </a-row> + <a-row v-if="scoreData.LCQ"> + <a-col :sm="24" :md="24" :xl="24" :style="{ marginBottom: '10px' }"> + <div class="block clearfix"> + <div class="name">LCQ评分</div> + <div class="score" style="color: lightseagreen">总{{scoreData.LCQ.score}}分</div> + <a-row :gutter="10"> + <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '10px' }"> + <label>生理</label> + <mini-progress color="lightseagreen" :target="scoreData.LCQ.score1 / 56 * 100" :percentage="scoreData.LCQ.score1 / 56 * 100" height="8px" /> + <label>{{scoreData.LCQ.score1}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '10px' }"> + <label>心理</label> + <mini-progress color="lightseagreen" :target="scoreData.LCQ.score2 / 49 * 100" :percentage="scoreData.LCQ.score2 / 49 * 100" height="8px" /> + <label>{{scoreData.LCQ.score2}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '10px' }"> + <label>社会</label> + <mini-progress color="lightseagreen" :target="scoreData.LCQ.score3 / 28 * 100" :percentage="scoreData.LCQ.score3/ 28 * 100" height="8px" /> + <label>{{scoreData.LCQ.score3}}分</label> + </a-col> + </a-row> + </div> + </a-col> + </a-row> + <a-row v-if="scoreData.QOLB"> + <a-col :sm="24" :md="24" :xl="24" :style="{ marginBottom: '10px' }"> + <div class="block clearfix"> + <div class="name">QoL-B评分</div> + <a-row :gutter="10"> + <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '10px' }"> + <label>身体功能性维度</label> + <mini-progress color="rgb(24,144,255)" :target="scoreData.QOLB.score1" :percentage="scoreData.QOLB.score1" height="8px" /> + <label>{{scoreData.QOLB.score1}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '10px' }"> + <label>角色功能性维度</label> + <mini-progress color="rgb(24,144,255)" :target="scoreData.QOLB.score2" :percentage="scoreData.QOLB.score2" height="8px" /> + <label>{{scoreData.QOLB.score2}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '10px' }"> + <label>活力性维度</label> + <mini-progress color="rgb(24,144,255)" :target="scoreData.QOLB.score3" :percentage="scoreData.QOLB.score3" height="8px" /> + <label>{{scoreData.QOLB.score3}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '10px' }"> + <label>情绪功能性维度</label> + <mini-progress color="rgb(24,144,255)" :target="scoreData.QOLB.score4" :percentage="scoreData.QOLB.score4" height="8px" /> + <label>{{scoreData.QOLB.score4}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '10px' }"> + <label>社会功能性维度</label> + <mini-progress color="rgb(24,144,255)" :target="scoreData.QOLB.score5" :percentage="scoreData.QOLB.score5" height="8px" /> + <label>{{scoreData.QOLB.score5}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '10px' }"> + <label>医疗负担性维度</label> + <mini-progress color="rgb(24,144,255)" :target="scoreData.QOLB.score6" :percentage="scoreData.QOLB.score6" height="8px" /> + <label>{{scoreData.QOLB.score6 || 0}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '10px' }"> + <label>健康感觉性维度</label> + <mini-progress color="rgb(24,144,255)" :target="scoreData.QOLB.score7" :percentage="scoreData.QOLB.score7" height="8px" /> + <label>{{scoreData.QOLB.score7}}分</label> + </a-col> + <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '10px' }"> + <label>呼吸症状性维度</label> + <mini-progress color="rgb(24,144,255)" :target="scoreData.QOLB.score8" :percentage="scoreData.QOLB.score8" height="8px" /> + <label>{{scoreData.QOLB.score8}}分</label> + </a-col> + </a-row> + </div> + </a-col> + </a-row> + </div> + </a-spin> + </a-modal> +</template> +<script> +import { getPatientDetail } from '@/api/patient' +import UserDetail from './UserDetailTop' +import { MyIcon } from '@/components/_util/util' +import { ChartCard, MiniProgress, MiniArea } from '@/components'; +import moment from 'moment' +import _ from 'lodash' +import 'url-search-params-polyfill' + +export default { + components: { + UserDetail, + MyIcon, + ChartCard, + MiniProgress, + MiniArea + }, + data() { + return { + patientBasisList: [], + visitTasks: [], + patient: {}, + visible: false, + confirmLoading: false, + centered: true, + maskClosable: false, + destroyOnClose: true, + bodyStyle: { + height: '500px', + overflow: 'auto', + background: "#F8FBFC" + }, + zkScore: 0, + scoreData: { + BHQ: {}, + MMRC: {}, + HAD: {}, + LCQ: {}, + QOLB: {} + } + } + }, + filters: { + formDate(date) { + return moment(date).format('YYYY-MM-DD'); + }, + // visitStatus(value) { + // const visitMap = { + // '1': '忽略', + // '2': '未执行', + // '3': '执行中', + // '4': '已完成' + // }; + // return visitMap[value]; + // }, + patientBasisType(type) { + const patientBasisTypeMap=['','支扩基线','半年随访','年访视','急性加重期随访', '', 'ICON常规随访', '急性加重期随访', 'ICON基线'] + return patientBasisTypeMap[type]; + } + }, + methods: { + show(value) { + this.visible = true + this.confirmLoading = true + const Params = new URLSearchParams() + Params.append('patientId', value.patientId) + getPatientDetail(Params).then(res => { + this.patient = res.data.patient + this.patientBasisList = res.data.patientBasisList + this.visitTasks = res.data.visitTasks + this.confirmLoading = false + this.zkScore = res.data.zkScore + this.scoreData = res.data + }); + }, + handleCancel() { + this.visible = false + }, + basisDetail(id) { + this.visible = false + this.$router.push('/list/basis/' + id) + }, + taskDetail(id) { + this.visible = false + this.$router.push('/list/task/' + id) + }, + jxjzq(id) { + this.visible = false + this.$router.push('/jxjzq/' + id) + }, + exec(type, id) { + this.visible = false + if (type === 6) { + this.$router.push('/icon/task/' + id) + } else { + this.$router.push('/list/task/' + id) + } + } + } +}; +</script> +<style lang="less" scoped> +/deep/ .ant-modal-body { + background-color: #fdfdfd; +} + +.userCard { + background: #ffffff; + padding: 20px; + border: 1px solid #f1f1f1; + padding-right: 0px; + overflow: auto; + + #userInfo { + p.userInfoItem { + color: #000000; + + span { + color: #888888; + } + } + } + + .followupItem { + border-bottom: 1px dashed #f3f3f3; + padding-bottom: 10px; + margin-bottom: 15px; + padding-right: 20px; + + .my-icon-huaban { + color: #26adfa; + font-size: 30px; + margin-right: 10px; + vertical-align: middle; + } + + p { + display: inline-block; + margin: 0px; + margin-right: 40px; + color: #000000; + + span { + color: #888888; + } + } + } + + span.followupDate { + display: inline-block; + border: 1px solid #dddddd; + padding: 5px 10px; + font-size: 12px; + border-radius: 15px; + vertical-align: top; + position: relative; + top: -3px; + } + + div.followupInfoItem { + display: inline-block; + width: 590px; + background: #F1F8FE; + margin-left: 20px; + position: relative; + top: -11px; + padding: 5px 20px; + + div.followupInfoItemType { + display: inline-block; + width: 200px; + font-size: 12px; + + p:first-child { + color: #000; + margin-bottom: 5px; + font-size: 14px; + + span { + color: #F0C070; + } + } + + p:nth-child(2) { + margin: 0; + } + } + + div.followupInfoItemPro { + display: inline-block; + width: 200px; + vertical-align: top; + + span { + font-size: 14px; + color: #000; + } + + p { + // width: 100px; + display: inline-block; + margin: 0; + margin-left: 10px; + // /deep/ .ant-progress-inner{ + // background-color:#C4C4C4; + // } + } + } + } + +} + +::-webkit-scrollbar-track-piece { + //滚动条凹槽的颜色,还可以设置边框属性 + background-color: #f8f8f8; +} + +::-webkit-scrollbar { + //滚动条的宽度 + width: 5px; + height: 9px; +} + +::-webkit-scrollbar-thumb { + //滚动条的设置 + background-color: #dddddd; + background-clip: padding-box; + min-height: 28px; +} + +::-webkit-scrollbar-thumb:hover { + background-color: #bbb; +} +.scores{ + margin-top: 10px; + border-top: 2px solid #168ffd; + background-color: #fff; + padding: 10px; + .title{ + color: #096dd9; + margin-bottom: 10px; + } + .block{ + border: 1px solid #eee; + padding: 10px; + + &.heighter{ + height: 100px; + } + .name{ + float: left; + } + .score{ + float: right; + color: #096dd9; + font-weight: bold; + &.no{ + color: gray; + } + } + .chart-mini-progress{ + clear: both; + } + .ant-row{ + clear: both; + margin-top: 30px; + .chart-mini-progress{ + clear: none; + float: left; + width: 56%; + margin: 0 10px; + } + label{ + float: left; + font-size: 12px; + } + } + /deep/.antv-chart-mini .chart-wrapper{ + bottom: -100px!important; + } + } + +} +</style> \ No newline at end of file diff --git a/src/views/list/modules/UserDetailTop.vue b/src/views/list/modules/UserDetailTop.vue new file mode 100644 index 0000000000..f8013bee66 --- /dev/null +++ b/src/views/list/modules/UserDetailTop.vue @@ -0,0 +1,189 @@ +<template> + <div class="userDetail" :option="option"> + <div class="userDetailTop"> + <img src="../../../assets/woman.png" alt="" v-if="option.sex == 0" /> + <img src="../../../assets/man.png" alt="" v-else /> + <div class="userDetailInfo"> + <h4> + {{ option.name }} + <span class="userDetailCard">{{ option.card }}</span> + </h4> + <p> + <span class="userDetailAge" :class="option.sex == 0 ? 'womenBg' : ''"> + <a-icon :type="option.sex == 1 ? 'man':'woman'" /> + {{getAge}}岁 + </span> + <span class="tl" v-if="option.isTl">{{option.isTl}}</span> + <span class="userDetailNation">{{option.nationName}}</span> + </p> + </div> + </div> + <div class="userDetailContent"> + <p class="userDetailItem"> + <span class="userDetailItemTitle">患者编号</span> + <span class="userDetailItemInfo"> {{option.code}}</span> + </p> + <p class="userDetailItem"> + <span class="userDetailItemTitle">联系电话</span> + <span class="userDetailItemInfo">{{option.telephone1}}</span> + </p> + <p class="userDetailItem"> + <span class="userDetailItemTitle">出生日期</span> + <span class="userDetailItemInfo">{{birthDay}}</span> + </p> + <p class="userDetailItem"> + <span class="userDetailItemTitle">居住地</span> + <span class="userDetailItemInfo">{{option.addressDetail}}</span> + </p> + </div> + </div> +</template> + +<script> +import _ from 'lodash' +export default { + data() { + return {}; + }, + props: { + option: { + type: Object, + default: {} + } + }, + mounted() {}, + methods: {}, + computed: { + birthDay() { + if (_.isEmpty(this.option)) { + return '' + } + let card = this.option.card; + let birthDay = '' + if (card.length == 15) { + birthDay = card.substr(6, 6).replace(/(.{4})(.{2})/, "$1-$2-") + } else if (card.length == 18) { + birthDay = card.substr(6, 8).replace(/(.{4})(.{2})/, "$1-$2-") + } + return birthDay + }, + getAge() { + if(_.isEmpty(this.option)){ + return '' + } + var identityCard = this.option.card; + var len = (identityCard + '').length; + if (len == 0) { + return 0; + } else { + if (len != 15 && len != 18) { + //身份证号码只能为15位或18位其它不合法 + return 0; + } + } + var strBirthday = ''; + if (len == 18) { + //处理18位的身份证号码从号码中得到生日和性别代码 + strBirthday = identityCard.substr(6, 4) + '/' + identityCard.substr(10, 2) + '/' + identityCard.substr(12, 2); + } + if (len == 15) { + strBirthday = '19' + identityCard.substr(6, 2) + '/' + identityCard.substr(8, 2) + '/' + identityCard.substr(10, 2); + } + //时间字符串里,必须是“/” + var birthDate = new Date(strBirthday); + var nowDateTime = new Date(); + var age = nowDateTime.getFullYear() - birthDate.getFullYear(); + //再考虑月、天的因素;.getMonth()获取的是从0开始的,这里进行比较,不需要加1 + if (nowDateTime.getMonth() < birthDate.getMonth() || (nowDateTime.getMonth() == birthDate.getMonth() && nowDateTime.getDate() < birthDate.getDate())) { + age--; + } + return age; + } + } +}; +</script> +<style lang="less" scoped> +.userDetail { + border: 1px solid #f8f8f8; + border-top: 4px solid #168ffd; + padding: 15px 25px; + background-color: #ffffff; + + .userDetailTop { + img { + display: inline-block; + vertical-align: top; + width: 60px; + height: 60px; + } + + .userDetailInfo { + display: inline-block; + padding-top: 5px; + padding-left: 15px; + + h4 { + font-size: 18px; + margin-bottom: 0px; + + span { + font-weight: normal; + font-size: 17px; + margin-left: 10px; + display: inline-block; + } + } + + p { + .womenBg { + background-color: #fd94dc !important; + } + + .userDetailAge { + display: inline-block; + background-color: #96dcfd; + color: #ffffff; + padding: 0px 10px; + border-radius: 3px; + + .anticon { + margin-right: 5px; + } + } + .tl { + background: #ff4856; + border-radius: 3px; + padding: 0 10px; + margin-left: 10px; + color: #fff; + } + + .userDetailNation { + display: inline-block; + background-color: #e8e8e8; + padding: 0px 10px; + border-radius: 3px; + margin-left: 10px; + } + } + } + } + + .userDetailContent { + margin-top: 20px; + overflow: hidden; + + .userDetailItem { + display: inline-block; + width: 20%; + color: #000000; + vertical-align: top; + + .userDetailItemTitle { + display: block; + color: #a9a9a9; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/list/modules/Visit.vue b/src/views/list/modules/Visit.vue new file mode 100644 index 0000000000..4f88dddfaa --- /dev/null +++ b/src/views/list/modules/Visit.vue @@ -0,0 +1,150 @@ +<template> + <a-popover trigger="click" v-model="visible" v-if="show"> + <div class="visitInfo" slot="content"> + <a-timeline> + <div v-for="(item, index) in list"> + <a-timeline-item v-for="(v, i) in item"> + <div slot="dot" v-if="i==0"> + <div class="visitContent"> + <span class="visitYear"> + <a-icon type="file-text" /></span> + <span class="visitYearText">{{v.gyYear}}年</span> + </div> + </div> + <div class="visiItem" @click="jump(v)"> + <p class="visiItemTitle"> + <span class="visiItemName">{{v.typeName}}</span> + <span class="visiItemTime"> + <a-icon type="clock-circle" /> + {{v.createDate | moment('YYYY-MM-DD')}} + </span> + </p> + <div class="visiItemPro"> + <a-progress :percent="parseInt(v.progress)" :showInfo="false" /> + </div> + </div> + </a-timeline-item> + </div> + </a-timeline> + </div> + <span class="more">更多</span> + </a-popover> +</template> +<script> +import { getSFDataList } from '@/api/patient' +import moment from 'moment' +import _ from 'lodash' + +export default { + data() { + return { + visible: false, + list: [] + } + }, + computed: { + show() { + return !_.isEmpty(this.list) + } + }, + props: { + patientId: { + type: Number + } + }, + created() { + var that = this + var param = new URLSearchParams() + param.append('patientId', this.patientId) + getSFDataList(param) + .then(res => { + if (!_.isEmpty(res.data)) { + that.list = res.data + } else { + that.visible = false + } + }) + }, + methods: { + moment, + hide() { + this.visible = false + }, + jump(v) { + this.visible = false + if (v.type === 3) { + this.$router.push('/list/task/' + v.patientBasisId) + } else if (v.type === 4) { + this.$router.push('/jxjzq/' + v.patientBasisId) + } else if (v.type === 2) { + this.$router.push('/list/task/' + v.patientBasisId + '/11') + } + } + } +}; +</script> +<style lang="less" scoped> +.visitInfo { + padding: 20px; + padding-bottom: 0px; + padding-top: 40px; + height: 200px; + overflow: auto; +} + +.visitContent { + .visitYear { + display: block; + background: #cbe5f7; + border-radius: 50%; + font-size: 14px; + color: #54bde7; + height: 25px; + width: 25px; + text-align: center; + line-height: 25px; + position: relative; + left: 5px; + } + + .visitYearText { + display: block; + font-size: 12px; + } +} + +.visiItem { + height: 50px; + width: 194px; + padding: 5px; + border: 1px solid #dddddd; + margin-left: 10px; + position: relative; + top: -15px; + cursor: pointer; + + .visiItemTitle { + margin: 0; + overflow: hidden; + + .visiItemName { + font-size: 12px; + } + + .visiItemTime { + font-size: 12px; + float: right; + color: #9dadb3; + } + } +} + +.more { + color: #1890ff; + cursor: pointer; + + &:hover { + text-decoration: underline; + } +} +</style> \ No newline at end of file diff --git a/src/views/list/table/Edit.vue b/src/views/list/table/Edit.vue index 74b169524d..c8a1b51164 100644 --- a/src/views/list/table/Edit.vue +++ b/src/views/list/table/Edit.vue @@ -131,8 +131,8 @@ export default { this.$emit('onGoBack') }, handleSubmit () { - const { form: { validateFields } } = this - validateFields((err, values) => { + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((err, values) => { if (!err) { // eslint-disable-next-line no-console console.log('Received values of form: ', values) diff --git a/src/views/list/table/List.vue b/src/views/list/table/List.vue index 8e5da0bce0..cfbe78ec4c 100644 --- a/src/views/list/table/List.vue +++ b/src/views/list/table/List.vue @@ -20,7 +20,7 @@ <template v-if="advanced"> <a-col :md="8" :sm="24"> <a-form-item label="调用次数"> - <a-input-number v-model="queryParam.callNo" style="width: 100%"/> + <a-input-number v-model.trim="queryParam.callNo" style="width: 100%"/> </a-form-item> </a-col> <a-col :md="8" :sm="24"> diff --git a/src/views/message/base.vue b/src/views/message/base.vue new file mode 100644 index 0000000000..de91127745 --- /dev/null +++ b/src/views/message/base.vue @@ -0,0 +1,359 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索标题" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch2(1)">待阅读消息</p> + <p @click="tableSearch2(2)">已阅读消息</p> + <p @click="tableSearch1(0)">待发布消息</p> + <p @click="tableSearch1(1)">已发布消息</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="标题"> + <a-input v-model.trim="queryParam.title" /> + </a-form-item> + <a-form-item label="发布人"> + <a-input v-model.trim="queryParam.publisher" /> + </a-form-item> + <a-form-item label="发布时间" style="margin-bottom:0;"> + <a-range-picker @change="changeTime" style="width: 100%" :value="dateArr" /> + </a-form-item> + <a-form-item style="text-align: right; margin-bottom: 0; margin-top: 15px"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + <a-col :md="11" style="text-align:right" :sm="24"> + <a-button type="primary" @click="$refs.createModal.add()">新建</a-button> + </a-col> + <a-col :md="1" style="text-align:right" :sm="24"> + <a-button type="primary" @click="$refs.table.refresh()">刷新</a-button> + </a-col> + </a-row> + </a-form> + </div> + <s-table + class="table-fix" + ref="table" + :scroll="scroll" + size="small" + rowKey="wxPatientId" + :columns="columns" + :data="loadData" + :alert="options.alert" + :rowSelection="options.rowSelection" + > + <template slot="overFlow" slot-scope="text, record"> + <div style="overflow: hidden; white-space: nowrap; text-overflow: ellipsis;max-width: 600px"> + {{ record.content }} + </div> + </template> + <span slot="status" slot-scope="text">{{ text | statusFilter}}</span> + <span slot="operation" slot-scope="text, record"> + <template v-if="record.isCreator == 1"> + <a style="margin-right: 5px" v-if="record.status == 0? true : (record.status == 2? true : false)" @click="addorEditMessage(record)">编辑</a> + <a style="margin-right: 5px" v-if="record.status == 1? false : true" @click="handleReview(record)">发布</a> + <a style="margin-right: 5px" v-if="record.isCreator == 1? (record.status == 1? true : false) : false" @click="withdraw(record)">撤回</a> + <a style="margin-right: 5px" @click="newsDetailView(record)">详情</a> + <a style="margin-right: 5px" v-if="record.status == 0? true : (record.status == 2? true : false)" @click="del(record)">删除</a> + </template> + <template v-if="record.isCreator == 0"> + <a style="margin-right: 5px" @click="newsDetailView(record)">详情</a> + </template> + </span> + </s-table> + <created-form ref="createModal" @ok="handleOk"></created-form> + <news-detail ref="newsDetail" @ok="handleOk"></news-detail> + </a-card> +</template> +<script> +import moment from 'moment' +import { STable } from '@/components' +import { getMessageList, withdrawData, publishData, deleteData } from '@/api/message' +import CreatedForm from './component/createdForm.vue' +import NewsDetail from './component/newsDetail.vue' +import $ from 'jquery' +export default { + name: 'base', + components: { + STable, + CreatedForm, + NewsDetail + }, + data () { + return { + dateArr: [], + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: { + type: 1 + }, + scroll: false, + dataEchoInfo: {}, + loadData: (parameter) => { + return getMessageList(Object.assign(parameter, this.queryParam)).then((res) => { + return res + }) + }, + form: this.$form.createForm(this), + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [ + { + title: '发布标题', + dataIndex: 'title', + width: '120px' + }, + { + title: '发布时间', + dataIndex: 'updatedDate', + width: '80px', + customRender: (updatedDate) => (updatedDate) ? moment(updatedDate).format('YYYY-MM-DD') : '' + }, + { + title: '发布人', + dataIndex: 'publisher', + width: '100px' + }, + { + title: '消息来源', + dataIndex: 'typeName', + width: '100px' + }, + { + title: '阅读状态', + dataIndex: 'readStatusName', + width: '100px' + }, + { + title: '消息内容', + dataIndex: 'content', + width: '600px', + // render: text => <div dataIndex={text}>{text}</div> + // ellipsis: true + scopedSlots: { customRender: 'overFlow' } + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '160px' + } + ] + } + }, + created () { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + mounted () { + var that = this + $(document).on('click', function (e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ( + $(e.target).closest('.tableSearch').length === 0 && + $(e.target).closest('.ant-calendar').length === 0 && + $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && + $(e.target).closest('.ant-calendar-month-panel-table').length === 0 + ) { + that.advanced = false + } + }) + }, + filters: { + statusFilter (status) { + if (status === 0) { + return '未阅' + } else { + return '已阅' + } + } + }, + methods: { + onSelectChange (selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys + this.selectedRows = selectedRows + }, + handleOk () { + this.$refs.table.refresh() + }, + clearForm () { + this.queryParam = { + type: 1 + } + this.dateArr = [] + }, + tableSearch (type) { + this.queryParam.queryType = type + this.$refs.table.refresh() + this.advanced = false + }, + tableSearch1 (status) { + this.queryParam.status = status + delete this.queryParam.readStatus + this.$refs.table.refresh() + this.advanced = false + }, + tableSearch2 (readStatus) { + this.queryParam.readStatus = readStatus + delete this.queryParam.status + this.$refs.table.refresh() + this.advanced = false + }, + refreshTable () { + this.advanced = false + this.$refs.table.refresh() + }, + changeTime (time) { + this.dateArr = time + this.queryParam.publishTimeStart = moment(time[0]).format('YYYY-MM-DD 00:00:00') + this.queryParam.publishTimeEnd = moment(time[1]).format('YYYY-MM-DD 23:59:59') + }, + // 编辑 + addorEditMessage (record) { + this.$refs.createModal.edit(record) + }, + newsDetailView (record) { + this.$refs.newsDetail.show(record) + }, + // 发布 + async handleReview (recode) { + const that = this + this.$confirm({ + title: '是否要发布这条消息?', + onOk () { + publishData(recode.announcementId).then(res => { + if (res.code === 0) { + that.$message.success('发布成功') + that.$refs.table.refresh() + } else { + that.$message.error(res.msg) + } + }) + }, + onCancel () {} + }) + }, + // 撤回 + withdraw (record) { + const that = this + this.$confirm({ + title: '是否要撤回这条消息?', + onOk () { + withdrawData(record.announcementId).then(res => { + if (res && res.code === 0) { + that.$message.success('撤回成功') + that.$refs.table.refresh() + } else { + that.$message.error(res && res.msg) + } + }) + }, + onCancel () {} + }) + }, + // 删除 + del (record) { + const that = this + this.$confirm({ + title: '是否要删除这条消息?', + onOk () { + deleteData(record.announcementId).then(res => { + if (res.code === 0) { + that.$message.success('删除成功') + that.$refs.table.refresh() + } else { + that.$message.error(res && res.msg) + } + }) + }, + onCancel () {} + }) + } + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} +.table-fix { + table-layout:fixed; +} +.ant-table-tbody > tr > td { + max-height: 40px; + overflow:hidden; + white-space:nowrap; + text-overflow:ellipsis; + cursor: pointer; +} +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item > .ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} +</style> diff --git a/src/views/message/branch.vue b/src/views/message/branch.vue new file mode 100644 index 0000000000..c65fef2d03 --- /dev/null +++ b/src/views/message/branch.vue @@ -0,0 +1,359 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索标题" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch2(1)">待阅读消息</p> + <p @click="tableSearch2(2)">已阅读消息</p> + <p @click="tableSearch1(0)">待发布消息</p> + <p @click="tableSearch1(1)">已发布消息</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="标题"> + <a-input v-model.trim="queryParam.title" /> + </a-form-item> + <a-form-item label="发布人"> + <a-input v-model.trim="queryParam.publisher" /> + </a-form-item> + <a-form-item label="发布时间" style="margin-bottom:0;"> + <a-range-picker @change="changeTime" style="width: 100%" :value="dateArr" /> + </a-form-item> + <a-form-item style="text-align: right; margin-bottom: 0; margin-top: 15px"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + <a-col :md="11" style="text-align:right" :sm="24"> + <a-button type="primary" @click="$refs.createModal.add()">新建</a-button> + </a-col> + <a-col :md="1" style="text-align:right" :sm="24"> + <a-button type="primary" @click="$refs.table.refresh()">刷新</a-button> + </a-col> + </a-row> + </a-form> + </div> + <s-table + class="table-fix" + ref="table" + :scroll="scroll" + size="small" + rowKey="wxPatientId" + :columns="columns" + :data="loadData" + :alert="options.alert" + :rowSelection="options.rowSelection" + > + <template slot="overFlow" slot-scope="text, record"> + <div style="overflow: hidden; white-space: nowrap; text-overflow: ellipsis;max-width: 600px"> + {{ record.content }} + </div> + </template> + <span slot="status" slot-scope="text">{{ text | statusFilter}}</span> + <span slot="operation" slot-scope="text, record"> + <template v-if="record.isCreator == 1"> + <a style="margin-right: 5px" v-if="record.status == 0? true : (record.status == 2? true : false)" @click="addorEditMessage(record)">编辑</a> + <a style="margin-right: 5px" v-if="record.status == 1? false : true" @click="handleReview(record)">发布</a> + <a style="margin-right: 5px" v-if="record.isCreator == 1? (record.status == 1? true : false) : false" @click="withdraw(record)">撤回</a> + <a style="margin-right: 5px" @click="newsDetailView(record)">详情</a> + <a style="margin-right: 5px" v-if="record.status == 0? true : (record.status == 2? true : false)" @click="del(record)">删除</a> + </template> + <template v-if="record.isCreator == 0"> + <a style="margin-right: 5px" @click="newsDetailView(record)">详情</a> + </template> + </span> + </s-table> + <created-form ref="createModal" @ok="handleOk"></created-form> + <news-detail ref="newsDetail" @ok="handleOk"></news-detail> + </a-card> +</template> +<script> +import moment from 'moment' +import { STable } from '@/components' +import { getMessageList, withdrawData, publishData, deleteData } from '@/api/message' +import CreatedForm from './component/createdForm.vue' +import NewsDetail from './component/newsDetail.vue' +import $ from 'jquery' +export default { + name: 'branch', + components: { + STable, + CreatedForm, + NewsDetail + }, + data () { + return { + dateArr: [], + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: { + type: 2 + }, + scroll: false, + dataEchoInfo: {}, + loadData: (parameter) => { + return getMessageList(Object.assign(parameter, this.queryParam)).then((res) => { + return res + }) + }, + form: this.$form.createForm(this), + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [ + { + title: '发布标题', + dataIndex: 'title', + width: '120px' + }, + { + title: '发布时间', + dataIndex: 'updatedDate', + width: '80px', + customRender: (updatedDate) => (updatedDate) ? moment(updatedDate).format('YYYY-MM-DD') : '' + }, + { + title: '发布人', + dataIndex: 'publisher', + width: '100px' + }, + { + title: '消息来源', + dataIndex: 'typeName', + width: '100px' + }, + { + title: '阅读状态', + dataIndex: 'readStatusName', + width: '100px' + }, + { + title: '消息内容', + dataIndex: 'content', + width: '600px', + // render: text => <div dataIndex={text}>{text}</div> + // ellipsis: true + scopedSlots: { customRender: 'overFlow' } + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '160px' + } + ] + } + }, + created () { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + mounted () { + var that = this + $(document).on('click', function (e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ( + $(e.target).closest('.tableSearch').length === 0 && + $(e.target).closest('.ant-calendar').length === 0 && + $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && + $(e.target).closest('.ant-calendar-month-panel-table').length === 0 + ) { + that.advanced = false + } + }) + }, + filters: { + statusFilter (status) { + if (status === 0) { + return '未阅' + } else { + return '已阅' + } + } + }, + methods: { + onSelectChange (selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys + this.selectedRows = selectedRows + }, + handleOk () { + this.$refs.table.refresh() + }, + clearForm () { + this.queryParam = { + type: 2 + } + this.dateArr = [] + }, + tableSearch (type) { + this.queryParam.queryType = type + this.$refs.table.refresh() + this.advanced = false + }, + tableSearch1 (status) { + this.queryParam.status = status + delete this.queryParam.readStatus + this.$refs.table.refresh() + this.advanced = false + }, + tableSearch2 (readStatus) { + this.queryParam.readStatus = readStatus + delete this.queryParam.status + this.$refs.table.refresh() + this.advanced = false + }, + refreshTable () { + this.advanced = false + this.$refs.table.refresh() + }, + changeTime (time) { + this.dateArr = time + this.queryParam.publishTimeStart = moment(time[0]).format('YYYY-MM-DD 00:00:00') + this.queryParam.publishTimeEnd = moment(time[1]).format('YYYY-MM-DD 23:59:59') + }, + // 编辑 + addorEditMessage (record) { + this.$refs.createModal.edit(record) + }, + newsDetailView (record) { + this.$refs.newsDetail.show(record) + }, + // 发布 + async handleReview (recode) { + const that = this + this.$confirm({ + title: '是否要发布这条消息?', + onOk () { + publishData(recode.announcementId).then(res => { + if (res.code === 0) { + that.$message.success('发布成功') + that.$refs.table.refresh() + } else { + that.$message.error(res.msg) + } + }) + }, + onCancel () {} + }) + }, + // 撤回 + withdraw (record) { + const that = this + this.$confirm({ + title: '是否要撤回这条消息?', + onOk () { + withdrawData(record.announcementId).then(res => { + if (res && res.code === 0) { + that.$message.success('撤回成功') + that.$refs.table.refresh() + } else { + that.$message.error(res && res.msg) + } + }) + }, + onCancel () {} + }) + }, + // 删除 + del (record) { + const that = this + this.$confirm({ + title: '是否要删除这条消息?', + onOk () { + deleteData(record.announcementId).then(res => { + if (res.code === 0) { + that.$message.success('删除成功') + that.$refs.table.refresh() + } else { + that.$message.error(res && res.msg) + } + }) + }, + onCancel () {} + }) + } + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} +.table-fix { + table-layout:fixed; +} +.ant-table-tbody > tr > td { + max-height: 40px; + overflow:hidden; + white-space:nowrap; + text-overflow:ellipsis; + cursor: pointer; +} +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item > .ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} +</style> diff --git a/src/views/message/component/createdForm.vue b/src/views/message/component/createdForm.vue new file mode 100644 index 0000000000..bb4bc7d307 --- /dev/null +++ b/src/views/message/component/createdForm.vue @@ -0,0 +1,127 @@ +<template> + <a-modal + :title="options.title" + :width="800" + :bodyStyle="bodyStyle" + :maskClosable="maskClosable" + :destroyOnClose="destroyOnClose" + :centered="centered" + :visible="visible" + :confirmLoading="confirmLoading" + @ok="handleSubmit" + @cancel="handleCancel" + > + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item label="标题" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input placeholder="请输入标题" v-decorator="['title', isIdCardNo]" /> + </a-form-item> + <a-form-item label="发送内容" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input type="textarea" rows="6" v-decorator="['content', requiredRule]" /> + </a-form-item> + </a-form> + </a-spin> + </a-modal> +</template> +<script> +import { saveOrUpdateData } from '@/api/message' +export default { + data () { + return { + options: {}, + residences: [], + nationList: [], + professionList: [], + censusList: [], + baseUrl: process.env.VUE_APP_API_BASE_URL, + maskClosable: false, + payTypeList: [], + isShowPat: false, + labelCol: { + xs: { span: 24 }, + sm: { span: 3 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 20 } + }, + visible: false, + confirmLoading: false, + centered: true, + destroyOnClose: true, + bodyStyle: { + height: '300px', + overflow: 'auto' + }, + form: this.$form.createForm(this), + requiredRule: { rules: [{ required: true, message: '该选项必填!' }] }, + isIdCardNo: { rules: [{ required: true, message: '该选项必填!' }] }, + announcementId: '' + } + }, + created () {}, + methods: { + add () { + this.options.title = '新建消息' + this.announcementId = '' + this.visible = true + }, + edit (value) { + this.options.title = '编辑消息' + this.announcementId = value.announcementId + setTimeout(() => { + this.form.setFieldsValue({ + title: value.title, + content: value.content + }) + }, 0) + this.visible = true + }, + handleSubmit () { + if (!this.confirmLoading) { + this.confirmLoading = true + this.form.validateFieldsAndScroll((errors, fieldsValue) => { + const that = this + if (errors) { + this.confirmLoading = false + return + } + const values = { + ...fieldsValue, + announcementId: this.announcementId + } + saveOrUpdateData(values).then((res) => { + that.visible = false + that.confirmLoading = false + that.$message.success(res.msg) + that.$emit('ok', values) + }) + }) + } + }, + handleCancel () { + this.visible = false + } + } +} +</script> +<style lang="less" scoped> +/deep/ .ant-form-item:last-child { + margin-bottom: 0; +} + +/deep/ .aaa .ant-form-item-label { + position: relative; + left: -18px; +} + +.aaa .ant-form-item-children > i { + position: absolute !important; + left: -22px !important; + top: 4px; +} +input, +textarea { + outline: none; +} +</style> diff --git a/src/views/message/component/newsDetail.vue b/src/views/message/component/newsDetail.vue new file mode 100644 index 0000000000..209ba4359c --- /dev/null +++ b/src/views/message/component/newsDetail.vue @@ -0,0 +1,152 @@ +<template> + <a-modal + title="消息详情" + :width="600" + :bodyStyle="bodyStyle" + :maskClosable="maskClosable" + :destroyOnClose="destroyOnClose" + :centered="centered" + :visible="visible" + :confirmLoading="confirmLoading" + :footer="null" + @cancel="handleCancel" + > + <a-spin :spinning="confirmLoading"> + <!-- <a-form :form="form"> + <a-form-item label="标题" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input placeholder="请输入标题" v-decorator="['title', isIdCardNo]" /> + </a-form-item> + <a-form-item label="发送内容" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input type="textarea" rows="6" v-decorator="['content', requiredRule]" /> + </a-form-item> + </a-form> --> + <!-- publish.isCreator == 1? (publish.stauts == 1? false : (publish.unReadCount == 0? '已阅读' : '待阅读') ) : publish.unReadCount --> + <div class="sdd"> + <span v-if="publish.updatedDate">发布时间: <span>{{ publish.updatedDate | formDate }}</span></span> + <span v-if="publish.publisher">发布人: <span>{{ publish.publisher }}</span></span> + <span v-if="publish.isCreator == 1" class="publishStatus"> + <span v-if="publish.status == 1 && publish.unReadCount > 0" style="margin-right: 5px">待阅读: {{publish.unReadCount}}人</span> + <span v-if="publish.status == 1 && publish.unReadCount == 0">全部阅读</span> + <span v-if="publish.status != 1">未发布</span> + </span> + </div> + <div class="cdd"> + <p>{{ publish.content }}</p> + </div> + <div class="ndd"> + <a-button v-if="publish.isCreator != 1" :disabled="status == 2? true : false" type="primary" @click="readStatusBtn()">{{ status == 2? '已阅读' : '确认' }}</a-button> + </div> + </a-spin> + </a-modal> +</template> +<script> +import { detailData, isReadDetail } from '@/api/message' +import { getUnReadAnnouncement } from '@/api/basis' +import moment from 'moment' +export default { + data () { + return { + publish: [], + status: undefined, + announcementId: undefined, + maskClosable: false, + payTypeList: [], + isShowPat: false, + visible: false, + confirmLoading: false, + centered: true, + destroyOnClose: true, + bodyStyle: { + height: '300px', + overflow: 'auto' + }, + form: this.$form.createForm(this) + } + }, + created () {}, + filters: { + formDate (date) { + return moment(date).format('YYYY-MM-DD') + } + }, + methods: { + show (value) { + this.visible = true + this.confirmLoading = true + detailData(value.announcementId).then(res => { + this.publish = res.data + this.status = res.data.readStatus + this.announcementId = res.data.announcementId + this.confirmLoading = false + }) + }, + async readStatusBtn () { + var that = this + if (this.status == 1) { + this.status = 2 + const res = await isReadDetail(this.announcementId) + that.$message.success(res.msg) + const { data } = await getUnReadAnnouncement() + this.$store.commit('TOGGLE_MESSAGE_NUM', data.length || '') + } + }, + handleCancel () { + this.visible = false + this.$emit('ok') + } + } +} +</script> +<style lang="less" scoped> +/deep/ .ant-form-item:last-child { + margin-bottom: 0; +} +.sdd { + position: relative; + font-size: 16px; + color: #000; + height: 50px; + border-bottom: 1px solid #cfcfcf; +} +.sdd span { + margin-right: 30px; +} +.cdd { + margin-top: 20px; +} +.ndd { + text-align: right; + margin-top: 40px; +} +.publishStatus { + position: absolute; + top: 0; + right: 0; + font-size: 14px; + color: #999; +} +.btn { + background: #409eff; + border: unset; + color: #fff; + padding: 5px; + border-radius: 5px; +} +.btn-disabled { + background: #909399; + border: unset; + color: #fff; + padding: 5px; + border-radius: 5px; +} +/deep/ .aaa .ant-form-item-label { + position: relative; + left: -18px; +} + +.aaa .ant-form-item-children > i { + position: absolute !important; + left: -22px !important; + top: 4px; +} +</style> diff --git a/src/views/other/modules/OrgModal.vue b/src/views/other/modules/OrgModal.vue index d83955c76c..bb291e7375 100644 --- a/src/views/other/modules/OrgModal.vue +++ b/src/views/other/modules/OrgModal.vue @@ -69,7 +69,7 @@ export default { handleOk () { const _this = this // 触发表单验证 - this.form.validateFields((err, values) => { + this.form.validateFieldsAndScroll((err, values) => { // 验证表单没错误 if (!err) { console.log('form values', values) diff --git a/src/views/other/modules/RoleModal.vue b/src/views/other/modules/RoleModal.vue index 37bcd2a71f..0c6973bd74 100644 --- a/src/views/other/modules/RoleModal.vue +++ b/src/views/other/modules/RoleModal.vue @@ -82,7 +82,7 @@ export default { handleOk () { const _this = this // 触发表单验证 - this.form.validateFields((err, values) => { + this.form.validateFieldsAndScroll((err, values) => { // 验证表单没错误 if (!err) { console.log('form values', values) diff --git a/src/views/patient/list.vue b/src/views/patient/list.vue new file mode 100644 index 0000000000..b3d56dc3c3 --- /dev/null +++ b/src/views/patient/list.vue @@ -0,0 +1,380 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form :form="form" layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索患者姓名、身份证号" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="toggleAdvanced" style="margin-left: 8px" class="toggleAdvanced"> + {{ advanced ? '更多筛选' : '更多筛选' }} + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="自定义检索" key="1" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="是否ICON"> + <a-radio-group v-model="queryParam.isIcon"> + <a-radio value="-1">否</a-radio> + <a-radio value="1">是</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item style="text-align: right;margin-bottom: 0;margin-top: 15px;"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px;" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + <a-col :md="13" style="text-align:right" :sm="24"> + <a-button type="primary" @click="$refs.createModal.add()">新建</a-button> + <!-- <a-button type="primary" style="margin-left: 10px;">导出</a-button> --> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" size="small" :scroll="{ x: 1000 }" rowKey="patientBasisId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <template slot="name" slot-scope="text, record"> + <a @click="showUser(record)">{{modifyName(text)}}</a> + </template> + <span slot="visit" slot-scope="text"> + <a-badge :status="text | visitTypeFilter" :text="text | visitFilter" /></span> + <span slot="action" slot-scope="text, record" style="text-align: center;"> + <template> + <div v-if="record.targetCenterId === centerId"> + <a @click="exec(record)">编辑</a> + </div> + </template> + </span> + </s-table> + <user-detail ref="detailModal" /> + <create-form ref="createModal" @ok="handleOk" /> + </a-card> +</template> +<script> +import moment from 'moment'; +import { STable, Ellipsis } from '@/components' +import UserDetail from '@/views/list/modules/UserDetail' +import { getPatientDataList, deletePatient } from '@/api/patient' +import CreateForm from '@/views/list/modules/CreateForm' +import $ from 'jquery' +import { ACCESS_TOKEN } from '@/store/mutation-types' + +const visitMap = { + 0: { + status: 'default', + text: '死亡' + }, + 1: { + status: 'processing', + text: '跟踪' + }, + 2: { + status: 'success', + text: '完成' + }, + 3: { + status: 'error', + text: '失访' + }, + 4: { + status: "warning", + text: "警告" + } +}; + +export default { + name: 'patientList', + components: { + STable, + Ellipsis, + UserDetail, + CreateForm + }, + data() { + return { + dateArr: [], + centerId: this.$ls.get(ACCESS_TOKEN).centerId, + mdl: {}, + bodyStyle: { + padding: "10px", + paddingBottom: "0px" + }, + // 高级搜索 展开/关闭 + advanced: false, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + // 查询参数 + queryParam: {}, + // 表头 + columns: [{ + title: '入组编号', + width: 100, + dataIndex: 'fileCode' + }, + { + title: '访视状态', + dataIndex: 'visit', + width: 120, + scopedSlots: { + customRender: 'visit' + } + }, + { + title: '姓名', + dataIndex: 'name', + width: 100, + scopedSlots: { customRender: 'name' } + },{ + title: '是否ICON', + dataIndex: 'research', + width: 80, + },{ + title: '分支中心', + dataIndex: 'centerName', + width: 200 + },{ + title: 'ICON入组时间', + dataIndex: 'iconJoinDate', + width: 200, + },{ + title: '创建日期', + dataIndex: 'createDate', + width: 120, + customRender: createDate => moment(createDate).format('YYYY-MM-DD') + }, + { + title: '创建人', + dataIndex: 'creatorName', + width: 100 + }, + { + title: '操作', + dataIndex: 'action', + width: 100, + className: 'operation', + scopedSlots: { customRender: 'action' } + } + ], + // 加载数据方法 必须为 Promise 对象 + loadData: parameter => { + return getPatientDataList(Object.assign(parameter, this.queryParam)).then(res => { + return res; + }); + }, + selectedRowKeys: [], + selectedRows: [], + + // custom table alert & rowSelection + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = []; + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + scroll: false, + optionAlertShow: false, + form: this.$form.createForm(this), + }; + }, + created() { + this.scroll = { + y: (window.screen.height - 368) + "px" + } + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + }, + filters: { + visitFilter(type) { + return visitMap[type].text; + }, + visitTypeFilter(type) { + return visitMap[type].status; + } + }, + methods: { + modifyName(name) { + return name.replace(/(.)(.*)/, (_, $1, $2) => $1 + '*'.repeat($2.length)) + }, + clearForm() { + this.queryParam = {} + this.dateArr = [] + }, + tableSearch(type) { + this.queryParam.queryType = type + this.$refs.table.refresh(); + this.advanced = false; + }, + refreshTable() { + this.advanced = false; + this.$refs.table.refresh(); + }, + showUser(record) { + this.$refs.detailModal.show(record); + }, + exec(record) { + this.$refs.createModal.edit(record) + }, + del(record) { + let that = this + this.$confirm({ + title: '是否删除?', + onOk() { + let params = { + patientId: record.patientId + } + deletePatient(params).then(res => { + if (res.code == 0) { + that.$message.success('删除成功') + that.$refs.table.refresh() + } + }) + }, + onCancel() {} + }) + }, + handleOk() { + this.$refs.table.refresh(); + }, + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + toggleAdvanced() { + this.advanced = !this.advanced; + }, + changeTime(time) { + this.dateArr = time; + this.queryParam.createDateStart = moment(time[0]).format('YYYY-MM-DD') + this.queryParam.createDateEnd = moment(time[1]).format('YYYY-MM-DD') + }, + } +}; +</script> +<style lang="less" scoped> +.ant-table td { + white-space: nowrap; +} + +/deep/th.operation { + text-align: center !important; +} + +/deep/.ant-table-tbody>tr>td.operation { + text-align: center !important; +} + +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px +} + +/deep/.ant-table-row:hover .progressTag .ant-progress-inner { + background-color: #ffffff !important; +} + +.progressTag { + display: inline-block; + width: 250px; + + /deep/ .progressTagContent { + display: inline-block; + width: 80px; + margin-right: 5px; + } + + /deep/ .progressTagTitle { + font-size: 12px; + text-align: center; + color: #000; + margin-bottom: 0; + margin-right: 15px; + display: inline-block; + } + + /deep/ .progressTag .anticon { + color: #4bc5ac; + font-size: 18px; + vertical-align: bottom; + } + + /deep/ .ant-progress-inner { + background-color: #e5f6ff; + } + + /deep/ .progressTag .ant-progress-span { + color: rgb(0, 160, 233); + } +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} + +.userName { + color: #1fb2fa; + margin: 0; + + &:active, + &:hover { + text-decoration: underline; + text-underline-position: under; + text-decoration-color: #1fb2fa; + cursor: pointer; + } +} +</style> \ No newline at end of file diff --git a/src/views/report/index.vue b/src/views/report/index.vue new file mode 100644 index 0000000000..edd1fea18e --- /dev/null +++ b/src/views/report/index.vue @@ -0,0 +1,266 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索分支中心" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="2"> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="分支中心"> + <a-input v-model.trim="queryParam.keyWord" style="width: 100%" /> + </a-form-item> + <a-form-item label="提交时间"> + <a-range-picker :value="submitArr" @change="changeSubmit" style="width: 100%" /> + </a-form-item> + <a-form-item label="创建日期" style="margin-bottom:0;"> + <a-range-picker @change="changeCreate" style="width: 100%" :value="createArr" /> + </a-form-item> + <a-form-item style="text-align: right;margin-bottom: 0;margin-top: 15px;"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px;" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + <a-col :md="13" style="text-align:right" :sm="24"> + <a-button type="primary" @click="_export">导出</a-button> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="centerName" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + </s-table> + </a-card> +</template> +<script> +import moment from 'moment' +import { getCenterNum } from '@/api/basis' +import { STable } from '@/components' +export default { + components: { + STable + }, + data() { + return { + baseUrl: process.env.VUE_APP_API_BASE_URL, + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + scroll: false, + loadData: parameter => { + return getCenterNum(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [{ + title: '中心编号', + dataIndex: 'centerCode', + width: '100px' + },{ + title: '分支中心', + dataIndex: 'centerName', + width: '120px' + }, + { + title: '基线数量', + dataIndex: 'type1Num', + width: '120px' + }, + { + title: '半年访视数量', + dataIndex: 'type2Num', + width: '120px' + }, + { + title: '年访视数量', + dataIndex: 'type3Num', + width: '120px' + }, + { + title: '急性加重期数量', + dataIndex: 'type4Num', + width: '120px' + }, + { + title: '基线提交数量', + dataIndex: 'type5Num', + width: '120px' + }, + { + title: '年访视提交数量', + dataIndex: 'type6Num', + width: '120px' + }, + { + title: '病人联系方式', + dataIndex: 'type7Num', + width: '120px' + }, + { + title: '合并症', + dataIndex: 'type8Num', + width: '120px' + }, + { + title: '病因', + dataIndex: 'type9Num', + width: '120px' + }, + { + title: '影像学评分', + dataIndex: 'type10Num', + width: '120px' + }, + { + title: '痰检', + dataIndex: 'type11Num', + width: '120px' + }, + { + title: '病史', + dataIndex: 'type12Num', + width: '120px' + }, + { + title: '影像学资料', + dataIndex: 'type13Num', + width: '120px' + }, + { + title: '病原微生物', + dataIndex: 'type14Num', + width: '120px' + }, + { + title: '肺功能', + dataIndex: 'type15Num', + width: '120px' + } + ], + createArr: [], + submitArr: [] + } + }, + created() { + this.scroll = { + x: true, + y: window.screen.height - 368 + 'px' + } + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + }, + methods: { + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + clearForm() { + this.queryParam = {} + this.createArr = [] + this.submitArr = [] + }, + tableSearch(type) { + this.queryParam.isUser = type + this.$refs.table.refresh() + this.advanced = false + }, + refreshTable() { + this.advanced = false + this.$refs.table.refresh() + }, + changeCreate(time) { + this.createArr = time; + this.queryParam.createDateStart = moment(time[0]).format('YYYY-MM-DD') + this.queryParam.createDateEnd = moment(time[1]).format('YYYY-MM-DD') + }, + changeSubmit(time) { + this.submitArr = time; + this.queryParam.submitDateStart = moment(time[0]).format('YYYY-MM-DD') + this.queryParam.submitDateEnd = moment(time[1]).format('YYYY-MM-DD') + }, + _export() { + window.open(this.baseUrl + 'basis/exportCenterNum') + } + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} + +.ant-table td { + white-space: nowrap; +} +</style> \ No newline at end of file diff --git a/src/views/reportApply/ethics.vue b/src/views/reportApply/ethics.vue new file mode 100644 index 0000000000..b616fce470 --- /dev/null +++ b/src/views/reportApply/ethics.vue @@ -0,0 +1,75 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <s-table ref="table" :scroll="scroll" size="small" rowKey="centerName" :columns="columns" :data="loadData" > + <template slot="operation" slot-scope="text, record"> + <a @click="_export(record)">下载</a> + </template> + </s-table> + </a-card> +</template> +<script> +import moment from 'moment' +import { getEthicsList,ethicsDownload } from '@/api/report' +import { STable } from '@/components' +export default { + name: 'reportEthics', + components: { + STable + }, + data() { + return { + baseUrl: process.env.VUE_APP_API_BASE_URL, + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + queryParam: {}, + loadData: parameter => { + return getEthicsList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + columns: [{ + title: '中心名称', + dataIndex: 'centerName', + width: '100px' + },{ + title: '上传状态', + dataIndex: 'statusStr', + width: '120px' + },{ + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '150px' + }], + + } + }, + created() { + this.scroll = { + x: true, + y: window.screen.height - 368 + 'px' + } + + }, + mounted() { + + + }, + methods: { + _export(record) { + window.open(this.baseUrl + './ethics/download?ethicsId=' + record.ethicsId) + } + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.ant-table td { + white-space: nowrap; +} +</style> \ No newline at end of file diff --git a/src/views/reportApply/iconCg.vue b/src/views/reportApply/iconCg.vue new file mode 100644 index 0000000000..f463c0614d --- /dev/null +++ b/src/views/reportApply/iconCg.vue @@ -0,0 +1,166 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="13" style="text-align: right;width: 100%;padding: 0 8px;margin-bottom: 10px;" :sm="24"> + <a-button type="primary" @click="_export">导出</a-button> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="centerName" :columns="columns" :data="loadData" showPagination="auto"> + </s-table> + </a-card> +</template> +<script> +import moment from 'moment' +import { getIconCgsfDataList } from '@/api/report' +import { STable } from '@/components' +export default { + components: { + STable + }, + data() { + return { + baseUrl: process.env.VUE_APP_API_BASE_URL, + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + scroll: false, + loadData: parameter => { + return getIconCgsfDataList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + columns: [{ + title: '患者编号', + dataIndex: 'fileCode', + width: '120px' + },{ + title: '患者姓名', + dataIndex: 'patientName', + width: '90px' + },{ + title: '患者性别', + dataIndex: 'sexName', + width: '90px' + },{ + title: '患者年龄', + dataIndex: 'age', + width: '90px' + },{ + title: '随访期间有无长期氧疗', + dataIndex: 'a1', + width: '180px' + },{ + title: '随访期间有否无创辅助通气', + dataIndex: 'a2', + width: '220px' + },{ + title: '随访期间有无进行各类物理治疗', + dataIndex: 'a3', + width: '260px' + },{ + title: '物理治疗方式', + dataIndex: 'a4', + width: '120px' + },{ + title: '随访期间有无进行各类呼吸疾病药物治疗', + dataIndex: 'a5', + width: '300px' + },{ + title: '规律抗生素治疗', + dataIndex: 'a6', + width: '120px' + },{ + title: '祛痰药物治疗', + dataIndex: 'a7', + width: '100px' + },{ + title: '支气管扩张剂', + dataIndex: 'a8', + width: '160px' + },{ + title: '支气管扩张剂其他内容输入', + dataIndex: 'a9', + width: '180px' + },{ + title: '吸入激素', + dataIndex: 'a10', + width: '130px' + },{ + title: '其他治疗', + dataIndex: 'a11', + width: '120px' + },{ + title: '各类免疫调节剂治疗', + dataIndex: 'a12', + width: '160px' + },{ + title: '免疫调节剂治疗方式', + dataIndex: 'a13', + width: '160px' + },{ + title: '免疫调节剂治疗方式其他输入', + dataIndex: 'a14', + width: '220px' + }] + + } + }, + created() { + this.scroll = { + x: '3000px', + y: window.screen.height - 420 + 'px' + } + + }, + mounted() { + + + }, + methods: { + // 导出 + _export() { + window.open(this.baseUrl + 'patientReport/exportIconCgsf') + } + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} + +.ant-table td { + white-space: nowrap; +} +.ant-table-fixed-header .ant-table-scroll .ant-table-header { + min-width: 0px !important; +} +</style> \ No newline at end of file diff --git a/src/views/reportApply/iconData.vue b/src/views/reportApply/iconData.vue new file mode 100644 index 0000000000..fc4d956073 --- /dev/null +++ b/src/views/reportApply/iconData.vue @@ -0,0 +1,110 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="13" style="text-align: right;width: 100%;padding: 0 8px;margin-bottom: 10px;" :sm="24"> + <a-button type="primary" @click="_export">导出</a-button> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="centerName" :columns="columns" :data="loadData" showPagination="auto"> + </s-table> + </a-card> +</template> +<script> +import moment from 'moment' +import { getIconJxNumList } from '@/api/report' +import { STable } from '@/components' +export default { + components: { + STable + }, + data() { + return { + baseUrl: process.env.VUE_APP_API_BASE_URL, + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + scroll: false, + loadData: parameter => { + return getIconJxNumList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + columns: [{ + title: '中心名称', + dataIndex: 'name', + width: '120px' + },{ + title: '提交数量', + dataIndex: 'submitNum', + width: '90px' + },{ + title: '未提交数量', + dataIndex: 'unSubmitNum', + width: '90px' + },{ + title: '总数', + dataIndex: 'totleNum', + width: '90px' + }] + + } + }, + created() { + // this.scroll = { + // x: '18000px', + // y: window.screen.height - 420 + 'px' + // } + + }, + mounted() { + + + }, + methods: { + // 导出 + _export() { + window.open(this.baseUrl + 'patientReport/exportIconJxNum') + } + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} + +.ant-table td { + white-space: nowrap; +} +.ant-table-fixed-header .ant-table-scroll .ant-table-header { + min-width: 0px !important; +} +</style> \ No newline at end of file diff --git a/src/views/reportApply/iconJx.vue b/src/views/reportApply/iconJx.vue new file mode 100644 index 0000000000..0a06d7892e --- /dev/null +++ b/src/views/reportApply/iconJx.vue @@ -0,0 +1,688 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="13" style="text-align: right;width: 100%;padding: 0 8px;margin-bottom: 10px;" :sm="24"> + <a-button type="primary" @click="_export">导出</a-button> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="centerName" :columns="columns" :data="loadData" showPagination="auto"> + </s-table> + </a-card> +</template> +<script> +import moment from 'moment' +import { getIconJxDataList } from '@/api/report' +import { STable } from '@/components' +export default { + components: { + STable + }, + data() { + return { + baseUrl: process.env.VUE_APP_API_BASE_URL, + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + scroll: false, + loadData: parameter => { + return getIconJxDataList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + columns: [{ + title: '患者编号', + dataIndex: 'fileCode', + width: '120px', + ellipsis: true, + fixed: 'left' + }, { + title: '患者姓名', + dataIndex: 'patientName', + width: '90px', + ellipsis: true, + fixed: 'left' + }, { + title: '患者性别', + dataIndex: 'sexName', + width: '90px', + ellipsis: true + }, { + title: '患者年龄', + dataIndex: 'age', + width: '90px', + ellipsis: true + }, { + title: 'BSI评分', + dataIndex: 'bsi', + width: '100px', + ellipsis: true + }, { + title: 'FACED评分', + dataIndex: 'faced', + width: '100px', + ellipsis: true + }, { + title: 'BACI评分', + dataIndex: 'baci', + width: '100px', + ellipsis: true + }, { + title: 'REFFI评分', + dataIndex: 'reffi', + width: '160px', + ellipsis: true + }, { + title: 'BHQ问卷得分', + dataIndex: 'bhq', + width: '160px', + ellipsis: true + }, { + title: 'MMRC评分', + dataIndex: 'mmrc', + width: '130px', + ellipsis: true + }, { + title: 'HADS评分', + dataIndex: 'had', + width: '120px', + ellipsis: true + }, { + title: 'lcq总评分', + dataIndex: 'lcq', + width: '120px', + ellipsis: true + }, { + title: 'lcq生理评分', + dataIndex: 'lcqSl', + width: '110px', + ellipsis: true + }, { + title: 'lcq心理评分', + dataIndex: 'lcqXl', + width: '110px', + ellipsis: true + }, { + title: 'lcq社会评分', + dataIndex: 'lcqSh', + width: '110px', + ellipsis: true + }, { + title: 'qolb身体评分', + dataIndex: 'qolb1', + width: '120px', + ellipsis: true + }, { + title: 'qolb角色评分', + dataIndex: 'qolb2', + width: '120px', + ellipsis: true + }, { + title: 'qolb活力评分', + dataIndex: 'qolb3', + width: '120px', + ellipsis: true + }, { + title: 'qolb情绪评分', + dataIndex: 'qolb4', + width: '120px', + ellipsis: true + }, { + title: 'qolb社会评分', + dataIndex: 'qolb5', + width: '120px', + ellipsis: true + }, { + title: 'qolb医疗评分', + dataIndex: 'qolb6', + width: '120px', + ellipsis: true + }, { + title: 'qolb健康评分', + dataIndex: 'qolb7', + width: '120px', + ellipsis: true + }, { + title: 'qolb呼吸评分', + dataIndex: 'qolb8', + width: '120px', + ellipsis: true + }, { + title: '提交时间', + dataIndex: 'submitDate', + width: '120px', + ellipsis: true + }, { + title: '支气管扩张症诊断日期', + dataIndex: 'a1', + width: '160px', + ellipsis: true + }, { + title: '过去两年的支扩急性加重住院次数', + dataIndex: 'a2', + width: '220px', + ellipsis: true + }, { + title: '过去一年的支扩急性加重住院次数', + dataIndex: 'a3', + width: '230px', + ellipsis: true + }, { + title: '过去一年支扩的急性加重次数', + dataIndex: 'a4', + width: '230px', + ellipsis: true + }, { + title: '最后一次急性加重住院的时间', + dataIndex: 'a5', + width: '200px', + ellipsis: true + }, { + title: '最后一次急性加重出院的时间', + dataIndex: 'a6', + width: '200px', + ellipsis: true + }, { + title: '目前合并呼吸系统相关疾病', + dataIndex: 'a7', + width: '200px' + }, { + title: '经皮血氧饱和度SpO2', + dataIndex: 'b1', + width: '160px', + ellipsis: true + }, { + title: '身高', + dataIndex: 'b2', + width: '120px', + ellipsis: true + }, { + title: '体重', + dataIndex: 'b3', + width: '120px', + ellipsis: true + }, { + title: 'BMI', + dataIndex: 'b4', + width: '120px', + ellipsis: true + }, { + title: '有无桶状胸', + dataIndex: 'b5', + width: '120px', + ellipsis: true + }, { + title: '有无杵状指', + dataIndex: 'b6', + width: '120px', + ellipsis: true + }, { + title: '是无啰音', + dataIndex: 'b7', + width: '120px', + ellipsis: true + }, { + title: '胸部CT检查日期', + dataIndex: 'c1', + width: '120px', + ellipsis: true + }, { + title: '支扩位于CT图像', + dataIndex: 'c2', + width: '120px', + ellipsis: true + }, { + title: '分离到微生物', + dataIndex: 'd1', + width: '120px', + ellipsis: true + }, { + title: '分离到细菌检查日期', + dataIndex: 'd2', + width: '120px', + customRender: d2 => moment(d2).format('YYYY-MM-DD'), + ellipsis: true + }, { + title: '细菌种类', + dataIndex: 'd3', + width: '120px', + ellipsis: true + }, { + title: '分离到真菌检查日期', + dataIndex: 'd4', + width: '120px', + customRender: d4 => moment(d4).format('YYYY-MM-DD'), + ellipsis: true + }, { + title: '真菌种类', + dataIndex: 'd5', + width: '120px', + ellipsis: true + }, { + title: '分离到分枝杆菌检查日期', + dataIndex: 'd6', + width: '120px', + customRender: d6 => moment(d6).format('YYYY-MM-DD'), + ellipsis: true + }, { + title: '分枝杆菌种类', + dataIndex: 'd7', + width: '120px', + ellipsis: true + }, { + title: '其他病原', + dataIndex: 'd8', + width: '120px', + ellipsis: true + }, { + title: '其他病原种类', + dataIndex: 'd9', + width: '120px', + ellipsis: true + }, { + title: '胃食管反流病量表评分', + dataIndex: 'e1', + width: '120px', + ellipsis: true + }, { + title: '胃食管反流病评分日期', + dataIndex: 'e2', + width: '120px', + ellipsis: true + }, { + title: '变应性支气管肺曲霉病各类相关检查', + dataIndex: 'e3', + width: '120px', + ellipsis: true + }, { + title: '变应性支气管肺曲霉病各类相关检查日期', + dataIndex: 'e4', + width: '120px', + ellipsis: true + }, { + title: '外周血嗜酸细胞', + dataIndex: 'e5', + width: '120px', + ellipsis: true + }, { + title: '血总IgE', + dataIndex: 'e6', + width: '120px', + ellipsis: true + }, { + title: '曲霉特异IgE', + dataIndex: 'e7', + width: '120px', + ellipsis: true + }, { + title: '曲霉皮肤点刺试验', + dataIndex: 'e8', + width: '120px', + ellipsis: true + }, { + title: '胸部CT有无中心性支扩', + dataIndex: 'e9', + width: '120px', + ellipsis: true + }, { + title: '胸部CT提示高密度黏液栓嵌顿', + dataIndex: 'e10', + width: '120px', + ellipsis: true + }, { + title: '各类自身免疫抗体检查', + dataIndex: 'e11', + width: '120px', + ellipsis: true + }, { + title: '自身免疫抗体检查时间', + dataIndex: 'e12', + width: '120px', + ellipsis: true + }, { + title: 'ANA', + dataIndex: 'e13', + width: '120px', + ellipsis: true + }, { + title: 'ENA', + dataIndex: 'e14', + width: '120px', + ellipsis: true + }, { + title: 'ANCA', + dataIndex: 'e15', + width: '120px', + ellipsis: true + }, { + title: '自身免疫抗体检查其他检查', + dataIndex: 'e16', + width: '120px', + ellipsis: true + }, { + title: '各类血清免疫球蛋白检查', + dataIndex: 'e17', + width: '120px', + ellipsis: true + }, { + title: '各类血清免疫球蛋白检查日期', + dataIndex: 'e18', + width: '120px', + ellipsis: true + }, { + title: '血清IgM', + dataIndex: 'e19', + width: '120px', + ellipsis: true + }, { + title: '血清IgG', + dataIndex: 'e20', + width: '120px', + ellipsis: true + }, { + title: '血清IgA', + dataIndex: 'e21', + width: '120px', + ellipsis: true + }, { + title: '各类血清补体检查', + dataIndex: 'e22', + width: '120px', + ellipsis: true + }, { + title: '各类血清补体检查日期', + dataIndex: 'e23', + width: '120px', + ellipsis: true + }, { + title: '血清C3', + dataIndex: 'e24', + width: '120px', + ellipsis: true + }, { + title: '血清C4', + dataIndex: 'e25', + width: '120px', + ellipsis: true + }, { + title: '抗蛋白酶基因检查', + dataIndex: 'e26', + width: '120px', + ellipsis: true + }, { + title: 'α-1抗蛋白酶基因检查日期', + dataIndex: 'e27', + width: '120px', + ellipsis: true + }, { + title: 'α-1抗蛋白酶基因检查', + dataIndex: 'e28', + width: '120px', + ellipsis: true + }, { + title: '各类纤毛功能相关检测', + dataIndex: 'e29', + width: '120px', + ellipsis: true + }, { + title: '各类纤毛功能相关检测日期', + dataIndex: 'e30', + width: '120px', + ellipsis: true + }, { + title: '呼出一氧化氮测定', + dataIndex: 'e31', + width: '120px', + ellipsis: true + }, { + title: '电镜检测的活检', + dataIndex: 'e32', + width: '120px', + ellipsis: true + }, { + title: '分析纤毛摆动频率的活检', + dataIndex: 'e33', + width: '120px', + ellipsis: true + }, { + title: '各类纤毛功能相关检测基因检测', + dataIndex: 'e34', + width: '120px', + ellipsis: true + }, { + title: '肺功能测试检查日期', + dataIndex: 'f1', + width: '120px', + ellipsis: true + }, { + title: 'FVC', + dataIndex: 'f2', + width: '120px', + ellipsis: true + }, { + title: 'FVC pred', + dataIndex: 'f3', + width: '120px', + ellipsis: true + }, { + title: 'FEV1', + dataIndex: 'f4', + width: '120px', + ellipsis: true + }, { + title: 'FEV1 pred', + dataIndex: 'f5', + width: '120px', + ellipsis: true + }, { + title: 'FEV1/ FVC', + dataIndex: 'f6', + width: '120px', + ellipsis: true + }, { + title: '各类血气分析检查日期', + dataIndex: 'f7', + width: '120px', + ellipsis: true + }, { + title: '酸碱度', + dataIndex: 'f8', + width: '120px', + ellipsis: true + }, { + title: '氧分压', + dataIndex: 'f9', + width: '120px', + ellipsis: true + }, { + title: '二氧化碳分压', + dataIndex: 'f10', + width: '120px', + ellipsis: true + }, { + title: '肺动脉氧分压差', + dataIndex: 'f11', + width: '120px', + ellipsis: true + }, { + title: '动脉血氧饱和度SaO2', + dataIndex: 'f12', + width: '120px', + ellipsis: true + }, { + title: '血常规检查日期', + dataIndex: 'g1', + width: '120px', + ellipsis: true + }, { + title: '血生化检查日期', + dataIndex: 'g2', + width: '120px', + ellipsis: true + }, { + title: '血红蛋白', + dataIndex: 'g3', + width: '120px', + ellipsis: true + }, { + title: '白细胞', + dataIndex: 'g4', + width: '120px', + ellipsis: true + }, { + title: '红细胞', + dataIndex: 'g5', + width: '120px', + ellipsis: true + }, { + title: '血小板', + dataIndex: 'g6', + width: '120px', + ellipsis: true + }, { + title: '中性粒细胞绝对值', + dataIndex: 'g7', + width: '120px', + ellipsis: true + }, { + title: '嗜酸细胞绝对值', + dataIndex: 'g8', + width: '120px', + ellipsis: true + }, { + title: '血糖', + dataIndex: 'g9', + width: '120px', + ellipsis: true + }, { + title: '白蛋白', + dataIndex: 'g10', + width: '120px', + ellipsis: true + }, { + title: '前白蛋白', + dataIndex: 'g11', + width: '120px', + ellipsis: true + }, { + title: '既往有否长期氧疗', + dataIndex: 'h1', + width: '120px', + ellipsis: true + }, { + title: '既往有否无创辅助通气', + dataIndex: 'h2', + width: '120px', + ellipsis: true + }, { + title: '既往有否进行各类物理治疗', + dataIndex: 'h3', + width: '120px', + ellipsis: true + }, { + title: '物理治疗方式', + dataIndex: 'h4', + width: '120px', + ellipsis: true + }, { + title: '既往有否进行各类呼吸疾病药物治疗', + dataIndex: 'h5', + width: '120px', + ellipsis: true + }, { + title: '规律抗生素治疗', + dataIndex: 'h6', + width: '120px', + ellipsis: true + }, { + title: '祛痰药物治疗', + dataIndex: 'h7', + width: '120px', + ellipsis: true + }, { + title: '支气管扩张剂', + dataIndex: 'h8', + width: '120px', + ellipsis: true + }, { + title: '吸入激素', + dataIndex: 'h9', + width: '120px', + ellipsis: true + }, { + title: '其他治疗', + dataIndex: 'h10', + width: '220px', + ellipsis: true + }, { + title: '既往有否进行各类免疫调节剂治疗', + dataIndex: 'h11', + width: '120px', + ellipsis: true + }, { + title: '免疫调节剂治疗方式', + dataIndex: 'h12', + ellipsis: true + }] + + } + }, + created() { + this.scroll = { + x: '15000px', + y: window.screen.height - 420 + 'px' + } + + }, + mounted() { + + + }, + methods: { + // 导出 + _export() { + window.open(this.baseUrl + 'patientReport/exportIconJx') + } + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} + +.ant-table td { + white-space: nowrap; +} + +.ant-table-fixed-header .ant-table-scroll .ant-table-header { + min-width: 0px !important; +} +</style> \ No newline at end of file diff --git a/src/views/reportApply/iconJxjzq.vue b/src/views/reportApply/iconJxjzq.vue new file mode 100644 index 0000000000..9186217e0b --- /dev/null +++ b/src/views/reportApply/iconJxjzq.vue @@ -0,0 +1,378 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="13" style="text-align: right;width: 100%;padding: 0 8px;margin-bottom: 10px;" :sm="24"> + <a-button type="primary" @click="_export">导出</a-button> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="centerName" :columns="columns" :data="loadData" showPagination="auto"> + </s-table> + </a-card> +</template> +<script> +import moment from 'moment' +import { getIconJxjzDataList } from '@/api/report' +import { STable } from '@/components' +export default { + components: { + STable + }, + data() { + return { + baseUrl: process.env.VUE_APP_API_BASE_URL, + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + scroll: false, + loadData: parameter => { + return getIconJxjzDataList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + columns: [{ + title: '患者编号', + dataIndex: 'fileCode', + width: '120px' + },{ + title: '患者姓名', + dataIndex: 'patientName', + width: '90px' + },{ + title: '患者性别', + dataIndex: 'sexName', + width: '90px' + },{ + title: '患者年龄', + dataIndex: 'age', + width: '90px' + },{ + title: '本次急性加重日期', + dataIndex: 't', + width: '180px' + },{ + title: '急性加重的症状', + dataIndex: 't1', + width: '220px' + },{ + title: '本次支气管扩张急性加重时的气道分泌物微生物培养', + dataIndex: 't2str', + width: '260px' + },{ + title: '有否分离到微生物', + dataIndex: 'a', + width: '220px' + },{ + title: '分离到细菌检查日期', + dataIndex: 'a1', + width: '300px' + },{ + title: '细菌种类', + dataIndex: 'a11', + width: '120px' + },{ + title: '其他细菌输入内容', + dataIndex: 'a12', + width: '100px' + },{ + title: '分离到真菌检查日期', + dataIndex: 'a2', + width: '160px' + },{ + title: '真菌种类', + dataIndex: 'a21', + width: '180px' + },{ + title: '分离到分枝杆菌检查日期', + dataIndex: 'a3', + width: '130px' + },{ + title: '分枝杆菌种类', + dataIndex: 'a31', + width: '120px' + },{ + title: '分离到其他病原检查日期', + dataIndex: 'a4', + width: '160px' + },{ + title: '其他病原输入框', + dataIndex: 'a41', + width: '160px' + },{ + title: '其他方法检查日期', + dataIndex: 'a5', + width: '220px' + },{ + title: '其他方法种类', + dataIndex: 'a51', + width: '220px' + },{ + title: '本次支气管扩张急性加重时的血常规检测', + dataIndex: 'b', + width: '220px' + },{ + title: '急性加重检查日期', + dataIndex: 'b11', + width: '220px' + },{ + title: '白细胞', + dataIndex: 'b12', + width: '220px' + },{ + title: '中性粒细胞绝对值', + dataIndex: 'b13', + width: '220px' + },{ + title: '淋巴细胞绝对值', + dataIndex: 'b14', + width: '220px' + },{ + title: 'C反应蛋白', + dataIndex: 'b15', + width: '220px' + },{ + title: '本次支气管扩张急性加重的住院日期', + dataIndex: 'b21', + width: '220px' + },{ + title: '本次支气管扩张急性加重的出院日期', + dataIndex: 'b22', + width: '220px' + },{ + title: '本次支气管扩张急性加重时的抗生素治疗', + dataIndex: 'b3', + width: '220px' + },{ + title: '哌拉西林起始日期', + dataIndex: 'b31', + width: '220px' + },{ + title: '哌拉西林结束日期', + dataIndex: 'b32', + width: '220px' + },{ + title: '哌拉西林/他唑巴坦起始日期', + dataIndex: 'b41', + width: '220px' + },{ + title: '哌拉西林/他唑巴坦结束日期', + dataIndex: 'b42', + width: '220px' + },{ + title: '头孢他啶起始日期', + dataIndex: 'b51', + width: '220px' + },{ + title: '头孢他啶结束日期', + dataIndex: 'b52', + width: '220px' + },{ + title: '头孢哌酮起始日期', + dataIndex: 'b61', + width: '220px' + },{ + title: '头孢哌酮结束日期', + dataIndex: 'b62', + width: '220px' + },{ + title: '头孢哌酮/舒巴坦起始日期', + dataIndex: 'b71', + width: '220px' + },{ + title: '头孢哌酮/舒巴坦结束日期', + dataIndex: 'b72', + width: '220px' + },{ + title: '头孢吡肟起始日期', + dataIndex: 'b81', + width: '220px' + },{ + title: '头孢吡肟结束日期', + dataIndex: 'b82', + width: '220px' + },{ + title: '亚胺培南起始日期', + dataIndex: 'b91', + width: '220px' + },{ + title: '亚胺培南结束日期', + dataIndex: 'b92', + width: '220px' + },{ + title: '美罗培南起始日期', + dataIndex: 'b101', + width: '220px' + },{ + title: '美罗培南结束日期', + dataIndex: 'b102', + width: '220px' + },{ + title: '氨曲南起始日期', + dataIndex: 'b111', + width: '220px' + },{ + title: '氨曲南结束日期', + dataIndex: 'b112', + width: '220px' + },{ + title: '环丙沙星起始日期', + dataIndex: 'b121', + width: '220px' + },{ + title: '环丙沙星结束日期', + dataIndex: 'b122', + width: '220px' + },{ + title: '左氧氟沙星起始日期', + dataIndex: 'b131', + width: '220px' + },{ + title: '左氧氟沙星结束日期', + dataIndex: 'b132', + width: '220px' + },{ + title: '阿米卡星起始日期', + dataIndex: 'b141', + width: '220px' + },{ + title: '阿米卡星结束日期', + dataIndex: 'b142', + width: '220px' + },{ + title: '妥布霉素起始日期', + dataIndex: 'b151', + width: '220px' + },{ + title: '妥布霉素结束日期', + dataIndex: 'b152', + width: '220px' + },{ + title: '庆大霉素起始日期', + dataIndex: 'b161', + width: '220px' + },{ + title: '庆大霉素结束日期', + dataIndex: 'b162', + width: '220px' + },{ + title: '多黏菌素E起始日期', + dataIndex: 'b171', + width: '220px' + },{ + title: '多黏菌素E结束日期', + dataIndex: 'b172', + width: '220px' + },{ + title: '多黏菌素B起始日期', + dataIndex: 'b181', + width: '220px' + },{ + title: '多黏菌素B结束日期', + dataIndex: 'b182', + width: '220px' + },{ + title: '磷霉素起始日期', + dataIndex: 'b191', + width: '220px' + },{ + title: '磷霉素结束日期', + dataIndex: 'b192', + width: '220px' + },{ + title: '其他抗生素1名称', + dataIndex: 'b201', + width: '220px' + },{ + title: '其他抗生素1开始日期', + dataIndex: 'b202', + width: '220px' + },{ + title: '其他抗生素1结束日期', + dataIndex: 'b203', + width: '220px' + },{ + title: '其他抗生素2名称', + dataIndex: 'b211', + width: '220px' + },{ + title: '其他抗生素2开始日期', + dataIndex: 'b212', + width: '220px' + },{ + title: '其他抗生素2结束日期', + dataIndex: 'b213', + width: '220px' + },{ + title: '其他抗生素3名称', + dataIndex: 'b221', + width: '220px' + },{ + title: '其他抗生素3开始日期', + dataIndex: 'b222', + width: '220px' + },{ + title: '其他抗生素3结束日期', + dataIndex: 'b223', + width: '220px' + }] + + } + }, + created() { + this.scroll = { + x: '18000px', + y: window.screen.height - 420 + 'px' + } + + }, + mounted() { + + + }, + methods: { + // 导出 + _export() { + window.open(this.baseUrl + 'patientReport/exportIconJxjz') + } + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} + +.ant-table td { + white-space: nowrap; +} +.ant-table-fixed-header .ant-table-scroll .ant-table-header { + min-width: 0px !important; +} +</style> \ No newline at end of file diff --git a/src/views/reportApply/index.vue b/src/views/reportApply/index.vue new file mode 100644 index 0000000000..8a85e0f018 --- /dev/null +++ b/src/views/reportApply/index.vue @@ -0,0 +1,227 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索申请人" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <!-- <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> --> + </a-form-item> + </a-col> + <a-col :md="13" style="text-align:right" :sm="24"> + <a-button type="primary" @click="reportApplyshow()">新建</a-button> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="ticketId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <template slot="executeStatus" slot-scope="text"> + <a-badge :status="text == 0 ? 'success' : 'error'" :text="text == 0 ? '未注销' : '已注销'" /> + </template> + <template slot="operation" slot-scope="text, record"> + <span v-if="record.executeStatus == 1">注销</span> + <a v-else @click="handleLogout(record)">注销</a> + </template> + </s-table> + <a-modal :visible="visible" title="申请开通报表" @ok="outSubmit" @cancel="reportApplyhide"> + <a-form :form="form"> + <a-form-item label="申请理由" > + <a-input type="textarea" v-decorator="[ + 'reason', + { rules: [{ required: true, message: '请填写申请理由' }] }, + ]" /> + </a-form-item> + </a-form> + </a-modal> + </a-card> +</template> +<script> +import moment from 'moment' +import { getReporApplyList,saveReporApply } from '@/api/report' +import { STable } from '@/components' +import $ from 'jquery' +import { submitCheck } from '../../api/basis' + +export default { + name: 'reportApply', + components: { + STable + }, + data() { + return { + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + scroll: false, + loadData: parameter => { + return getReporApplyList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [{ + title: '申请中心', + dataIndex: 'applyName', + width: '120px' + }, + { + title: '申请时间', + dataIndex: 'applyTime', + customRender: applyTime => moment(applyTime).format('YYYY-MM-DD'), + width: '120px' + }, + { + title: '申请理由', + dataIndex: 'reason', + width: '200px' + }, + { + title: '申请状态', + dataIndex: 'statusStr', + width: '150px' + }, + { + title: '审核备注', + dataIndex: 'checkReason', + width: '200px' + }, + { + title: '审核时间', + dataIndex: 'checkTime', + customRender: checkTime => moment(checkTime).format('YYYY-MM-DD'), + width: '150px' + }, + ], + form:this.$form.createForm(this), + visible:false + } + }, + created() { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + methods: { + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + clearForm() { + this.queryParam = {} + }, + tableSearch(type) { + this.queryParam.executeStatus = type + this.$refs.table.refresh() + this.advanced = false + }, + handleLogout(record) { + let that = this + this.$confirm({ + title: '确定要注销该活动券吗?', + onOk() { + const params = new FormData(); + params.append('ticketId', record.ticketId) + logoutTicket(params).then(res => { + that.$refs.table.refresh() + }) + }, + onCancel() {}, + }); + }, + refreshTable() { + this.advanced = false + this.$refs.table.refresh() + }, + reportApplyshow(){ + this.visible=true + }, + reportApplyhide(){ + this.visible=false + }, + outSubmit(){ + var that = this + this.form.validateFieldsAndScroll((errors, fieldsValue) => { + if (!errors) { + const params = new URLSearchParams() + params.append('reason', fieldsValue.reason) + saveReporApply(params).then(res => { + if (res.code === -1) { + that.$message.error(res.msg) + } else { + that.$message.success(res.msg) + that.$refs.table.refresh() + that.visible = false + } + }); + } + }); + } + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/reportApply/review.vue b/src/views/reportApply/review.vue new file mode 100644 index 0000000000..32b7d0adbc --- /dev/null +++ b/src/views/reportApply/review.vue @@ -0,0 +1,269 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索申请人" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <!-- <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> --> + </a-form-item> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="ticketId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <template slot="executeStatus" slot-scope="text"> + <a-badge :status="text == 0 ? 'success' : 'error'" :text="text == 0 ? '未注销' : '已注销'" /> + </template> + <template slot="operation" slot-scope="text, record"> + <span v-if="record.status == 1||record.status==2">已审核</span> + <a v-else @click="reportApplyshow(record)">审核</a> + </template> + </s-table> + <a-modal :visible="visible" title="审核开通申请" @ok="outSubmit" @cancel="handleClose"> + <template slot="footer"> + <a-button key="back" @click="reportApplyhide"> + 不通过 + </a-button> + <a-button key="submit" type="primary" @click="outSubmit"> + 通过 + </a-button> + </template> + <a-form :form="form"> + <input type="hidden" v-model="reportApplyId"> + <a-form-item label="备注" > + <a-input type="textarea" v-decorator="[ + 'checkReason', + { rules: [{ required: checkStatus, message: '请填写不通过理由' }] }, + ]" /> + </a-form-item> + </a-form> + </a-modal> + </a-card> +</template> +<script> +import moment from 'moment' +import { getReporApplyList,checReporApply } from '@/api/report' +import { STable } from '@/components' +import $ from 'jquery' +import { submitCheck } from '../../api/basis' + +export default { + name: 'reportReview', + components: { + STable + }, + data() { + return { + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + scroll: false, + loadData: parameter => { + return getReporApplyList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [{ + title: '申请人', + dataIndex: 'applyName', + width: '120px' + }, + { + title: '申请时间', + dataIndex: 'applyTime', + customRender: applyTime => moment(applyTime).format('YYYY-MM-DD'), + width: '120px' + }, + { + title: '申请理由', + dataIndex: 'reason', + width: '200px' + }, + { + title: '申请状态', + dataIndex: 'statusStr', + width: '150px' + }, + { + title: '审核时间', + dataIndex: 'checkTime', + customRender: checkTime => moment(checkTime).format('YYYY-MM-DD'), + width: '150px' + }, + { + title: '审核备注', + dataIndex: 'checkReason', + width: '200px' + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '150px' + } + ], + form:this.$form.createForm(this), + visible:false, + checkStatus:false, + reportApplyId:null, + } + }, + created() { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + methods: { + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + clearForm() { + this.queryParam = {} + }, + tableSearch(type) { + this.queryParam.executeStatus = type + this.$refs.table.refresh() + this.advanced = false + }, + handleLogout(record) { + let that = this + this.$confirm({ + title: '确定要注销该活动券吗?', + onOk() { + const params = new FormData(); + params.append('ticketId', record.ticketId) + logoutTicket(params).then(res => { + that.$refs.table.refresh() + }) + }, + onCancel() {}, + }); + }, + refreshTable() { + this.advanced = false + this.$refs.table.refresh() + }, + reportApplyshow(record){ + this.visible=true + this.reportApplyId = record.reportApplyId + }, + reportApplyhide(){ + var that = this + this.checkStatus=false; + this.$nextTick(() => { + this.form.validateFields({ force: true }, (errors, fieldsValue) => { + if (!errors) { + const params = new URLSearchParams() + params.append('reportApplyId', that.reportApplyId) + params.append('status', 2) + checReporApply(params).then(res => { + if (res.code === -1) { + that.$message.error(res.msg) + } else { + that.$message.success(res.msg) + that.$refs.table.refresh() + that.visible = false + } + }); + } + }); + }); + }, + handleClose() { + this.visible = false + }, + outSubmit(){ + var that = this + this.checkStatus=true; + this.$nextTick(() => { + this.form.validateFields({ force: true }, (errors, values) => { + if (!errors) { + const params = new URLSearchParams() + params.append('reportApplyId', that.reportApplyId) + params.append('checkReason', values.checkReason) + params.append('status', 1) + checReporApply(params).then(res => { + if (res.code === -1) { + that.$message.error(res.msg) + } else { + that.$message.success(res.msg) + that.$refs.table.refresh() + that.visible = false + } + }); + } + }); + }) + } + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/reportApply/statistics.vue b/src/views/reportApply/statistics.vue new file mode 100644 index 0000000000..0d54f433ae --- /dev/null +++ b/src/views/reportApply/statistics.vue @@ -0,0 +1,198 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="13" style="text-align: right;width: 100%;padding: 0 8px;margin-bottom: 10px;" :sm="24"> + <a-button type="primary" @click="_export">导出</a-button> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="centerName" :columns="columns" :data="loadData" showPagination="auto"> + </s-table> + </a-card> +</template> +<script> +import moment from 'moment' +import { getPatientEntry } from '@/api/report' +import { STable } from '@/components' +export default { + components: { + STable + }, + data() { + return { + baseUrl: process.env.VUE_APP_API_BASE_URL, + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + scroll: false, + loadData: parameter => { + return getPatientEntry(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + columns: [{ + title: '患者姓名', + dataIndex: 'patientName', + width: '90px' + },{ + title: '患者性别', + dataIndex: 'sexName', + width: '90px' + },{ + title: '入组编号', + dataIndex: 'fileCode', + width: '120px' + },{ + title: '患者年龄', + dataIndex: 'age', + width: '90px' + },{ + title: '联系电话1', + dataIndex: 'telephone1', + width: '100px' + },{ + title: '联系电话2', + dataIndex: 'telephone2', + width: '100px' + },{ + title: '联系电话3', + dataIndex: 'telephone3', + width: '100px' + },{ + title: '患者同意注册日期', + dataIndex: 'registerDate', + width: '160px' + },{ + title: '推荐医生', + dataIndex: 'doctorName', + width: '90px' + },{ + title: '提交人姓名', + dataIndex: 'submitName', + width: '110px' + },{ + title: '提交人手机号', + dataIndex: 'submitTelephone', + width: '120px' + },{ + title: '去世时间', + dataIndex: 'deathDate', + width: '120px' + },{ + title: '支扩病史资料', + dataIndex: 'pbm1Status', + width: '120px' + },{ + title: '体格检查', + dataIndex: 'pbm2Status', + width: '90px' + },{ + title: '胸部影像学', + dataIndex: 'pbm4Status', + width: '110px' + },{ + title: '病原', + dataIndex: 'pbm5Status', + width: '70px' + },{ + title: '病因学', + dataIndex: 'pbm6Status', + width: '70px' + },{ + title: '肺功能', + dataIndex: 'pbm7Status', + width: '70px' + },{ + title: '心超', + dataIndex: 'pbm8Status', + width: '80px' + },{ + title: '其他', + dataIndex: 'pbm9Status', + width: '80px' + },{ + title: '呼吸系统相关治疗', + dataIndex: 'pbm10Status', + width: '150px' + },{ + title: 'BHO', + dataIndex: 'qt1Status', + width: '70px' + },{ + title: 'QOL-B', + dataIndex: 'qt2Status', + width: '70px' + },{ + title: 'MMRC', + dataIndex: 'qt4Status', + width: '70px' + },{ + title: 'LCQ', + dataIndex: 'qt5Status', + width: '70px' + },{ + title: 'HADS', + dataIndex: 'qt6Status', + width: '70px' + }], + + } + }, + created() { + this.scroll = { + x: '2600px', + y: window.screen.height - 420 + 'px' + } + + }, + mounted() { + + + }, + methods: { + // 导出 + _export() { + window.open(this.baseUrl + 'patient/exportPatientEntry') + } + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} + +.ant-table td { + white-space: nowrap; +} +.ant-table-fixed-header .ant-table-scroll .ant-table-header { + min-width: 0px !important; +} +</style> \ No newline at end of file diff --git a/src/views/result/Success.vue b/src/views/result/Success.vue index 79e965946e..dfa52ba2ca 100644 --- a/src/views/result/Success.vue +++ b/src/views/result/Success.vue @@ -1,92 +1,73 @@ <template> - <a-card :bordered="false" style="margin: -24px -24px 0px;"> - <result type="success" :description="description" :title="title"> - <template slot="action"> - <a-button type="primary">返回列表</a-button> - <a-button style="margin-left: 8px">查看项目</a-button> - <a-button style="margin-left: 8px">打印</a-button> - </template> - <div> - <div style="font-size: 16px; color: rgba(0, 0, 0, 0.85); font-weight: 500; margin-bottom: 20px;">项目名称</div> - <a-row style="margin-bottom: 16px"> - <a-col :xs="24" :sm="12" :md="12" :lg="12" :xl="6"> - <span style="color: rgba(0, 0, 0, 0.85)">项目 ID:</span> - 20180724089 - </a-col> - <a-col :xs="24" :sm="12" :md="12" :lg="12" :xl="6"> - <span style="color: rgba(0, 0, 0, 0.85)">负责人:</span> - 曲丽丽是谁? - </a-col> - <a-col :xs="24" :sm="24" :md="24" :lg="24" :xl="12"> - <span style="color: rgba(0, 0, 0, 0.85)">生效时间:</span> - 2016-12-12 ~ 2017-12-12 - </a-col> - </a-row> - <a-steps :current="1" :direction="isMobile() && directionType.vertical || directionType.horizontal" progressDot> - <a-step > - <span style="font-size: 14px" slot="title">创建项目</span> - <template slot="description"> - <div style="fontSize: 12px; color: rgba(0, 0, 0, 0.45); position: relative; left: 42px;text-align: left;" slot="description" > - <div style="margin: 8px 0 4px"> - 曲丽丽 - <a-icon style="margin-left: 8px" type="dingding-o" /> - </div> - <div>2016-12-12 12:32</div> - </div> - </template> - </a-step> - <a-step title="部门初审"> - <span style="font-size: 14px" slot="title">部门初审</span> - <template slot="description"> - <div style="fontSize: 12px; color: rgba(0, 0, 0, 0.45); position: relative; left: 42px;text-align: left;" slot="description" > - <div style="margin: 8px 0 4px"> - 周毛毛 - <a-icon style="margin-left: 8px; color: #00A0E9" type="dingding-o" /> - </div> - <div><a href="">催一下</a></div> - </div> - </template> - </a-step> - <a-step title="财务复核"> - <span style="font-size: 14px" slot="title">财务复核</span> - </a-step> - <a-step title="完成" > - <span style="font-size: 14px" slot="title">完成</span> - </a-step> - </a-steps> - </div> - </result> - </a-card> + <div> + <a-card :bordered="false" style="margin: -24px -24px 0px;background-color: #0399EC;color:#FFFFFF"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"><a-icon type="left" style="fontSize:20px" /></a-col> + <a-col :md="3" :sm="20" style="fontSize:20px"> + <a-icon type="credit-card" theme="filled" /> + 受访者:杨溢 + </a-col> + <a-col :md="5" :sm="24" style="fontSize:20px"> + <a-icon type="credit-card" theme="filled" style="fontSize:20px" /> + 320123199408175777 + </a-col> + <a-col :md="15" :sm="24" style="fontSize:20px;textAlign: right;">创建时间:2018-01-02</a-col> + </a-row> + </a-card> + <a-card :bordered="false" style="margin:24px 24px 0px"> + <a-row :gutter="8"> + <a-col :span="5"><s-tree :dataSource="orgTree" :openKeys.sync="openKeys" :search="true" @click="handleClick" @add="handleAdd" @titleClick="handleTitleClick"></s-tree></a-col> + <a-col :span="19"><h1>11111111111111</h1></a-col> + </a-row> + </a-card> + </div> </template> <script> -import { Result } from '@/components' -import { mixinDevice } from '@/utils/mixin.js' +import STree from '@/components/Tree/Tree'; +import { getOrgTree, getServiceList } from '@/api/manage'; -const directionType = { - horizontal: 'horizontal', - vertical: 'vertical' -} +// import { Result } from '@/components' +// import { mixinDevice } from '@/utils/mixin.js' export default { - name: 'Success', + name: 'success', components: { - Result + STree }, - mixins: [mixinDevice], - data () { + data() { return { - title: '提交成功', - description: '提交结果页用于反馈一系列操作任务的处理结果,\n' + - ' 如果仅是简单操作,使用 Message 全局提示反馈即可。\n' + - ' 本文字区域可以展示简单的补充说明,如果有类似展示\n' + - ' “单据”的需求,下面这个灰色区域可以呈现比较复杂的内容。', - directionType + openKeys: ['key-01'], + orgTree: [] + }; + }, + created() { + getOrgTree().then(res => { + this.orgTree = res.result; + }); + }, + methods: { + handleClick(e) { + console.log('handleClick', e); + this.queryParam = { + key: e.key + }; + this.$refs.table.refresh(true); + }, + handleAdd(item) { + console.log('add button, item', item); + this.$message.info(`提示:你点了 ${item.key} - ${item.title} `); + this.$refs.modal.add(item.key); + }, + handleTitleClick(item) { + console.log('handleTitleClick', item); } } -} +}; </script> -<style scoped> - +<style> +.ant-card-wider-padding .ant-card-body { + padding: 18px 32px; +} </style> diff --git a/src/views/role/RoleDetail.vue b/src/views/role/RoleDetail.vue new file mode 100644 index 0000000000..a82b55ba92 --- /dev/null +++ b/src/views/role/RoleDetail.vue @@ -0,0 +1,113 @@ +<template> + <a-modal :title="options.title" :width="750" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :destroyOnClose="destroyOnClose" :centered="centered" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item label="角色编码" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['code', requiredRule]" autocomplete="off" /> + </a-form-item> + <a-form-item label="角色名称" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['name', requiredRule]" autocomplete="off" /> + </a-form-item> + <a-form-item label="类型" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group v-decorator="['type', requiredRule]"> + <a-radio value="1">角色</a-radio> + <a-radio value="2">数据角色</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="是否使用" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group v-decorator="['status', requiredRule]"> + <a-radio value="1">使用</a-radio> + <a-radio value="-1">停用</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="描述" :labelCol="labelCol" :wrapperCol="wrapperCol" style="margin-bottom: 0;"> + <a-textarea v-decorator="['description', requiredRule]" autocomplete="off"></a-textarea> + </a-form-item> + </a-form> + </a-spin> + </a-modal> +</template> +<script> +import { saveRole } from '@/api/center' +import moment from 'moment' +import _ from 'lodash' +export default { + data() { + return { + options: {}, + maskClosable: false, + labelCol: { + xs: { span: 24 }, + sm: { span: 7 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 15 } + }, + visible: false, + confirmLoading: false, + centered: true, + destroyOnClose: true, + bodyStyle: { + height: '500px', + overflow: 'auto' + }, + form: this.$form.createForm(this), + requiredRule: { rules: [{ required: true, message: '该选项必填!' }] }, + roleId: undefined + } + }, + created() {}, + methods: { + add() { + this.options.title = '新建角色' + this.visible = true + this.roleId = undefined + }, + edit(value) { + this.options.title = '编辑角色' + this.roleId = value.id + setTimeout(() => { + this.form.setFieldsValue({ + code: value.code, + name: value.name, + type: String(value.type), + status: String(value.status), + description: value.description + }) + }, 0) + this.visible = true + }, + handleSubmit() { + this.confirmLoading = true; + this.form.validateFieldsAndScroll((errors, fieldsValue) => { + const that = this; + if (errors) { + this.confirmLoading = false + return + } + const values = { + ...fieldsValue, + id: this.roleId + }; + const params = new URLSearchParams() + params.append('roleStr', JSON.stringify(values)) + saveRole(params).then(res => { + that.visible = false + that.confirmLoading = false + that.$message.success(res.msg) + that.$emit('ok', values) + }); + }); + }, + handleCancel() { + this.visible = false + } + } +}; +</script> +<style lang="less" scoped> +/deep/ .ant-form-item:last-child { + margin-bottom: 0; +} +</style> \ No newline at end of file diff --git a/src/views/role/list.vue b/src/views/role/list.vue new file mode 100644 index 0000000000..d4d1f3e32f --- /dev/null +++ b/src/views/role/list.vue @@ -0,0 +1,218 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索角色名称" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col :md="13" style="text-align:right" :sm="24"> + <a-button type="primary" @click="$refs.roleDetail.add()">新增</a-button> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch()">全部角色</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="角色名称"> + <a-input v-model.trim="queryParam.roleName" /> + </a-form-item> + <a-form-item style="text-align: right;margin-bottom: 0;margin-top: 15px;"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px;" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + </a-row> + </a-form> + </div> + + <s-table ref="table" :scroll="scroll" size="small" rowKey="id" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <template slot="type" slot-scope="text"> + <span v-if="text == 1">角色</span> + <span v-if="text == 2">数据角色</span> + </template> + <template slot="status" slot-scope="text"> + <span v-if="text == 1">使用</span> + <span v-if="text == -1">停用</span> + </template> + <span slot="operation" slot-scope="text, record"> + <template> + <a @click="handleReview(record)">编辑</a> + </template> + </span> + </s-table> + <role-detail ref="roleDetail" @ok="handleOk"></role-detail> + </a-card> +</template> + +<script> + import moment from 'moment' + import { getRoleDataList } from '@/api/center' + import { STable } from '@/components' + import RoleDetail from './RoleDetail' + export default { + components: { + STable, + RoleDetail + }, + data() { + return { + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + scroll: false, + loadData: parameter => { + return getRoleDataList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [ + { + title: '角色编码', + dataIndex: 'code', + width: '150px' + }, + { + title: '角色名称', + dataIndex: 'name', + width: '150px' + }, + { + title: '类型', + dataIndex: 'type', + width: '120px', + scopedSlots: { customRender: 'type' } + }, + { + title: '是否使用', + dataIndex: 'status', + width: '120px', + scopedSlots: { customRender: 'status' } + }, + { + title: '描述', + dataIndex: 'description' + }, + { + title: '创建时间', + dataIndex: 'createDate', + customRender: createDate => moment(createDate).format('YYYY-MM-DD'), + width: '120px' + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '100px' + } + ], + } + }, + created() { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + }, + methods: { + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + clearForm() { + this.queryParam = {} + }, + tableSearch(type) { + this.queryParam.isUser = type + this.$refs.table.refresh() + this.advanced = false + }, + refreshTable() { + this.advanced = false + this.$refs.table.refresh() + }, + handleReview(record) { + this.$refs.roleDetail.edit(record) + }, + handleOk() { + this.$refs.table.refresh() + } + } + } +</script> + +<style lang="less" scoped> + /deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; + } + .tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item > .ant-form-item-label { + width: 70px !important; + } + .commonRetrieval { + padding: 10px; + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } + } +</style> \ No newline at end of file diff --git a/src/views/score/list.vue b/src/views/score/list.vue new file mode 100644 index 0000000000..3a1303eb76 --- /dev/null +++ b/src/views/score/list.vue @@ -0,0 +1,327 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索患者姓名、入组编号" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + </a-form-item> + </a-col> + <a-col :md="13" style="text-align:right" :sm="24"> + <a-button type="primary" @click="_export">导出</a-button> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" size="small" rowKey="centerName" :scroll="scroll" :columns="columns" :data="loadData" :alert="options.alert" showPagination="auto"> + </s-table> + </a-card> +</template> +<script> +import moment from 'moment' +import { patientReport } from '@/api/basis' +import { STable } from '@/components' + +const visitMap = { + 1: { + text: '有铜绿' + }, + 2: { + text: '无铜绿' + } +}; + +export default { + name: 'scoreList', + components: { + STable + }, + data() { + return { + baseUrl: process.env.VUE_APP_API_BASE_URL, + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + loadData: parameter => { + return patientReport(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + scroll: {x: 3160}, + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [{ + title: '患者姓名', + dataIndex: 'patientName', + width: 80 + },{ + title: '患者性别', + dataIndex: 'sexName', + width: 80 + },{ + title: '患者年龄', + dataIndex: 'age', + width: 80 + },{ + title: '文化程度', + dataIndex: 'census', + width: 120 + },{ + title: '过去两年急性加重住院次数', + dataIndex: 'a71', + width: 190 + },{ + title: '过去一年急性加重住院次数', + dataIndex: 'a81', + width: 190 + },{ + title: '过去1年急性加重次数', + dataIndex: 'a91', + width: 150 + },{ + title: '胸部影像学支扩类型', + dataIndex: 'a101', + width: 150 + },{ + title: '心超小结', + dataIndex: 'a111', + width: 80 + },{ + title: '肺功能结论', + dataIndex: 'a121', + width: 100 + },{ + title: '通气功能减退类型', + dataIndex: 'a131', + width: 150 + }, { + title: '入组编号', + dataIndex: 'fileCode', + width: 100 + }, { + title: '是否有铜绿', + dataIndex: 'itTlStr', + width: 100 + }, { + title: 'FACED评分', + dataIndex: 'faced', + width: 100 + }, { + title: 'BACI评分', + dataIndex: 'baci', + width: 100 + }, { + title: 'REFFI评分', + dataIndex: 'reffi', + width: 100 + }, { + title: '病因诊断', + dataIndex: 'byzd', + width: 240 + }, { + title: 'FVC', + dataIndex: 'a21', + width: 150 + },{ + title: 'FVC%', + dataIndex: 'a61', + width: 80 + }, { + title: 'FEV1', + dataIndex: 'a31', + width: 150 + }, { + title: 'FEV1% ', + dataIndex: 'a51', + width: 80 + },{ + title: 'FEV1%FVC', + dataIndex: 'a41', + width: 150 + }, { + title: 'BSI评分', + dataIndex: 'bsi', + width: 100 + }, { + title: 'BHQ问卷得分', + dataIndex: 'bhq', + width: 100 + }, { + title: 'MMRC评分', + dataIndex: 'mmrc', + width: 100 + }, { + title: 'HADS-A评分', + dataIndex: 'had', + width: 100 + },{ + title: 'HADS-D评分', + dataIndex: 'hadd', + width: 100 + }, { + title: 'lcq总评分', + dataIndex: 'lcq', + width: 100 + }, { + title: 'lcq生理评分', + dataIndex: 'lcqSl', + width: 100 + }, { + title: 'lcq心理评分', + dataIndex: 'lcqXl', + width: 100 + }, { + title: 'lcq社会评分', + dataIndex: 'lcqSh', + width: 100 + }, { + title: 'qolb身体评分', + dataIndex: 'qolb1', + width: 100 + }, { + title: 'qolb角色评分', + dataIndex: 'qolb2', + width: 100 + }, { + title: 'qolb活力评分', + dataIndex: 'qolb3', + width: 100 + }, { + title: 'qolb情绪评分', + dataIndex: 'qolb4', + width: 100 + }, { + title: 'qolb社会评分', + dataIndex: 'qolb5', + width: 100 + }, { + title: 'qolb医疗评分', + dataIndex: 'qolb6', + width: 100 + }, { + title: 'qolb健康评分', + dataIndex: 'qolb7', + width: 100 + }, { + title: 'qolb呼吸评分', + dataIndex: 'qolb8', + width: 100 + }], + createArr: [], + submitArr: [] + } + }, + created() { + // this.scroll = { + // X: '9999999px', + // y: window.screen.height - 400 + 'px' + // } + // this.scroll.x = 9999999 + 'px' + this.scroll.y = window.screen.height - 400 + 'px' + }, + filters: { + visitFilter(type) { + return visitMap[type].text; + } + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + }, + methods: { + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + clearForm() { + this.queryParam = {} + this.createArr = [] + this.submitArr = [] + }, + tableSearch(type) { + this.queryParam.isUser = type + this.$refs.table.refresh() + this.advanced = false + }, + refreshTable() { + this.advanced = false + this.$refs.table.refresh() + }, + changeCreate(time) { + this.createArr = time; + this.queryParam.createDateStart = moment(time[0]).format('YYYY-MM-DD') + this.queryParam.createDateEnd = moment(time[1]).format('YYYY-MM-DD') + }, + changeSubmit(time) { + this.submitArr = time; + this.queryParam.submitDateStart = moment(time[0]).format('YYYY-MM-DD') + this.queryParam.submitDateEnd = moment(time[1]).format('YYYY-MM-DD') + }, + _export() { + window.open(this.baseUrl + 'patientReport/export') + } + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} + +/deep/ .ant-table td { + white-space: nowrap; +} +</style> \ No newline at end of file diff --git a/src/views/task/SelectReport.vue b/src/views/task/SelectReport.vue new file mode 100644 index 0000000000..9898b4baa7 --- /dev/null +++ b/src/views/task/SelectReport.vue @@ -0,0 +1,106 @@ +<template> + <a-modal title="选择报告" :width="800" :destroyOnClose="destroyOnClose" :bodyStyle="bodyStyle" :centered="centered" :visible="visible" :confirmLoading="confirmLoading" @ok="checkuUser" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-table :columns="columns" rowKey="reportCollectDetailId" :rowSelection="rowSelection" :dataSource="data" :pagination="pagination" :loading="loading" @change="handleTableChange"> + </a-table> + </a-spin> + </a-modal> +</template> +<script> +import { getImportDataList } from '@/api/report' +import moment from 'moment' +import _ from 'lodash' +const columns = [{ + title: '入组编号', + dataIndex: 'fileBasisCode' + }, + { + title: '患者姓名', + dataIndex: 'patientName' + }, + { + title: '报告名称', + dataIndex: 'reportTypeName' + }, + { + title: '采集日期', + dataIndex: 'collectDate', + customRender: collectDate => moment(collectDate).format('YYYY-MM-DD') + } +]; +export default { + name: 'SelectReport', + data() { + return { + data: [], + pagination: { + defaultPageSize: 5, + pageSize: 5, + hideOnSinglePage: true, + total: 0 + }, + loading: false, + columns, + visible: false, + confirmLoading: false, + destroyOnClose: true, + centered: true, + bodyStyle: { + height: '480px', + overflow: 'auto' + }, + patientId: undefined, + typeId: undefined, + selectedData: {} + } + }, + methods: { + add(patientId, typeId) { + this.visible = true + this.confirmLoading = true + this.selectedData = {} + this.patientId = patientId + this.typeId = typeId + this.data = [] + this.getImportDataList(1, this.pagination.pageSize); + }, + checkuUser() { + if (JSON.stringify(this.selectedData) == '{}') { + this.$message.error('您还未选择要导入的报告!') + return + } + this.$emit('listen', this.selectedData); + this.visible = false + }, + handleCancel() { + this.visible = false + }, + handleTableChange(pagination, filters, sorter) { + this.getImportDataList(pagination.current, pagination.pageSize) + }, + getImportDataList(pageNumber, pageSize) { + const params = new URLSearchParams() + params.append('pageNumber', pageNumber) + params.append('pageSize', pageSize) + params.append('patientId', this.patientId) + params.append('reportTypeId', this.typeId) + getImportDataList(params).then(res => { + this.data = res.data + this.pagination.total = res.total + this.confirmLoading = false + }); + } + }, + computed: { + rowSelection() { + const { selectedRowKeys } = this; + return { + type: 'radio', + onChange: (selectedRowKeys, selectedRows) => { + this.selectedData = selectedRows[0]; + } + }; + } + } +}; +</script> \ No newline at end of file diff --git a/src/views/task/components/mask-11.vue b/src/views/task/components/mask-11.vue new file mode 100644 index 0000000000..1fcc731bec --- /dev/null +++ b/src/views/task/components/mask-11.vue @@ -0,0 +1,1072 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!</p> + <div class="title">1.呼吸系统相关治疗</div> + <a-form-item label="(1) 长期氧疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b1', {...require1, initialValue: initValue('b1')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(2) 无创辅助通气:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b2', {...require1, initialValue: initValue('b2')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(3) 患者是否行有规律的物理治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b3', {...require1, initialValue: initValue('b3')}]" @change="changeRadio($event, 'controlb3')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb3"> + <a-form-item label="治疗方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b31', {...selectRequired, initialValue: initValue('b31', 'array')}]"> + <a-checkbox value="1">手动拍击背部排痰</a-checkbox> + <a-checkbox value="2">体位引流</a-checkbox> + <a-checkbox value="3">规律锻炼身体</a-checkbox> + <a-checkbox value="4">借助排痰仪器</a-checkbox> + <a-checkbox value="5">无</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="患者是否参加肺康复治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b32', {...selectRequired, initialValue: initValue('b32')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="2">未听说过有这种治疗</a-radio> + <a-radio value="3">因共病不适合</a-radio> + <a-radio value="4">患者拒绝参加</a-radio> + <a-radio value="5">想参加但未能参加</a-radio> + </a-radio-group> + </a-form-item> + </div> + <a-form-item label="(4) 有规律的呼吸疾病药物治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b4', {...require1, initialValue: initValue('b4')}]" @change="changeRadio($event, 'controlb4')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb4"> + <a-form-item label="长期性抗生素治疗(多选):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b41', {...selectRequired, initialValue: initValue('b41', 'array')}]"> + <a-checkbox value="1">阿奇霉素</a-checkbox> + <a-checkbox value="2">克拉霉素</a-checkbox> + <a-checkbox value="3">红霉素</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'controlb41')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他抗生素:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb41"> + <a-input style="width: 240px;" v-decorator="['b414', {...inputRequired, initialValue: initValue('b414')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="吸入/雾化抗生素药物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b42', {...inputRequired, initialValue: initValue('b42')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="祛痰类药物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b43', {...selectRequired, initialValue: initValue('b43', 'array')}]"> + <a-checkbox value="1">N乙酰半胱氨酸</a-checkbox> + <a-checkbox value="2">氨溴索</a-checkbox> + <a-checkbox value="3">桉柠蒎</a-checkbox> + <a-checkbox value="4">羧甲司坦</a-checkbox> + <a-checkbox value="5">厄多司坦</a-checkbox> + <a-checkbox value="6">福多司坦</a-checkbox> + <a-checkbox value="7" @change="changeSelect($event, 'controlb43')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他祛痰类药物::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb43"> + <a-input style="width: 240px;" v-decorator="['b431', {...inputRequired, initialValue: initValue('b431')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="吸入治疗(多选):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b', {...selectRequired, initialValue: initValue('b', 'array')}]" class="control-m-line"> + <a-checkbox value="0">无</a-checkbox> + <a-checkbox value="1" @change="changeSelect($event, 'controlb01')">吸入激素</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controlb02')">吸入激素/长效β受体激动剂</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'controlb03')">长效抗胆碱能药物</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'controlb04')">长效β受体激动剂</a-checkbox> + <a-checkbox value="5" @change="changeSelect($event, 'controlb05')">白三烯受体拮抗剂</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="吸入激素:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb01"> + <a-checkbox-group v-decorator="['b44', {...selectRequired, initialValue: initValue('b44', 'array')}]"> + <a-checkbox value="0">无</a-checkbox> + <a-checkbox value="1">布地奈德</a-checkbox> + <a-checkbox value="2">氟替卡松</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'controlb44')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他激素::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb44"> + <a-input style="width: 240px;" v-decorator="['b441', {...inputRequired, initialValue: initValue('b441')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="吸入激素/长效β受体激动剂:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb02"> + <a-checkbox-group v-decorator="['b45', {...selectRequired, initialValue: initValue('b45', 'array')}]"> + <a-checkbox value="0">无</a-checkbox> + <a-checkbox value="1">布地奈德/福莫特罗</a-checkbox> + <a-checkbox value="2">沙美特罗/氟替卡松</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'controlb45')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他激素::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb45"> + <a-input style="width: 240px;" v-decorator="['b451', {...inputRequired, initialValue: initValue('b451')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="长效抗胆碱能药物:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb03"> + <a-checkbox-group v-decorator="['b46', {...selectRequired, initialValue: initValue('b46', 'array')}]"> + <a-checkbox value="1">噻托嗅按</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="长效β受体激动剂/长效抗胆碱能药物名称:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b47', {...inputRequired, initialValue: initValue('b47')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="长效β受体激动剂:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb04"> + <a-checkbox-group v-decorator="['b48', {...selectRequired, initialValue: initValue('b48', 'array')}]"> + <a-checkbox value="0">无</a-checkbox> + <a-checkbox value="1">福莫特罗</a-checkbox> + <a-checkbox value="2">茚达特罗</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="白三烯受体拮抗剂:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb05"> + <a-checkbox-group v-decorator="['b49', {...selectRequired, initialValue: initValue('b49', 'array')}]"> + <a-checkbox value="0">无</a-checkbox> + <a-checkbox value="1">孟鲁司特</a-checkbox> + <a-checkbox value="2">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="止血药物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b410', {...selectRequired, initialValue: initValue('b410', 'array')}]"> + <a-checkbox value="0">无</a-checkbox> + <a-checkbox value="1">安络血</a-checkbox> + <a-checkbox value="2">云南白药</a-checkbox> + <a-checkbox value="3">垂体</a-checkbox> + <a-checkbox value="4">止血敏</a-checkbox> + <a-checkbox value="5">止血芳酸</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="雾化治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b411', {...require1, initialValue: initValue('b411')}]" @change="changeRadio($event, 'controlb411')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb411"> + <a-form-item label="雾化药物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b4111', {...selectRequired, initialValue: initValue('b4111', 'array')}]"> + <a-checkbox value="1">乙酰半胱氨酸</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controlb4111')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他雾化药物:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb4111"> + <a-input style="width: 240px;" v-decorator="['b4112', {...inputRequired, initialValue: initValue('b4112')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="ICS:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b412', {...selectRequired, initialValue: initValue('b412', 'array')}]"> + <a-checkbox value="0">无</a-checkbox> + <a-checkbox value="1">布地奈德</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controlb412')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他ICS:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb412"> + <a-input style="width: 240px;" v-decorator="['b4121', {...inputRequired, initialValue: initValue('b4121')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="支气管扩张剂:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b413', {...selectRequired, initialValue: initValue('b413', 'array')}]"> + <a-checkbox value="0">无</a-checkbox> + <a-checkbox value="1">异丙托溴胺</a-checkbox> + <a-checkbox value="2">沙丁胺醇</a-checkbox> + <a-checkbox value="3">特布他林</a-checkbox> + <a-checkbox value="4">复方异丙托溴铵(异丙托溴胺+沙丁胺醇)</a-checkbox> + </a-checkbox-group> + </a-form-item> + </div> + <a-form-item label="(5) ABPA相关治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b5', {...require1, initialValue: initValue('b5')}]" @change="changeRadio($event, 'controlb5')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="抗真菌药物:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb5"> + <a-checkbox-group v-decorator="['b52', {...selectRequired, initialValue: initValue('b52', 'array')}]"> + <a-checkbox value="1">伊曲康唑</a-checkbox> + <a-checkbox value="2">伏立康唑</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="(6) 免疫球蛋白缺乏相关治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b6', {...require1, initialValue: initValue('b6')}]" @change="changeRadio($event, 'controlb6')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb6"> + <a-form-item label="静脉注射免疫球蛋白药物名称:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b61', {...inputRequired, initialValue: initValue('b61')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(7) 患者是否曾接收疫苗治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b71', {...require1, initialValue: initValue('b71')}]" @change="changeRadio($event, 'controlb7')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb7"> + <a-form-item label="疫苗治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b7', {...selectRequired, initialValue: initValue('b7', 'array')}]" class="control-m-line"> + <a-checkbox value="1">肺炎链球菌多糖疫苗(如:PSV23)</a-checkbox> + <a-checkbox value="2">肺炎链球菌辅助疫苗(如:PCV13)</a-checkbox> + <a-checkbox value="3">过去1年内患者接受过流感疫苗</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'controlb72')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他疫苗:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb72"> + <a-input style="width: 240px;" v-decorator="['b72', {...inputRequired, initialValue: initValue('b72')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <div class="title">2.非呼吸系统相关治疗</div> + <a-form-item label="(1) 调脂" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b171', {...require1, initialValue: initValue('b171')}]"> + <a-radio value="1">他汀类</a-radio> + <a-radio value="2">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="抗凝(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-checkbox-group v-decorator="['b172', {...selectRequired, initialValue: initValue('b172', 'array')}]"> + <a-checkbox value="1">阿司匹林</a-checkbox> + <a-checkbox value="2">非阿司匹林抑制剂(如:氯吡格雷)</a-checkbox> + <a-checkbox value="3">华法林/口服抗凝药</a-checkbox> + <a-checkbox value="4">无</a-checkbox> + </a-checkbox-group> + </a-form-item> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import _ from 'lodash' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, recoverSubmit } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +export default { + name: 'task11', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + markName: 'bnsf', + title: '半年随访', + openKeys: [], + defaultSelectedKeys: [11], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + baselineFormStyle: { + // height: '444px', + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 7 }, + md: { span: 7 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 17 }, + md: { span: 17 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 4, offset: 7 } + }, + wrapperOffset: { + md: { span: 13 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + executeStatus: false, + spinning: false, + controlb3: false, + controlb4: false, + controlb41: false, + controlb44: false, + controlb411: false, + controlb412: false, + controlb4111: false, + controlb5: false, + controlb6: false, + controlb7: false, + controlb72: false, + controlb01: false, + controlb02: false, + controlb03: false, + controlb04: false, + controlb05: false, + controlb45: false, + controlb43: false, + bnsf: undefined, + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + .catch(error => { + console.log(error) + }) + this.getFormData() + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + getFormData() { + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + if (res.data && res.data.bnsf) + that.bnsf = that.dealAnswers(res.data.bnsf) + }) + .catch(error => { + console.log(error) + }) + }, + initValue(key, type = 'normal') { + if (!this.bnsf) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.bnsf[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.bnsf[key]) + } else if (type === 'array') { + return this.bnsf[key].split(',') + } else { + return this.bnsf[key] + '' + } + }, + dealAnswers(answer) { + console.log(answer) + if (answer && !_.isEmpty(answer)) { + var splitArr = [] + if (answer.b3 === 1) { + this.controlb3 = true + } + if (answer.b4 === 1) { + this.controlb4 = true + } + if (answer.b5 === 1) { + this.controlb5 = true + } + if (answer.b6 === 1) { + this.controlb6 = true + } + if (answer.b71 === 1) { + console.log(answer.b71) + this.controlb7 = true + } + if (answer.b7) { + splitArr = answer.b7.split(',') + if (splitArr.indexOf('4') > -1) { + this.controlb72 = true + } + } + if (answer.b41) { + splitArr = answer.b41.split(',') + if (splitArr.indexOf('4') > -1) { + this.controlb41 = true + } + } + if (answer.b43) { + splitArr = answer.b43.split(',') + if (splitArr.indexOf('7') > -1) { + this.controlb43 = true + } + } + if (answer.b) { + splitArr = answer.b.split(',') + if (splitArr.indexOf('1') > -1) { + this.controlb01 = true + } + if (splitArr.indexOf('2') > -1) { + this.controlb02 = true + } + if (splitArr.indexOf('3') > -1) { + this.controlb03 = true + } + if (splitArr.indexOf('4') > -1) { + this.controlb04 = true + } + if (splitArr.indexOf('5') > -1) { + this.controlb05 = true + } + } + if (answer.b44) { + splitArr = answer.b44.split(',') + if (splitArr.indexOf('3') > -1) { + this.controlb44 = true + } + } + if (answer.b45) { + splitArr = answer.b45.split(',') + if (splitArr.indexOf('3') > -1) { + this.controlb45 = true + } + } + if (answer.b411 === 1) { + this.controlb411 = true + } + if (answer.b4111) { + splitArr = answer.b4111.split(',') + if (splitArr.indexOf('2') > -1) { + this.controlb4111 = true + } + } + if (answer.b412) { + splitArr = answer.b412.split(',') + if (splitArr.indexOf('2') > -1) { + this.controlb412 = true + } + } + } + return answer + }, + changeSelect(e, t) { + this[t] = e.target.checked + }, + changeRadio(e, t) { + if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + changeRadios(e, t) { + e.forEach(element => { + if (element === '4') { + this[t] = true + } else { + this[t] = false + } + }); + }, + handleClick(e) { + this.maskId = e.key + if ((e.key >= 37 && e.key <= 42) || (e.key >= 45 && e.key <= 50)) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + this.maskId) + } else { + this.$router.replace('/list/task/' + this.patientBasisId + '/' + this.maskId) + } + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'b31': typeof re['b31'] !== 'undefined' ? re['b31'].join(',') : '', + 'b41': typeof re['b41'] !== 'undefined' ? re['b41'].join(',') : '', + 'b43': typeof re['b43'] !== 'undefined' ? re['b43'].join(',') : '', + 'b': typeof re['b'] !== 'undefined' ? re['b'].join(',') : '', + 'b44': typeof re['b44'] !== 'undefined' ? re['b44'].join(',') : '', + 'b45': typeof re['b45'] !== 'undefined' ? re['b45'].join(',') : '', + 'b46': typeof re['b46'] !== 'undefined' ? re['b46'].join(',') : '', + 'b48': typeof re['b48'] !== 'undefined' ? re['b48'].join(',') : '', + 'b49': typeof re['b49'] !== 'undefined' ? re['b49'].join(',') : '', + 'b410': typeof re['b410'] !== 'undefined' ? re['b410'].join(',') : '', + 'b4111': typeof re['b4111'] !== 'undefined' ? re['b4111'].join(',') : '', + 'b412': typeof re['b412'] !== 'undefined' ? re['b412'].join(',') : '', + 'b413': typeof re['b413'] !== 'undefined' ? re['b413'].join(',') : '', + 'b52': typeof re['b52'] !== 'undefined' ? re['b52'].join(',') : '', + 'b7': typeof re['b7'] !== 'undefined' ? re['b7'].join(',') : '', + 'b172': typeof re['b172'] !== 'undefined' ? re['b172'].join(',') : '' + } + console.log(re) + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.bnsf && this.bnsf.bnsfId) { + re.bnsfId = this.bnsf.bnsfId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + save() { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'b31': typeof re['b31'] !== 'undefined' ? re['b31'].join(',') : '', + 'b41': typeof re['b41'] !== 'undefined' ? re['b41'].join(',') : '', + 'b43': typeof re['b43'] !== 'undefined' ? re['b43'].join(',') : '', + 'b': typeof re['b'] !== 'undefined' ? re['b'].join(',') : '', + 'b44': typeof re['b44'] !== 'undefined' ? re['b44'].join(',') : '', + 'b45': typeof re['b45'] !== 'undefined' ? re['b45'].join(',') : '', + 'b46': typeof re['b46'] !== 'undefined' ? re['b46'].join(',') : '', + 'b48': typeof re['b48'] !== 'undefined' ? re['b48'].join(',') : '', + 'b49': typeof re['b49'] !== 'undefined' ? re['b49'].join(',') : '', + 'b410': typeof re['b410'] !== 'undefined' ? re['b410'].join(',') : '', + 'b4111': typeof re['b4111'] !== 'undefined' ? re['b4111'].join(',') : '', + 'b412': typeof re['b412'] !== 'undefined' ? re['b412'].join(',') : '', + 'b413': typeof re['b413'] !== 'undefined' ? re['b413'].join(',') : '', + 'b52': typeof re['b52'] !== 'undefined' ? re['b52'].join(',') : '', + 'b7': typeof re['b7'] !== 'undefined' ? re['b7'].join(',') : '', + 'b172': typeof re['b172'] !== 'undefined' ? re['b172'].join(',') : '' + } + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.bnsf && this.bnsf.bnsfId) { + re.bnsfId = this.bnsf.bnsfId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + withdraw(){ + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.bnsf.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + .treeSubTitle{ + font-size: 14px; + } + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + padding-top: 52px; + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .label-overflow .ant-form-item-label { + line-height: 20px; + position: relative; + top: 12px; + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +@media screen and (max-width: 1366px) { + .control-m-line.ant-checkbox-group { + top: 10px; + position: relative; + } +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/task/components/mask-14.vue b/src/views/task/components/mask-14.vue new file mode 100644 index 0000000000..6174e11f48 --- /dev/null +++ b/src/views/task/components/mask-14.vue @@ -0,0 +1,1573 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form" :layout="formLayout"> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="clearfix" style="position: relative; top: 20px;"> + <a-button class="btn fr" type="primary" @click="_importData">导入数据</a-button> + </div> + + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!</p> + <div class="title">1.基本病史</div> + <a-form-item label="(1) 采集标本类型" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['a1', {...selectRequired, initialValue: initValue('a1', 'array')}]"> + <a-checkbox value="1">全血</a-checkbox> + <a-checkbox value="2">血清</a-checkbox> + <a-checkbox value="3">未采</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="(2) 患者支扩确诊时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-month-picker placeholder="请选择" @change="changeDate" v-decorator="['a3', {...dateRequire, initialValue: initValue('a3', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-month-picker> + </a-form-item> + <a-form-item label="(3) 访视类型" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b23', {...selectRequired, initialValue: initValue('b23')}]"> + <a-radio value="1">急性加重期</a-radio> + <a-radio value="2">稳定期</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(4) 主要临床症状(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['a4', {...selectRequired, initialValue: initValue('a4', 'array')}]" class="control-m-line"> + <a-checkbox value="1" :checked="controla44" @change="changeSelect($event, 'controla44')">咳嗽</a-checkbox> + <a-checkbox value="2" :checked="controla41" @change="changeSelect($event, 'controla41')">咳痰</a-checkbox> + <a-checkbox value="7">活动后气促</a-checkbox> + <a-checkbox value="3" :checked="controla43" @change="changeSelect($event, 'controla43')">痰血</a-checkbox> + <a-checkbox value="4" :checked="controla42" @change="changeSelect($event, 'controla42')">咯血</a-checkbox> + <a-checkbox value="10" :checked="controla45" @change="changeSelect($event, 'controla45')">疲劳</a-checkbox> + <a-checkbox value="5">胸闷</a-checkbox> + <a-checkbox value="6">喘息</a-checkbox> + <a-checkbox value="8">胸痛</a-checkbox> + <a-checkbox value="9">发热</a-checkbox> + <a-checkbox value="11">纳差</a-checkbox> + <a-checkbox value="12">消瘦</a-checkbox> + <a-checkbox value="14">中耳炎</a-checkbox> + <a-checkbox value="15">听力丧失</a-checkbox> + <a-checkbox value="13" :checked="controla413" @change="changeSelect($event, 'controla413')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="咳嗽程度" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla44"> + <a-radio-group v-decorator="['a46', {...selectRequired, initialValue: initValue('a46')}]"> + <a-radio value="1">轻度咳嗽</a-radio> + <a-radio value="2">中度咳嗽</a-radio> + <a-radio value="3">重度咳嗽</a-radio> + <a-radio value="4">极重度咳嗽</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="痰量" v-if="controla41" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="ml/日" style="width: 240px;" v-decorator="['a41', {...inputRequired, initialValue: initValue('a41')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="痰颜色评分(单选)" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla41"> + <a-popover> + <template slot="content"> + <img src="../../../assets/murry.png" style="height: 260px;" /> + </template> + <a-icon type="exclamation-circle" style="position: relative;left: -20px;color: #0399ec;cursor: pointer;" /> + </a-popover> + <a-radio-group v-decorator="['a43', {...selectRequired, initialValue: initValue('a43')}]"> + <a-radio value="1">白色或清亮</a-radio> + <a-radio value="2">黄白色</a-radio> + <a-radio value="3">黄绿色</a-radio> + <a-radio value="4">浅至深褐色</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="痰血量" v-if="controla43" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="ml/日" style="width: 240px;" v-decorator="['todo', {...inputRequired, initialValue: initValue('todo')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="咯血量(最多)" v-if="controla42" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="ml/日" style="width: 240px;" v-decorator="['a42', {...inputRequired, initialValue: initValue('a42')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="疲劳程度" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla45"> + <a-radio-group v-decorator="['a47', {...selectRequired, initialValue: initValue('a47')}]"> + <a-radio value="1">我感到有点疲劳</a-radio> + <a-radio value="2">我感到疲劳但仍然可以做我想做的事情</a-radio> + <a-radio value="3">我感到疲劳而不能做一些我想做的事情</a-radio> + <a-radio value="4">我感到非常疲劳而无法进行日常活动</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他症状" v-if="controla413" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['a45', {...inputRequired, initialValue: initValue('a45')}]" autocomplete="off"></a-input> + </a-form-item> + <div class="title">2.既往病史</div> + <a-form-item label="(1) 过去两年的住院急性加重次数" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="次" style="width: 240px;" v-decorator="['b2', {...inputRequired, initialValue: initValue('b2')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(2) 过去一年的住院急性加重次数" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="次" style="width: 240px;" v-decorator="['b3', {...inputRequired, initialValue: initValue('b3')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 过去一年的急性加重次数" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="次" style="width: 240px;" v-decorator="['b1', {...inputRequired, initialValue: initValue('b1')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(4) 最后一次因急性加重住院的时间" class="tipTxt" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" :disabledDate="disabledDate" v-decorator="['b4', { initialValue: initValue('b4', 'time')}]"></a-date-picker> + </a-form-item> + <a-form-item label="(5) 有无病因相关的病史及事件(可多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-checkbox-group v-decorator="['b5', {...selectRequired, initialValue: initValue('b5', 'array')}]"> + <a-checkbox value="1" :disabled="detect('b5', '7') || initB5">麻疹</a-checkbox> + <a-checkbox value="2" :disabled="detect('b5', '7') || initB5">百日咳</a-checkbox> + <a-checkbox value="3" :disabled="detect('b5', '7') || initB5">肺结核</a-checkbox> + <a-checkbox value="4" :disabled="detect('b5', '7') || initB5">NTM</a-checkbox> + <a-checkbox value="5" :disabled="detect('b5', '7') || initB5">溺水</a-checkbox> + <a-checkbox value="8" :disabled="detect('b5', '7') || initB5">肺炎</a-checkbox> + <a-checkbox value="6" :disabled="detect('b5', '7') || initB5" :checked="controlb51" @change="changeSelect($event, 'controlb51')">其他</a-checkbox> + <a-checkbox value="7" @change="handleNone($event, 'b5', '7', ['controlb51'])">无</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="疾病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb51"> + <a-input style="width: 240px;" v-decorator="['b51', {...inputRequired, initialValue: initValue('b51')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(6) 目前合并呼吸系统相关疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b6', {...selectRequired, initialValue: initValue('b6', 'array')}]"> + <a-checkbox value="1" :disabled="detect('b6', '6') || initB6" :checked="controlb61" @change="changeSelect($event, 'controlb61')">鼻炎</a-checkbox> + <a-checkbox value="2" :disabled="detect('b6', '6') || initB6" :checked="controlb62" @change="changeSelect($event, 'controlb62')">鼻窦炎</a-checkbox> + <a-checkbox value="3" :disabled="detect('b6', '6') || initB6" :checked="controlb63" @change="changeSelect($event, 'controlb63')">鼻息肉</a-checkbox> + <a-checkbox value="4" :disabled="detect('b6', '6') || initB6" :checked="controlb64" @change="changeSelect($event, 'controlb64')">哮喘</a-checkbox> + <a-checkbox value="5" :disabled="detect('b6', '6') || initB6" :checked="controlb65" @change="changeSelect($event, 'controlb65')">慢阻肺</a-checkbox> + <a-checkbox value="8" :disabled="detect('b6', '6') || initB6" :checked="controlb68" @change="changeSelect($event, 'controlb68')">中耳炎</a-checkbox> + <a-checkbox value="6" @change="handleNone($event, 'b6', '6', ['controlb61', 'controlb62', 'controlb63', 'controlb64', 'controlb65', 'controlb68'])">无</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="鼻炎具体诊断日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb61"> + <a-month-picker placeholder="请选择" style="width: 240px;" v-decorator="['b61', { initialValue: initValue('b61', 'time')}]" :disabledDate="disabledDate"></a-month-picker> + </a-form-item> + <a-form-item class="no-border" label="鼻窦炎具体诊断日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb62"> + <a-month-picker placeholder="请选择" style="width: 240px;" v-decorator="['b62', { initialValue: initValue('b62', 'time')}]" :disabledDate="disabledDate"></a-month-picker> + </a-form-item> + <a-form-item class="no-border" label="鼻息肉具体诊断日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb63"> + <a-month-picker placeholder="请选择" style="width: 240px;" v-decorator="['b63', { initialValue: initValue('b63', 'time')}]" :disabledDate="disabledDate"></a-month-picker> + </a-form-item> + <a-form-item class="no-border" label="哮喘具体诊断日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb64"> + <a-month-picker placeholder="请选择" style="width: 240px;" v-decorator="['b64', {...dateRequire, initialValue: initValue('b64', 'time')}]" :disabledDate="disabledDate"></a-month-picker> + </a-form-item> + <a-form-item class="no-border" label="慢阻肺具体诊断日期" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb65"> + <a-month-picker placeholder="请选择" style="width: 240px;" v-decorator="['b65', {...dateRequire, initialValue: initValue('b65', 'time')}]" :disabledDate="disabledDate"></a-month-picker> + </a-form-item> + <a-form-item label="(7) 有无其他疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b70', {...require2, initialValue: initValue('b70')}]" @change="changeRadio($event, 'controlb70')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb70"> + <a-form-item label="1.心脑血管系统" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b7', {...require2, initialValue: initValue('b7')}]" @change="changeRadio($event, 'controlb7')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="心脑血管系统疾病类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb7"> + <a-checkbox-group v-decorator="['b71', {...selectRequired, initialValue: initValue('b71', 'array')}]" class="control-m-line"> + <a-checkbox value="1">心梗</a-checkbox> + <a-checkbox value="2">心绞痛</a-checkbox> + <a-checkbox value="3">冠心病</a-checkbox> + <a-checkbox value="4">慢性心衰</a-checkbox> + <a-checkbox value="5">心律失常</a-checkbox> + <a-checkbox value="6">心脏瓣膜病</a-checkbox> + <a-checkbox value="7">肺动脉高压</a-checkbox> + <a-checkbox value="8">高血压病</a-checkbox> + <a-checkbox value="9">中风或短暂性缺血发作</a-checkbox> + <a-checkbox value="10">外周血管疾病</a-checkbox> + <a-checkbox value="11" :checked="controlb72" @change="changeSelect($event, 'controlb72')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="其他心脑血管疾病" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb7 && controlb72"> + <a-input style="width: 240px;" v-decorator="['b72', {...inputRequired, initialValue: initValue('b72')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="2.消化系统疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b8', {...require2, initialValue: initValue('b8')}]" @change="changeRadio($event, 'controlb8')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="消化系统疾病类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb8"> + <a-checkbox-group v-decorator="['b81', {...selectRequired, initialValue: initValue('b81', 'array')}]"> + <a-checkbox value="1">炎症性肠病</a-checkbox> + <a-checkbox value="2">胃食管反流</a-checkbox> + <a-checkbox value="3">消化道溃疡</a-checkbox> + <a-checkbox value="4">慢性肝病</a-checkbox> + <a-checkbox value="5" :checked="controlb82" @change="changeSelect($event, 'controlb82')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="其他消化系统疾病" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb8 && controlb82"> + <a-input style="width: 240px;" v-decorator="['b82', {...inputRequired, initialValue: initValue('b82')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="3.内分泌系统" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b9', {...require2, initialValue: initValue('b9')}]" @change="changeRadio($event, 'controlb9')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="内分泌系统疾病类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb9"> + <a-checkbox-group v-decorator="['b91', {...selectRequired, initialValue: initValue('b91', 'array')}]"> + <a-checkbox value="1">糖尿病</a-checkbox> + <a-checkbox value="2">骨质疏松</a-checkbox> + <a-checkbox value="3">高脂血症</a-checkbox> + <a-checkbox value="4">甲亢</a-checkbox> + <a-checkbox value="5">甲减</a-checkbox> + <a-checkbox value="6">高尿酸血症</a-checkbox> + <a-checkbox value="7" :checked="controlb917" @change="changeSelect($event, 'controlb917')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他内分泌系统疾病" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb9 && controlb917"> + <a-input style="width: 240px;" v-decorator="['b92', {...inputRequired, initialValue: initValue('b92')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="4.血液系统疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b10', {...require2, initialValue: initValue('b10')}]" @change="changeRadio($event, 'controlb10')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="血液系统疾病类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb10"> + <a-checkbox-group v-decorator="['b101', {...selectRequired, initialValue: initValue('b101', 'array')}]"> + <a-checkbox value="1">贫血</a-checkbox> + <a-checkbox value="2">白血病</a-checkbox> + <a-checkbox value="3">淋巴瘤</a-checkbox> + <a-checkbox value="4" :checked="controlb1014" @change="changeSelect($event, 'controlb1014')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他血液系统疾病类型" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb1014"> + <a-input style="width: 240px;" v-decorator="['b102', {...inputRequired, initialValue: initValue('b102')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="5.泌尿系统疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b11', {...require2, initialValue: initValue('b11')}]" @change="changeRadio($event, 'controlb11')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="泌尿系统疾病类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb11"> + <a-checkbox-group v-decorator="['b111', {...selectRequired, initialValue: initValue('b111', 'array')}]"> + <a-checkbox value="1">慢性肾病</a-checkbox> + <a-checkbox value="2">慢性尿路感染</a-checkbox> + <a-checkbox value="3" :checked="controlb1113" @change="changeSelect($event, 'controlb1113')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="其他泌尿系统疾病类型:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb11 && controlb1113"> + <a-input style="width: 240px;" v-decorator="['b112', {...inputRequired, initialValue: initValue('b112')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="6.风湿系统疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b12', {...require2, initialValue: initValue('b12')}]" @change="changeRadio($event, 'controlb12')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="风湿系统疾病类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb12"> + <a-checkbox-group v-decorator="['b121', {...selectRequired, initialValue: initValue('b121', 'array')}]" class="control-m-line"> + <a-checkbox value="1">系统性红斑狼疮</a-checkbox> + <a-checkbox value="2">类风湿性关节炎</a-checkbox> + <a-checkbox value="3">干燥综合征</a-checkbox> + <a-checkbox value="4">系统性硬化</a-checkbox> + <a-checkbox value="5">皮肌炎</a-checkbox> + <a-checkbox value="6" :checked="controlb122" @change="changeSelect($event, 'controlb122')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="其他风湿系统疾病类型:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb12 && controlb122"> + <a-input style="width: 240px;" v-decorator="['b122', {...inputRequired, initialValue: initValue('b122')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="7.是否有HIV" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b13', {...require1, initialValue: initValue('b13')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="8.是否有恶性肿瘤" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b14', {...require1, initialValue: initValue('b14')}]" @change="changeRadio($event, 'controlb14')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb14"> + <a-form-item class="border-dotted" label="当前正患病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b141', {...require1, initialValue: initValue('b141')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="血液性" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b142', {...require1, initialValue: initValue('b142')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="肿瘤部位(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b143', {...selectRequired, initialValue: initValue('b143', 'array')}]" class="control-m-line"> + <a-checkbox value="1">头颈部</a-checkbox> + <a-checkbox value="2">肺</a-checkbox> + <a-checkbox value="3">乳腺</a-checkbox> + <a-checkbox value="4">胃肠道</a-checkbox> + <!-- <a-checkbox value="5">小肠</a-checkbox> + <a-checkbox value="6">结肠</a-checkbox> --> + <a-checkbox value="5">肝</a-checkbox> + <a-checkbox value="6">胰腺</a-checkbox> + <a-checkbox value="7">肾</a-checkbox> + <a-checkbox value="8">前列腺</a-checkbox> + <a-checkbox value="9">膀胱</a-checkbox> + <a-checkbox value="10">子宫及附件</a-checkbox> + <a-checkbox value="11">骨</a-checkbox> + <a-checkbox value="12">皮肤</a-checkbox> + <a-checkbox value="13">脑</a-checkbox> + <a-checkbox value="14" :checked="controlb144" @change="changeSelect($event, 'controlb144')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + </div> + <a-form-item class="no-border" label="其他肿瘤部位:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb14 && controlb144"> + <a-input style="width: 240px;" v-decorator="['b144', {...inputRequired, initialValue: initValue('b144')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="9.免疫缺陷" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b15', {...require2, initialValue: '-1'}]" @change="changeRadio($event, 'controlb15')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb15"> + <a-form-item class="border-dotted" label="B细胞缺陷类疾病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b151', {...inputRequired, initialValue: initValue('b151')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item class="border-dotted" label="T细胞及联合免疫缺陷病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b152', {...inputRequired, initialValue: initValue('b152')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item class="border-dotted" label="继发性免疫缺陷(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b153', {...selectRequired, initialValue: initValue('b153', 'array')}]" class="control-m-line"> + <a-checkbox value="1">慢性淋巴性白血病</a-checkbox> + <a-checkbox value="2">多发性骨髓瘤</a-checkbox> + <a-checkbox value="3">血液肿瘤相关免疫缺陷</a-checkbox> + <a-checkbox value="4">系统化疗后免疫缺陷</a-checkbox> + <a-checkbox value="5">免疫抑制药物后免疫缺陷</a-checkbox> + <a-checkbox value="6">干细胞移植</a-checkbox> + <a-checkbox value="7">实体器官移植</a-checkbox> + <a-checkbox value="8" :checked="controlb1538" @change="changeSelect($event, 'controlb1538')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="其他继发性免疫缺陷:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb15 && controlb1538"> + <a-input style="width: 240px;" v-decorator="['b1538', {...inputRequired, initialValue: initValue('b1538')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item class="border-dotted" label="巨噬细胞缺陷疾病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b154', {...inputRequired, initialValue: initValue('b154')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item class="border-dotted" label="补体缺陷疾病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b155', {...inputRequired, initialValue: initValue('b155')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="10.其他疾病" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b161', {...selectRequired, initialValue: initValue('b161', 'array')}]"> + <a-checkbox value="1" @change="handleNone($event, 'b161', '1', ['controlb1615'])">无</a-checkbox> + <a-checkbox value="2" :disabled="detect('b161', '1')">抑郁</a-checkbox> + <a-checkbox value="3" :disabled="detect('b161', '1')">焦虑</a-checkbox> + <a-checkbox value="4" :disabled="detect('b161', '1')">认知功能障碍</a-checkbox> + <a-checkbox value="5" :disabled="detect('b161', '1')" :checked="controlb1615" @change="changeSelect($event, 'controlb1615')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="no-border" label="其他疾病类型:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb1615"> + <a-input style="width: 240px;" v-decorator="['b1611', {...inputRequired, initialValue: initValue('b1611')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(8) 其他系统相关治疗(非呼吸系统治疗)" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-checkbox-group v-decorator="['b17', {...selectRequired, initialValue: initValue('b17', 'array')}]" class="center"> + <a-checkbox value="1" :disabled="detect('b17', '10') || initB17">他汀类药物</a-checkbox> + <a-checkbox value="2" :disabled="detect('b17', '10') || initB17">二甲双胍</a-checkbox> + <a-checkbox value="3" :disabled="detect('b17', '10') || initB17">血管紧张素转换酶抑制剂</a-checkbox> + <a-checkbox value="4" :disabled="detect('b17', '10') || initB17">血管紧张素受体拮抗剂</a-checkbox> + <a-checkbox value="5" :disabled="detect('b17', '10') || initB17">阿司匹林</a-checkbox> + <a-checkbox value="6" :disabled="detect('b17', '10') || initB17">非阿司匹林血小板抑制剂,如氯吡格雷</a-checkbox> + <a-checkbox value="7" :disabled="detect('b17', '10') || initB17">华法林 /口服抗凝剂</a-checkbox> + <a-checkbox value="8" :disabled="detect('b17', '10') || initB17">β-受体阻滞剂</a-checkbox> + <a-checkbox value="9" :disabled="detect('b17', '10') || initB17">质子泵抑制剂</a-checkbox> + <a-checkbox value="10" @change="handleNone($event, 'b17', '10')">无</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="(9) 家族史" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + </a-form-item> + <a-form-item label="是否近亲结婚史" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b181', {...require1, initialValue: initValue('b181')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="既往直系亲属有无支扩" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b182', {...require1, initialValue: initValue('b182')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="遗传性疾病病史" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b183', {...require1, initialValue: initValue('b183')}]" @change="changeRadio($event, 'controlb1831')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="具体疾病名称" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlb1831"> + <a-input style="width: 240px;" v-decorator="['b1831', {...inputRequired, initialValue: initValue('b1831')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(10) 吸烟史(单选)" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b19', {...selectRequired, initialValue: initValue('b19')}]" @change="changeRadio($event, 'controlb191')"> + <a-radio value="1">既往吸烟</a-radio> + <a-radio value="2">已戒烟</a-radio> + <a-radio value="3">无吸烟</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="吸烟指数" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlb191"> + <a-input addonAfter="包*年" style="width: 240px;" v-decorator="['b191', {...inputRequired, initialValue: initValue('b191')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(11) 职业粉尘接触及生物燃料接触史" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b22', {...require2, initialValue: initValue('b22')}]"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(12) 胸部手术病史" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b20', {...require2, initialValue: initValue('b20')}]" @change="changeRadio($event, 'controlb20')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="手术类型(多选)" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlb20"> + <a-checkbox-group v-decorator="['b201', {...selectRequired, initialValue: initValue('b201', 'array')}]"> + <a-checkbox value="1">肺叶切除术</a-checkbox> + <a-checkbox value="2">胸膜剥脱术</a-checkbox> + <a-checkbox value="3">肺减容术</a-checkbox> + <a-checkbox value="4">冠脉搭桥术</a-checkbox> + <a-checkbox value="5" :checked="controlb202" @change="changeSelect($event, 'controlb202')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他手术名称:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset" class="border-dotted" v-if="controlb20 && controlb202"> + <a-input style="width: 240px;" v-decorator="['b202', {initialValue: initValue('b202')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(13) 支气管动脉栓塞病史" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b21', {...require2, initialValue: initValue('b21')}]" @change="changeRadio($event, 'controlb21')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb21"> + <a-form-item label="若行支气管动脉栓塞术时间" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b211', {...dateRequire, initialValue: initValue('b211', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="支气管动脉栓塞术部位" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-input style="width: 240px;" v-decorator="['b212', {...inputRequired, initialValue: initValue('b212')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(14) 是否CF筛查" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['c1', {...require1, initialValue: initValue('c1')}]" @change="changeRadio($event, 'controlc1')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlc1"> + <a-form-item label="CF筛查是否正常 " :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['c11', {...selectRequired, initialValue: initValue('c11')}]" @change="changeRadio($event, 'controlc11')"> + <a-radio value="1">正常</a-radio> + <a-radio value="-1">异常</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="no-border" label="异常数值" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlc1 && controlc11"> + <a-input style="width: 240px;" v-decorator="['c111', {...inputRequired, initialValue: initValue('c111')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import _ from 'lodash' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, recoverSubmit, exportFormData } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +export default { + name: 'task14', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + formLayout: 'horizontal', + markName: 'zkbszl', + title: '年访视', + openKeys: [], + defaultSelectedKeys: [14], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + clientHeight: '', + contentHeight: '', + baselineFormStyle: { + // "height": "700px", + "padding-top": "52px", + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 6, offset: 6 } + }, + wrapperOffset: { + md: { span: 12 } + }, + labelColOffset2: { + md: { span: 3, offset: 6 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + zkbszl: undefined, + controla44: false, + controla45: false, + controla41: false, + controla42: false, + controla43: false, + controlb61: false, + controlb51: false, + controlb62: false, + controlb63: false, + controlb64: false, + controlb65: false, + controlb66: false, + controlb7: false, + controlb68: false, + controlb72: false, + controlb8: false, + controlb9: false, + controlb917: false, + controlb10: false, + controlb1014: false, + controlb11: false, + controlb1113: false, + controlb12: false, + controlb14: false, + controlb144: false, + controlb15: false, + controlb1538: false, + controlb1615: false, + controlb1831: false, + controlb191: false, + controlb20: false, + controlb202: false, + controlb21: false, + controla413: false, + controlb82: false, + controlb122: false, + spinning: false, + executeStatus: false, + b2: undefined, + b3: undefined, + controlb70: false, + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined, + a3Init: undefined, + controlc1: false, + controlc11: false, + initB5: false, + initB6: false, + initB17: false + } + }, + created() { + this.clientHeight = `${document.documentElement.clientHeight}` + window.onresize = function temp() { + this.clientHeight = `${document.documentElement.clientHeight}`; + }; + this.contentHeight = (this.clientHeight - 187); + console.log(this.contentHeight); + + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + that.a3Init = res.data.a3 + }) + .catch(error => { + console.log(error) + }) + this.getFormData() + }, + mounted() { + this.form.setFieldsValue({ b70: '-1' }) + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + + getFormData() { + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + if (res.data && res.data.zkbszl) { + that.zkbszl = that.dealAnswers(res.data.zkbszl) + } + }) + .catch(error => { + console.log(error) + }) + }, + initValue(key, type = 'normal') { + if(!this.zkbszl && type === 'time' && key === 'a3' && this.a3Init) return moment(this.a3Init) + if (!this.zkbszl) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.zkbszl[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.zkbszl[key]) + } else if (type === 'array') { + return this.zkbszl[key].split(',') + } else { + return this.zkbszl[key] + '' + } + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + detect(d, v) { + if(Array.isArray(this.form.getFieldValue(d)) && this.form.getFieldValue(d).indexOf(v) > -1) { + return true + } else { + return false + } + }, + handleNone(e, d, v, arr) { + if(e.target.checked){ + let data = {} + data[d] = [v] + this.$nextTick(() => { + this.form.setFieldsValue(data) + arr.forEach((t) => { + this[t] = false + }) + }) + } else { + if(d === 'b5') { + this.initB5 = false + } + if(d === 'b6') { + this.initB6 = false + } + if(d === 'b17') { + this.initB17 = false + } + } + }, + changeDate(date) { + let timeDiff = Math.abs(new Date(date._d) - new Date(this.getBirthdayByIdNO(this.patient.card))); + // 将毫秒数转换为年数 + let yearDiff = timeDiff / (1000 * 3600 * 24 * 365.25); // 考虑闰年 + // 判断年数是否大于 10 年 + if (yearDiff < 10) { + this.$message.warning('是否为儿童确诊支扩'); + } + }, + dealAnswers(answer) { + var that = this + if (answer && !_.isEmpty(answer)) { + var splitArr = [] + if (answer.a4) { + splitArr = answer.a4.split(',') + if (splitArr.indexOf('1') > -1) { + that.controla44 = true + } + if (splitArr.indexOf('2') > -1) { + that.controla41 = true + } + if (splitArr.indexOf('3') > -1) { + that.controla43 = true + } + if (splitArr.indexOf('4') > -1) { + that.controla42 = true + } + if (splitArr.indexOf('13') > -1) { + that.controla413 = true + } + if (splitArr.indexOf('10') > -1) { + that.controla45 = true + } + } + if (answer.b5) { + splitArr = answer.b5.split(',') + if (splitArr.indexOf('6') > -1) { + that.controlb51 = true + } + } + if (answer.b6) { + splitArr = answer.b6.split(',') + if (splitArr.indexOf('1') > -1) { + that.controlb61 = true + } + if (splitArr.indexOf('2') > -1) { + that.controlb62 = true + } + if (splitArr.indexOf('3') > -1) { + that.controlb63 = true + } + if (splitArr.indexOf('4') > -1) { + that.controlb64 = true + } + if (splitArr.indexOf('5') > -1) { + that.controlb65 = true + } + if (splitArr.indexOf('6') > -1) { + that.controlb66 = true + } + if (splitArr.indexOf('8') > -1) { + that.controlb68 = true + } + } + + if (answer.b70 === 1) { + that.controlb70 = true + } + + if (answer.b7 === 1) { + that.controlb7 = true + } + if (answer.b71) { + splitArr = answer.b71.split(',') + if (splitArr.indexOf('10') > -1) { + that.controlb72 = true + } + } + if (answer.b8 === 1) { + that.controlb8 = true + } + if (answer.b81) { + splitArr = answer.b81.split(',') + if (splitArr.indexOf('1') > -1) { + that.controlb82 = true + } + } + if (answer.b9 === 1) { + that.controlb9 = true + } + if (answer.b91) { + splitArr = answer.b91.split(',') + if (splitArr.indexOf('7') > -1) { + that.controlb917 = true + } + } + if (answer.b10 === 1) { + that.controlb10 = true + } + if (answer.b11 === 1) { + that.controlb11 = true + } + if (answer.b12 && answer.b12 === '1') { + that.controlb12 = true + } + if (answer.b14 && answer.b14 === '1') { + that.controlb14 = true + } + if (answer.b143) { + splitArr = answer.b143.split(',') + if (splitArr.indexOf('16') > -1) { + that.controlb144 = true + } + } + if (answer.b15 && answer.b15 === 1) { + that.controlb15 = true + } + if (answer.b153) { + splitArr = answer.b153.split(',') + if (splitArr.indexOf('8') > -1) { + that.controlb1538 = true + } + } + if (answer.b161) { + splitArr = answer.b161.split(',') + if (splitArr.indexOf('5') > -1) { + that.controlb1615 = true + } + } + if (answer.b20 && answer.b20 === 1) { + that.controlb20 = true + } + if (answer.b21 && answer.b21 === 1) { + that.controlb21 = true + } + if (answer.b101) { + splitArr = answer.b101.split(',') + if (splitArr.indexOf('4') > -1) { + that.controlb1014 = true + } + } + if (answer.b111) { + splitArr = answer.b111.split(',') + if (splitArr.indexOf('3') > -1) { + that.controlb1113 = true + } + } + if (answer.b121) { + splitArr = answer.b121.split(',') + if (splitArr.indexOf('6') > -1) { + that.controlb122 = true + } + } + if (answer.b19 && (answer.b19 === 1 || answer.b19 === 2)) { + that.controlb191 = true + } + if (answer.b183 && answer.b183 === 1) { + that.controlb1831 = true + } + if (answer.b201) { + splitArr = answer.b201.split(',') + if (splitArr.indexOf('6') > -1) { + that.controlb202 = true + } + } + if(answer.c1 === 1) { + that.controlc1 = true + } + if(answer.c11 === -1) { + that.controlc11 = true + } + } + return answer + }, + changeSelect(e, t) { + this[t] = e.target.checked + }, + changeRadio(e, t) { + let that = this + if (t === 'controlb70' && e.target.value === '1') { + this.controlb7 = false + this.controlb72 = false + this.controlb8 = false + this.controlb82 = false + this.controlb9 = false + this.controlb917 = false + this.controlb10 = false + this.controlb1014 = false + this.controlb11 = false + this.controlb1113 = false + this.controlb12 = false + this.controlb122 = false + this.controlb14 = false + this.controlb144 = false + this.controlb15 = false + this.controlb1538 = false + this.controlb1615 = false + setTimeout(function () { + that.form.setFieldsValue({ + b7: '-1', + b8: '-1', + b9: '-1', + b10: '-1', + b11: '-1', + b12: '-1', + b13: '-1', + b14: '-1', + b15: '-1', + b161: ['1'], + }) + }) + } + if (t === 'controlb191') { + if (e.target.value === '1' || e.target.value === '2') { + this[t] = true + } else { + this[t] = false + } + } else if (t === 'controlc11'){ + if (e.target.value === '-1') { + this[t] = true + } else { + this[t] = false + } + } else if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + if ((e.key >= 37 && e.key <= 42) || (e.key >= 45 && e.key <= 50)) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + e.key) + } else { + this.$router.replace('/list/task/' + this.patientBasisId + '/' + e.key) + } + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'a1': typeof re['a1'] !== 'undefined' ? re['a1'].join(',') : '', + 'a3': typeof re['a3'] !== 'undefined' ? re['a3'].format('YYYY-MM-DD') : '', + 'a4': typeof re['a4'] !== 'undefined' ? re['a4'].join(',') : '', + 'b4': typeof re['b4'] !== 'undefined' ? re['b4'].format('YYYY-MM-DD') : '', + 'b5': typeof re['b5'] !== 'undefined' ? re['b5'].join(',') : '', + 'b6': typeof re['b6'] !== 'undefined' ? re['b6'].join(',') : '', + 'b17': typeof re['b17'] !== 'undefined' ? re['b17'].join(',') : '', + 'b61': typeof re['b61'] !== 'undefined' ? re['b61'].format('YYYY-MM-DD') : '', + 'b62': typeof re['b62'] !== 'undefined' ? re['b62'].format('YYYY-MM-DD') : '', + 'b63': typeof re['b63'] !== 'undefined' ? re['b63'].format('YYYY-MM-DD') : '', + 'b64': typeof re['b64'] !== 'undefined' ? re['b64'].format('YYYY-MM-DD') : '', + 'b65': typeof re['b65'] !== 'undefined' ? re['b65'].format('YYYY-MM-DD') : '', + 'b66': typeof re['b66'] !== 'undefined' ? re['b66'].format('YYYY-MM-DD') : '', + 'b71': typeof re['b71'] !== 'undefined' ? re['b71'].join(',') : '', + 'b81': typeof re['b81'] !== 'undefined' ? re['b81'].join(',') : '', + 'b91': typeof re['b91'] !== 'undefined' ? re['b91'].join(',') : '', + 'b101': typeof re['b101'] !== 'undefined' ? re['b101'].join(',') : '', + 'b111': typeof re['b111'] !== 'undefined' ? re['b111'].join(',') : '', + 'b121': typeof re['b121'] !== 'undefined' ? re['b121'].join(',') : '', + 'b143': typeof re['b143'] !== 'undefined' ? re['b143'].join(',') : '', + 'b153': typeof re['b153'] !== 'undefined' ? re['b153'].join(',') : '', + 'b161': typeof re['b161'] !== 'undefined' ? re['b161'].join(',') : '', + 'b201': typeof re['b201'] !== 'undefined' ? re['b201'].join(',') : '', + 'b211': typeof re['b211'] !== 'undefined' ? re['b211'].format('YYYY-MM-DD') : '' + } + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.zkbszl && this.zkbszl.zkbszlId) { + re.zkbszlId = this.zkbszl.zkbszlId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + } else { + this.spinning = false + } + }) + }, + save() { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'a1': typeof re['a1'] !== 'undefined' ? re['a1'].join(',') : '', + 'a3': typeof re['a3'] !== 'undefined' ? re['a3'].format('YYYY-MM-DD') : '', + 'a4': typeof re['a4'] !== 'undefined' ? re['a4'].join(',') : '', + 'b4': typeof re['b4'] !== 'undefined' ? re['b4'].format('YYYY-MM-DD') : '', + 'b5': typeof re['b5'] !== 'undefined' ? re['b5'].join(',') : '', + 'b6': typeof re['b6'] !== 'undefined' ? re['b6'].join(',') : '', + 'b17': typeof re['b17'] !== 'undefined' ? re['b17'].join(',') : '', + 'b61': typeof re['b61'] !== 'undefined' ? re['b61'].format('YYYY-MM-DD') : '', + 'b62': typeof re['b62'] !== 'undefined' ? re['b62'].format('YYYY-MM-DD') : '', + 'b63': typeof re['b63'] !== 'undefined' ? re['b63'].format('YYYY-MM-DD') : '', + 'b64': typeof re['b64'] !== 'undefined' ? re['b64'].format('YYYY-MM-DD') : '', + 'b65': typeof re['b65'] !== 'undefined' ? re['b65'].format('YYYY-MM-DD') : '', + 'b66': typeof re['b66'] !== 'undefined' ? re['b66'].format('YYYY-MM-DD') : '', + 'b71': typeof re['b71'] !== 'undefined' ? re['b71'].join(',') : '', + 'b81': typeof re['b81'] !== 'undefined' ? re['b81'].join(',') : '', + 'b91': typeof re['b91'] !== 'undefined' ? re['b91'].join(',') : '', + 'b101': typeof re['b101'] !== 'undefined' ? re['b101'].join(',') : '', + 'b111': typeof re['b111'] !== 'undefined' ? re['b111'].join(',') : '', + 'b121': typeof re['b121'] !== 'undefined' ? re['b121'].join(',') : '', + 'b143': typeof re['b143'] !== 'undefined' ? re['b143'].join(',') : '', + 'b153': typeof re['b153'] !== 'undefined' ? re['b153'].join(',') : '', + 'b161': typeof re['b161'] !== 'undefined' ? re['b161'].join(',') : '', + 'b201': typeof re['b201'] !== 'undefined' ? re['b201'].join(',') : '', + 'b211': typeof re['b211'] !== 'undefined' ? re['b211'].format('YYYY-MM-DD') : '' + } + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.zkbszl && this.zkbszl.zkbszlId) { + re.zkbszlId = this.zkbszl.zkbszlId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + withdraw(){ + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.zkbszl.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + _importData() { + var that = this + this.$confirm({ + title: '是否确定导入数据?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('basisMarkId', that.maskId) + params.append('patientBasisId', that.patientBasisId) + exportFormData(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + that.zkbszl = _.extend(that.zkbszl || {}, that.dealAnswers(res.data.data.zkbszl)) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px; + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + .treeSubTitle{ + font-size: 14px; + } + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px 60px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + + .center.ant-checkbox-group{ + position: relative; + top: 10px; + } + } + + + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .label-overflow .ant-form-item-label { + line-height: 20px; + position: relative; + top: 18px; + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +@media screen and (max-width: 1366px) { + .control-m-line.ant-checkbox-group { + top: 10px; + position: relative; + } +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +.tipTxt::before { + +} +</style> \ No newline at end of file diff --git a/src/views/task/components/mask-15.vue b/src/views/task/components/mask-15.vue new file mode 100644 index 0000000000..440a5ca8ca --- /dev/null +++ b/src/views/task/components/mask-15.vue @@ -0,0 +1,813 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <!-- <a-button class="btn fr" v-if="patientBasis.type === 3" @click="import">导入</a-button> --> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!</p> + <div class="title">1.体格检查</div> + <a-form-item label="(1) SpO2:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['a5', {...inputRequired, initialValue: initValue('a5')}]" style="width: 240px;" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(2) 身高:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['a6', {...inputRequired, initialValue: initValue('a6')}]" style="width: 240px;" addonAfter="cm" @change="changeHeight($event)" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 体重:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['a7', {...inputRequired, initialValue: initValue('a7')}]" style="width: 240px;" addonAfter="kg" @change="changeWeight($event)" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(4) BMI(自动演算出):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['a8', {initialValue: initValue('a8')}]" :readOnly="true" style="width: 240px;" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(5) 肺部体征:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + </a-form-item> + <a-form-item label="桶状胸" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b1', {...require2, initialValue: initValue('b1')}]"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="杵状指" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b2', {...require2, initialValue: initValue('b2')}]"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="啰音" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['a9', {...require2, initialValue: initValue('a9')}]" @change="changeRadio($event, 'controla9')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla9"> + <a-form-item label="啰音类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-checkbox-group v-decorator="['a91', {...selectRequired, initialValue: initValue('a91', 'array')}]"> + <a-checkbox value="1">湿罗音</a-checkbox> + <a-checkbox value="2">干啰音</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="啰音部位" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-input style="width: 240px;" v-decorator="['a92', {...inputRequired, initialValue: initValue('a92')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(6) 右位心:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a10', {...require1, initialValue: initValue('a10')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, computeScore, recoverSubmit } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +export default { + name: 'task15', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + markName: 'tgjc', + title: '', + openKeys: [], + defaultSelectedKeys: [15], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: '100%', + "padding-right": "0px", + "border-right": "1px solid #ddd" + }, + baselineFormStyle: { + // height: '444px', + "padding-top": "52px", + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + controla9: false, + tgjc: undefined, + height: undefined, + weight: undefined, + spinning: false, + executeStatus: false, + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined + } + }, + created() { + var that = this + this.defaultSelectedKeys = [15] + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + if (that.patientBasis.type === 1) { + that.title = '基线' + } else if (that.patientBasis.type === 2) { + that.title = '半年随访' + } else if (that.patientBasis.type === 3) { + that.title = '年访视' + } + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + this.getFormData() + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeSelect(e, t) { + this[t] = e.target.checked + }, + changeRadio(e, t) { + if (t === 'controlb191') { + if (e.target.value === '1' || e.target.value === '2') { + this[t] = true + } else { + this[t] = false + } + } else if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + this.maskId = e.key + if ((e.key >= 37 && e.key <= 42) || (e.key >= 45 && e.key <= 50)) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + this.maskId) + } else { + this.$router.replace('/list/task/' + this.patientBasisId + '/' + this.maskId) + } + }, + getFormData() { + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + if (res.data && res.data.tgjc) + that.tgjc = that.dealAnswers(res.data.tgjc) + }) + .catch(error => { + console.log(error) + }) + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'a91': typeof re['a91'] !== 'undefined' ? re['a91'].join(',') : '' + } + console.log(re) + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.tgjc && this.tgjc.tgjcId) { + re.tgjcId = this.tgjc.tgjcId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + that.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + } else { + this.spinning = false + } + }) + }, + initValue(key, type = 'normal') { + if (!this.tgjc) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.tgjc[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.tgjc[key]) + } else if (type === 'array') { + return this.tgjc[key].split(',') + } else { + return this.tgjc[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + if (answer.a9 === '1') { + this.controla9 = true + } + if (answer.a6) { + this.height = answer.a6 + } + if (answer.a7) { + this.weight = answer.a7 + } + } + return answer + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + save() { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'a91': typeof re['a91'] !== 'undefined' ? re['a91'].join(',') : '' + } + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.tgjc && this.tgjc.tgjcId) { + re.tgjcId = this.tgjc.tgjcId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + that.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + computeBMI() { + var that = this + var height = this.height + var weight = this.weight + if (height && weight) { + var params = new URLSearchParams() + params.append('scoreType', 'bmi') + params.append('tgjcStr', JSON.stringify({ a6: height, a7: weight })) + computeScore(params) + .then(res => { + console.log(res.data.a8) + that.form.setFieldsValue({ + a8: res.data.a8 + }) + }) + .catch(error => { + console.log(error) + }) + } + }, + changeHeight(e) { + this.height = e.target.value + if (!e.target.value) { + this.form.setFieldsValue({ + a8: '' + }) + } else { + this.computeBMI() + } + }, + changeWeight(e) { + this.weight = e.target.value + if (!e.target.value) { + this.form.setFieldsValue({ + a8: '' + }) + } else { + this.computeBMI() + } + }, + withdraw(){ + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.tgjc.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + .treeSubTitle{ + font-size: 14px; + } + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + + .baselineForm { + + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/task/components/mask-17.vue b/src/views/task/components/mask-17.vue new file mode 100644 index 0000000000..9c89dd1aae --- /dev/null +++ b/src/views/task/components/mask-17.vue @@ -0,0 +1,1175 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!</p> + <a-form-item label="过去一年是否有急性加重期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a1', {...require1, initialValue: initValue('a1')}]" @change="changeRadio($event, 'controla1')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla1"> + <div class="title">1.急性加重期</div> + <a-form-item label="(1) 过去一年的急性加重次数:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['b1', {...inputRequired, initialValue: initValue('b1')}]" style="width: 240px;" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(2) 住院急性加重次数:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['b2', {...inputRequired, initialValue: initValue('b2')}]" style="width: 240px;" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 门诊急性加重次数:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input v-decorator="['b3', {...inputRequired, initialValue: initValue('b3')}]" style="width: 240px;" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(4) 急性加重的症状(多选):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b4', {...selectRequired, initialValue: initValue('b4', 'array')}]"> + <a-checkbox value="1">咳嗽加重</a-checkbox> + <a-checkbox value="2">痰量增多</a-checkbox> + <a-checkbox value="3">痰液黏度增加</a-checkbox> + <a-checkbox value="4">痰脓性增加</a-checkbox> + <a-checkbox value="5">喘息呼吸急促加重</a-checkbox> + <a-checkbox value="6">咯血新增或增多</a-checkbox> + <a-checkbox value="7">其他系统症状(如:乏力,发热等)</a-checkbox> + <a-checkbox value="8" :checked="controlb4" @change="changeSelect($event, 'controlb4')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他症状:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb4"> + <a-input v-decorator="['b41', {...inputRequired, initialValue: initValue('b41')}]" style="width: 240px;" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(5) 咳嗽频繁程度" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b5', {...selectRequired, initialValue: initValue('b5')}]"> + <a-radio value="1">轻度</a-radio> + <a-radio value="2">中度</a-radio> + <a-radio value="3">重度</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(6) 痰量" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="ml/日" style="width: 240px;" v-decorator="['b6', {...inputRequired, initialValue: initValue('b6')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(7) 痰液粘稠Murry评分(单选)" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-popover> + <template slot="content"> + <img src="../../../assets/murry.png" style="height: 260px;" /> + </template> + <a-icon type="exclamation-circle" style="position: relative;left: -20px;color: #0399ec;cursor: pointer;" /> + </a-popover> + <a-radio-group v-decorator="['b7', {...selectRequired, initialValue: initValue('b7')}]"> + <a-radio value="1">粘液性</a-radio> + <a-radio value="2">黏脓性</a-radio> + <a-radio value="3">脓性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(8) 痰血最多量" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="ml/日" style="width: 240px;" v-decorator="['b8', {...inputRequired, initialValue: initValue('b8')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(9) 咯血最多量" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="ml/日" style="width: 240px;" v-decorator="['b9', {...inputRequired, initialValue: initValue('b9')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(10) 有无胸痛:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b10', {...require2, initialValue: initValue('b10')}]" @change="changeRadio($event, 'controla1')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(11) 急性加重期入院方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b11', {...require2, initialValue: initValue('b11')}]" @change="changeRadio($event, 'controlb11')"> + <a-radio value="1">住院</a-radio> + <a-radio value="2">门诊</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb11"> + <a-form-item label="记录住院天数:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset"> + <a-input addonAfter="天" style="width: 240px;" v-decorator="['b111', {...inputRequired, initialValue: initValue('b111')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="住院总费用:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset"> + <a-input addonAfter="元" style="width: 240px;" v-decorator="['b112', {...inputRequired, initialValue: initValue('b112')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(12) 急性加重发生时间:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b12', {...dateRequire, initialValue: initValue('b12', 'time')}]"></a-date-picker> + </a-form-item> + <a-form-item label="(13) 持续时间:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input addonAfter="天" style="width: 240px;" v-decorator="['b13', {...inputRequired, initialValue: initValue('b13')}]" autocomplete="off"></a-input> + </a-form-item> + <div class="title">2.急性加重期的微生物检查</div> + <a-form-item label="(1) 取样日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['c1', {...dateRequire, initialValue: initValue('c1', 'time')}]"></a-date-picker> + </a-form-item> + <a-form-item label="(2) 是否本院:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['c2', {...require1, initialValue: initValue('c2')}]" @change="changeRadio($event, 'controlc2')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="医院名称" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlc2"> + <a-input style="width: 240px;" v-decorator="['c21', {...inputRequired, initialValue: initValue('c21')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 标本类型(单选):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['c3', {...require1, initialValue: initValue('c3')}]"> + <a-radio value="1">痰液</a-radio> + <a-radio value="2">诱导痰</a-radio> + <a-radio value="3">支气管肺泡灌洗液</a-radio> + <a-radio value="4">血标本</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(4) 是否分离到微生物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['c4', {...require1, initialValue: initValue('c4')}]" @change="changeRadio($event, 'controlc4')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="分离到微生物:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlc4"> + <a-checkbox-group v-decorator="['c42', {...selectRequired, initialValue: initValue('c42', 'array')}]"> + <a-checkbox value="0" @change="showList($event, '铜绿假单胞菌', 'controlc420')">铜绿假单胞菌</a-checkbox> + <add-table :dataSource="optionDataSource[0]" v-if="controlc420"></add-table> + <a-checkbox value="1" @change="showList($event, '肺炎链球菌', 'controlc421')">肺炎链球菌</a-checkbox> + <add-table :dataSource="optionDataSource[1]" v-if="controlc421"></add-table> + <a-checkbox value="2" @change="showList($event, '肺炎克雷伯菌', 'controlc422')">肺炎克雷伯菌</a-checkbox> + <add-table :dataSource="optionDataSource[2]" v-if="controlc422"></add-table> + <a-checkbox value="3" @change="showList($event, '阴沟肠杆菌', 'controlc423')">阴沟肠杆菌</a-checkbox> + <add-table :dataSource="optionDataSource[3]" v-if="controlc423"></add-table> + <a-checkbox value="4" @change="showList($event, '副流感嗜血杆菌', 'controlc424')">副流感嗜血杆菌</a-checkbox> + <add-table :dataSource="optionDataSource[4]" v-if="controlc424"></add-table> + <a-checkbox value="5" @change="showList($event, '鲍曼不动杆菌', 'controlc425')">鲍曼不动杆菌</a-checkbox> + <add-table :dataSource="optionDataSource[5]" v-if="controlc425"></add-table> + <a-checkbox value="6" @change="showList($event, '金黄色葡萄球菌', 'controlc426')">金黄色葡萄球菌</a-checkbox> + <add-table :dataSource="optionDataSource[6]" v-if="controlc426"></add-table> + <a-checkbox value="7" @change="showList($event, '其他', 'controlc427')">其他</a-checkbox> + <a-input style="width: 240px;margin-right: 10px;" v-if="controlc427" @change="otherChange($event, 7)" autocomplete="off"></a-input> + <add-table :dataSource="optionDataSource[7]" v-if="controlc427"></add-table> + </a-checkbox-group> + </a-form-item> + <div class="title">3.用药情况</div> + <a-form-item label="(1) 抗生素使用情况(单选):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['d1', {...selectRequired, initialValue: initValue('d1')}]"> + <a-radio value="1">口服</a-radio> + <a-radio value="2">静脉</a-radio> + <a-radio value="3">口服+静脉</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(2) β内酰胺类(多选):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['d2', {...selectRequired, initialValue: initValue('d2', 'array')}]"> + <a-checkbox value="1">头孢他定</a-checkbox> + <a-checkbox value="2">头孢吡肟</a-checkbox> + <a-checkbox value="3">拉氧头孢</a-checkbox> + <a-checkbox value="4" :checked="controld24" @change="changeSelect($event, 'controld24')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="border-dotted" label="其他" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controld24"> + <a-input style="width: 240px;" v-decorator="['d21', {...inputRequired, initialValue: initValue('d21')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) β内酰胺/酶抑制剂:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['d3', {...selectRequired, initialValue: initValue('d3', 'array')}]"> + <a-checkbox value="1">头孢他定</a-checkbox> + <a-checkbox value="2">头孢吡肟</a-checkbox> + <a-checkbox value="3" :checked="controld33" @change="changeSelect($event, 'controld33')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="border-dotted" label="其他" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controld33"> + <a-input style="width: 240px;" v-decorator="['d31', {...inputRequired, initialValue: initValue('d31')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(4) 碳氢酶烯类:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['d4', {...selectRequired, initialValue: initValue('d4', 'array')}]"> + <a-checkbox value="1">美罗培南</a-checkbox> + <a-checkbox value="2">亚胺培南</a-checkbox> + <a-checkbox value="3">比阿培南</a-checkbox> + <a-checkbox value="4" :checked="controld44" @change="changeSelect($event, 'controld44')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="border-dotted" label="其他" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controld44"> + <a-input style="width: 240px;" v-decorator="['d41', {...inputRequired, initialValue: initValue('d41')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(5) 氨基糖甙类:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['d5', {...selectRequired, initialValue: initValue('d5', 'array')}]"> + <a-checkbox value="1">阿米卡星</a-checkbox> + <a-checkbox value="2">妥布霉素</a-checkbox> + <a-checkbox value="3">依替米星</a-checkbox> + <a-checkbox value="4" :checked="controld54" @change="changeSelect($event, 'controld54')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="border-dotted" label="其他" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controld54"> + <a-input style="width: 240px;" v-decorator="['d51', {...inputRequired, initialValue: initValue('d51')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(6) 喹诺酮类:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['d6', {...selectRequired, initialValue: initValue('d6', 'array')}]"> + <a-checkbox value="1">环丙沙星</a-checkbox> + <a-checkbox value="2">左氧氟沙星</a-checkbox> + <a-checkbox value="3" :checked="controld63" @change="changeSelect($event, 'controld63')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="border-dotted" label="其他" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controld63"> + <a-input style="width: 240px;" v-decorator="['d61', {...inputRequired, initialValue: initValue('d61')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(7) 单酰胺环类:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['d7', {initialValue: initValue('d7', 'array')}]"> + <a-checkbox value="1">氨曲南</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="(8) 大环内酯类:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['d8', {...selectRequired, initialValue: initValue('d8', 'array')}]"> + <a-checkbox value="1">阿奇霉素</a-checkbox> + <a-checkbox value="2">克拉霉素</a-checkbox> + <a-checkbox value="3">红霉素</a-checkbox> + <a-checkbox value="4" :checked="controld84" @change="changeSelect($event, 'controld84')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="border-dotted" label="其他" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controld84"> + <a-input style="width: 240px;" v-decorator="['d81', {...inputRequired, initialValue: initValue('d81')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(9) 多肽类:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['d9', {...selectRequired, initialValue: initValue('d9', 'array')}]"> + <a-checkbox value="1">多粘菌素B</a-checkbox> + <a-checkbox value="2">多粘菌素E</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="(10) 有无止血:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['d10', {...require2, initialValue: initValue('d10')}]" @change="changeRadio($event, 'controld10')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="止血药物" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controld10"> + <a-checkbox-group v-decorator="['d101', {...selectRequired, initialValue: initValue('d101', 'array')}]"> + <a-checkbox value="1">安络血</a-checkbox> + <a-checkbox value="2">云南白药</a-checkbox> + <a-checkbox value="3">垂体</a-checkbox> + <a-checkbox value="4">止血敏</a-checkbox> + <a-checkbox value="5">止血芳酸</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="(11) 有无雾化治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['d11', {...require2, initialValue: initValue('d11')}]" @change="changeRadio($event, 'controld11')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controld11"> + <a-form-item label="雾化药物:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" class="border-dotted"> + <a-checkbox-group v-decorator="['d111', {...selectRequired, initialValue: initValue('d111', 'array')}]"> + <a-checkbox value="1">乙酰半胱氨酸</a-checkbox> + <a-checkbox value="2" :checked="controld111" @change="changeSelect($event, 'controld111')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controld111"> + <a-input style="width: 240px;" v-decorator="['d1111', {...inputRequired, initialValue: initValue('d1111')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="ICS:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" class="border-dotted"> + <a-checkbox-group v-decorator="['d112', {...selectRequired, initialValue: initValue('d112', 'array')}]"> + <a-checkbox value="1">布地奈德</a-checkbox> + <a-checkbox value="2" :checked="controld112" @change="changeSelect($event, 'controld112')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controld112"> + <a-input style="width: 240px;" v-decorator="['d1121', {...inputRequired, initialValue: initValue('d1121')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="支气管扩张剂:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset"> + <a-checkbox-group v-decorator="['d113', {...selectRequired, initialValue: initValue('d113', 'array')}]"> + <a-checkbox value="1">异丙托溴胺</a-checkbox> + <a-checkbox value="2">沙丁胺醇</a-checkbox> + <a-checkbox value="3">特布他林</a-checkbox> + <a-checkbox value="4">复方异丙托溴铵(异丙托溴胺+沙丁胺醇)</a-checkbox> + </a-checkbox-group> + </a-form-item> + </div> + <a-form-item label="(12) 有无支气管镜检吸痰:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['d12', {...require2, initialValue: initValue('d12')}]"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(13) 有无氧疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['d13', {...require2, initialValue: initValue('d13')}]"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(14) 有无机械通气:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['d14', {...require2, initialValue: initValue('d14')}]"> + <a-radio value="1">有创</a-radio> + <a-radio value="-1">无创</a-radio> + </a-radio-group> + </a-form-item> + </div> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, getMedicineAllergyList, recoverSubmit } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import AddTable from '@/views/account/center/model/table' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +export default { + name: 'jxjzq', + components: { + STree, + MyIcon, + AddTable, + ContactForm + }, + data() { + return { + markName: 'fs_jxjzq', + optionDataSource: [], + title: '急性加重期', + openKeys: [], + orgTree: [], + patient: {}, + patientBasis: {}, + defaultSelectedKeys: [17], + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + baselineFormStyle: { + // height: '444px', + 'padding-top': '52px' + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 5, offset: 3 } + }, + wrapperOffset: { + md: { span: 16 } + }, + labelColOffset2: { + md: { span: 6, offset: 3 } + }, + wrapperOffset2: { + md: { span: 15 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + patientBasisId: this.$route.params.id, + jxjzq: undefined, + maskId: this.$route.meta.maskId, + controla1: false, + controlb4: false, + controlb11: false, + controlc2: false, + controlc4: false, + controlc420: false, + controlc421: false, + controlc422: false, + controlc423: false, + controlc424: false, + controlc425: false, + controlc426: false, + controlc427: false, + controld24: false, + controld33: false, + controld44: false, + controld54: false, + controld63: false, + controld84: false, + controld10: false, + controld11: false, + controld111: false, + controld112: false, + spinning: false, + executeStatus: false, + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined + } + }, + created() { + var that = this + + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + that.getFormData() + }) + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeSelect(e, t) { + this[t] = e.target.checked + }, + changeRadio(e, t) { + if (t === 'controlb41') { + if (e.target.value === '4') { + this[t] = true + } else { + this[t] = false + } + } else if (t === 'controlc2') { + if (e.target.value === '-1') { + this[t] = true + } else { + this[t] = false + } + } else if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + getFormData() { + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', that.maskId) + getBasisForm(params) + .then(res => { + if (res.data && res.data.fs_jxjzq) + that.jxjzq = that.dealAnswers(res.data) + }) + .catch(error => { + console.log(error) + }) + }, + handleClick(e) { + this.maskId = e.key + if ((e.key >= 37 && e.key <= 42) || (e.key >= 45 && e.key <= 50)) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + this.maskId) + } else { + this.$router.replace('/list/task/' + this.patientBasisId + '/' + this.maskId) + } + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + const allergy = [] + for (var key in this.optionDataSource) { + _.each(this.optionDataSource[key], function(item) { + allergy.push({ + markId: 2, + microbeName: item.microbeName, + antibiotic: item.antibiotic, + antibioticResult: item.antibioticResult, + allergyValue: item.allergyValue + }) + }) + } + var re = this.form.getFieldsValue() + re = { + ...re, + 'b4': typeof re['b4'] !== 'undefined' ? re['b4'].join(',') : '', + 'b12': typeof re['b12'] !== 'undefined' ? re['b12'].format('YYYY-MM-DD') : '', + 'c1': typeof re['c1'] !== 'undefined' ? re['c1'].format('YYYY-MM-DD') : '', + 'c42': typeof re['c42'] !== 'undefined' ? re['c42'].join(',') : '', + 'd2': typeof re['d2'] !== 'undefined' ? re['d2'].join(',') : '', + 'd3': typeof re['d3'] !== 'undefined' ? re['d3'].join(',') : '', + 'd4': typeof re['d4'] !== 'undefined' ? re['d4'].join(',') : '', + 'd5': typeof re['d5'] !== 'undefined' ? re['d5'].join(',') : '', + 'd6': typeof re['d6'] !== 'undefined' ? re['d6'].join(',') : '', + 'd7': typeof re['d7'] !== 'undefined' ? re['d7'].join(',') : '', + 'd8': typeof re['d8'] !== 'undefined' ? re['d8'].join(',') : '', + 'd9': typeof re['d9'] !== 'undefined' ? re['d9'].join(',') : '', + 'd101': typeof re['d101'] !== 'undefined' ? re['d101'].join(',') : '', + 'd111': typeof re['d111'] !== 'undefined' ? re['d111'].join(',') : '', + 'd112': typeof re['d112'] !== 'undefined' ? re['d112'].join(',') : '', + 'd113': typeof re['d113'] !== 'undefined' ? re['d113'].join(',') : '' + } + var that = this + console.log(re) + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.jxjzq && this.jxjzq.jxjzqId) { + re.jxjzqId = this.jxjzq.jxjzqId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + params.append('allergy', JSON.stringify(allergy)) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.$message.success(res.msg) + that.spinning = false + that.getFormData() + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + initValue(key, type = 'normal') { + if (!this.jxjzq) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.jxjzq[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.jxjzq[key]) + } else if (type === 'array') { + return this.jxjzq[key].split(',') + } else { + return this.jxjzq[key] + '' + } + }, + dealAnswers(data) { + var that = this + var alList = ['铜绿假单胞菌', '阴沟肠杆菌', '肺炎克雷伯菌', '肺炎链球菌', '副流感嗜血杆菌', '鲍曼不动杆菌', '金黄色葡萄球菌'] + var answer = data.fs_jxjzq + if (answer && !_.isEmpty(answer)) { + var splitArr = [] + if (answer.a1 === 1) { + this.controla1 = true + } + if (answer.b4) { + splitArr = answer.b4.split(',') + if (splitArr.indexOf('8') > -1) { + this.controlb4 = true + } + } + if (answer.c2 === -1) { + this.controlc2 = true + } + if (answer.c4 === 1) { + this.controlc4 = true + } + if (answer.c42) { + splitArr = answer.c42.split(',') + if (splitArr.indexOf('0') > -1) { + this.controlc420 = true + } + if (splitArr.indexOf('1') > -1) { + this.controlc421 = true + } + if (splitArr.indexOf('2') > -1) { + this.controlc422 = true + } + if (splitArr.indexOf('3') > -1) { + this.controlc423 = true + } + if (splitArr.indexOf('4') > -1) { + this.controlc424 = true + } + if (splitArr.indexOf('5') > -1) { + this.controlc425 = true + } + if (splitArr.indexOf('6') > -1) { + this.controlc426 = true + } + if (splitArr.indexOf('7') > -1) { + this.controlc427 = true + } + } + if (data[2]) { + _.each(alList, function(v, i) { + if (data[2][v]) { + that.optionDataSource[i] = data[2][v] + } + }) + } + if (answer.d2) { + splitArr = answer.d2.split(',') + if (splitArr.indexOf('4') > -1) { + this.controld24 = true + } + } + } + return answer + }, + save() { + const allergy = [] + for (var key in this.optionDataSource) { + _.each(this.optionDataSource[key], function(item) { + allergy.push({ + markId: 2, + microbeName: item.microbeName, + antibiotic: item.antibiotic, + antibioticResult: item.antibioticResult, + allergyValue: item.allergyValue + }) + }) + } + var re = this.form.getFieldsValue() + re = { + ...re, + 'b4': typeof re['b4'] !== 'undefined' ? re['b4'].join(',') : '', + 'b12': typeof re['b12'] !== 'undefined' ? re['b12'].format('YYYY-MM-DD') : '', + 'c1': typeof re['c1'] !== 'undefined' ? re['c1'].format('YYYY-MM-DD') : '', + 'c42': typeof re['c42'] !== 'undefined' ? re['c42'].join(',') : '', + 'd2': typeof re['d2'] !== 'undefined' ? re['d2'].join(',') : '', + 'd3': typeof re['d3'] !== 'undefined' ? re['d3'].join(',') : '', + 'd4': typeof re['d4'] !== 'undefined' ? re['d4'].join(',') : '', + 'd5': typeof re['d5'] !== 'undefined' ? re['d5'].join(',') : '', + 'd6': typeof re['d6'] !== 'undefined' ? re['d6'].join(',') : '', + 'd7': typeof re['d7'] !== 'undefined' ? re['d7'].join(',') : '', + 'd8': typeof re['d8'] !== 'undefined' ? re['d8'].join(',') : '', + 'd9': typeof re['d9'] !== 'undefined' ? re['d9'].join(',') : '', + 'd101': typeof re['d101'] !== 'undefined' ? re['d101'].join(',') : '', + 'd111': typeof re['d111'] !== 'undefined' ? re['d111'].join(',') : '', + 'd112': typeof re['d112'] !== 'undefined' ? re['d112'].join(',') : '', + 'd113': typeof re['d113'] !== 'undefined' ? re['d113'].join(',') : '' + } + var that = this + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.jxjzq && this.jxjzq.jxjzqId) { + re.jxjzqId = this.jxjzq.jxjzqId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + params.append('allergy', JSON.stringify(allergy)) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.$message.success(res.msg) + that.spinning = false + that.getFormData() + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + showList(e, name, controlNode) { + if (e.target.checked) { + this[controlNode] = true + if (name == "其他") return + this.getMedicineAllergyList(name, e.target.value) + } else { + this[controlNode] = false + this.$set(this.optionDataSource, e.target.value, []) + } + }, + getMedicineAllergyList(value, index) { + const that = this + const params = new URLSearchParams() + params.append('microbeName', value) + getMedicineAllergyList(params).then(res => { + const optionDataSource = _.map(res.data, function(v, i) { + return { + keyW: i, + microbeName: v.microbeName, + antibiotic: v.antibiotic, + antibioticResult: v.antibioticResult, + allergyValue: v.allergyValue + }; + }) + that.$set(that.optionDataSource, index, optionDataSource) + }) + }, + otherChange(e, index) { + this.getMedicineAllergyList(e.target.value, index) + }, + withdraw(){ + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.jxjzq.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + .treeSubTitle{ + font-size: 14px; + } + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/task/components/mask-18.vue b/src/views/task/components/mask-18.vue new file mode 100644 index 0000000000..de83b1d15e --- /dev/null +++ b/src/views/task/components/mask-18.vue @@ -0,0 +1,1103 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="clearfix" style="position: relative; top: 20px;"> + <a-button class="btn fr" type="primary" @click="_importData">导入数据</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!</p> + <a-form-item label="有无新增呼吸系统相关治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a1', {...require2, initialValue: initValue('a1')}]" @change="changeRadio($event, 'controla1')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla1"> + <div class="title">1.呼吸系统相关治疗</div> + <a-form-item label="(1) 长期氧疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b1', {...require1, initialValue: initValue('b1')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(2) 无创辅助通气:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b2', {...require1, initialValue: initValue('b2')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(3) 患者是否进行有规律的物理治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b3', {...require1, initialValue: initValue('b3')}]" @change="changeRadio($event, 'controlb3')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="治疗方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb3"> + <a-checkbox-group v-decorator="['b31', {...selectRequired, initialValue: initValue('b31', 'array')}]"> + <a-checkbox value="1" :disabled="detect('b31', '5')">手动拍击背部排痰</a-checkbox> + <a-checkbox value="2" :disabled="detect('b31', '5')">体位引流</a-checkbox> + <a-checkbox value="3" :disabled="detect('b31', '5')">规律锻炼身体</a-checkbox> + <a-checkbox value="4" :disabled="detect('b31', '5')">借助排痰仪器</a-checkbox> + <a-checkbox value="6" :disabled="detect('b31', '5')">主动循环呼吸</a-checkbox> + <a-checkbox value="5" @change="handleNone($event, 'b31', '5')">无</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="(4) 有规律的呼吸疾病药物治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b4', {...require1, initialValue: initValue('b4')}]" @change="changeRadio($event, 'controlb4')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb4"> + <a-form-item label="4-1 规律抗生素治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b41', {...selectRequired, initialValue: initValue('b41', 'array')}]"> + <a-checkbox value="0" @change="handleNone($event, 'b41', '0', ['controlb411', 'controlb412'])">无</a-checkbox> + <a-checkbox value="1" :disabled="detect('b41', '0')" :checked="controlb411" @change="changeSelect($event, 'controlb411')">口服</a-checkbox> + <a-checkbox value="2" :disabled="detect('b41', '0')" :checked="controlb412" @change="changeSelect($event, 'controlb412')">吸入/雾化</a-checkbox> + </a-checkbox-group> + </a-form-item> + <div v-if="controlb4 && controlb411"> + <a-form-item label="长期性口服抗生素治疗(连续使用大于三个月的治疗):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b414', {...selectRequired, initialValue: initValue('b414', 'array')}]"> + <a-checkbox value="1">阿奇霉素</a-checkbox> + <a-checkbox value="2">克拉霉素</a-checkbox> + <a-checkbox value="3">红霉素</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'controlb41')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他口服抗生素:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb4 && controlb411 && controlb41"> + <a-input style="width: 240px;" v-decorator="['b4141', {...inputRequired, initialValue: initValue('b4141')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <div v-if="controlb4 && controlb412"> + <a-form-item label="规律吸入/雾化抗生素药物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b42', {...selectRequired, initialValue: initValue('b42', 'array')}]"> + <a-checkbox value="2">妥布霉素</a-checkbox> + <a-checkbox value="3">庆大霉素</a-checkbox> + <a-checkbox value="4">阿米卡星</a-checkbox> + <a-checkbox value="5" @change="changeSelect($event, 'controlb42')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他吸入/雾化抗生素药物:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb42"> + <a-input style="width: 240px;" v-decorator="['b421', {...inputRequired, initialValue: initValue('b421')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="4-2 祛痰药物治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b43', {...selectRequired, initialValue: initValue('b43', 'array')}]"> + <a-checkbox value="0" @change="handleNone($event, 'b43', '0', ['controlb431', 'controlb432'])">无</a-checkbox> + <a-checkbox value="1" :disabled="detect('b43', '0')" :checked="controlb431" @change="changeSelect($event, 'controlb431')">口服</a-checkbox> + <a-checkbox value="2" :disabled="detect('b43', '0')" :checked="controlb432" @change="changeSelect($event, 'controlb432')">雾化</a-checkbox> + </a-checkbox-group> + </a-form-item> + <div v-if="controlb431"> + <a-form-item label="口服祛痰类药物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b431', {...selectRequired, initialValue: initValue('b431', 'array')}]"> + <a-checkbox value="1">N-乙酰半胱氨酸</a-checkbox> + <a-checkbox value="2">氨溴索</a-checkbox> + <a-checkbox value="3">桉柠蒎</a-checkbox> + <a-checkbox value="4">羧甲司坦</a-checkbox> + <a-checkbox value="5">厄多司坦</a-checkbox> + <a-checkbox value="6">福多司坦</a-checkbox> + <a-checkbox value="7" @change="changeSelect($event, 'controlb43')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他祛痰类药物::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb431 && controlb43"> + <a-input style="width: 240px;" v-decorator="['b432', {...inputRequired, initialValue: initValue('b432')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <div v-if="controlb432"> + <a-form-item label="雾化药物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b433', {...selectRequired, initialValue: initValue('b433', 'array')}]"> + <a-checkbox value="1">N-乙酰半胱氨酸</a-checkbox> + <a-checkbox value="3">雾化生理盐水</a-checkbox> + <a-checkbox value="4">雾化吸入高渗盐水</a-checkbox> + <a-checkbox value="2" :checked="controlb433" @change="changeSelect($event, 'controlb433')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他雾化药物::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb432 && controlb433"> + <a-input style="width: 240px;" v-decorator="['b434', {...inputRequired, initialValue: initValue('b434')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="4-3 支气管扩张剂/吸入激素:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b48', {...selectRequired, initialValue: initValue('b48', 'array')}]" class="center"> + <a-checkbox value="0" @change="handleNone($event, 'b48', '0', ['controlb48'])">无</a-checkbox> + <a-checkbox value="1" :disabled="detect('b48', '0')">LAMA</a-checkbox> + <a-checkbox value="2" :disabled="detect('b48', '0')">LABA</a-checkbox> + <a-checkbox value="3" :disabled="detect('b48', '0')">LABA/LAMA</a-checkbox> + <a-checkbox value="4" :disabled="detect('b48', '0')">ICS/LABA/LAMA</a-checkbox> + <a-checkbox value="5" :disabled="detect('b48', '0')">ICS/LABA</a-checkbox> + <a-checkbox value="6" :disabled="detect('b48', '0')">SABA</a-checkbox> + <a-checkbox value="7" :disabled="detect('b48', '0')">SAMA</a-checkbox> + <a-checkbox value="8" :disabled="detect('b48', '0')">白三烯受体拮抗剂</a-checkbox> + <a-checkbox value="9" :disabled="detect('b48', '0')">口服茶碱</a-checkbox> + <a-checkbox value="10" :disabled="detect('b48', '0')">雾化吸入支气管舒张剂</a-checkbox> + <a-checkbox value="11" :disabled="detect('b48', '0')" @change="changeSelect($event, 'controlb48')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他支气管扩张剂/吸入激素:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb48"> + <a-input style="width: 240px;" v-decorator="['b481', {...inputRequired, initialValue: initValue('b481')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="4-4 长期止血治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b46', {...require1, initialValue: initValue('b46')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + </div> + <a-form-item label="(5) ABPA相关治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b5', {...require1, initialValue: initValue('b5')}]" @change="changeRadio($event, 'controlb5')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb5"> + <a-form-item label="抗真菌药物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b52', {...selectRequired, initialValue: initValue('b52', 'array')}]"> + <a-checkbox value="0" @change="handleNone($event, 'b52', '0', ['controlb52'])">无</a-checkbox> + <a-checkbox value="1" :disabled="detect('b52', '0')">伊曲康唑</a-checkbox> + <a-checkbox value="2" :disabled="detect('b52', '0')">伏立康唑</a-checkbox> + <a-checkbox value="3" :disabled="detect('b52', '0')" :checked="controlb52" @change="changeSelect($event, 'controlb52')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他抗真菌药物::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb5 && controlb52"> + <a-input style="width: 240px;" v-decorator="['b53', {...inputRequired, initialValue: initValue('b53')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="激素治疗" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b51', {...require1, initialValue: initValue('b51')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + </div> + <a-form-item label="(6) 免疫球蛋白缺乏相关治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b6', {...require1, initialValue: initValue('b6')}]" @change="changeRadio($event, 'controlb6')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb6"> + <a-form-item label="静脉注射免疫球蛋白药物名称:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b61', {...inputRequired, initialValue: initValue('b61')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(7) 患者是否曾接受疫苗治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b7', {...require1, initialValue: initValue('b7')}]" @change="changeRadio($event, 'controlb7')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlb7"> + <a-form-item label="肺炎链球菌多糖疫苗(如PSV23):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b71', {...require1, initialValue: initValue('b71')}]" @change="changeRadio($event, 'controlb71')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="时间::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb7 && controlb71"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b711', {...dateRequire, initialValue: initValue('b711', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="肺炎链球菌结合疫苗(如PVC13):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b72', {...require1, initialValue: initValue('b72')}]" @change="changeRadio($event, 'controlb72')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="时间::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb7 && controlb72"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b721', {...dateRequire, initialValue: initValue('b721', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + </div> + <a-form-item label="(8) 过去1年,患者是否曾接受流感疫苗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b10', {...require1, initialValue: initValue('b10')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(9) 患者是否接受肺康复治疗:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['b11', {...require1, initialValue: initValue('b11')}]"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + </div> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, recoverSubmit, exportFormData } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +export default { + name: 'mask4', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + markName: 'hxxt', + title: '年访视', + openKeys: [], + defaultSelectedKeys: [18], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + baselineFormStyle: { + // height: '444px', + 'padding-top': '52px' + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 7 }, + md: { span: 7 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 17 }, + md: { span: 17 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 4, offset: 7 } + }, + wrapperOffset: { + md: { span: 13 } + }, + labelColOffset2: { + md: { span: 6, offset: 3 } + }, + wrapperOffset2: { + md: { span: 15 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + hxxt: undefined, + controlb3: false, + controlb4: false, + controlb41: false, + controlb44: false, + controlb411: false, + controlb412: false, + // controlb4111: false, + controlb5: false, + controlb52: false, + controlb6: false, + // controlb7: false, + controlb8: false, + controlb81: false, + controla1: false, + spinning: false, + executeStatus: false, + controlb43: false, + controlb431: false, + controlb432: false, + controlb433: false, + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined, + controlb42: false, + controlb48: false, + controlb7: false, + controlb71: false, + controlb72: false + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + this.getFormData() + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + getFormData() { + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + if (res.data && res.data.hxxt) + that.hxxt = that.dealAnswers(res.data.hxxt) + }) + .catch(error => { + console.log(error) + }) + }, + changeSelect(e, t) { + this[t] = e.target.checked + }, + changeRadio(e, t) { + if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + this.maskId = e.key + if ((e.key >= 37 && e.key <= 42) || (e.key >= 45 && e.key <= 50)) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + this.maskId) + } else { + this.$router.replace('/list/task/' + this.patientBasisId + '/' + this.maskId) + } + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + var that = this + if(re.b4 === '1' && re.b41.indexOf('0') > -1 && re.b43.indexOf('0') > -1 && re.b48.indexOf('0') > -1 ) { + that.$message.error('有规律的呼吸疾病药物治疗不可同时勾选三项无') + return false + } + re = { + ...re, + 'b31': typeof re['b31'] !== 'undefined' ? re['b31'].join(',') : '', + 'b41': typeof re['b41'] !== 'undefined' ? re['b41'].join(',') : '', + 'b42': typeof re['b42'] !== 'undefined' ? re['b42'].join(',') : '', + 'b414': typeof re['b414'] !== 'undefined' ? re['b414'].join(',') : '', + 'b43': typeof re['b43'] !== 'undefined' ? re['b43'].join(',') : '', + 'b431': typeof re['b431'] !== 'undefined' ? re['b431'].join(',') : '', + 'b433': typeof re['b433'] !== 'undefined' ? re['b433'].join(',') : '', + 'b44': typeof re['b44'] !== 'undefined' ? re['b44'].join(',') : '', + 'b52': typeof re['b52'] !== 'undefined' ? re['b52'].join(',') : '', + 'b81': typeof re['b81'] !== 'undefined' ? re['b81'].join(',') : '', + 'b48': typeof re['b48'] !== 'undefined' ? re['b48'].join(',') : '', + 'b711': typeof re['b711'] !== 'undefined' ? re['b711'].format('YYYY-MM-DD') : '', + 'b721': typeof re['b721'] !== 'undefined' ? re['b721'].format('YYYY-MM-DD') : '' + } + var that = this + console.log(re) + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.hxxt && this.hxxt.hxxtId) { + re.hxxtId = this.hxxt.hxxtId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.$message.success(res.msg) + that.spinning = false + that.getFormData() + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + } else { + this.spinning = false + } + }) + }, + initValue(key, type = 'normal') { + if (!this.hxxt) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.hxxt[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.hxxt[key]) + } else if (type === 'array') { + return this.hxxt[key].split(',') + } else { + return this.hxxt[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + var splitArr = [] + if (answer.a1 === 1) { + this.controla1 = true + } + if (answer.b3 === 1) { + this.controlb3 = true + } + if (answer.b4 === 1) { + this.controlb4 = true + } + if (answer.b5 === 1) { + this.controlb5 = true + } + if (answer.b6 === 1) { + this.controlb6 = true + } + if (answer.b8 === 1) { + this.controlb8 = true + } + if (answer.b52) { + splitArr = answer.b52.split(',') + if (splitArr.indexOf('3') > -1) { + this.controlb52 = true + } + } + if (answer.b41) { + splitArr = answer.b41.split(',') + if (splitArr.indexOf('1') > -1) { + this.controlb411 = true + } + if (splitArr.indexOf('2') > -1) { + this.controlb412 = true + } + } + if (answer.b42) { + splitArr = answer.b42.split(',') + if (splitArr.indexOf('5') > -1) { + this.controlb42 = true + } + } + if (answer.b48) { + splitArr = answer.b48.split(',') + if (splitArr.indexOf('12') > -1) { + this.controlb48 = true + } + } + if (answer.b414) { + splitArr = answer.b414.split(',') + if (splitArr.indexOf('4') > -1) { + this.controlb41 = true + } + } + if (answer.b43) { + splitArr = answer.b43.split(',') + if (splitArr.indexOf('1') > -1) { + this.controlb431 = true + } + if (splitArr.indexOf('2') > -1) { + this.controlb432 = true + } + } + if (answer.b431) { + splitArr = answer.b431.split(',') + if (splitArr.indexOf('7') > -1) { + this.controlb43 = true + } + } + if (answer.b433) { + splitArr = answer.b433.split(',') + if (splitArr.indexOf('2') > -1) { + this.controlb433 = true + } + } + if (answer.b44) { + splitArr = answer.b44.split(',') + if (splitArr.indexOf('4') > -1) { + this.controlb44 = true + } + } + if (answer.b52) { + splitArr = answer.b52.split(',') + if (splitArr.indexOf('3') > -1) { + this.controlb52 = true + } + } + if (answer.b81) { + splitArr = answer.b81.split(',') + if (splitArr.indexOf('5') > -1) { + this.controlb81 = true + } + } + } + return answer + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + save() { + var re = this.form.getFieldsValue() + re = { + ...re, + 'b31': typeof re['b31'] !== 'undefined' ? re['b31'].join(',') : '', + 'b41': typeof re['b41'] !== 'undefined' ? re['b41'].join(',') : '', + 'b42': typeof re['b42'] !== 'undefined' ? re['b42'].join(',') : '', + 'b414': typeof re['b414'] !== 'undefined' ? re['b414'].join(',') : '', + 'b43': typeof re['b43'] !== 'undefined' ? re['b43'].join(',') : '', + 'b431': typeof re['b431'] !== 'undefined' ? re['b431'].join(',') : '', + 'b433': typeof re['b433'] !== 'undefined' ? re['b433'].join(',') : '', + 'b44': typeof re['b44'] !== 'undefined' ? re['b44'].join(',') : '', + 'b52': typeof re['b52'] !== 'undefined' ? re['b52'].join(',') : '', + 'b81': typeof re['b81'] !== 'undefined' ? re['b81'].join(',') : '', + 'b48': typeof re['b48'] !== 'undefined' ? re['b48'].join(',') : '', + 'b711': typeof re['b711'] !== 'undefined' ? re['b711'].format('YYYY-MM-DD') : '', + 'b721': typeof re['b721'] !== 'undefined' ? re['b721'].format('YYYY-MM-DD') : '' + } + var that = this + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.hxxt && this.hxxt.hxxtId) { + re.hxxtId = this.hxxt.hxxtId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.$message.success(res.msg) + that.spinning = false + that.getFormData() + // params = new URLSearchParams() + // params.append('patientBasisId', that.patientBasisId) + // getPatientBasis(params) + // .then(res => { + // that.orgTree = res.data.list + // that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + // }) + // .catch(error => { + // console.log(error) + // }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + withdraw() { + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.hxxt.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + handleNone(e, d, v, arr) { + if(e.target.checked){ + let data = {} + data[d] = [v] + this.$nextTick(() => { + this.form.setFieldsValue(data) + arr.forEach((t) => { + this[t] = false + }) + }) + } + }, + detect(d, v) { + if(Array.isArray(this.form.getFieldValue(d)) && this.form.getFieldValue(d).indexOf(v) > -1) { + return true + } else { + return false + } + }, + _importData() { + var that = this + this.$confirm({ + title: '是否确定导入数据?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('basisMarkId', that.maskId) + params.append('patientBasisId', that.patientBasisId) + exportFormData(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + that.hxxt = _.extend(that.hxxt || {}, that.dealAnswers(res.data.data.hxxt)) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + + .treeSubTitle { + font-size: 14px; + } + + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/task/components/mask-19.vue b/src/views/task/components/mask-19.vue new file mode 100644 index 0000000000..d5d5492658 --- /dev/null +++ b/src/views/task/components/mask-19.vue @@ -0,0 +1,1053 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!</p> + <div class="title">1.CT基本信息</div> + <a-form-item label="(1) CT检查日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['a1', {...dateRequire, initialValue: initValue('a1', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="(2) 图像类型:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a2', {...selectRequired, initialValue: initValue('a2')}]"> + <a-radio value="1">HRCT</a-radio> + <a-radio value="2">CT</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="上传图像:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <div class="clearfix" style="margin-top: 10px;"> + <a-upload :action="uploadUrl" listType="picture-card" :fileList="fileList" @preview="handlePreview" @change="handleChange"> + <div v-if="fileList.length < 10"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-button style="position: absolute;top: 84px;left: 120px;font-size: 12px;padding: 0 5px;height: 30px;" @click="_import" v-if="fileList.length === 1">OCR识别</a-button> + <a-modal :visible="previewVisible" :footer="null" @cancel="handleCancel"> + <img alt="example" style="width: 100%" :src="previewImage" /> + </a-modal> + </div> + </a-form-item> + <a-form-item label="放射学表现:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-textarea style="top: 2px;" v-decorator="['a21', {initialValue: initValue('a21')}]" autocomplete="off"></a-textarea> + </a-form-item> + <a-form-item label="放射学诊断:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-textarea style="top: 2px;" v-decorator="['a22', {initialValue: initValue('a22')}]" autocomplete="off"></a-textarea> + </a-form-item> + <div class="title">2.Reiff影像评分</div> + <a-form-item label="支扩CT图像:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b', {...selectRequired, initialValue: initValue('b', 'array')}]"> + <a-checkbox value="1" @change="changeSelect($event, 'controla3')">右上叶</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controla4')">左上叶</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'controla5')">右中叶</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'controla6')">左舌叶</a-checkbox> + <a-checkbox value="5" @change="changeSelect($event, 'controla7')">右下叶</a-checkbox> + <a-checkbox value="6" @change="changeSelect($event, 'controla8')">左下叶</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="右上叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla3"> + <a-radio-group v-decorator="['a3', {...selectRequired, initialValue: initValue('a3')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="左上叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla4"> + <a-radio-group v-decorator="['a4', {...selectRequired, initialValue: initValue('a4')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="右中叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla5"> + <a-radio-group v-decorator="['a5', {...selectRequired, initialValue: initValue('a5')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="左舌叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla6"> + <a-radio-group v-decorator="['a6', {...selectRequired, initialValue: initValue('a6')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="右下叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla7"> + <a-radio-group v-decorator="['a7', {...selectRequired, initialValue: initValue('a7')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="左下叶:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla8"> + <a-radio-group v-decorator="['a8', {...selectRequired, initialValue: initValue('a8')}]" @change="computeReiff"> + <a-radio value="1">柱状</a-radio> + <a-radio value="2">静脉曲张型(混合型)</a-radio> + <a-radio value="3">囊状</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="影像Reiff评分:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['a9', {initialValue: initValue('a9')}]" :readOnly="true" autocomplete="off"></a-input> + </a-form-item> + <div class="title">3.Bhalla影像学评分 <a-icon type="arrows-alt" v-if="collap" style="cursor: pointer;" @click="collap = !collap" /><a-icon type="shrink" v-else @click="collap = !collap" style="cursor: pointer;" /></div> + <a-form-item label="(1) 支气管扩张程度:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a10', {initialValue: initValue('a10')}]" @change="computeBhalla" style="line-height: 30px;"> + <a-radio value="0">无</a-radio> + <a-radio value="1">轻度(管腔直径为临近血管直径的1-2倍)</a-radio> + <a-radio value="2">中度(管腔直径为临近血管直径的2-3倍)</a-radio> + <a-radio value="3">重度(管腔直径超过临近血管直径的3倍)</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(2) 支气管壁增厚情况" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a11', {initialValue: initValue('a11')}]" @change="computeBhalla" style="line-height: 30px;"> + <a-radio value="0">无</a-radio> + <a-radio value="1">轻度(支气管壁的厚度相当于临近血管壁厚度)</a-radio> + <a-radio value="2">中度(支气管壁的厚度相当于临近血管壁厚度的1-2倍)</a-radio> + <a-radio value="3">重度(支气管壁的厚度相当于临近血管壁厚度的2倍)</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(3) 支气管扩张的范围(肺段数):" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a12', {initialValue: initValue('a12')}]" @change="computeBhalla"> + <a-radio value="0">无</a-radio> + <a-radio value="1">1-5</a-radio> + <a-radio value="2">6-9</a-radio> + <a-radio value="3">>9</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(4) 支气管管腔黏液阻塞范围(肺段数):" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a13', {initialValue: initValue('a13')}]" @change="computeBhalla"> + <a-radio value="0">无</a-radio> + <a-radio value="1">1-5</a-radio> + <a-radio value="2">6-9</a-radio> + <a-radio value="3">>9</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(5) 存在脓肿的范围(肺段数):" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a14', {initialValue: initValue('a14')}]" @change="computeBhalla"> + <a-radio value="0">无</a-radio> + <a-radio value="1">1-5</a-radio> + <a-radio value="2">6-9</a-radio> + <a-radio value="3">>9</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(6) 扩张支气管的分级数" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a15', {initialValue: initValue('a15')}]" @change="computeBhalla"> + <a-radio value="0">无</a-radio> + <a-radio value="1">超过4级</a-radio> + <a-radio value="2">超过5级</a-radio> + <a-radio value="3">超过6级</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(7) 肺大疱数" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a16', { initialValue: initValue('a16')}]" @change="computeBhalla"> + <a-radio value="0">无</a-radio> + <a-radio value="1">单侧(<4)</a-radio> + <a-radio value="2">双侧(<4)</a-radio> + <a-radio value="3">>4</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(8) 肺气肿的范围" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a17', { initialValue: initValue('a17')}]" @change="computeBhalla"> + <a-radio value="0">无</a-radio> + <a-radio value="1">1-5</a-radio> + <a-radio value="2">>5</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(9) 肺不张/实变的" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-radio-group v-decorator="['a18', { initialValue: initValue('a18')}]" @change="computeBhalla"> + <a-radio value="0">无</a-radio> + <a-radio value="1">肺亚段</a-radio> + <a-radio value="2">肺段/肺叶</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(10) Bhalla影像学评分:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-show="!collap"> + <a-popover> + <template slot="content"> + <img src="../../../assets/bhalla.jpg" style="height: 400px;" /> + </template> + <a-icon type="exclamation-circle" style="position: relative;left: -20px;color: #0399ec;cursor: pointer;" /> + </a-popover> + <a-input style="width: 240px;" v-decorator="['a19', {initialValue: initValue('a19')}]" :readOnly="true" autocomplete="off"></a-input> + </a-form-item> + <div class="title">4.支扩类型</div> + <a-form-item label="支扩类型" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-radio-group v-decorator="['a20', {...selectRequired, initialValue: initValue('a20')}]" @change="computeBhalla"> + <a-radio value="2">柱状</a-radio> + <a-radio value="3">静脉曲张型(混合型)</a-radio> + <a-radio value="1">囊状</a-radio> + </a-radio-group> + </a-form-item> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, computeScore, recoverSubmit } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { getOcrResult } from '@/api/basis' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +export default { + name: 'task19', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + spinning: false, + previewVisible: false, + collap: true, + previewImage: '', + uploadUrl: process.env.VUE_APP_API_UPLOAD_URL, + viewPicUrl: process.env.VUE_APP_API_VIEW_PIC_URL, + fileList: [], + markName: 'xbyxx', + title: '年访视', + openKeys: [], + defaultSelectedKeys: [19], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: '100%', + "padding-right": "0px", + "border-right": "1px solid #ddd" + }, + baselineFormStyle: { + // height: '444px', + 'padding-top': '52px' + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 6, offset: 6 } + }, + labelColOffset2: { + md: { span: 3, offset: 6 } + }, + wrapperOffset: { + md: { span: 12 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + xbyxx: undefined, + executeStatus: undefined, + controla3: false, + controla4: false, + controla5: false, + controla6: false, + controla7: false, + controla8: false, + controla9: false, + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + this.getFormData() + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeSelect(e, t) { + var arr = ['controla3', 'controla4', 'controla5', 'controla6', 'controla7', 'controla8'] + if (arr.indexOf(t) > -1 && !e.target.checked) { + this.computeReiff() + } + this[t] = e.target.checked + }, + changeRadio(e, t) { + if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + this.maskId = e.key + if ((e.key >= 37 && e.key <= 42) || (e.key >= 45 && e.key <= 50)) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + this.maskId) + } else { + this.$router.replace('/list/task/' + this.patientBasisId + '/' + this.maskId) + } + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'a1': typeof re['a1'] !== 'undefined' ? re['a1'].format('YYYY-MM-DD') : '', + 'b': typeof re['b'] !== 'undefined' ? re['b'].join(',') : '' + } + console.log(re) + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.xbyxx && this.xbyxx.xbyxxId) { + re.xbyxxId = this.xbyxx.xbyxxId + } + //附件 + if (this.fileList && this.fileList.length) { + var a = [] + _.each(this.fileList, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + that.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + getFormData() { + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + if (res.data && res.data.xbyxx) { + for (let key of Object.keys(res.data.xbyxx)) { + if (res.data.xbyxx[key] === 0) { + res.data.xbyxx[key] = "0"; + } + } + that.xbyxx = that.dealAnswers(res.data.xbyxx) + } + if (res.data && res.data.annexListXbyxx) { + that.fileList = _.map(res.data.annexListXbyxx, function(v) { + return { + uid: v.annexId, + url: that.viewPicUrl + v.annexAddress, + name: v.annexAddress, + status: 'done' + } + }) + } + }) + .catch(error => { + console.log(error) + }) + }, + save() { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'a1': typeof re['a1'] !== 'undefined' ? re['a1'].format('YYYY-MM-DD') : '', + 'b': typeof re['b'] !== 'undefined' ? re['b'].join(',') : '' + } + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.xbyxx && this.xbyxx.xbyxxId) { + re.xbyxxId = this.xbyxx.xbyxxId + } + //附件 + if (this.fileList && this.fileList.length) { + var a = [] + _.each(this.fileList, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + // var fileName = _.map(this.fileList, function(v) { return v.response ? v.response.fileName : v.name }) + params.append('fileName', JSON.stringify(a)) + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + that.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + initValue(key, type = 'normal') { + if (!this.xbyxx) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.xbyxx[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.xbyxx[key]) + } else if (type === 'array') { + return this.xbyxx[key].split(',') + } else { + return this.xbyxx[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + var splitArr = [] + if (answer.b) { + splitArr = answer.b.split(',') + if (splitArr.indexOf('1') > -1) { + this.controla3 = true + } + if (splitArr.indexOf('2') > -1) { + this.controla4 = true + } + if (splitArr.indexOf('3') > -1) { + this.controla5 = true + } + if (splitArr.indexOf('4') > -1) { + this.controla6 = true + } + if (splitArr.indexOf('5') > -1) { + this.controla7 = true + } + if (splitArr.indexOf('6') > -1) { + this.controla8 = true + } + } + } + return answer + }, + computeReiff() { + var that = this + this.$nextTick(() => { + var params = new URLSearchParams() + params.append('scoreType', 'reiff') + params.append('xbyxxStr', JSON.stringify(that.form.getFieldsValue())) + computeScore(params) + .then(res => { + console.log(res.data.a9) + that.form.setFieldsValue({ + a9: res.data.a9 + }) + let arr = _.values(that.form.getFieldsValue(['a3', 'a4', 'a5', 'a6', 'a7', 'a8'])) + + if(_.some(arr, function(v){ return v === 3 || v === '3' })) { + that.form.setFieldsValue({ + a20: '1' + }) + } else if(_.some(arr, function(v){ return v === 2 || v === '2' })) { + that.form.setFieldsValue({ + a20: '3' + }) + } else { + that.form.setFieldsValue({ + a20: '2' + }) + } + }) + .catch(error => { + console.log(error) + }) + }) + }, + computeBhalla() { + var that = this + this.$nextTick(() => { + var params = new URLSearchParams() + params.append('scoreType', 'bhalla') + params.append('xbyxxStr', JSON.stringify(that.form.getFieldsValue())) + computeScore(params) + .then(res => { + console.log(res.data.a9) + that.form.setFieldsValue({ + a19: res.data.a19 + }) + }) + .catch(error => { + console.log(error) + }) + }) + }, + handleCancel() { + this.previewVisible = false; + }, + handlePreview(file) { + this.previewImage = file.url || file.thumbUrl; + this.previewVisible = true; + }, + handleChange({ fileList }) { + var that = this + this.fileList = fileList; + if (fileList.every(function(v) { return v.status === 'done'})) { + this.spinning = false + this.fileList.forEach((f,i) => { + if(f.response){ + that.$set(that.fileList,i,{ + name: f.response.fileName, + status: 'done', + uid: f.uid, + url: f.response.data.src + }) + } + }) + } + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + _import() { + this.spinning = true + var params = new URLSearchParams() + params.append('type', 6) + params.append('url', this.fileList[0].response.data.src) + var that = this + getOcrResult(params) + .then(res => { + console.log(res.data) + this.spinning = false + this.$message.success(res.data.info) + this.xbyxx = _.extend(this.xbyxx || {}, this.dealAnswers(res.data)) + that.form.setFieldsValue(that.xbyxx) + }) + .catch(error => { + this.confirmLoading = false + }) + }, + withdraw(){ + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.xbyxx.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + .treeSubTitle{ + font-size: 14px; + } + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 20px 20px 80px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/task/components/mask-20.vue b/src/views/task/components/mask-20.vue new file mode 100644 index 0000000000..ab491f4c46 --- /dev/null +++ b/src/views/task/components/mask-20.vue @@ -0,0 +1,1657 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!</p> + <a-form-item label="采样性质(多选):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['a', {...selectRequired, initialValue: initValue('a', 'array')}]"> + <a-checkbox value="1" @change="changeSelect($event, 'control1')" :disabled="detect('a', '4') || control4">细菌</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'control2')" :disabled="detect('a', '4') || control4">真菌</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'control3')" :disabled="detect('a', '4') || control4">分枝杆菌</a-checkbox> + <a-checkbox value="4" @change="handleNone($event, 'a', '4', [], 'control4')">无</a-checkbox> + </a-checkbox-group> + </a-form-item> + <div v-if="control1"> + <div class="title">1.细菌</div> + <a-form-item label="(1) 取样日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['a1', {...dateRequire, initialValue: initValue('a1', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="(2) 是否本院:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['a2', {...require1, initialValue: initValue('a2')}]" @change="changeRadio($event, 'controla2')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="医院名称" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controla2"> + <a-input style="width: 240px;" v-decorator="['a21', {...inputRequired, initialValue: initValue('a21')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 标本类型:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['a3', {...selectRequired, initialValue: initValue('a3', 'array')}]"> + <a-checkbox value="1" @change="changeSelect($event, 'controla31')">痰液</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controla32')">诱导痰</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'controla33')">支气管肺泡灌洗液</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'controla34')">血标本</a-checkbox> + <a-checkbox value="5">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="痰液培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla31"> + <a-radio-group v-decorator="['a31', {...selectRequired, initialValue: initValue('a31')}]"> + <a-radio value="0">阴性</a-radio> + <a-radio value="1">阳性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="痰液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controla31"> + <a-radio-group v-decorator="['a311', {...selectRequired, initialValue: initValue('a311')}]" @change="changeRadio($event, 'controla3113')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他痰液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controla3113"> + <a-input style="width: 240px;" v-decorator="['a3111', {...inputRequired, initialValue: initValue('a3111')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="诱导痰培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla32"> + <a-radio-group v-decorator="['a32', {...selectRequired, initialValue: initValue('a32')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="诱导痰检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controla32"> + <a-radio-group v-decorator="['a321', {...selectRequired, initialValue: initValue('a321')}]" @change="changeRadio($event, 'controla3213')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他诱导痰检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controla3213"> + <a-input style="width: 240px;" v-decorator="['a3211', {...inputRequired, initialValue: initValue('a3211')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="支气管肺泡灌洗液培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla33"> + <a-radio-group v-decorator="['a33', {...selectRequired, initialValue: initValue('a33')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="支气管肺泡灌洗液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controla33"> + <a-radio-group v-decorator="['a331', {...selectRequired, initialValue: initValue('a331')}]" @change="changeRadio($event, 'controla3313')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他支气管肺泡灌洗液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controla3313"> + <a-input style="width: 240px;" v-decorator="['a3311', {...inputRequired, initialValue: initValue('a3311')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="血标本培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla34"> + <a-radio-group v-decorator="['a34', {...selectRequired, initialValue: initValue('a34')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="血标本检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controla34"> + <a-radio-group v-decorator="['a341', {...selectRequired, initialValue: initValue('a341')}]" @change="changeRadio($event, 'controla3413')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他血标本检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controla3413"> + <a-input style="width: 240px;" v-decorator="['a3411', {...inputRequired, initialValue: initValue('a3411')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(4) 是否分离到微生物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a4', {...require1, initialValue: initValue('a4')}]" @change="changeRadio($event, 'controla4')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="分离到微生物:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla4"> + <a-checkbox-group v-decorator="['a42', {...selectRequired, initialValue: initValue('a42', 'array')}]" class="control-m-line"> + <a-checkbox value="0" @change="showList($event, '铜绿假单胞菌', 'controla420', true)">铜绿假单胞菌</a-checkbox> + <add-table :dataSource="optionDataSource[0]" v-if="controla420" :type1="type1" @listen="changeType1" :isFirst="true" :picSource="picList1[0]" @changePic1="changePic1($event, 0)"></add-table> + <a-checkbox value="2" @change="showList($event, '肺炎克雷伯菌', 'controla422', true)">肺炎克雷伯菌</a-checkbox> + <add-table :dataSource="optionDataSource[2]" v-if="controla422" :isFirst="true" :picSource="picList1[2]" @changePic1="changePic1($event, 2)"></add-table> + <a-checkbox value="10" @change="showList($event, '大肠杆菌', 'controla4210', true)">大肠杆菌</a-checkbox> + <add-table :dataSource="optionDataSource[10]" v-if="controla4210" :isFirst="true" :picSource="picList1[10]" @changePic1="changePic1($event, 10)"></add-table> + <a-checkbox value="3" @change="showList($event, '阴沟肠杆菌', 'controla423', true)">阴沟肠杆菌</a-checkbox> + <add-table :dataSource="optionDataSource[3]" v-if="controla423" :isFirst="true" :picSource="picList1[3]" @changePic1="changePic1($event, 3)"></add-table> + <a-checkbox value="1" @change="showList($event, '肺炎链球菌', 'controla421', true)">肺炎链球菌</a-checkbox> + <add-table :dataSource="optionDataSource[1]" v-if="controla421" :isFirst="true" :picSource="picList1[1]" @changePic1="changePic1($event, 1)"></add-table> + <a-checkbox value="6" @change="showList($event, '金黄色葡萄球菌', 'controla426', true)">金黄色葡萄球菌</a-checkbox> + <add-table :dataSource="optionDataSource[6]" v-if="controla426" :isFirst="true" :picSource="picList1[6]" @changePic1="changePic1($event, 6)"></add-table> + <a-checkbox value="8" @change="showList($event, '流感嗜血杆菌', 'controla428', true)">流感嗜血杆菌</a-checkbox> + <add-table :dataSource="optionDataSource[8]" v-if="controla428" :isFirst="true" :picSource="picList1[8]" @changePic1="changePic1($event, 8)"></add-table> + <a-checkbox value="4" @change="showList($event, '副流感嗜血杆菌', 'controla424', true)">副流感嗜血杆菌</a-checkbox> + <add-table :dataSource="optionDataSource[4]" v-if="controla424" :isFirst="true" :picSource="picList1[4]" @changePic1="changePic1($event, 4)"></add-table> + <a-checkbox value="9" @change="showList($event, '卡他莫拉菌', 'controla429', true)">卡他莫拉菌</a-checkbox> + <add-table :dataSource="optionDataSource[9]" v-if="controla429" :isFirst="true" :picSource="picList1[9]" @changePic1="changePic1($event, 9)"></add-table> + <a-checkbox value="5" @change="showList($event, '鲍曼不动杆菌', 'controla425', true)">鲍曼不动杆菌</a-checkbox> + <add-table :dataSource="optionDataSource[5]" v-if="controla425" :isFirst="true" :picSource="picList1[5]" @changePic1="changePic1($event, 5)"></add-table> + <a-checkbox value="11" @change="showList($event, '洋葱霍尔德菌', 'controla4211', true)">洋葱霍尔德菌</a-checkbox> + <add-table :dataSource="optionDataSource[11]" v-if="controla4211" :isFirst="true" :picSource="picList1[11]" @changePic1="changePic1($event, 11)"></add-table> + <a-checkbox value="12" @change="showList($event, '嗜麦芽窄食单胞菌', 'controla4212', true)">嗜麦芽窄食单胞菌</a-checkbox> + <add-table :dataSource="optionDataSource[12]" v-if="controla4212" :isFirst="true" :picSource="picList1[12]" @changePic1="changePic1($event, 12)"></add-table> + <a-checkbox value="7" @change="showList($event, '其他', 'controla427', true)">其他</a-checkbox> + <a-input style="width: 240px;margin-right: 10px;" v-if="controla427" @change="otherChange($event, 7, true)" autocomplete="off" v-decorator="['otherName1', {...inputRequired, initialValue: otherName1}]"></a-input> + <add-table :dataSource="optionDataSource[7]" v-if="controla427" :isFirst="true" :picSource="picList1[7]" @changePic1="changePic1($event, 7)"></add-table> + </a-checkbox-group> + </a-form-item> + <a-form-item label="铜绿假单胞菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla420"> + <a-radio-group v-decorator="['a421', {...require1, initialValue: initValue('a421')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="肺炎克雷伯菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla422"> + <a-radio-group v-decorator="['a422', {...require1, initialValue: initValue('a422')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="大肠杆菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla4210"> + <a-radio-group v-decorator="['a423', {...require1, initialValue: initValue('a423')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="阴沟肠杆菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla423"> + <a-radio-group v-decorator="['a424', {...require1, initialValue: initValue('a424')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="肺炎链球菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla421"> + <a-radio-group v-decorator="['a425', {...require1, initialValue: initValue('a425')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="金黄色葡萄球菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla426"> + <a-radio-group v-decorator="['a426', {...require1, initialValue: initValue('a426')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="流感嗜血杆菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla428"> + <a-radio-group v-decorator="['a427', {...require1, initialValue: initValue('a427')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="副流感嗜血杆菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla424"> + <a-radio-group v-decorator="['a428', {...require1, initialValue: initValue('a428')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="卡他莫拉菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla429"> + <a-radio-group v-decorator="['a429', {...require1, initialValue: initValue('a429')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="鲍曼不动杆菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla425"> + <a-radio-group v-decorator="['a4210', {...require1, initialValue: initValue('a4210')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="洋葱霍尔德菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla4211"> + <a-radio-group v-decorator="['a4211', {...require1, initialValue: initValue('a4211')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="嗜麦芽窄食单胞菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla4212"> + <a-radio-group v-decorator="['a4212', {...require1, initialValue: initValue('a4212')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controla427"> + <a-radio-group v-decorator="['a4213', {...require1, initialValue: initValue('a4213')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + </div> + <div v-if="control2"> + <div class="title">2.真菌</div> + <a-form-item label="取样日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['b1', {...dateRequire, initialValue: initValue('b1', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="是否本院:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['b2', {...require1, initialValue: initValue('b2')}]" @change="changeRadio($event, 'controlb2')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="医院名称" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlb2"> + <a-input style="width: 240px;" v-decorator="['b21', {...inputRequired, initialValue: initValue('b21')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="标本类型:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['b3', {...selectRequired, initialValue: initValue('b3', 'array')}]"> + <a-checkbox value="1" @change="changeSelect($event, 'controlb31')">痰液</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controlb32')">诱导痰</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'controlb33')">支气管肺泡灌洗液</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'controlb34')">血标本</a-checkbox> + <a-checkbox value="5">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="痰液培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlb31"> + <a-radio-group v-decorator="['b31', {...selectRequired, initialValue: initValue('b31')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="痰液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controlb31"> + <a-radio-group v-decorator="['b311', {...selectRequired, initialValue: initValue('b311')}]" @change="changeRadio($event, 'controlb3113')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他痰液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlb3113"> + <a-input style="width: 240px;" v-decorator="['b3111', {...inputRequired, initialValue: initValue('b3111')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="诱导痰培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlb32"> + <a-radio-group v-decorator="['b32', {...selectRequired, initialValue: initValue('b32')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="诱导痰检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controlb32"> + <a-radio-group v-decorator="['b321', {...selectRequired, initialValue: initValue('b321')}]" @change="changeRadio($event, 'controlb3213')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他诱导痰检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlb3213"> + <a-input style="width: 240px;" v-decorator="['b3211', {...inputRequired, initialValue: initValue('b3211')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="支气管肺泡灌洗液培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlb33"> + <a-radio-group v-decorator="['b33', {...selectRequired, initialValue: initValue('b33')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="支气管肺泡灌洗液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controlb33"> + <a-radio-group v-decorator="['a331', {...selectRequired, initialValue: initValue('b331')}]" @change="changeRadio($event, 'controlb3313')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他支气管肺泡灌洗液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlb3313"> + <a-input style="width: 240px;" v-decorator="['b3311', {...inputRequired, initialValue: initValue('b3311')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="血标本培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlb34"> + <a-radio-group v-decorator="['b34', {...selectRequired, initialValue: initValue('b34')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="血标本检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controlb34"> + <a-radio-group v-decorator="['b341', {...selectRequired, initialValue: initValue('b341')}]" @change="changeRadio($event, 'controlb3413')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他血标本检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlb3413"> + <a-input style="width: 240px;" v-decorator="['b3411', {...inputRequired, initialValue: initValue('b3411')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="是否分离到微生物:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controla5"> + <a-radio-group v-decorator="['b4', {...require1, initialValue: initValue('b4')}]" @change="changeRadio($event, 'controlb4')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="真菌:" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb4"> + <a-checkbox-group v-decorator="['b42', {...selectRequired, initialValue: initValue('b42', 'array')}]"> + <a-checkbox value="0">白色念珠菌</a-checkbox> + <a-checkbox value="1">曲霉</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controlb422')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item class="border-dotted" label="其他真菌" :labelCol="labelColHor" :wrapperCol="wrapperHor" v-if="controlb422"> + <a-input style="width: 240px;" v-decorator="['b43', {...inputRequired, initialValue: initValue('b43')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <div v-if="control3"> + <div class="title">3.分枝杆菌</div> + <a-form-item label="(1) 取样日期:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" style="width: 240px;" v-decorator="['c1', {...dateRequire, initialValue: initValue('c1', 'time')}]" :disabledDate="disabledDate"></a-date-picker> + </a-form-item> + <a-form-item label="(2) 是否本院:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['c2', {...require1, initialValue: initValue('c2')}]" @change="changeRadio($event, 'controlc2')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item class="border-dotted" label="医院名称" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlc2"> + <a-input style="width: 240px;" v-decorator="['c21', {...inputRequired, initialValue: initValue('c21')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 标本类型:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['c3', {...selectRequired, initialValue: initValue('c3', 'array')}]"> + <a-checkbox value="1" @change="changeSelect($event, 'controlc31')">痰液</a-checkbox> + <a-checkbox value="2" @change="changeSelect($event, 'controlc32')">诱导痰</a-checkbox> + <a-checkbox value="3" @change="changeSelect($event, 'controlc33')">支气管肺泡灌洗液</a-checkbox> + <a-checkbox value="4" @change="changeSelect($event, 'controlc34')">血标本</a-checkbox> + <a-checkbox value="5">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="痰液培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlc31"> + <a-radio-group v-decorator="['c31', {...selectRequired, initialValue: initValue('c31')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="痰液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controlc31"> + <a-radio-group v-decorator="['c311', {...selectRequired, initialValue: initValue('c311')}]" @change="changeRadio($event, 'controlc3113')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他痰液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlc3113"> + <a-input style="width: 240px;" v-decorator="['c3111', {...inputRequired, initialValue: initValue('c3111')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="诱导痰培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlc32"> + <a-radio-group v-decorator="['c32', {...selectRequired, initialValue: initValue('c32')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="诱导痰检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controlc32"> + <a-radio-group v-decorator="['c321', {...selectRequired, initialValue: initValue('c321')}]" @change="changeRadio($event, 'controlc3213')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他诱导痰检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlc3213"> + <a-input style="width: 240px;" v-decorator="['c3211', {...inputRequired, initialValue: initValue('c3211')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="支气管肺泡灌洗液培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlc33"> + <a-radio-group v-decorator="['c33', {...selectRequired, initialValue: initValue('c33')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="支气管肺泡灌洗液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controlc33"> + <a-radio-group v-decorator="['c331', {...selectRequired, initialValue: initValue('c331')}]" @change="changeRadio($event, 'controlc3313')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他支气管肺泡灌洗液检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlc3313"> + <a-input style="width: 240px;" v-decorator="['c3311', {...inputRequired, initialValue: initValue('c3311')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="血标本培养结果:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlc34"> + <a-radio-group v-decorator="['c34', {...selectRequired, initialValue: initValue('c34')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="0">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="血标本检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" class="border-dotted" v-if="controlc34"> + <a-radio-group v-decorator="['c341', {...selectRequired, initialValue: initValue('c341')}]" @change="changeRadio($event, 'controlc3413')"> + <a-radio value="1">普通培养</a-radio> + <a-radio value="2">NGS</a-radio> + <a-radio value="3">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他血标本检测方法:" :labelCol="labelColOffset2" :wrapperCol="wrapperOffset2" v-if="controlc3413"> + <a-input style="width: 240px;" v-decorator="['c3411', {...inputRequired, initialValue: initValue('c3411')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="分离到微生物:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['c4', {...selectRequired, initialValue: initValue('c4', 'array')}]"> + <a-checkbox value="0" :disabled="detect('c4', '2') || initC4">结核分枝杆菌</a-checkbox> + <a-checkbox value="1" :disabled="detect('c4', '2') || initC4" @change="changeSelect($event, 'controlc41')">非结核分枝杆菌</a-checkbox> + <a-checkbox value="2" @change="handleNone($event, 'c4', '2', ['controlc41'])">阴性</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="非结核分枝杆菌检测方式:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted" v-if="controlc41"> + <a-radio-group v-decorator="['c422', {...require1, initialValue: initValue('c422')}]"> + <a-radio value="1">MIC</a-radio> + <a-radio value="2">纸片法</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlc41"> + <a-form-item label="非结核分枝杆菌:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-checkbox-group v-decorator="['c41', {...selectRequired, initialValue: initValue('c41', 'array')}]"> + <a-checkbox value="1">堪萨斯分枝杆菌</a-checkbox> + <a-checkbox value="2">龟分枝杆菌</a-checkbox> + <a-checkbox value="3">脓肿分枝杆菌</a-checkbox> + <a-checkbox value="4">鸟分枝杆菌复合群(MAC)</a-checkbox> + <a-checkbox value="5" @change="changeSelect($event, 'controlc415')">其他</a-checkbox> + </a-checkbox-group> + </a-form-item> + <a-form-item label="其他非结核分枝杆菌名称:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controlc415"> + <a-input style="width: 240px;margin-right: 10px;" autocomplete="off"></a-input> + </a-form-item> + </div> + </div> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, computeScore, getMedicineAllergyList, recoverSubmit } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import AddTable from "@/views/account/center/model/table" +import ContactForm from '@/views/account/ContactForm' +import _ from 'lodash' +import { ACCESS_TOKEN } from '@/store/mutation-types' +export default { + name: 'task20', + components: { + STree, + MyIcon, + AddTable, + ContactForm + }, + data() { + return { + optionDataSource: [], + optionDataSource2: [], + markName: 'bywsw', + title: '年访视', + openKeys: [], + defaultSelectedKeys: [20], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: '100%', + "padding-right": "0px", + "border-right": "1px solid #ddd" + }, + baselineFormStyle: { + // height: '444px', + 'padding-top': '52px' + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 7 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 17 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 3, offset: 7 } + }, + labelColOffset2: { + md: { span: 4, offset: 7 } + }, + wrapperOffset2: { + md: { span: 13 } + }, + wrapperOffset: { + md: { span: 14 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + bywsw: undefined, + controla2: false, + controla4: false, + controlb2: false, + controlb4: false, + controlc2: false, + controlc41: false, + controla420: false, + controla421: false, + controla422: false, + controla423: false, + controla424: false, + controla425: false, + controla426: false, + controla427: false, + controla428: false, + controla429: false, + controla4210: false, + controla4211: false, + controla4212: false, + controlb422: false, + controlc415: false, + controla31: false, + controla32: false, + controla33: false, + controla34: false, + controlb31: false, + controlb32: false, + controlb33: false, + controlb34: false, + controlc31: false, + controlc32: false, + controlc33: false, + controlc34: false, + spinning: false, + executeStatus: false, + control1: false, + control2: false, + control3: false, + control4: false, + type1: '', + otherName1: '', + otherName2: '', + picList1: [], + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined, + controla6: false, + controla5: false, + controlc5: false, + initC4: false, + controla3113: false, + controla3213: false, + controla3313: false, + controla3413: false, + controlb3113: false, + controlb3213: false, + controlb3313: false, + controlb3413: false, + controlc3113: false, + controlc3213: false, + controlc3313: false, + controlc3413: false + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + this.getFormData() + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + getFormData() { + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + Object.keys(res.data.bywsw).forEach(key => { + if (res.data.bywsw[key] === 0) { + res.data.bywsw[key] = "0"; + } + }); + if (res.data && res.data.bywsw) + that.bywsw = that.dealAnswers(res.data) + }) + .catch(error => { + console.log(error) + }) + }, + changeSelect(e, t) { + var that = this + this[t] = e.target.checked; + if (t === 'control4' && e.target.checked) { + this.control1 = false + this.control2 = false + this.control3 = false + //赋值必须要延时 + setTimeout(function() { + that.form.setFieldsValue({ a: ['4'] }) + }, 0) + } + }, + changeRadio(e, t) { + if (t === 'controla2' || t === 'controlb2' || t === 'controlc2') { + if (e.target.value === '-1') { + this[t] = true + } else { + this[t] = false + } + } else if (t === 'controla4' && e.target.value === '-1') { + this.controla4 = false + this.controla420 = false + this.controla421 = false + this.controla422 = false + this.controla423 = false + this.controla424 = false + this.controla425 = false + this.controla426 = false + this.controla427 = false + this.controla428 = false + this.controla429 = false + this.controla4210 = false + this.controla4211 = false + this.controla4212 = false + } else if (t === 'controlb4' && e.target.value === '-1') { + this.controlb4 = false + this.controlb422 = false + } else if ((t !== 'controla3113' && t !== 'controla3213' && t !== 'controla3313' && t !== 'controla3413' && t !== 'controlb3113' && t !== 'controlb3213' && t !== 'controlb3313' && t !== 'controlb3413' && t !== 'controlc3113' && t !== 'controlc3213' && t !== 'controlc3313' && t !== 'controlc3413') && e.target.value === '1') { + this[t] = true + } else if((t === 'controla3113' || t === 'controla3213' || t === 'controla3313' || t === 'controla3413' || + t === 'controlb3113' || t === 'controlb3213' || t === 'controlb3313' || t === 'controlb3413' || + t === 'controlc3113' || t === 'controlc3213' || t === 'controlc3313' || t === 'controlc3413') && e.target.value === '3') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + if ((e.key >= 37 && e.key <= 42) || (e.key >= 45 && e.key <= 50)) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + e.key) + } else { + this.$router.replace('/list/task/' + this.patientBasisId + '/' + e.key) + } + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + const allergy = [] + for (var key in this.optionDataSource) { + _.each(this.optionDataSource[key], function(item) { + allergy.push({ + markId: 1, + microbeName: item.microbeName, + antibiotic: item.antibiotic, + antibioticResult: item.antibioticResult, + allergyValue: item.allergyValue + }) + }) + } + for (var key in this.optionDataSource2) { + _.each(this.optionDataSource2[key], function(item) { + allergy.push({ + markId: 2, + microbeName: item.microbeName, + antibiotic: item.antibiotic, + antibioticResult: item.antibioticResult, + allergyValue: item.allergyValue + }) + }) + } + //处理附件 + var alList1 = ['铜绿假单胞菌', '阴沟肠杆菌', '肺炎克雷伯菌', '肺炎链球菌', '副流感嗜血杆菌', '鲍曼不动杆菌', '金黄色葡萄球菌', this.form.getFieldValue('otherName1')] + + var pic1 = []; + if (!_.isEmpty(this.picList1)) { + pic1 = _.map(this.picList1, function(v, i) { + return '1-' + alList1[i] + '-' + v + }) + } + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'a': typeof re['a'] !== 'undefined' ? re['a'].join(',') : '', + 'a3': typeof re['a3'] !== 'undefined' ? re['a3'].join(',') : '', + 'b3': typeof re['b3'] !== 'undefined' ? re['b3'].join(',') : '', + 'c3': typeof re['c3'] !== 'undefined' ? re['c3'].join(',') : '', + 'a1': typeof re['a1'] !== 'undefined' ? re['a1'].format('YYYY-MM-DD') : '', + 'b1': typeof re['b1'] !== 'undefined' ? re['b1'].format('YYYY-MM-DD') : '', + 'c1': typeof re['c1'] !== 'undefined' ? re['c1'].format('YYYY-MM-DD') : '', + 'a42': typeof re['a42'] !== 'undefined' ? re['a42'].join(',') : '', + 'b42': typeof re['b42'] !== 'undefined' ? re['b42'].join(',') : '', + 'c4': typeof re['c4'] !== 'undefined' ? re['c4'].join(',') : '', + 'c41': typeof re['c41'] !== 'undefined' ? re['c41'].join(',') : '' + } + console.log(re) + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.bywsw && this.bywsw.bywswId) { + re.bywswId = this.bywsw.bywswId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + params.append('allergy', JSON.stringify(allergy)) + params.append('fileNameForMa', JSON.stringify(pic1)) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + save() { + const allergy = [] + for (var key in this.optionDataSource) { + _.each(this.optionDataSource[key], function(item) { + allergy.push({ + markId: 1, + microbeName: item.microbeName, + antibiotic: item.antibiotic, + antibioticResult: item.antibioticResult, + allergyValue: item.allergyValue + }) + }) + } + for (var key in this.optionDataSource2) { + _.each(this.optionDataSource2[key], function(item) { + allergy.push({ + markId: 2, + microbeName: item.microbeName, + antibiotic: item.antibiotic, + antibioticResult: item.antibioticResult, + allergyValue: item.allergyValue + }) + }) + } + //处理附件 + var alList1 = ['铜绿假单胞菌', '阴沟肠杆菌', '肺炎克雷伯菌', '肺炎链球菌', '副流感嗜血杆菌', '鲍曼不动杆菌', '金黄色葡萄球菌', this.form.getFieldValue('otherName1')] + + var pic1 = []; + if (!_.isEmpty(this.picList1)) { + pic1 = _.map(this.picList1, function(v, i) { + return '1-' + alList1[i] + '-' + v + }) + } + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'a': typeof re['a'] !== 'undefined' ? re['a'].join(',') : '', + 'a3': typeof re['a3'] !== 'undefined' ? re['a3'].join(',') : '', + 'b3': typeof re['b3'] !== 'undefined' ? re['b3'].join(',') : '', + 'c3': typeof re['c3'] !== 'undefined' ? re['c3'].join(',') : '', + 'a1': typeof re['a1'] !== 'undefined' ? re['a1'].format('YYYY-MM-DD') : '', + 'b1': typeof re['b1'] !== 'undefined' ? re['b1'].format('YYYY-MM-DD') : '', + 'c1': typeof re['c1'] !== 'undefined' ? re['c1'].format('YYYY-MM-DD') : '', + 'a42': typeof re['a42'] !== 'undefined' ? re['a42'].join(',') : '', + 'b42': typeof re['b42'] !== 'undefined' ? re['b42'].join(',') : '', + 'c4': typeof re['c4'] !== 'undefined' ? re['c4'].join(',') : '', + 'c41': typeof re['c41'] !== 'undefined' ? re['c41'].join(',') : '' + } + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.bywsw && this.bywsw.bywswId) { + re.bywswId = this.bywsw.bywswId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + params.append('allergy', JSON.stringify(allergy)) + params.append('fileNameForMa', JSON.stringify(pic1)) + + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + initValue(key, type = 'normal') { + if (!this.bywsw) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.bywsw[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.bywsw[key]) + } else if (type === 'array') { + return this.bywsw[key].split(',') + } else { + return this.bywsw[key] + '' + } + }, + dealAnswers(data) { + var that = this + var answer = data.bywsw + var alList = ['铜绿假单胞菌', '阴沟肠杆菌', '肺炎克雷伯菌', '肺炎链球菌', '副流感嗜血杆菌', '鲍曼不动杆菌', '金黄色葡萄球菌'] + if (answer && !_.isEmpty(answer)) { + var splitArr = [] + if (answer.a) { + splitArr = answer.a.split(',') + if (splitArr.indexOf('1') > -1) { + this.control1 = true + } + if (splitArr.indexOf('2') > -1) { + this.control2 = true + } + if (splitArr.indexOf('3') > -1) { + this.control3 = true + } + if (splitArr.indexOf('4') > -1) { + this.control4 = true + } + } + if (answer.a3) { + splitArr = answer.a3.split(',') + if (splitArr.indexOf('1') > -1) { + this.controla31 = true + } + if (splitArr.indexOf('2') > -1) { + this.controla32 = true + } + if (splitArr.indexOf('3') > -1) { + this.controla33 = true + } + if (splitArr.indexOf('4') > -1) { + this.controla34 = true + } + } + if(answer.a311 === 3) { + this.controla3113 = true + } + if(answer.a321 === 3) { + this.controla3213 = true + } + if(answer.a331 === 3) { + this.controla3313 = true + } + if(answer.a341 === 3) { + this.controla3413 = true + } + if(answer.b311 === 3) { + this.controlb3113 = true + } + if(answer.b321 === 3) { + this.controlb3213 = true + } + if(answer.b331 === 3) { + this.controlb3313 = true + } + if(answer.b341 === 3) { + this.controlb3413 = true + } + if(answer.c311 === 3) { + this.controlc3113 = true + } + if(answer.c321 === 3) { + this.controlc3213 = true + } + if(answer.c331 === 3) { + this.controlc3313 = true + } + if(answer.c341 === 3) { + this.controlc3413 = true + } + if (answer.b3) { + splitArr = answer.b3.split(',') + if (splitArr.indexOf('1') > -1) { + this.controlb31 = true + } + if (splitArr.indexOf('2') > -1) { + this.controlb32 = true + } + if (splitArr.indexOf('3') > -1) { + this.controlb33 = true + } + if (splitArr.indexOf('4') > -1) { + this.controlb34 = true + } + } + if (answer.c3) { + splitArr = answer.c3.split(',') + if (splitArr.indexOf('1') > -1) { + this.controlc31 = true + } + if (splitArr.indexOf('2') > -1) { + this.controlc32 = true + } + if (splitArr.indexOf('3') > -1) { + this.controlc33 = true + } + if (splitArr.indexOf('4') > -1) { + this.controlc34 = true + } + } + if (answer.a2 && answer.a2 === -1) { + this.controla2 = true + } + if (answer.a4 && answer.a4 === 1) { + this.controla4 = true + } + if (answer.a6 && answer.a6 === 1) { + this.controla6 = true + } + if (answer.b2 && answer.b2 === -1) { + this.controlb2 = true + } + if (answer.b4 && answer.b4 === 1) { + this.controlb4 = true + } + if (answer.c2 && answer.c2 === -1) { + this.controlc2 = true + } + if (answer.c4) { + splitArr = answer.c4.split(',') + if (splitArr.indexOf('1') > -1) { + this.controlc41 = true + } + if (splitArr.indexOf('2') > -1) { + this.initC4 = true + } + } + if (answer.a42) { + splitArr = answer.a42.split(',') + if (splitArr.indexOf('0') > -1) { + this.controla420 = true + } + if (splitArr.indexOf('1') > -1) { + this.controla421 = true + } + if (splitArr.indexOf('2') > -1) { + this.controla422 = true + } + if (splitArr.indexOf('3') > -1) { + this.controla423 = true + } + if (splitArr.indexOf('4') > -1) { + this.controla424 = true + } + if (splitArr.indexOf('5') > -1) { + this.controla425 = true + } + if (splitArr.indexOf('6') > -1) { + this.controla426 = true + } + if (splitArr.indexOf('7') > -1) { + this.controla427 = true + } + if (splitArr.indexOf('8') > -1) { + this.controla428 = true + } + if (splitArr.indexOf('9') > -1) { + this.controla429 = true + } + if (splitArr.indexOf('10') > -1) { + this.controla4210 = true + } + if (splitArr.indexOf('11') > -1) { + this.controla4211 = true + } + if (splitArr.indexOf('12') > -1) { + this.controla4212 = true + } + } + if (data[1]) { + _.each(alList, function(v, i) { + if (data[1][v]) { + that.optionDataSource[i] = _.map(data[1][v], function(v, i) { + return { + keyW: i, + microbeName: v.microbeName, + antibiotic: v.antibiotic, + antibioticResult: v.antibioticResult, + allergyValue: v.allergyValue + }; + }) + } + }) + var other = _.filter(data[1], function(v, k) { return alList.indexOf(k) === -1 }) + if (other && other.length) { + that.optionDataSource[7] = _.map(other[0], function(v, i) { + return { + keyW: i, + microbeName: v.microbeName, + antibiotic: v.antibiotic, + antibioticResult: v.antibioticResult, + allergyValue: v.allergyValue + }; + }) + that.otherName1 = other[0][0].microbeName + } + } + if (answer.b42) { + splitArr = answer.b42.split(',') + if (splitArr.indexOf('2') > -1) { + this.controlb422 = true + } + } + if (data[2]) { + _.each(alList, function(v, i) { + if (data[2][v]) { + that.optionDataSource2[i] = _.map(data[2][v], function(v, i) { + return { + keyW: i, + microbeName: v.microbeName, + antibiotic: v.antibiotic, + antibioticResult: v.antibioticResult, + allergyValue: v.allergyValue + }; + }) + } + }) + var other = _.filter(data[2], function(v, k) { return alList.indexOf(k) === -1 }) + if (other && other.length) { + that.optionDataSource2[7] = _.map(other[0], function(v, i) { + return { + keyW: i, + microbeName: v.microbeName, + antibiotic: v.antibiotic, + antibioticResult: v.antibioticResult, + allergyValue: v.allergyValue + }; + }) + that.otherName2 = other[0][0].microbeName + } + } + if (answer.c41) { + splitArr = answer.c41.split(',') + if (splitArr.indexOf('5') > -1) { + this.controlc415 = true + } + } + } + return answer + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + showList(e, name, controlNode, isSimple) { + if (e.target.checked) { + this[controlNode] = true + if (name == "其他") return + this.getMedicineAllergyList(name, e.target.value, isSimple) + } else { + this[controlNode] = false + if (isSimple) { + this.$set(this.optionDataSource, e.target.value, []) + } else { + this.$set(this.optionDataSource2, e.target.value, []) + } + + } + }, + getMedicineAllergyList(value, index, isSimple) { + const that = this + const params = new URLSearchParams() + params.append('microbeName', value) + getMedicineAllergyList(params).then(res => { + const optionDataSource = _.map(res.data, function(v, i) { + return { + keyW: i, + microbeName: v.microbeName, + antibiotic: v.antibiotic, + antibioticResult: v.antibioticResult, + allergyValue: v.allergyValue + }; + }) + if (isSimple) { + that.$set(that.optionDataSource, index, optionDataSource) + } else { + that.$set(that.optionDataSource2, index, optionDataSource) + } + }) + }, + otherChange(e, index, isSimple) { + this.getMedicineAllergyList(e.target.value, index, isSimple) + }, + changeType1(v) { + this.type1 = v + }, + changePic1(e, index) { + this.picList1[index] = e + }, + withdraw(){ + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.bywsw.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + handleNone(e, d, v, arr, extra) { + if(e.target.checked){ + let data = {} + data[d] = [v] + if(d === 'a') { + this.control1 = false + this.control2 = false + this.control3 = false + this.control5 = false + this[extra] = true + } + this.$nextTick(() => { + this.form.setFieldsValue(data) + arr.forEach((t) => { + this[t] = false + }) + }) + } else { + if(d === 'a') { + this.control4 = false + } + if(d === 'c4') { + this.initC4 = false + } + } + }, + detect(d, v) { + if(Array.isArray(this.form.getFieldValue(d)) && this.form.getFieldValue(d).indexOf(v) > -1) { + return true + } else { + return false + } + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + .treeSubTitle{ + font-size: 14px; + } + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +@media screen and (max-width: 1366px) { + .control-m-line.ant-checkbox-group { + top: 10px; + position: relative; + } +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/task/components/mask-21.vue b/src/views/task/components/mask-21.vue new file mode 100644 index 0000000000..8eaacd45ce --- /dev/null +++ b/src/views/task/components/mask-21.vue @@ -0,0 +1,1169 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!</p> + <div class="title">1.病因学相关检查</div> + <a-form-item label="有无新增病因学相关检查:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a', {...require2, initialValue: initValue('a')}]" @change="changeRadio($event, 'controla')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla"> + <a-form-item class="border-dotted" label="(1) 胃食管反流病量表评分:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-popover> + <template slot="content">评分标准:Gerd-Q计分>=8分,提示胃食管反流</template> + <a-icon type="exclamation-circle" style="position: relative;left: -20px;color: #0399ec;cursor: pointer;" /> + </a-popover> + <a-input style="width: 240px;" v-decorator="['z', {...inputRequired, initialValue: initValue('z')}]" autocomplete="off" :readOnly="true"></a-input> + </a-form-item> + <div class="font-w">回忆过去7天当中下列症状发生的频率:</div> + <a-form-item label="您胸骨后出现灼烧感(烧心)的频率?:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['z1', {...selectRequired, initialValue: initValue('z1')}]" @change="computeGerd"> + <a-radio value="1">0天/周</a-radio> + <a-radio value="2">1天/周</a-radio> + <a-radio value="3">2-3天/周</a-radio> + <a-radio value="4">4-7天/周</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="感觉到有胃内容物(液体或食物)上返到您的喉咙或口腔(反流)的频率?:" :labelCol="wrapper18"> + <a-radio-group v-decorator="['z2', {...selectRequired, initialValue: initValue('z2')}]" @change="computeGerd"> + <a-radio value="1">0天/周</a-radio> + <a-radio value="2">1天/周</a-radio> + <a-radio value="3">2-3天/周</a-radio> + <a-radio value="4">4-7天/周</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="您感到上腹部中央疼痛的频率?:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['z3', {...selectRequired, initialValue: initValue('z3')}]" @change="computeGerd"> + <a-radio value="1">0天/周</a-radio> + <a-radio value="2">1天/周</a-radio> + <a-radio value="3">2-3天/周</a-radio> + <a-radio value="4">4-7天/周</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="您感到恶心的频率?:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['z4', {...selectRequired, initialValue: initValue('z4')}]" @change="computeGerd"> + <a-radio value="1">0天/周</a-radio> + <a-radio value="2">1天/周</a-radio> + <a-radio value="3">2-3天/周</a-radio> + <a-radio value="4">4-7天/周</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="由于您的烧心和/或反流而难以获得良好夜间睡眠的频率?:" :labelCol="wrapper18" class="border-dotted"> + <a-radio-group v-decorator="['z5', {...selectRequired, initialValue: initValue('z5')}]" @change="computeGerd"> + <a-radio value="1">0天/周</a-radio> + <a-radio value="2">1天/周</a-radio> + <a-radio value="3">2-3天/周</a-radio> + <a-radio value="4">4-7天/周</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="除以上告知服用的药物外,您额外服用药物来缓解烧心和/或反流的频率?(如碳酸钙、氢氧化铝等抗酸剂):" :labelCol="wrapper18"> + <a-radio-group v-decorator="['z6', {...selectRequired, initialValue: initValue('z6')}]" @change="computeGerd"> + <a-radio value="1">0天/周</a-radio> + <a-radio value="2">1天/周</a-radio> + <a-radio value="3">2-3天/周</a-radio> + <a-radio value="4">4-7天/周</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(2) ABPA相关检查:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a1', {...selectRequired, initialValue: initValue('a1')}]" @change="changeRadio($event, 'controla1')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + <a-radio value="-2">未做</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla1"> + <!-- <a-form-item label="ABPA检查时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['b1', {...dateRequire, initialValue: initValue('b1', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> --> + <a-form-item label="外周血嗜酸细胞(绝对值):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-form-item :style="{ display: 'inline-block'}"> + <a-input addonAfter="*10^9/L" style="width: 240px; margin-right: 20px;" v-decorator="['a11', { initialValue: initValue('a11')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :style="{ display: 'inline-block'}"> + <a-radio-group v-decorator="['a12', {...selectRequired, initialValue: initValue('a12')}]"> + <a-radio value="1">升高</a-radio> + <a-radio value="2">正常</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + </a-form-item> + <a-form-item label="血总IgE:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-form-item :style="{ display: 'inline-block'}"> + <a-input addonAfter="IU/mL" style="width: 240px; margin-right: 20px;" v-decorator="['a13', {initialValue: initValue('a13')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :style="{ display: 'inline-block'}"> + <a-radio-group v-decorator="['a14', {...selectRequired, initialValue: initValue('a14')}]"> + <a-radio value="1">升高</a-radio> + <a-radio value="2">正常</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + </a-form-item> + <a-form-item label="曲霉特异IgE:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-form-item :style="{ display: 'inline-block'}"> + <a-input addonAfter="IU/L" style="width: 240px; margin-right: 20px;" v-decorator="['a15', {initialValue: initValue('a15')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :style="{ display: 'inline-block'}"> + <a-radio-group v-decorator="['a16', {...selectRequired, initialValue: initValue('a16')}]"> + <a-radio value="1">升高</a-radio> + <a-radio value="2">正常</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + </a-form-item> + <a-form-item label="曲霉皮肤点刺试验:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a17', {...selectRequired, initialValue: initValue('a17')}]"> + <a-radio value="1">阴性</a-radio> + <a-radio value="2">阳性</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="胸部CT有无中心性支扩:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a18', {...selectRequired, initialValue: initValue('a18')}]"> + <a-radio value="1">升高</a-radio> + <a-radio value="2">正常</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="胸部CT提示高密度黏液栓嵌顿:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a19', {...selectRequired, initialValue: initValue('a19')}]"> + <a-radio value="1">有</a-radio> + <a-radio value="2">无</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + </div> + <a-form-item label="(3) 自身免疫抗体检查:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a2', {...selectRequired, initialValue: initValue('a2')}]" @change="changeRadio($event, 'controla2')"> + <a-radio value="1">已做</a-radio> + <a-radio value="-1">未做</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla2"> + <!-- <a-form-item label="自身免疫抗体检查时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['b2', {...dateRequire, initialValue: initValue('b2', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> --> + <a-form-item label="ANA:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a22', {...selectRequired, initialValue: initValue('a22')}]"> + <a-radio value="1">阳性</a-radio> + <!-- <a-radio value="2">中间</a-radio> --> + <a-radio value="2">阴性</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="ENA:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a23', {...selectRequired, initialValue: initValue('a23')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="2">阴性</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="ANCA:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a25', {...selectRequired, initialValue: initValue('a25')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="2">阴性</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="其他检查(记录阳性结果):" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['a27', {...inputRequired, initialValue: initValue('a27')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(4) 球蛋白缺乏:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a3', {...selectRequired, initialValue: initValue('a3')}]" @change="changeRadio($event, 'controla3')"> + <a-radio value="1">已做</a-radio> + <a-radio value="-1">未做</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla3"> + <!-- <a-form-item label="球蛋白缺乏检查时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['b3', {...dateRequire, initialValue: initValue('b3', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> --> + <a-form-item label="IgM:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-form-item :style="{ display: 'inline-block'}"> + <a-input style="width: 240px; margin-right: 20px;" v-decorator="['a31', {...inputRequired, initialValue: initValue('a31')}]" autocomplete="off" addonAfter="g/L"></a-input> + </a-form-item> + <a-form-item :style="{ display: 'inline-block'}"> + <a-radio-group v-decorator="['a32', {...selectRequired, initialValue: initValue('a32')}]"> + <a-radio value="1">正常</a-radio> + <a-radio value="2">降低</a-radio> + <a-radio value="3">升高</a-radio> + <a-radio value="4">未测量</a-radio> + </a-radio-group> + </a-form-item> + </a-form-item> + <a-form-item label="IgG:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-form-item :style="{ display: 'inline-block'}"> + <a-input style="width: 240px; margin-right: 20px;" v-decorator="['a33', {...inputRequired, initialValue: initValue('a33')}]" autocomplete="off" addonAfter="g/L"></a-input> + </a-form-item> + <a-form-item :style="{ display: 'inline-block'}"> + <a-radio-group v-decorator="['a34', {...selectRequired, initialValue: initValue('a34')}]"> + <a-radio value="1">正常</a-radio> + <a-radio value="2">降低</a-radio> + <a-radio value="3">升高</a-radio> + <a-radio value="4">未测量</a-radio> + </a-radio-group> + </a-form-item> + </a-form-item> + <a-form-item label="IgA:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-form-item :style="{ display: 'inline-block'}"> + <a-input style="width: 240px; margin-right: 20px;" v-decorator="['a35', {...inputRequired, initialValue: initValue('a35')}]" autocomplete="off" addonAfter="g/L"></a-input> + </a-form-item> + <a-form-item :style="{ display: 'inline-block'}"> + <a-radio-group v-decorator="['a36', {...selectRequired, initialValue: initValue('a36')}]"> + <a-radio value="1">正常</a-radio> + <a-radio value="2">降低</a-radio> + <a-radio value="3">升高</a-radio> + <a-radio value="4">未测量</a-radio> + </a-radio-group> + </a-form-item> + </a-form-item> + </div> + <a-form-item label="(5) 补体缺乏:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a4', {...selectRequired, initialValue: initValue('a4')}]" @change="changeRadio($event, 'controla4')"> + <a-radio value="1">已做</a-radio> + <a-radio value="-1">未做</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla4"> + <!-- <a-form-item label="补体缺乏检查时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['b4', {...dateRequire, initialValue: initValue('b4', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> --> + <a-form-item label="C3:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-form-item :style="{ display: 'inline-block'}"> + <a-input style="width: 240px; margin-right: 20px;" v-decorator="['a41', {...inputRequired, initialValue: initValue('a41')}]" autocomplete="off" addonAfter="g/L"></a-input> + </a-form-item> + <a-form-item :style="{ display: 'inline-block'}"> + <a-radio-group v-decorator="['a42', {...selectRequired, initialValue: initValue('a42')}]"> + <a-radio value="1">正常</a-radio> + <a-radio value="2">降低</a-radio> + <a-radio value="3">升高</a-radio> + <a-radio value="4">未测量</a-radio> + </a-radio-group> + </a-form-item> + </a-form-item> + <a-form-item label="C4:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-form-item :style="{ display: 'inline-block'}"> + <a-input style="width: 240px; margin-right: 20px;" v-decorator="['a43', {...inputRequired, initialValue: initValue('a43')}]" autocomplete="off" addonAfter="g/L"></a-input> + </a-form-item> + <a-form-item :style="{ display: 'inline-block'}"> + <a-radio-group v-decorator="['a44', {...selectRequired, initialValue: initValue('a44')}]"> + <a-radio value="1">正常</a-radio> + <a-radio value="2">降低</a-radio> + <a-radio value="3">升高</a-radio> + <a-radio value="4">未测量</a-radio> + </a-radio-group> + </a-form-item> + </a-form-item> + </div> + <a-form-item label="(6) α-1 抗蛋白酶缺乏:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a5', {...selectRequired, initialValue: initValue('a5')}]" @change="changeRadio($event, 'controla5')"> + <a-radio value="1">已做</a-radio> + <a-radio value="-1">未做</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla5"> + <!-- <a-form-item label=" α-1抗蛋白酶缺乏检查时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['b5', {...dateRequire, initialValue: initValue('b5', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> --> + <a-form-item label="基因:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a52', { ...selectRequired, initialValue: initValue('a52')}]" @change="changeRadio($event, 'controla52')"> + <a-radio value="1">阳性</a-radio> + <a-radio value="2">阴性</a-radio> + </a-radio-group> + </a-form-item> + <!-- <a-form-item class="no-border" label="具体描述::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controla52"> + <a-input style="width: 240px;" v-decorator="['a53', {...inputRequired, initialValue: initValue('a53')}]" autocomplete="off"></a-input> + </a-form-item> --> + </div> + <a-form-item label="(7) 囊性纤维化:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a6', {...selectRequired, initialValue: initValue('a6')}]" @change="changeRadio($event, 'controla6')"> + <a-radio value="1">已做</a-radio> + <a-radio value="-1">未做</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla6"> + <!-- <a-form-item label="囊性纤维化检查时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['b6', {...dateRequire, initialValue: initValue('b6', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> --> + <a-form-item label="汗液实验:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a61', { ...selectRequired, initialValue: initValue('a61')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="2">阴性</a-radio> + <!-- <a-radio value="3">未测</a-radio> --> + </a-radio-group> + </a-form-item> + <a-form-item label="基因检查:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a62', { ...selectRequired, initialValue: initValue('a62')}]"> + <a-radio value="1">纯合</a-radio> + <a-radio value="2">杂合</a-radio> + <a-radio value="3">无突变</a-radio> + <!-- <a-radio value="4">未测</a-radio> --> + </a-radio-group> + </a-form-item> + </div> + <a-form-item label="(8) 纤毛功能检测:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a7', {...selectRequired, initialValue: initValue('a7')}]" @change="changeRadio($event, 'controla7')"> + <a-radio value="1">已做</a-radio> + <a-radio value="-1">未做</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla7"> + <!-- <a-form-item label="纤毛功能检测时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['b7', {...dateRequire, initialValue: initValue('b7', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> --> + <a-form-item label="FeNOppd:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a71', { ...selectRequired, initialValue: initValue('a71')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="2">阴性</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="电镜检测的活检:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a73', { ...selectRequired, initialValue: initValue('a73')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="2">阴性</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="分析纤毛摆动频率的活检:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a74', { ...selectRequired, initialValue: initValue('a74')}]"> + <a-radio value="1">阳性</a-radio> + <a-radio value="2">阴性</a-radio> + <a-radio value="3">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="基因检测:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a75', { ...selectRequired, initialValue: initValue('a75')}]" @change="changeRadio($event, 'controla75')"> + <a-radio value="1">阳性</a-radio> + <a-radio value="2">阴性</a-radio> + <!-- <a-radio value="3">未测量</a-radio> --> + </a-radio-group> + </a-form-item> + <a-form-item label="具体描述::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" v-if="controla75"> + <a-input style="width: 240px;" v-decorator="['a76', {...inputRequired, initialValue: initValue('a76')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + <a-form-item label="(9) 其他:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['a8', {initialValue: initValue('a8')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item class="font-w" label="(10) 小结:根据实验室检查及既往病史判断(多选):" :labelCol="{md: 20}" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a9', {...selectRequired, initialValue: initValue('a9', 'array')}]" @change="changeRadio($event, 'controla920')" style="line-height: 22px;"> + <a-radio value="1">特发性</a-radio> + <a-radio value="2">感染后性</a-radio> + <a-radio value="3">结核后性</a-radio> + <a-radio value="4">原发性纤毛不动症</a-radio> + <a-radio value="5">弥漫性泛细支气管炎</a-radio> + <a-radio value="6">ABPA</a-radio> + <a-radio value="7">炎症性肠病</a-radio> + <a-radio value="8">结缔组织病(类风湿性关节炎)</a-radio> + <a-radio value="21">结缔组织病(非类风湿性关节炎)</a-radio> + <a-radio value="9">CF</a-radio> + <a-radio value="10">α1-抗胰蛋白酶缺乏</a-radio> + <a-radio value="11">误吸</a-radio> + <a-radio value="12">胃食管返流病</a-radio> + <a-radio value="13">大气道先天性异常</a-radio> + <a-radio value="14">NTM</a-radio> + <a-radio value="15">慢阻肺</a-radio> + <a-radio value="16">哮喘</a-radio> + <a-radio value="17">普通变异性免疫缺陷病(CVID)</a-radio> + <a-radio value="18">血浆抗体缺乏</a-radio> + <a-radio value="19">特异抗体缺乏性</a-radio> + <a-radio value="20">其他</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="具体描述::" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" class="border-dotted" v-if="controla920"> + <a-input style="width: 240px;" v-decorator="['a91', {...inputRequiredNotEmpty, initialValue: initValue('a91')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, computeScore, recoverSubmit } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +export default { + name: 'task21', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + markName: 'byxxgjc', + title: '', + openKeys: [], + defaultSelectedKeys: [21], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + baselineFormStyle: { + // height: '444px', + 'padding-top': '52px' + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 6 }, + md: { span: 6 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 18 }, + md: { span: 18 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 6, offset: 6 } + }, + wrapperOffset: { + md: { span: 12 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + inputRequiredNotEmpty: { + rules: [{ required: true, message: '请填写!', whitespace: true }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + byxxgjc: undefined, + controla: false, + controla1: false, + controla2: false, + // controla23: false, + // controla25: false, + controla3: false, + controla4: false, + controla5: false, + controla6: false, + controla7: false, + controla52: false, + controla9: false, + controla920: false, + controla75: false, + spinning: false, + executeStatus: false, + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.title = '年访视' + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + this.getFormData() + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + getFormData() { + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + if (res.data && res.data.byxxgjc) + that.byxxgjc = that.dealAnswers(res.data.byxxgjc) + }) + .catch(error => { + console.log(error) + }) + }, + changeSelect(e, t) { + this[t] = e.target.checked + }, + changeRadio(e, t) { + if (t === 'controla920') { + if (e.target.value === '20') { + this[t] = true + } else { + this[t] = false + } + } else if (t === 'controla52' || t === 'controla75') { + if (e.target.value === '3') { + this[t] = true + } else { + this[t] = false + } + } else if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + this.maskId = e.key + if ((e.key >= 37 && e.key <= 42) || (e.key >= 45 && e.key <= 50)) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + this.maskId) + } else { + this.$router.replace('/list/task/' + this.patientBasisId + '/' + this.maskId) + } + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'b1': typeof re['b1'] !== 'undefined' ? re['b1'].format('YYYY-MM-DD') : '', + 'b2': typeof re['b2'] !== 'undefined' ? re['b2'].format('YYYY-MM-DD') : '', + 'b3': typeof re['b3'] !== 'undefined' ? re['b3'].format('YYYY-MM-DD') : '', + 'b4': typeof re['b4'] !== 'undefined' ? re['b4'].format('YYYY-MM-DD') : '', + 'b5': typeof re['b5'] !== 'undefined' ? re['b5'].format('YYYY-MM-DD') : '', + 'b6': typeof re['b6'] !== 'undefined' ? re['b6'].format('YYYY-MM-DD') : '', + 'b7': typeof re['b7'] !== 'undefined' ? re['b7'].format('YYYY-MM-DD') : '' + } + console.log(re) + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.byxxgjc && this.byxxgjc.byxxgjcId) { + re.byxxgjcId = this.byxxgjc.byxxgjcId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.$message.success(res.msg) + that.spinning = false + that.getFormData() + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + initValue(key, type = 'normal') { + if (!this.byxxgjc) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.byxxgjc[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.byxxgjc[key]) + } else if (type === 'array') { + return this.byxxgjc[key].split(',') + } else { + return this.byxxgjc[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + if (answer.a == 1) { + this.controla = true + } + if (answer.a1 === 1) { + this.controla1 = true + } + if (answer.a2 === 1) { + this.controla2 = true + } + if (answer.a3 === 1) { + this.controla3 = true + } + if (answer.a4 === 1) { + this.controla4 = true + } + if (answer.a5 === 1) { + this.controla5 = true + } + if (answer.a6 === 1) { + this.controla6 = true + } + if (answer.a7 === 1) { + this.controla7 = true + } + if (answer.a9 === 20) { + this.controla920 = true + } + if (answer.a52 === 3) { + this.controla52 = true + } + if (answer.a75 === 3) { + this.controla75 = true + } + } + return answer + }, + save() { + var re = this.form.getFieldsValue() + var that = this + re = { + ...re, + 'b1': typeof re['b1'] !== 'undefined' ? re['b1'].format('YYYY-MM-DD') : '', + 'b2': typeof re['b2'] !== 'undefined' ? re['b2'].format('YYYY-MM-DD') : '', + 'b3': typeof re['b3'] !== 'undefined' ? re['b3'].format('YYYY-MM-DD') : '', + 'b4': typeof re['b4'] !== 'undefined' ? re['b4'].format('YYYY-MM-DD') : '', + 'b5': typeof re['b5'] !== 'undefined' ? re['b5'].format('YYYY-MM-DD') : '', + 'b6': typeof re['b6'] !== 'undefined' ? re['b6'].format('YYYY-MM-DD') : '', + 'b7': typeof re['b7'] !== 'undefined' ? re['b7'].format('YYYY-MM-DD') : '' + } + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.byxxgjc && this.byxxgjc.byxxgjcId) { + re.byxxgjcId = this.byxxgjc.byxxgjcId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.$message.success(res.msg) + that.spinning = false + that.getFormData() + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + computeGerd() { + var that = this + this.$nextTick(() => { + var params = new URLSearchParams() + params.append('scoreType', 'gerd') + params.append('byxxgjcStr', JSON.stringify(that.form.getFieldsValue())) + computeScore(params) + .then(res => { + console.log(res.data.z) + that.form.setFieldsValue({ + z: res.data.z + }) + }) + .catch(error => { + console.log(error) + }) + }) + }, + withdraw() { + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.byxxgjc.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +/deep/ .font-w .ant-form-item-required { + font-weight: bold; +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + + .treeSubTitle { + font-size: 14px; + } + + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px 50px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/task/components/mask-22.vue b/src/views/task/components/mask-22.vue new file mode 100644 index 0000000000..1bf80031e0 --- /dev/null +++ b/src/views/task/components/mask-22.vue @@ -0,0 +1,1443 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!</p> + <div class="title">1.肺功能相关检查</div> + <!-- <a-form-item label="检查时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['t1', {...dateRequire, initialValue: initValue('t1', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> --> + <a-form-item label="报告上传 :" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <div class="clearfix" style="margin-top: 10px;"> + <a-upload :action="uploadUrl" listType="picture-card" :fileList="fileList1" @preview="handlePreview1" @change="handleChange1"> + <div v-if="fileList1.length < 1"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-button style="position: absolute;top: 84px;left: 120px;font-size: 12px;padding: 0 5px;height: 30px;" @click="_importF" v-if="fileList1.length === 1">OCR识别</a-button> + <!-- <a-modal :visible="previewVisible1" :footer="null" @cancel="handleCancel1"> + <img alt="example" style="width: 100%" :src="previewImage1" /> + </a-modal> --> + </div> + </a-form-item> + <a-form-item label="肺功能测试名称" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-row type="flex"> + <a-col :span="12">实际值</a-col> + <a-col :span="12">实/预%</a-col> + </a-row> + </a-form-item> + <a-form-item label="FVC::" :labelCol="labelXs" :wrapperCol="wrapperMx" class="requireIcon"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a21', {...inputRequired, initialValue: initValue('a21')}]" addonAfter="L" autocomplete="off" @change="notice($event, 'FVC', 0.5, 6)"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a22', {...inputRequired, initialValue: initValue('a22')}]" addonAfter="%" autocomplete="off" @change="notice($event, 'FVC%', 20, 150)"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV1::" :labelCol="labelXs" :wrapperCol="wrapperMx" class="requireIcon"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a31', {...inputRequired, initialValue: initValue('a31')}]" addonAfter="L" autocomplete="off" @change="notice($event, 'FEV1', 0.2, 5)"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a32', {...inputRequired, initialValue: initValue('a32')}]" addonAfter="%" autocomplete="off" @change="notice($event, 'FEV%', 20, 150)"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV1%FVC::" :labelCol="labelXs" :wrapperCol="wrapperMx" class="requireIcon"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a41', {...inputRequired, initialValue: initValue('a41')}]" addonAfter="%" autocomplete="off" @change="notice($event, 'FEV1%FVC', undefined, 100)"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV1%VC MAX::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a51', {initialValue: initValue('a51')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a52', {initialValue: initValue('a52')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV3::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a61', {initialValue: initValue('a61')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['a62', {initialValue: initValue('a62')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV3%FVC::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b21', {initialValue: initValue('b21')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b22', {initialValue: initValue('b22')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="PEF::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b31', {initialValue: initValue('b31')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b32', {initialValue: initValue('b32')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MEF 75::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b41', {initialValue: initValue('b41')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b42', {initialValue: initValue('b42')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MEF 50::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b51', {initialValue: initValue('b51')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b52', {initialValue: initValue('b52')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MEF 25::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b61', {initialValue: initValue('b61')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b62', {initialValue: initValue('b62')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MMEF::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b71', {initialValue: initValue('b71')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b72', {initialValue: initValue('b72')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MVV::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <!-- <a-input v-decorator="['t1', {initialValue: '1'}]" style="display: none;"></a-input> --> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b81', {initialValue: initValue('b81')}]" addonAfter="L/min" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b82', {initialValue: initValue('b82')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV 1*30::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b91', {initialValue: initValue('b91')}]" addonAfter="L/min" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b92', {initialValue: initValue('b92')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="RV::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <!-- <a-input v-decorator="['t1', {initialValue: '1'}]" style="display: none;"></a-input> --> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b101', {initialValue: initValue('b101')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b102', {initialValue: initValue('b102')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="TLC::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <!-- <a-input v-decorator="['t1', {initialValue: '1'}]" style="display: none;"></a-input> --> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b111', {initialValue: initValue('b111')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b112', {initialValue: initValue('b112')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="RV%TLC::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <!-- <a-input v-decorator="['t1', {initialValue: '1'}]" style="display: none;"></a-input> --> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b121', {initialValue: initValue('b121')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b122', {initialValue: initValue('b122')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="ITGV::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b131', {initialValue: initValue('b131')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b132', {initialValue: initValue('b132')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="IC::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b141', {initialValue: initValue('b141')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b142', {initialValue: initValue('b142')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="ERV::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b151', {initialValue: initValue('b151')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b152', {initialValue: initValue('b152')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="DLCO SB::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b161', {initialValue: initValue('b161')}]" addonAfter="ml/min/mmHg" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b162', {initialValue: initValue('b162')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="DLCO/VA::" :labelCol="labelXs" :wrapperCol="wrapperMx"> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b171', {initialValue: initValue('b171')}]" addonAfter="ml/min/mmHg" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelXs" :wrapperCol="wrapperMx" :style="{ display: 'inline-block', width: '50%',border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['b172', {initialValue: initValue('b172')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="(2) 是否做过其他舒张试验:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['c', {...require1, initialValue: initValue('c')}]" @change="changeRadio($event, 'controlc')"> + <a-radio value="1">是</a-radio> + <a-radio value="-1">否</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controlc"> + <a-form-item label="报告上传 :" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <div class="clearfix" style="margin-top: 10px;"> + <a-upload :action="uploadUrl" listType="picture-card" :fileList="fileList2" @preview="handlePreview2" @change="handleChange2"> + <div v-if="fileList2.length < 1"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-button style="position: absolute;top: 84px;left: 120px;font-size: 12px;padding: 0 5px;height: 30px;" @click="_importS" v-if="fileList2.length === 1">OCR识别</a-button> + <!-- <a-modal :visible="previewVisible2" :footer="null" @cancel="handleCancel2"> + <img alt="example" style="width: 100%" :src="previewImage2" /> + </a-modal> --> + </div> + </a-form-item> + <a-form-item label="舒张试验名称" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-row type="flex"> + <a-col :span="6">前次</a-col> + <a-col :span="6">前/预</a-col> + <a-col :span="6">后次</a-col> + <a-col :span="6">后/预</a-col> + </a-row> + </a-form-item> + <a-form-item label="VC MAX::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c11', { initialValue: initValue('c11')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d11', { initialValue: initValue('d11')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c12', { initialValue: initValue('c12')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d12', { initialValue: initValue('d12')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FVC::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c21', { initialValue: initValue('c21')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d21', { initialValue: initValue('d21')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c22', { initialValue: initValue('c22')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d22', { initialValue: initValue('d22')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV1::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c31', { initialValue: initValue('c31')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d31', { initialValue: initValue('d31')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c32', { initialValue: initValue('c32')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d32', { initialValue: initValue('d32')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV1%FVC::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c41', { initialValue: initValue('c41')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d41', { initialValue: initValue('d41')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c42', { initialValue: initValue('c42')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d42', { initialValue: initValue('d42')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV1%VC MAX::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c51', { initialValue: initValue('c51')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d51', { initialValue: initValue('d51')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c52', { initialValue: initValue('c52')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d52', { initialValue: initValue('d52')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV3::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c61', { initialValue: initValue('c61')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d61', { initialValue: initValue('d61')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c62', { initialValue: initValue('c62')}]" addonAfter="L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d62', { initialValue: initValue('d62')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="FEV3%FVC::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c71', { initialValue: initValue('c71')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d71', { initialValue: initValue('d71')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c72', { initialValue: initValue('c72')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d72', { initialValue: initValue('d72')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="PEF::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c81', { initialValue: initValue('c81')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d81', { initialValue: initValue('d81')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c82', { initialValue: initValue('c82')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d82', { initialValue: initValue('d82')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MEF 75::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c91', { initialValue: initValue('c91')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d91', { initialValue: initValue('d91')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c92', { initialValue: initValue('c92')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d92', { initialValue: initValue('d92')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MEF 50::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c101', { initialValue: initValue('c101')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d101', { initialValue: initValue('d101')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c102', { initialValue: initValue('c102')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d102', { initialValue: initValue('d102')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MEF 25::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c111', { initialValue: initValue('c111')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d111', { initialValue: initValue('d111')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c112', { initialValue: initValue('c112')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d112', { initialValue: initValue('d112')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MEF 75/25::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c121', { initialValue: initValue('c121')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d121', { initialValue: initValue('d121')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c122', { initialValue: initValue('c122')}]" addonAfter="L/s" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d122', { initialValue: initValue('d122')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="V%FVC::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c131', { initialValue: initValue('c131')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d131', { initialValue: initValue('d131')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c132', { initialValue: initValue('c132')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['d132', { initialValue: initValue('d132')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + <a-form-item label="MVV::" :labelCol="labelNew" :wrapperCol="wrapperNew"> + <a-form-item :labelCol="labelNew" :wrapperCol="wrapperNew" :style="{ display: 'inline-block', width: '25%', border: 'none' }"> + <a-input style="width: 240px;" v-decorator="['c141', { initialValue: initValue('c141')}]" addonAfter="L/min" autocomplete="off"></a-input> + </a-form-item> + </a-form-item> + </div> + <a-form-item label="(3) 肺功能结论:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-radio-group v-decorator="['d', {...require1, initialValue: initValue('d')}]" @change="changeRadio($event, 'controld')"> + <a-radio value="1">通气功能正常</a-radio> + <a-radio value="-1">通气功能减退</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="通气功能减退类型:" :labelCol="labelColOffset" :wrapperCol="wrapperOffset" class="border-dotted" v-if="controld"> + <a-radio-group v-decorator="['e12', {...require1, initialValue: initValue('e12')}]"> + <a-radio value="1">阻塞性</a-radio> + <a-radio value="2">限制性</a-radio> + <a-radio value="3">混合型</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(4) 呼出气一氧化氮(FeNO):" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-input addonAfter="ppb" style="width: 240px;" v-decorator="['d1', {initialValue: initValue('d1')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(5) 6分钟步行试验总距离:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + <a-input addonAfter="m" style="width: 240px;" v-decorator="['e', { initialValue: initValue('e')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(6) 血气分析:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="border-dotted"> + </a-form-item> + <a-form-item label="PH:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-input style="width: 240px;" v-decorator="['f', { initialValue: initValue('f')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="氧分压:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-input style="width: 240px;" v-decorator="['f1', { initialValue: initValue('f1')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="二氧化碳分压:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-input style="width: 240px;" v-decorator="['f2', { initialValue: initValue('f2')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="肺动脉氧分压差:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-input style="width: 240px;" v-decorator="['f3', { initialValue: initValue('f3')}]" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="氧饱和度:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-input style="width: 240px;" v-decorator="['f4', { initialValue: initValue('f4')}]" autocomplete="off"></a-input> + </a-form-item> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, recoverSubmit } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { getOcrResult } from '@/api/basis' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +import _ from 'lodash' +export default { + name: 'task22', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + // previewVisible1: false, + // previewImage1: '', + // previewVisible2: false, + // previewImage2: '', + uploadUrl: process.env.VUE_APP_API_UPLOAD_URL, + viewPicUrl: process.env.VUE_APP_API_VIEW_PIC_URL, + fileList1: [], + fileList2: [], + markName: 'fgnxgjc', + title: '年访视', + openKeys: [], + defaultSelectedKeys: [22], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: '100%', + "padding-right": "0px", + "border-right": "1px solid #ddd" + }, + baselineFormStyle: { + // height: '444px', + 'padding-top': '52px' + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 7 }, + md: { span: 7 } + }, + labelXs: { + xs: { span: 24 }, + sm: { span: 5 }, + md: { span: 5 } + }, + wrapperMx: { + xs: { span: 24 }, + sm: { span: 19 }, + md: { span: 19 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 17 }, + md: { span: 17 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 4, offset: 7 } + }, + wrapperOffset: { + md: { span: 13 } + }, + labelNew: { + xs: { span: 2 }, + sm: { span: 2 }, + md: { span: 2 } + }, + wrapperNew: { + xs: { span: 22 }, + sm: { span: 22 }, + md: { span: 22 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + fgnxgjc: undefined, + // controla1p: false, + // controla1n: false, + controla21: false, + controla31: false, + controla41: false, + controla51: false, + controla61: false, + controlb23: false, + controlb33: false, + controlb43: false, + controlb53: false, + controlb63: false, + controlc: false, + controlc11: false, + controlc21: false, + controlc31: false, + controlc41: false, + controld: false, + spinning: false, + executeStatus: false, + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + this.getFormData() + // 创建节流版本,防止触发过快 + this.notice = _.debounce(this.notice, 300) + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + changeSelect(e, t) { + this[t] = e.target.checked + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + changeRadio(e, t) { + if (t === 'controld') { + if (e.target.value === '-1') { + this[t] = true + } else { + this[t] = false + } + } else if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + if ((e.key >= 37 && e.key <= 42) || (e.key >= 45 && e.key <= 50)) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + e.key) + } else { + this.$router.replace('/list/task/' + this.patientBasisId + '/' + e.key) + } + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + re = { + ...re, + 't1': typeof re['t1'] !== 'undefined' ? re['t1'].format('YYYY-MM-DD') : '' + } + var that = this + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.fgnxgjc && this.fgnxgjc.fgnxgjcId) { + re.fgnxgjcId = this.fgnxgjc.fgnxgjcId + } + //附件 + if (this.fileList1 && this.fileList1.length) { + var a = [] + _.each(this.fileList1, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + } + //附件 + if (this.fileList2 && this.fileList2.length) { + var a = [] + _.each(this.fileList2, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileNameOther', JSON.stringify(a)) + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + initValue(key, type = 'normal') { + if (!this.fgnxgjc) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.fgnxgjc[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.fgnxgjc[key]) + } else if (type === 'array') { + return this.fgnxgjc[key].split(',') + } else { + return this.fgnxgjc[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + if (answer.a21 === 1) { + this.controla21 = true + } + if (answer.a31 === 1) { + this.controla31 = true + } + if (answer.a41 === 1) { + this.controla41 = true + } + if (answer.a51 === 1) { + this.controla51 = true + } + if (answer.a61 === 1) { + this.controla61 = true + } + if (answer.b23 === 1) { + this.controlb23 = true + } + if (answer.b33 === 1) { + this.controlb33 = true + } + if (answer.b43 === 1) { + this.controlb43 = true + } + if (answer.b53 === 1) { + this.controlb53 = true + } + if (answer.b63 === 1) { + this.controlb63 = true + } + if (answer.c === 1) { + this.controlc = true + } + if (answer.c11 === 1) { + this.controlc11 = true + } + if (answer.c21 === 1) { + this.controlc21 = true + } + if (answer.c31 === 1) { + this.controlc31 = true + } + if (answer.c41 === 1) { + this.controlc41 = true + } + if (answer.d === -1) { + this.controld = true + } + } + return answer + }, + getFormData() { + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + if (res.data && res.data.fgnxgjc) { + that.fgnxgjc = that.dealAnswers(res.data.fgnxgjc) + } else { + that.fgnxgjc = {} + that.form.resetFields() + } + if (res.data.annexListFgn && res.data.annexListFgn.length) { + that.fileList1 = _.map(res.data.annexListFgn, function(v) { + return { + uid: v.annexId, + url: that.viewPicUrl + v.annexAddress, + name: v.annexAddress, + status: 'done' + } + }) + } else { + that.fileList1 = [] + } + if (res.data.annexListQH && res.data.annexListQH.length) { + that.fileList2 = _.map(res.data.annexListQH, function(v) { + return { + uid: v.annexId, + url: that.viewPicUrl + v.annexAddress, + name: v.annexAddress, + status: 'done' + } + }) + } else { + that.fileList2 = [] + } + }) + .catch(error => { + console.log(error) + }) + }, + save() { + var re = this.form.getFieldsValue() + re = { + ...re, + 't1': typeof re['t1'] !== 'undefined' ? re['t1'].format('YYYY-MM-DD') : '' + } + var that = this + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.fgnxgjc && this.fgnxgjc.fgnxgjcId) { + re.fgnxgjcId = this.fgnxgjc.fgnxgjcId + } + //附件 + if (this.fileList1 && this.fileList1.length) { + var a = [] + _.each(this.fileList1, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + } + //附件 + if (this.fileList2 && this.fileList2.length) { + var a = [] + _.each(this.fileList2, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileNameOther', JSON.stringify(a)) + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.spinning = false + that.getFormData() + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + // handleCancel1() { + // this.previewVisible1 = false; + // }, + handlePreview1(file) { + const viewer = this.$el.querySelector('.images1').$viewer + viewer.show() + // this.previewImage1 = file.url || file.thumbUrl; + // this.previewVisible1 = true; + }, + handleChange1({ fileList }) { + var that = this + this.fileList1 = fileList; + if (fileList.every(function(v) { return v.status === 'done'})) { + this.spinning = false + this.fileList1.forEach((f,i) => { + if(f.response){ + that.$set(that.fileList1,i,{ + name: f.response.fileName, + status: 'done', + uid: f.uid, + url: f.response.data.src + }) + } + }) + } + }, + // handleCancel2() { + // this.previewVisible2 = false; + // }, + handlePreview2(file) { + const viewer = this.$el.querySelector('.images2').$viewer + viewer.show() + // this.previewImage2 = file.url || file.thumbUrl; + // this.previewVisible2 = true; + }, + handleChange2({ fileList }) { + var that = this + this.fileList2 = fileList; + if (fileList.every(function(v) { return v.status === 'done'})) { + this.spinning = false + this.fileList2.forEach((f,i) => { + if(f.response){ + that.$set(that.fileList2,i,{ + name: f.response.fileName, + status: 'done', + uid: f.uid, + url: f.response.data.src + }) + } + }) + } + }, + _importF() { + this.spinning = true + var params = new URLSearchParams() + params.append('type', 4) + params.append('url', this.fileList1[0].response.data.src) + var that = this + getOcrResult(params) + .then(res => { + console.log(res.data) + that.spinning = false + that.$message.success(res.data.info) + that.fgnxgjc = _.extend(that.fgnxgjc || {}, that.dealAnswers(res.data)) + }) + .catch(error => { + that.confirmLoading = false + }) + }, + _importS() { + this.spinning = true + var params = new URLSearchParams() + params.append('type', 3) + params.append('url', this.fileList2[0].response.data.src) + var that = this + getOcrResult(params) + .then(res => { + // console.log(res.data) + that.spinning = false + that.$message.success(res.data.info) + that.fgnxgjc = _.extend(that.fgnxgjc || {}, that.dealAnswers(res.data)) + // that.form.setFieldsValue(that.fgnxgjc) + }) + .catch(error => { + that.confirmLoading = false + }) + }, + withdraw() { + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.fgnxgjc.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + }, + notice(e, name, low, high) { + let v = parseFloat(e.target.value) + if(!Number.isNaN(v)) { + if(low && v < low) { + this.$message.info(`请确认${name}的值`) + } + if(high && v > high) { + this.$message.info(`请确认${name}的值`) + } + } + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + + .treeSubTitle { + font-size: 14px; + } + + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +.requireIcon { + position: relative; +} +.requireIcon { + padding-left: 10px; +} +.requireIcon::before { + position: absolute; + top: 21px; + left: 0; + margin-right: 4px; + content: '*'; + font-family: SimSun; + line-height: 1; + font-size: 14px; + color: #f5222d; +} +</style> \ No newline at end of file diff --git a/src/views/task/components/mask-23.vue b/src/views/task/components/mask-23.vue new file mode 100644 index 0000000000..4412babaf1 --- /dev/null +++ b/src/views/task/components/mask-23.vue @@ -0,0 +1,828 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!</p> + <a-form-item label="有无新增心脏彩超:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a1', {...require2, initialValue: initValue('a1')}]" @change="changeRadio($event, 'controla1')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla1"> + <a-form-item label="报告上传:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <div class="clearfix" style="margin-top: 10px;"> + <a-upload :action="uploadUrl" listType="picture-card" :fileList="fileList" @change="handleChange"> + <div v-if="fileList.length < 1"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-button style="position: absolute;top: 84px;left: 120px;font-size: 12px;padding: 0 5px;height: 30px;" @click="_import" v-if="fileList.length === 1">OCR识别</a-button> + </div> + </a-form-item> + <!-- <div class="title">1.M型主要测值</div> --> + <!-- <a-form-item label="检查时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['t1', {...dateRequire, initialValue: initValue('t1', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> --> + <a-form-item label="(1) 主动脉根部内径:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b1', { initialValue: initValue('b1')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(2) 左房收缩末期内径:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b2', { initialValue: initValue('b2')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 左室舒张末期内径:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b3', { initialValue: initValue('b3')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(4) 左室收缩末期内径:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b4', { initialValue: initValue('b4')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(5) 室间隔厚度:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b5', { initialValue: initValue('b5')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(6) 左室后壁厚度:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b6', { initialValue: initValue('b6')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(7) 肺动脉收缩压:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b8', { initialValue: initValue('b8')}]" addonAfter="mmHg" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(8) 主肺动脉内径:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b7', { initialValue: initValue('b7')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(9) 右房内径:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['e1', { initialValue: initValue('e1')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(10) 右室内径:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['e2', { initialValue: initValue('e2')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(11) 右室流出道:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['e3', { initialValue: initValue('e3')}]" addonAfter="cm" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(12) 左室射血分数:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c1', { initialValue: initValue('c1')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(13) 左室短轴缩短率:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c2', { initialValue: initValue('c2')}]" addonAfter="%" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="小结:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['d1', {...selectRequired, initialValue: initValue('d1')}]"> + <a-radio value="1">肺动脉高压</a-radio> + <a-radio value="2">肺源性心脏病</a-radio> + <a-radio value="3">无</a-radio> + </a-radio-group> + </a-form-item> + </div> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, recoverSubmit } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { getOcrResult } from '@/api/basis' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +export default { + name: 'task23', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + markName: 'xzcc', + title: '', + openKeys: [], + defaultSelectedKeys: [23], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + baselineFormStyle: { + // height: '444px', + 'padding-top': '52px' + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 7 }, + md: { span: 7 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 17 }, + md: { span: 17 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 4, offset: 7 } + }, + wrapperOffset: { + md: { span: 13 } + }, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + }, + require1: { + rules: [{ required: true, message: '请选择是或否!' }] + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + selectRequired: { + rules: [{ required: true, message: '请选择!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + xzcc: undefined, + controla1: false, + spinning: false, + executeStatus: false, + uploadUrl: process.env.VUE_APP_API_UPLOAD_URL, + viewPicUrl: process.env.VUE_APP_API_VIEW_PIC_URL, + fileList: [], + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.title = '年访视' + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + this.getFormData() + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + getFormData() { + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + if (res.data && res.data.xzcc) + that.xzcc = that.dealAnswers(res.data.xzcc) + }) + .catch(error => { + console.log(error) + }) + }, + changeSelect(e, t) { + this[t] = e.target.checked + }, + changeRadio(e, t) { + if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + this.maskId = e.key + if ((e.key >= 37 && e.key <= 42) || (e.key >= 45 && e.key <= 50)) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + this.maskId) + } else { + this.$router.replace('/list/task/' + this.patientBasisId + '/' + this.maskId) + } + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + re = { + ...re, + 't1': typeof re['t1'] !== 'undefined' ? re['t1'].format('YYYY-MM-DD') : '' + } + var that = this + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.xzcc && this.xzcc.xzccId) { + re.xzccId = this.xzcc.xzccId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.$message.success(res.msg) + that.spinning = false + that.getFormData() + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + initValue(key, type = 'normal') { + if (!this.xzcc) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.xzcc[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.xzcc[key]) + } else if (type === 'array') { + return this.xzcc[key].split(',') + } else { + return this.xzcc[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + if (answer.a1 === '1') { + this.controla1 = true + } + } + return answer + }, + save() { + var re = this.form.getFieldsValue() + re = { + ...re, + 't1': typeof re['t1'] !== 'undefined' ? re['t1'].format('YYYY-MM-DD') : '' + } + var that = this + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.xzcc && this.xzcc.xzccId) { + re.xzccId = this.xzcc.xzccId + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.$message.success(res.msg) + that.spinning = false + that.getFormData() + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + _import() { + this.spinning = true + var params = new URLSearchParams() + params.append('type', 5) + params.append('url', this.fileList[0].response.data.src) + var that = this + getOcrResult(params) + .then(res => { + console.log(res.data) + this.spinning = false + this.$message.success(res.data.info) + this.xzcc = _.extend(this.xzcc || {}, this.dealAnswers(res.data)) + that.form.setFieldsValue(that.xzcc) + }) + .catch(error => { + this.confirmLoading = false + }) + }, + handleChange({ fileList }) { + var that = this + this.fileList = fileList; + if (fileList.every(function(v) { return v.status === 'done'})) { + this.spinning = false + this.fileList.forEach((f,i) => { + if(f.response){ + that.$set(that.fileList,i,{ + name: f.response.fileName, + status: 'done', + uid: f.uid, + url: f.response.data.src + }) + } + }) + } + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + withdraw() { + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.xzcc.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + + .treeSubTitle { + font-size: 14px; + } + + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/task/components/mask-24.vue b/src/views/task/components/mask-24.vue new file mode 100644 index 0000000000..063a3c6bac --- /dev/null +++ b/src/views/task/components/mask-24.vue @@ -0,0 +1,962 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;" v-if="!isGroup"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <a-form :form="form" @submit="handleSubmit" class="base-form"> + <div class="btn-array" v-if="executeStatus !== 2 && canEdit"> + <a-button class="btn fr" type="primary" html-type="submit" ref="submitBtn">提交</a-button> + <a-button class="btn fr" @click="save">保存</a-button> + </div> + <div class="btn-array" v-if="executeStatus === 2 && canEdit"> + <a-button class="btn fr" type="primary" @click="withdraw">撤回</a-button> + </div> + <div class="baselineForm" :style="baselineFormStyle"> + <p class="tip">必填项如数据缺失无法提交,请一律用"/"来填写!</p> + <a-form-item label="有无新增其他实验室检查:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['a1', {...require2, initialValue: initValue('a1')}]" @change="changeRadio($event, 'controla1')"> + <a-radio value="1">有</a-radio> + <a-radio value="-1">无</a-radio> + </a-radio-group> + </a-form-item> + <div v-if="controla1"> + <div class="title">1.血常规</div> + <a-form-item label="血常规报告上传 :" :labelCol="labelColHor" :wrapperCol="wrapperHor" style="margin-top: 10px;"> + <div class="clearfix"> + <a-upload :action="uploadUrl" listType="picture-card" :fileList="fileList1" @change="handleChange1"> + <div v-if="fileList1.length < 1"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-button style="position: absolute;top: 74px;left: 120px;font-size: 12px;padding: 0 5px;height: 30px;" @click="_import(fileList1,1)" v-if="fileList1.length === 1">OCR识别</a-button> + </div> + </a-form-item> + <!-- <a-form-item label="检查时间" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-date-picker placeholder="请选择" v-decorator="['t1', {...dateRequire, initialValue: initValue('t1', 'time')}]" :disabledDate="disabledDate" style="width: 240px;"></a-date-picker> + </a-form-item> --> + <a-form-item label="(1) 血红蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b1', {...inputRequired, initialValue: initValue('b1')}]" addonAfter="g/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(2) 白细胞:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b2', {...inputRequired, initialValue: initValue('b2')}]" addonAfter="10^9/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 红细胞:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b3', {...inputRequired, initialValue: initValue('b3')}]" addonAfter="10^12/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(4) 血小板:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b4', {...inputRequired, initialValue: initValue('b4')}]" addonAfter="10^9/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(5) 中性粒细胞绝对值:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b5', {...inputRequired, initialValue: initValue('b5')}]" addonAfter="10^9/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(6) 嗜酸细胞绝对值:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['b6', {...inputRequired, initialValue: initValue('b6')}]" addonAfter="10^9/L" autocomplete="off"></a-input> + </a-form-item> + <div class="title">2.血生化</div> + <a-form-item label="血生化报告上传 :" :labelCol="labelColHor" :wrapperCol="wrapperHor" style="margin-top: 10px;"> + <div class="clearfix"> + <a-upload :action="uploadUrl" listType="picture-card" :fileList="fileList2" @change="handleChange2"> + <div v-if="fileList2.length < 1"> + <a-icon type="plus" /> + <div class="ant-upload-text">Upload</div> + </div> + </a-upload> + <a-button style="position: absolute;top: 74px;left: 120px;font-size: 12px;padding: 0 5px;height: 30px;" @click="_import(fileList2,2)" v-if="fileList2.length === 1">OCR识别</a-button> + </div> + </a-form-item> + <a-form-item label="(1) 血糖:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c1', {...inputRequired, initialValue: initValue('c1')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(2) 白蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c4', {...inputRequired, initialValue: initValue('c4')}]" addonAfter="g/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(3) 谷丙转氨酶:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c2', { initialValue: initValue('c2')}]" addonAfter="IU/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(4) 谷草转氨酶:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c3', { initialValue: initValue('c3')}]" addonAfter="IU/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(5) 前白蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c5', { initialValue: initValue('c5')}]" addonAfter="g/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(6) 球蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c6', { initialValue: initValue('c6')}]" addonAfter="g/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(7) 肌酐:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c7', { initialValue: initValue('c7')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(8) 尿素:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c8', { initialValue: initValue('c8')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(9) 钾:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c9', { initialValue: initValue('c9')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(10) 钠:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c10', { initialValue: initValue('c10')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(11) 钙:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c11', { initialValue: initValue('c11')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(12) 磷:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c12', { initialValue: initValue('c12')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(13) 总胆固醇:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c13', { initialValue: initValue('c13')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(14) 甘油三脂:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c14', { initialValue: initValue('c14')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(15) 高密度脂蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c15', { initialValue: initValue('c15')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(16) 低密度脂蛋白:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-input style="width: 240px;" v-decorator="['c16', { initialValue: initValue('c16')}]" addonAfter="mmol/L" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="(17) DD二聚体:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-input style="width: 240px;" v-decorator="['c17', { initialValue: initValue('c17')}]" addonAfter="ng/ml" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="DD二聚体:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['c171', { initialValue: initValue('c171')}]"> + <a-radio value="1">正常</a-radio> + <a-radio value="2">降低</a-radio> + <a-radio value="3">升高</a-radio> + <a-radio value="4">未测量</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="(18) 维生素D:" :labelCol="labelColHor" :wrapperCol="wrapperHor" class="no-border"> + <a-input style="width: 240px;" v-decorator="['c18', { initialValue: initValue('c18')}]" addonAfter="nmol/l" autocomplete="off"></a-input> + </a-form-item> + <a-form-item label="维生素D:" :labelCol="labelColHor" :wrapperCol="wrapperHor"> + <a-radio-group v-decorator="['c181', { initialValue: initValue('c181')}]"> + <a-radio value="1">正常</a-radio> + <a-radio value="2">降低</a-radio> + <a-radio value="3">升高</a-radio> + <a-radio value="4">未测量</a-radio> + </a-radio-group> + </a-form-item> + </div> + </div> + </a-form> + </a-col> + </a-row> + </a-card> + <a-spin :spinning="spinning"></a-spin> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import moment from 'moment' +import { mapActions } from 'vuex' +import { getPatientBasis, saveBasis, getBasisForm, getOcrResult, recoverSubmit } from '@/api/basis' +import { MyIcon } from '@/components/_util/util' +import { ACCESS_TOKEN } from '@/store/mutation-types' +import ContactForm from '@/views/account/ContactForm' +export default { + name: 'task24', + components: { + STree, + MyIcon, + ContactForm + }, + data() { + return { + markName: 'qtsyjc', + title: '', + openKeys: [], + defaultSelectedKeys: [24], + orgTree: [], + patient: {}, + patientBasis: {}, + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + baselineFormStyle: { + // height: '444px', + 'padding-top': '52px' + }, + labelColHor: { + xs: { span: 24 }, + sm: { span: 7 }, + md: { span: 7 } + }, + wrapper18: { + md: { span: 18 } + }, + labelColVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + wrapperHor: { + xs: { span: 24 }, + sm: { span: 17 }, + md: { span: 17 } + }, + wrapperVer: { + xs: { span: 24 }, + sm: { span: 24 }, + md: { span: 24 } + }, + labelColOffset: { + md: { span: 4, offset: 7 } + }, + wrapperOffset: { + md: { span: 13 } + }, + require2: { + rules: [{ required: true, message: '请选择有或无!' }] + }, + inputRequired: { + rules: [{ required: true, message: '请填写!' }] + }, + form: this.$form.createForm(this), + maskId: this.$route.meta.maskId, + patientBasisId: this.$route.params.id, + qtsyjc: undefined, + controla1: false, + spinning: false, + executeStatus: false, + previewVisible1: false, + previewImage1: '', + previewVisible2: false, + previewImage2: '', + uploadUrl: process.env.VUE_APP_API_UPLOAD_URL, + viewPicUrl: process.env.VUE_APP_API_VIEW_PIC_URL, + fileList1: [], + fileList2: [], + isGroup: this.$ls.get(ACCESS_TOKEN).roleId === 1 || false, + canEdit: false, + submitInfo: undefined, + dateRequire: { + rules: [{ type: 'object', required: true, message: '请选择时间!' }] + } + } + }, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.title = '年访视' + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + that.canEdit = that.$ls.get(ACCESS_TOKEN).centerId === that.patient.targetCenterId + }) + this.getFormData() + }, + methods: { + ...mapActions(['CloseSidebar']), + moment, + getFormData() { + var that = this + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + params.append('basisMarkId', this.maskId) + getBasisForm(params) + .then(res => { + if (res.data && res.data.qtsyjc) { + that.qtsyjc = that.dealAnswers(res.data.qtsyjc) + } + if (res.data.annexListXcg && res.data.annexListXcg.length) { + that.fileList1 = _.map(res.data.annexListXcg, function(v) { + return { + uid: v.annexId, + url: that.viewPicUrl + v.annexAddress, + name: v.annexAddress, + status: 'done' + } + }) + } + if (res.data.annexListXsh && res.data.annexListXsh.length) { + that.fileList2 = _.map(res.data.annexListXsh, function(v) { + return { + uid: v.annexId, + url: that.viewPicUrl + v.annexAddress, + name: v.annexAddress, + status: 'done' + } + }) + } + }) + .catch(error => { + console.log(error) + }) + }, + changeSelect(e, t) { + this[t] = e.target.checked + }, + changeRadio(e, t) { + if (e.target.value === '1') { + this[t] = true + } else { + this[t] = false + } + }, + handleClick(e) { + this.maskId = e.key + if ((e.key >= 37 && e.key <= 42) || (e.key >= 45 && e.key <= 50)) { + this.$router.replace('/basis/question/' + this.patientBasisId + '/' + this.maskId) + } else { + this.$router.replace('/list/task/' + this.patientBasisId + '/' + this.maskId) + } + }, + handleSubmit(e) { + var _this = this + e.preventDefault() + const { form: { validateFieldsAndScroll } } = this + validateFieldsAndScroll((errors, values) => { + if (!errors) { + var re = this.form.getFieldsValue() + re = { + ...re, + 't1': typeof re['t1'] !== 'undefined' ? re['t1'].format('YYYY-MM-DD') : '' + } + var that = this + this.patientBasis.status = 2 + var params = new URLSearchParams() + if (this.qtsyjc && this.qtsyjc.qtsyjcId) { + re.qtsyjcId = this.qtsyjc.qtsyjcId + } + //附件 + if (this.fileList1 && this.fileList1.length) { + var a = [] + _.each(this.fileList1, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + } + //附件 + if (this.fileList2 && this.fileList2.length) { + var a = [] + _.each(this.fileList2, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileNameOther', JSON.stringify(a)) + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.$message.success(res.msg) + that.spinning = false + that.getFormData() + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + } else { + this.spinning = false + } + }) + }, + initValue(key, type = 'normal') { + if (!this.qtsyjc) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (!this.qtsyjc[key]) return type === 'array' ? [] : type === 'time' ? undefined : '' + if (type === 'time') { + return moment(this.qtsyjc[key]) + } else if (type === 'array') { + return this.qtsyjc[key].split(',') + } else { + return this.qtsyjc[key] + '' + } + }, + dealAnswers(answer) { + if (answer && !_.isEmpty(answer)) { + if (answer.a1 == '1') { + this.controla1 = true + } + } + return answer + }, + handleOk(v) { + this.submitInfo = v + this.$refs.submitBtn.$el.click() + }, + getBirthdayByIdNO (IdNO){ + let birthday = ""; + if (IdNO.length==18) { + birthday = IdNO.substr(6,8); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else if(IdNO.length==15){ + birthday = "19"+IdNO.substr(6,6); + return birthday.replace(/(.{4})(.{2})/,"$1-$2-"); + }else{ + return ""; + } + }, + disabledDate(current) { + let date = this.getBirthdayByIdNO(this.patient.card) + return current && current > moment().endOf('day') || moment(date).endOf('day') > current; + }, + save() { + var re = this.form.getFieldsValue() + re = { + ...re, + 't1': typeof re['t1'] !== 'undefined' ? re['t1'].format('YYYY-MM-DD') : '' + } + var that = this + console.log(re) + this.patientBasis.status = 1 + var params = new URLSearchParams() + if (this.qtsyjc && this.qtsyjc.qtsyjcId) { + re.qtsyjcId = this.qtsyjc.qtsyjcId + } + //附件 + if (this.fileList1 && this.fileList1.length) { + var a = [] + _.each(this.fileList1, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileName', JSON.stringify(a)) + } + //附件 + if (this.fileList2 && this.fileList2.length) { + var a = [] + _.each(this.fileList2, function(v) { + if (v.response) a.push(v.response.fileName) + else a.push(v.name) + }) + params.append('fileNameOther', JSON.stringify(a)) + } + params.append('formData', JSON.stringify(re)) + params.append('patientBasis', JSON.stringify(this.patientBasis)) + params.append('basisMarkId', this.maskId) + params.append('markName', this.markName) + this.spinning = true + saveBasis(params) + .then(res => { + console.log(res) + that.$message.success(res.msg) + that.spinning = false + that.getFormData() + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }) + .catch(error => { + that.spinning = false + console.log(error) + }) + return false + }, + handleCancel1() { + this.previewVisible1 = false; + }, + handleChange1({ fileList }) { + var that = this + this.fileList1 = fileList; + if (fileList.every(function(v) { return v.status === 'done'})) { + this.spinning = false + this.fileList1.forEach((f,i) => { + if(f.response){ + that.$set(that.fileList1,i,{ + name: f.response.fileName, + status: 'done', + uid: f.uid, + url: f.response.data.src + }) + } + }) + } + }, + handleCancel2() { + this.previewVisible2 = false; + }, + handleChange2({ fileList }) { + var that = this + this.fileList2 = fileList; + if (fileList.every(function(v) { return v.status === 'done'})) { + this.spinning = false + this.fileList2.forEach((f,i) => { + if(f.response){ + that.$set(that.fileList2,i,{ + name: f.response.fileName, + status: 'done', + uid: f.uid, + url: f.response.data.src + }) + } + }) + } + }, + _import(fileList, type) { + var that = this + this.spinning = true + var params = new URLSearchParams() + params.append('url', fileList[0].response.data.src) + params.append('type', type) + getOcrResult(params) + .then(res => { + that.spinning = false + that.$message.success(res.data.info) + // console.log(res.data); + that.qtsyjc = _.extend(that.qtsyjc || {}, that.dealAnswers(res.data)) + that.form.setFieldsValue(that.qtsyjc) + }) + .catch(error => { + // console.log(error) + that.spinning = false + that.$message.error(res.msg) + }) + }, + withdraw() { + var that = this + this.$confirm({ + title: '确认撤销?', + onOk() { + that.spinning = true + var params = new URLSearchParams() + params.append('patientBasisMarkId', that.qtsyjc.patientBasisMarkId) + recoverSubmit(params) + .then(res => { + that.spinning = false + that.$message.success(res.msg) + params = new URLSearchParams() + params.append('patientBasisId', that.patientBasisId) + getPatientBasis(params) + .then(res => { + + that.orgTree = res.data.list + that.executeStatus = _.find(res.data.list[2].childList, function(v) { return v.basisMarkId === that.maskId }).executeStatus + }) + .catch(error => { + console.log(error) + }) + }).catch(error => { + that.spinning = false + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo { + height: calc(100% - 10px); +} + +/deep/ .card-box { + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} + +/deep/ .ant-spin { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, .2); + z-index: 2; + + & .ant-spin-dot { + position: absolute; + top: 55%; + left: 50%; + } +} + +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ant-row.ant-form-item:hover { + background-color: #e6f7ff; +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-calendar-picker { + width: 240px; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #1890FF; + color: #FFF; + + .anticon.anticon-clock-circle, + .anticon.anticon-check-circle { + color: #FFF; + } +} + +/deep/ .anticon.anticon-clock-circle, +/deep/ .anticon.anticon-check-circle { + font-size: 18px; +} + +/deep/ .ant-menu-item:hover, +.ant-menu-item-active, +.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, +.ant-menu-submenu-active, +.ant-menu-submenu-title:hover { + background-color: #e6f7ff; +} + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + color: #25aefe; + font-size: 20px; + padding-left: 70px; + padding-top: 18px; + padding-bottom: 10px; + background-image: url(../../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + background-position: 8px 10px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ .anticon.anticon-clock-circle { + color: #00A0E9; + } + + /deep/ .anticon.anticon-clock-circle { + color: #8ac51b; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + + .treeSubTitle { + font-size: 14px; + } + + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .btn-array { + overflow: hidden; + position: absolute; + padding-top: 10px; + padding-right: 20px; + width: calc(100% - 8px); + // height: 42px; + background: #fff; + z-index: 1; + padding-bottom: 10px; + bottom: 0; + } + + .baselineForm { + + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} + +.base-form { + height: 100%; + -ms-overflow-x: hidden; + overflow: hidden auto; +} +</style> \ No newline at end of file diff --git a/src/views/task/components/taskCreateForm.vue b/src/views/task/components/taskCreateForm.vue new file mode 100644 index 0000000000..c2b171ee8a --- /dev/null +++ b/src/views/task/components/taskCreateForm.vue @@ -0,0 +1,152 @@ +<template> + <a-modal :title="options.title" :width="700" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :destroyOnClose="destroyOnClose" :centered="centered" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item> + <a-input-search placeholder="搜索患者姓名,身份证号" @search="onSearch" v-decorator="['card', { rules: [{ required: true , message: '该选项必填'}] }]" enterButton autocomplete="off" /> + </a-form-item> + <a-table v-if="data.length > 0" :columns="columns" :rowSelection="rowSelection" :dataSource="data" :pagination="pagination" rowKey="patientId" @change="handleTableChange"> + </a-table> + </a-form> + </a-spin> + </a-modal> +</template> +<script> +import { getPatientDataList } from '@/api/patient' +import { createNfs } from '@/api/basis' +import moment from 'moment' +const columns = [{ + title: '患者编号', + dataIndex: 'code' + }, + { + title: '患者姓名', + dataIndex: 'name' + }, + { + title: '身份证号', + dataIndex: 'card' + }, + { + title: '联系方式', + dataIndex: 'telephone1' + } +]; +export default { + data() { + return { + options: {}, + residences: [], + patientId: undefined, + maskClosable: false, + data: [], + labelCol: { + xs: { span: 24 }, + sm: { span: 7 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 14 } + }, + visible: false, + confirmLoading: false, + centered: true, + destroyOnClose: true, + bodyStyle: { + height: '500px', + overflow: 'auto' + }, + form: this.$form.createForm(this), + requiredRule: { rules: [{ required: true, message: '该选项必填' }] }, + pagination: {}, + columns, + keyword: '' + }; + }, + computed: { + rowSelection() { + const { selectedRowKeys } = this; + return { + type: 'radio', + onChange: (selectedRowKeys, selectedRows) => { + this.patientId = selectedRows[0].patientId + }, + getCheckboxProps: record => ({ + props: { + disabled: record.name === 'Disabled User', // Column configuration not to be checked + name: record.name + } + }) + }; + } + }, + methods: { + add() { + this.options.title = '新建访视信息'; + this.visible = true; + this.data = []; + this.patientId = null; + }, + onSearch(value) { + this.keyword = value + this.getPatientList(1, 5); + }, + handleTableChange(pagination) { + console.log(pagination); + const pager = { ...this.pagination }; + pager.current = pagination.current; + this.pagination = pager; + this.getPatientList(pagination.current, 5); + }, + handleSubmit() { + if (!this.patientId) { + this.$message.error('请选择患者') + return + } + this.confirmLoading = true + const p = new URLSearchParams(); + p.append('patientId', this.patientId) + createNfs(p).then(res => { + if(res.code == 0) { + this.$emit('ok') + this.visible = false + this.$message.success(res.msg); + this.confirmLoading = false + } else { + this.$emit('ok') + this.visible = false + this.$message.warning(res.msg); + this.confirmLoading = false + } + }) + }, + handleCancel() { + this.visible = false; + }, + getPatientList(pageNumber, pageSize) { + const Params = new URLSearchParams(); + Params.append('pageNumber', pageNumber); + Params.append('pageSize', pageSize); + Params.append('keyWord', this.keyword); + getPatientDataList(Params).then(res => { + this.data = res.data; + const pagination = { ...this.pagination }; + pagination.total = res.total; + // this.confirmLoading = false; + this.pagination = pagination; + }); + } + } +}; +</script> +<style> +.ant-modal-header { + padding: 12px 24px !important; +} + +.ant-modal-close-x { + width: 50px !important; + height: 50px !important; + line-height: 50px !important; +} +</style> \ No newline at end of file diff --git a/src/views/task/index.vue b/src/views/task/index.vue new file mode 100644 index 0000000000..47bd5bff60 --- /dev/null +++ b/src/views/task/index.vue @@ -0,0 +1,429 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索患者姓名、身份证号、入组编号" /> + </a-form-item> + </a-col> + <a-col :md="4" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col :md="15" style="text-align:right" :sm="24"> + <a-button type="primary" @click="$refs.createModal.add()">新建</a-button> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch(1)">未执行任务</p> + <p @click="tableSearch(2)">未执行随访</p> + <p @click="tableSearch(3)">未执行访视</p> + <p @click="tableSearch(4)">已执行随访</p> + <p @click="tableSearch(5)">已执行访视</p> + <p @click="tableSearch(6)">全部任务</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="是否ICON"> + <a-radio-group v-model="queryParam.isIcon"> + <a-radio value="-1">否</a-radio> + <a-radio value="1">是</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="入组编号"> + <a-input v-model.trim="queryParam.fileCode" style="width: 100%" /> + </a-form-item> + <a-form-item label="患者姓名"> + <a-input v-model.trim="queryParam.patientName" style="width: 100%" /> + </a-form-item> + <a-form-item label="身份证号"> + <a-input v-model.trim="queryParam.card" style="width: 100%" /> + </a-form-item> + <a-form-item label="任务名称"> + <a-select v-model.trim="queryParam.type"> + <a-select-option value="2">半年随访任务</a-select-option> + <a-select-option value="3">年访视任务</a-select-option> + </a-select> + </a-form-item> + <a-form-item label="到期时间" style="margin-bottom:0;"> + <a-range-picker @change="changeTime" style="width: 100%" :value="dateArr" /> + </a-form-item> + <a-form-item style="text-align: right;margin-bottom: 0;margin-top: 15px;"> + <a-button type="primary" @click="clearForm">清空</a-button> + <a-button type="primary" style="margin-left: 10px;" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="patientBasisId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <template slot="warnStatus" slot-scope="text"> + <img width="25px" v-if="text == 1" src="../../assets/warn-1.png" :alt="text"> + <img width="25px" v-else-if="text == 2" src="../../assets/warn-2.png" :alt="text"> + <img width="25px" v-else-if="text > 2" src="../../assets/warn-3.png" :alt="text"> + </template> + <template slot="patientName" slot-scope="text,record"> + <a @click="showUser(record)">{{modifyName(text)}}</a> + </template> + <span slot="unSubmitquestion" slot-scope="text, record"> + <p>{{ record.unSubmitquestion }}</p> + </span> + <span slot="questionStatus" slot-scope="text"> + <a-badge :status="text | visitTypeFilter" :text="text | visitFilter" /></span> + <span slot="submitStatusStr" slot-scope="text"> + <a-badge :status="text | visitTypeFilter" :text="text | visitFilter" /></span> + <template slot="operation" slot-scope="text, record"> + <a @click="implement(record)">执行</a> + <a-divider type="vertical" /> + <a @click="ignore(record)">忽略</a> + </template> + </s-table> + <create-form ref="createModal" @ok="handleOk" /> + <user-detail ref="detailModal" /> + <a-modal :visible="visible" title="退组" @ok="outSubmit" :confirmLoading="confirmLoading" :centered="centered" :destroyOnClose="destroyOnClose" @cancel="handleClose"> + <a-form :form="form"> + <input type="hidden" v-model="outPatientBasisId"> + <a-form-item label="退组原因" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group v-decorator="['status', requiredRule]"> + <a-radio value="1">访视结束</a-radio> + <a-radio value="2">失访</a-radio> + <a-radio value="3">死亡</a-radio> + </a-radio-group> + </a-form-item> + </a-form> + </a-modal> + </a-card> +</template> +<script> +import moment from 'moment' +import { getVisitTask, ignoreBNTask } from '@/api/task' +import { STable } from '@/components' +import CreateForm from './components/taskCreateForm' +import UserDetail from '../list/modules/UserDetail' +import $ from 'jquery' +const visitMap = { + '已提交': { + status: 'success', + text: '已提交' + }, + '未提交': { + status: 'error', + text: '未提交' + }, + '忽略': { + status: 'default', + text: '忽略' + } +}; + +export default { + name: 'Task', + components: { + STable, + CreateForm, + UserDetail + }, + data() { + return { + visible: false, + form: this.$form.createForm(this), + labelCol: { + xs: { span: 24 }, + sm: { span: 7 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 15 } + }, + requiredRule: { rules: [{ required: true, message: '该选项必填!' }] }, + confirmLoading: false, + centered: true, + destroyOnClose: true, + outPatientBasisId: undefined, + form: this.$form.createForm(this), + bodyStyle: { + padding: "10px", + paddingBottom: "0px" + }, + // 查询参数 + queryParam: {}, + advanced: false, + // 表头 + columns: [{ + title: '预警', + dataIndex: 'warnStatus', + scopedSlots: { customRender: 'warnStatus' }, + width: 70 + },{ + title: '是否ICON', + dataIndex: 'research', + width: 80, + }, + { + title: '提交状态', + dataIndex: 'submitStatusStr', + width: 80, + scopedSlots: { + customRender: 'submitStatusStr' + } + }, + { + title: '入组编号', + dataIndex: 'fileCode', + width: 100 + }, + { + title: '任务状态', + dataIndex: 'executeStatusName', + width: 80 + }, + { + title: '任务名称', + dataIndex: 'typeName', + customRender: typeName => typeName + '任务', + width: 120 + }, + { + title: '患者姓名', + dataIndex: 'patientName', + scopedSlots: { customRender: 'patientName' }, + align: 'center', + width: 100 + }, + { + title: '联系电话', + dataIndex: 'telephone', + width: 120, + }, + { + title: '创建日期', + dataIndex: 'createDate', + customRender: createDate => moment(createDate).format('YYYY-MM-DD'), + width: 120 + }, + { + title: '到期日期', + dataIndex: 'planDate', + customRender: planDate => moment(planDate).format('YYYY-MM-DD'), + width: 120, + }, + { + title: '分支中心', + dataIndex: 'centerName', + width: 200 + }, { + title: '问卷状态', + width: 80, + dataIndex: 'questionStatus', + scopedSlots: { + customRender: 'questionStatus' + } + }, { + title: '未提交问卷', + width: 200, + dataIndex: ' unSubmitquestion', + scopedSlots: { + customRender: 'unSubmitquestion' + } + }, + { + title: '操作', + width: 100, + scopedSlots: { customRender: 'operation' } + } + ], + // 加载数据方法 必须为 Promise 对象 + loadData: parameter => { + if (!parameter.queryType) { + parameter.queryType = 1 + } + return getVisitTask(Object.assign(parameter, this.queryParam)).then(res => { + return res; + }); + }, + selectedRowKeys: [], + selectedRows: [], + scroll: false, + dateArr: [], + // custom table alert & rowSelection + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = []; + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + } + }; + }, + created() { + this.scroll = { + y: (window.screen.height - 368) + "px" + } + }, + filters: { + visitFilter(type) { + if (typeof type === 'undefined') { + type = '忽略' + } + return visitMap[type].text; + }, + visitTypeFilter(type) { + if (typeof type === 'undefined') { + type = '忽略' + } + return visitMap[type].status; + } + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + }, + methods: { + modifyName(name) { + return name.replace(/(.)(.*)/, (_, $1, $2) => $1 + '*'.repeat($2.length)) + }, + handleClose() { + this.visible = false + }, + handleOk() { + this.$refs.table.refresh(); + }, + clearForm() { + this.queryParam = {} + this.dateArr = [] + }, + refreshTable() { + this.advanced = false; + this.$refs.table.refresh(); + }, + changeTime(time) { + this.dateArr = time; + this.queryParam.planDateStart = moment(time[0]).format('YYYY-MM-DD'); + this.queryParam.planDateEnd = moment(time[1]).format('YYYY-MM-DD'); + }, + tableSearch(type) { + this.queryParam.queryType = type + this.$refs.table.refresh(); + this.advanced = false; + }, + showUser(record) { + this.$refs.detailModal.show(record); + }, + implement(record) { + //执行 + if (record.type === 6) { + this.$router.push('/icon/task/' + record.patientBasisId) + } else { + this.$router.push('/list/task/' + record.patientBasisId) + } + }, + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + ignore(record) { + var that = this + // if (record.executeStatus == 0) { + // this.$message.warning('只能忽略未执行的任务!'); + // return false; + // } + if (record.submitStatus == 2) { + this.$message.warning('只能忽略未忽略的任务!'); + return false; + } + if (record.type != 2) { + this.visible = true; + this.outPatientBasisId = record.patientBasisId + return false; + } + this.$confirm({ + title: '是否忽略?', + onOk() { + const params = new URLSearchParams() + params.append('patientBasisId', record.patientBasisId) + ignoreBNTask(params) + .then(res => { + that.$message.success(res.msg) + that.$refs.table.refresh() + }); + } + }); + }, + outSubmit() { + var that = this + this.form.validateFieldsAndScroll((errors, fieldsValue) => { + if (errors) { + that.confirmLoading = false + return + } + const params = new URLSearchParams() + params.append('patientBasisId', that.outPatientBasisId) + params.append('status', fieldsValue.status) + ignoreBNTask(params).then(res => { + that.visible = false + that.confirmLoading = false + that.$message.success(res.msg) + that.$refs.table.refresh() + }); + }); + } + } +}; +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 100px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/task/total.vue b/src/views/task/total.vue new file mode 100644 index 0000000000..a659767ea4 --- /dev/null +++ b/src/views/task/total.vue @@ -0,0 +1,408 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="4" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhe_huaban" /> + 受访者:{{ patient.name }} + </a-col> + <a-col :md="7" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzheng_huaban" /> + 身份证:{{ patient.card }} + </a-col> + <a-col :md="11" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ patientBasis.createDate | moment }}</a-col> + </a-row> + </a-card> + <a-card :bordered="false" class="card-box"> + <a-row :gutter="8"> + <a-col :span="5" :style="baselineInfoStyle"> + <s-tree :treeTitle="title" :defaultSelectedKeys="defaultSelectedKeys" :dataSource="orgTree" :openKeys.sync="openKeys" :search="false" @click="handleClick"> + </s-tree> + </a-col> + <a-col :span="19" style="height:100%;"> + <!-- 支扩病史资料 --> + </a-col> + </a-row> + </a-card> + </div> +</template> +<script> +import STree from '@/components/Tree/Tree' +import { mapActions } from 'vuex' +import { getPatientBasis, getElementsAnswer, getMedicineAllergyList, computeScore, getAllQuestionList, saveQuestion, getVtList, importVtData } from '@/api/basis' +import _ from 'lodash' +import $ from 'jquery' +import moment from 'moment' +import { MyIcon } from '@/components/_util/util' + +export default { + name: 'taskTotal', + components: { + STree, + MyIcon + }, + data() { + return { + baselineInfoStyle: { + overflow: "auto", + height: "100%", + "padding-right": "0px", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + baselineFormStyle: { + // height: '444px', + }, + title: '年访视', + openKeys: [], + defaultSelectedKeys: [], + orgTree: [], + patient: {}, + patientBasis: {}, + patientBasisId: this.$route.params.id, + basisMaskId: -1 + } + }, + beforeCreate() {}, + created() { + var that = this + this.CloseSidebar() + var params = new URLSearchParams() + params.append('patientBasisId', this.patientBasisId) + getPatientBasis(params) + .then(res => { + that.patient = res.data.patient + that.patientBasis = res.data.patientBasis + that.orgTree = res.data.list + that.basisMaskId = that.orgTree[0].basisMarkId + that.defaultSelectedKeys = [that.basisMaskId] + that.$router.replace('/list/task/' + that.patientBasisId + '/' + that.basisMaskId) + }) + }, + methods: { + ...mapActions(['CloseSidebar']), + handleClick(e) { + this.basisMaskId = e.key + } + } +} +</script> +<style lang="less" scoped> +#baselineInfo{ + height:calc(100% - 10px); +} +/deep/ .card-box{ + margin-top: 10px; + padding-left: 0; + height: calc(100% - 54px); +} +/deep/ #baselineHeader { + .ant-card-body { + padding: 10px + } +} + +.ml-10 { + margin-left: 10px; +} + +.UserNameCard { + font-size: 20px; + + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } +} + +.clear { + clear: both; +} + +.ant-col-4 .ant-calendar-picker, +.ant-col-6 .ant-calendar-picker { + width: 100%; +} + +.ant-checkbox-wrapper+.ant-checkbox-wrapper { + margin-left: 0; +} + +/deep/.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected { + background-color: #CFF4FF; +} + + +/deep/.ant-menu-vertical .ant-menu-item:after, +.ant-menu-vertical-left .ant-menu-item:after, +.ant-menu-vertical-right .ant-menu-item:after, +.ant-menu-inline .ant-menu-item:after { + border-right: 6px solid #1890ff; +} + +/deep/ .ant-row { + clear: both; + height: 100%; +} + +.page-header-index-wide { + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 0; + height: 100%; + } + + /deep/ .tree-title { + border-right: 1px solid #e8e8e8; + color: #25aefe; + font-size: 22px; + padding-left: 70px; + padding-top: 5px; + padding-bottom: 10px; + background-image: url(../../assets/treeTop.png); + background-repeat: no-repeat; + border-bottom: 1px solid #eee; + padding-left: 20p; + background-position-x: 15px; + padding-bottom: 26px; + } + + /deep/ .ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title, + .ant-menu .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + } + + /deep/ .ant-menu-submenu-title { + height: 50px; + line-height: 50px; + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + background-color: rgba(245, 251, 255); + + .ant-menu.ant-menu-inline.ant-menu-sub { + background-color: rgba(245, 251, 255); + padding-left: 20px; + .treeSubTitle{ + font-size: 14px; + } + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ li.ant-menu-submenu.ant-menu-submenu-inline { + .ant-menu.ant-menu-inline.ant-menu-sub { + li { + border-bottom: none; + height: 40px; + line-height: 40px; + } + } + } + + /deep/ .ant-menu-item { + height: 50px; + line-height: 50px; + border-bottom: 1px solid #eeeeee; + margin: 0; + + .ant-menu-item:hover, + .ant-menu-item-active, + .ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open, + .ant-menu-submenu-active, + .ant-menu-submenu-title:hover { + background-color: #eaf2fd; + } + + .placeholderI { + display: inline-block; + width: 27px; + } + + .anticon.anticon-check-circle { + font-size: 18px; + color: #8ac51b; + } + + .anticon.anticon-clock-circle { + font-size: 18px; + color: #06a0e2; + } + + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + } + + /deep/ .ant-menu-submenu { + .anticon-check-circle { + color: #8ac51b; + } + + .anticon-clock-circle { + color: #06a0e2; + } + &.ant-menu-submenu-inline { + .treeSubTitle { + font-size: 16px; + margin-left: 10px; + display: inline-block; + width: 140px; + } + + .treeSubPercentage { + font-size: 16px; + margin-left: 10px; + } + + .action { + font-size: 18px; + + &.anticon-check-circle { + color: #8ac51b; + } + + &.anticon-clock-circle { + color: #06a0e2; + } + } + + .placeholderI { + display: inline-block; + width: 27px; + } + } + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .baselineForm { + + overflow: auto; + + .title { + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + height: 40px; + line-height: 40px; + } + + padding: 40px 20px; + + .ant-form-item { + // padding-bottom: 10px; + // padding-top: 10px; + margin-bottom: 0px; + border-bottom: 1px solid #eee; + + &.no-border { + border-bottom: none; + padding-top: 0; + padding-bottom: 0; + } + + &:hover {} + + &.border-dotted { + border-bottom: 1px dotted #eee; + } + } + + /deep/ .ant-form-item-label { + text-align: left; + line-height: 56px; + white-space: inherit; + + label:after { + content: ''; + } + + &.ant-col-md-24 label { + display: block; + background-color: #f7f8f8; + font-weight: bold; + font-size: 16px; + color: #231815; + padding-left: 15px; + border-top: 1px solid #eee; + } + } + + /deep/ .ant-form-item-control-wrapper .ant-form-item-control { + line-height: 56px; + } + + .formSubtitle { + height: 50px; + line-height: 50px; + font-weight: bold; + font-size: 16px; + padding-left: 10px; + margin-bottom: 0px; + background: #fafcfd; + border-bottom: 1px solid #f3f3f3; + } + + .itemRow:hover { + background-color: #e6f7ff; + } + } +} + +.question-title { + text-align: center; + font-size: 22px; + color: #3398DC; +} + +.question-des { + font-size: 16px; + // border: 1px solid #91D5FF ; + // border-radius: 3px; + // background: lightblue; + padding: 0 10px; +} + +.question-t { + font-size: 18px; + line-height: 40px; + font-weight: 700; +} + +/deep/.page-header-index-wide[data-v-30448598] .ant-menu-submenu.ant-menu-submenu-inline .treeSubTitle { + width: 120px; +} + +/deep/.ant-menu-inline .ant-menu-submenu-title { + padding-right: 0px; +} +</style> \ No newline at end of file diff --git a/src/views/user/Login.vue b/src/views/user/Login.vue index f6657ad513..f075626df4 100644 --- a/src/views/user/Login.vue +++ b/src/views/user/Login.vue @@ -1,131 +1,35 @@ <template> <div class="main"> - <a-form - id="formLogin" - class="user-layout-login" - ref="formLogin" - :form="form" - @submit="handleSubmit" - > - <a-tabs - :activeKey="customActiveKey" - :tabBarStyle="{ textAlign: 'center', borderBottom: 'unset' }" - @change="handleTabClick" - > - <a-tab-pane key="tab1" tab="账号密码登录"> - <a-form-item> - <a-input - size="large" - type="text" - placeholder="账户: admin" - v-decorator="[ - 'username', - {rules: [{ required: true, message: '请输入帐户名或邮箱地址' }, { validator: handleUsernameOrEmail }], validateTrigger: 'change'} - ]" - > - <a-icon slot="prefix" type="user" :style="{ color: 'rgba(0,0,0,.25)' }"/> - </a-input> - </a-form-item> - - <a-form-item> - <a-input - size="large" - type="password" - autocomplete="false" - placeholder="密码: admin or ant.design" - v-decorator="[ - 'password', - {rules: [{ required: true, message: '请输入密码' }], validateTrigger: 'blur'} - ]" - > - <a-icon slot="prefix" type="lock" :style="{ color: 'rgba(0,0,0,.25)' }"/> - </a-input> - </a-form-item> - </a-tab-pane> - <a-tab-pane key="tab2" tab="手机号登录"> - <a-form-item> - <a-input size="large" type="text" placeholder="手机号" v-decorator="['mobile', {rules: [{ required: true, pattern: /^1[34578]\d{9}$/, message: '请输入正确的手机号' }], validateTrigger: 'change'}]"> - <a-icon slot="prefix" type="mobile" :style="{ color: 'rgba(0,0,0,.25)' }"/> - </a-input> - </a-form-item> - - <a-row :gutter="16"> - <a-col class="gutter-row" :span="16"> - <a-form-item> - <a-input size="large" type="text" placeholder="验证码" v-decorator="['captcha', {rules: [{ required: true, message: '请输入验证码' }], validateTrigger: 'blur'}]"> - <a-icon slot="prefix" type="mail" :style="{ color: 'rgba(0,0,0,.25)' }"/> - </a-input> - </a-form-item> - </a-col> - <a-col class="gutter-row" :span="8"> - <a-button - class="getCaptcha" - tabindex="-1" - :disabled="state.smsSendBtn" - @click.stop.prevent="getCaptcha" - v-text="!state.smsSendBtn && '获取验证码' || (state.time+' s')" - ></a-button> - </a-col> - </a-row> - </a-tab-pane> - </a-tabs> - + <a-form id="formLogin" class="user-layout-login" ref="formLogin" :form="form" @submit="handleSubmit"> <a-form-item> - <a-checkbox v-decorator="['rememberMe']">自动登录</a-checkbox> - <router-link - :to="{ name: 'recover', params: { user: 'aaa'} }" - class="forge-password" - style="float: right;" - >忘记密码</router-link> + <a-input size="large" type="text" placeholder="账号" v-decorator="['account', { rules: [{ required: true, message: '请输入账号' }, { validator: handleUsernameOrEmail }], validateTrigger: 'change' }]"> + <a-icon slot="prefix" type="user" :style="{ color: 'rgba(0,0,0,.25)' }" /> + </a-input> + </a-form-item> + <a-form-item> + <a-input size="large" type="password" autocomplete="false" placeholder="密码" v-decorator="['password', { rules: [{ required: true, message: '请输入密码' }], validateTrigger: 'blur' }]"> + <a-icon slot="prefix" type="lock" :style="{ color: 'rgba(0,0,0,.25)' }" /> + </a-input> + </a-form-item> + <a-form-item> + <a-checkbox v-decorator="['rememberMe']">记住密码</a-checkbox> </a-form-item> - <a-form-item style="margin-top:24px"> - <a-button - size="large" - type="primary" - htmlType="submit" - class="login-button" - :loading="state.loginBtn" - :disabled="state.loginBtn" - >确定</a-button> + <a-button size="large" type="primary" htmlType="submit" class="login-button" :loading="state.loginBtn" :disabled="state.loginBtn">登录</a-button> </a-form-item> - - <div class="user-login-other"> - <span>其他登录方式</span> - <a> - <a-icon class="item-icon" type="alipay-circle"></a-icon> - </a> - <a> - <a-icon class="item-icon" type="taobao-circle"></a-icon> - </a> - <a> - <a-icon class="item-icon" type="weibo-circle"></a-icon> - </a> - <router-link class="register" :to="{ name: 'register' }">注册账户</router-link> - </div> </a-form> - - <two-step-captcha - v-if="requiredTwoStepCaptcha" - :visible="stepCaptchaVisible" - @success="stepCaptchaSuccess" - @cancel="stepCaptchaCancel" - ></two-step-captcha> </div> </template> - <script> +import Vue from 'vue' import md5 from 'md5' -import TwoStepCaptcha from '@/components/tools/TwoStepCaptcha' import { mapActions } from 'vuex' import { timeFix } from '@/utils/util' -import { getSmsCaptcha, get2step } from '@/api/login' +import { getVersion } from '@/api/login' export default { - components: { - TwoStepCaptcha - }, - data () { + components: {}, + data() { return { customActiveKey: 'tab1', loginBtn: false, @@ -141,145 +45,94 @@ export default { loginType: 0, smsSendBtn: false } - } + }; }, - created () { - get2step({ }) - .then(res => { - this.requiredTwoStepCaptcha = res.result.stepCode - }) - .catch(() => { - this.requiredTwoStepCaptcha = false - }) - // this.requiredTwoStepCaptcha = true + created() { + getVersion() + .then(res => { + console.log(res) + if(res.code === 0){ + Vue.ls.set('version', res.data.htmlVersionNumber) + } + }) }, methods: { ...mapActions(['Login', 'Logout']), // handler - handleUsernameOrEmail (rule, value, callback) { - const { state } = this - const regex = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/ + handleUsernameOrEmail(rule, value, callback) { + const { state } = this; + const regex = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/; if (regex.test(value)) { - state.loginType = 0 + state.loginType = 0; } else { - state.loginType = 1 + state.loginType = 1; } - callback() - }, - handleTabClick (key) { - this.customActiveKey = key - // this.form.resetFields() + callback(); }, - handleSubmit (e) { - e.preventDefault() + handleSubmit(e) { + const that = this; + e.preventDefault(); const { - form: { validateFields }, + form: { validateFieldsAndScroll }, state, customActiveKey, Login - } = this + } = this; - state.loginBtn = true + state.loginBtn = true; - const validateFieldsKey = customActiveKey === 'tab1' ? ['username', 'password'] : ['mobile', 'captcha'] + const validateFieldsAndScrollKey = customActiveKey === 'tab1' ? ['account', 'password'] : ['mobile', 'captcha']; - validateFields(validateFieldsKey, { force: true }, (err, values) => { + validateFieldsAndScroll(validateFieldsAndScrollKey, { force: true }, (err, values) => { if (!err) { - console.log('login form', values) - const loginParams = { ...values } - delete loginParams.username - loginParams[!state.loginType ? 'email' : 'username'] = values.username - loginParams.password = md5(values.password) + const loginParams = { ...values }; Login(loginParams) - .then((res) => this.loginSuccess(res)) - .catch(err => this.requestFailed(err)) - .finally(() => { - state.loginBtn = false + .then(function(res) { + that.loginSuccess(res) + }) + .catch(response => { + that.$notification['error']({ + message: response.msg, + // description: response.msg, + duration: 4 + }) }) + .finally(() => { + state.loginBtn = false; + }); } else { setTimeout(() => { - state.loginBtn = false - }, 600) + state.loginBtn = false; + }, 600); } - }) - }, - getCaptcha (e) { - e.preventDefault() - const { form: { validateFields }, state } = this - - validateFields(['mobile'], { force: true }, (err, values) => { - if (!err) { - state.smsSendBtn = true - - const interval = window.setInterval(() => { - if (state.time-- <= 0) { - state.time = 60 - state.smsSendBtn = false - window.clearInterval(interval) - } - }, 1000) - - const hide = this.$message.loading('验证码发送中..', 0) - getSmsCaptcha({ mobile: values.mobile }).then(res => { - setTimeout(hide, 2500) - this.$notification['success']({ - message: '提示', - description: '验证码获取成功,您的验证码为:' + res.result.captcha, - duration: 8 - }) - }).catch(err => { - setTimeout(hide, 1) - clearInterval(interval) - state.time = 60 - state.smsSendBtn = false - this.requestFailed(err) - }) - } - }) - }, - stepCaptchaSuccess () { - this.loginSuccess() + }); }, - stepCaptchaCancel () { - this.Logout().then(() => { - this.loginBtn = false - this.stepCaptchaVisible = false - }) - }, - loginSuccess (res) { - console.log(res) - this.$router.push({ name: 'dashboard' }) + loginSuccess(res) { + this.$router.push({ name: 'Analysis' }); // 延迟 1 秒显示欢迎信息 setTimeout(() => { this.$notification.success({ message: '欢迎', description: `${timeFix()},欢迎回来` - }) - }, 1000) + }); + }, 1000); }, - requestFailed (err) { + requestFailed(err) { this.$notification['error']({ message: '错误', - description: ((err.response || {}).data || {}).message || '请求出现错误,请稍后再试', + description: ((err.response || {}).data || {}).m || '请求出现错误,请稍后再试', duration: 4 - }) + }); } } -} +}; </script> - <style lang="less" scoped> .user-layout-login { label { font-size: 14px; } - .getCaptcha { - display: block; - width: 100%; - height: 40px; - } - .forge-password { font-size: 14px; } @@ -314,4 +167,4 @@ export default { } } } -</style> +</style> \ No newline at end of file diff --git a/src/views/user/Register.vue b/src/views/user/Register.vue index 79be00cfa2..9648a62a63 100644 --- a/src/views/user/Register.vue +++ b/src/views/user/Register.vue @@ -211,8 +211,8 @@ export default { }, handleSubmit () { - const { form: { validateFields }, state, $router } = this - validateFields({ force: true }, (err, values) => { + const { form: { validateFieldsAndScroll }, state, $router } = this + validateFieldsAndScroll({ force: true }, (err, values) => { if (!err) { state.passwordLevelChecked = false $router.push({ name: 'registerResult', params: { ...values } }) @@ -222,9 +222,9 @@ export default { getCaptcha (e) { e.preventDefault() - const { form: { validateFields }, state, $message, $notification } = this + const { form: { validateFieldsAndScroll }, state, $message, $notification } = this - validateFields(['mobile'], { force: true }, + validateFieldsAndScroll(['mobile'], { force: true }, (err, values) => { if (!err) { state.smsSendBtn = true diff --git a/src/views/user/UserDetail.vue b/src/views/user/UserDetail.vue new file mode 100644 index 0000000000..4114e007e0 --- /dev/null +++ b/src/views/user/UserDetail.vue @@ -0,0 +1,229 @@ +<template> + <a-modal :title="options.title" :width="750" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :destroyOnClose="destroyOnClose" :centered="centered" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item label="用户名称" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['name', requiredRule]" /> + </a-form-item> + <a-form-item label="用户账号" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['account', requiredRule]" /> + </a-form-item> + <a-form-item label="密码" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input type="password" placeholder="请输入密码" @blur="handleConfirmBlur" v-decorator="['password', {rules: [{ required: true, message: '至少6位密码,区分大小写'}, {validator: validateToNextPassword}]}]" /> + </a-form-item> + <a-form-item label="确认密码" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input type="password" placeholder="请确认密码" v-decorator="['password2', {rules: [{ required: true, message: '请确认密码' }, {validator: compareToFirstPassword}]}]" /> + </a-form-item> + <a-form-item label="用户角色" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group v-decorator="['roleId', requiredRule]" :options="roleList"> + </a-radio-group> + </a-form-item> + <a-form-item label="分支中心" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="form.getFieldValue('roleId') == 2"> + <a-select :placeholder="centerPlaceholder" showSearch v-decorator="['centerId', requiredRule]" optionFilterProp="label"> + <a-select-option v-for="item in centerList" :key="item.value" :value="item.value" :label="item.label">{{item.label}}</a-select-option> + </a-select> + </a-form-item> + <a-form-item label="是否查看全部中心" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="form.getFieldValue('roleId') == 2"> + <a-radio-group v-decorator="['purviewType', requiredRule]"> + <a-radio value="1">是</a-radio> + <a-radio value="2">否</a-radio> + </a-radio-group> + </a-form-item> + <a-form-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group v-decorator="['status', requiredRule]"> + <a-radio value="1">使用</a-radio> + <a-radio value="-1">停用</a-radio> + </a-radio-group> + </a-form-item> + </a-form> + </a-spin> + </a-modal> +</template> +<script> +import { saveDoctor, getRoleDataList, selectCenterDataList, getDoctorDetail } from '@/api/center' +import moment from 'moment' +import _ from 'lodash' +export default { + data() { + return { + options: {}, + maskClosable: false, + roleList: [], + centerList: [], + labelCol: { + xs: { span: 24 }, + sm: { span: 7 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 15 } + }, + visible: false, + confirmLoading: false, + centered: true, + destroyOnClose: true, + bodyStyle: { + height: '500px', + overflow: 'auto' + }, + form: this.$form.createForm(this), + requiredRule: { rules: [{ required: true, message: '该选项必填!' }] }, + confirmDirty: false, + doctorId: undefined, + centerPlaceholder: '选择分支中心' + } + }, + created() { + var that = this + getRoleDataList() + .then(res => { + that.roleList = _.map(res.data, function(v) { + return { + label: v.name, + value: v.id + } + }) + }) + + selectCenterDataList() + .then(res => { + that.centerList = _.map(res.data, function(v) { + return { + label: v.name, + value: v.centerId + } + }) + }) + }, + methods: { + add() { + this.options.title = '新建用户' + this.visible = true + this.doctorId = undefined + }, + edit(value) { + this.options.title = '编辑用户' + this.doctorId = value.doctorId + + const params = new URLSearchParams() + params.append('doctorId', value.doctorId) + getDoctorDetail(params).then(res => { + var data = res.data.doctor; + this.form.setFieldsValue({ + name: data.name, + account: data.account, + password: data.password, + password2: data.password, + roleId: data.roleId, + status: String(data.status), + purviewType: String(data.purviewType) + }) + this.$nextTick(() => { + if (this.form.getFieldValue('roleId') == 2) { + this.form.setFieldsValue({ + centerId: data.centerId + }) + } + }) + }) + this.visible = true + }, + handleSubmit() { + this.confirmLoading = true; + this.form.validateFieldsAndScroll((errors, fieldsValue) => { + const that = this; + if (errors) { + this.confirmLoading = false + return + } + const values = { + ...fieldsValue, + doctorId: this.doctorId + }; + if (this.doctorId) { + values.doctorId = this.doctorId + } + const params = new URLSearchParams() + params.append('doctorStr', JSON.stringify(values)) + saveDoctor(params).then(res => { + that.visible = false + that.confirmLoading = false + that.$message.success(res.msg) + that.$emit('ok', values) + }); + }); + }, + handleCancel() { + this.visible = false + }, + handleConfirmBlur(e) { + const value = e.target.value; + this.confirmDirty = this.confirmDirty || !!value; + }, + validateToNextPassword(rule, value, callback) { + if (value.length < 6) { + callback(new Error('至少6位密码')) + } + + let level = 0 + + // 判断这个字符串中有没有数字 + if (/[0-9]/.test(value)) { + level++ + } + // 判断字符串中有没有字母 + if (/[a-zA-Z]/.test(value)) { + level++ + } + // 判断字符串中有没有特殊符号 + if (/[^0-9a-zA-Z_]/.test(value)) { + level++ + } + if (level < 2) { + callback(new Error('密码强度不够')) + } + + const form = this.form; + if (value && this.confirmDirty) { + form.validateFieldsAndScroll(['password2'], { force: true }); + } + callback(); + }, + compareToFirstPassword(rule, value, callback) { + const form = this.form; + if (value && value !== form.getFieldValue('password')) { + callback('您两次输入的密码不一致!'); + } else { + callback(); + } + }, + handlePasswordLevel(rule, value, callback) { + if (!value) callback() + let level = 0 + + // 判断这个字符串中有没有数字 + if (/[0-9]/.test(value)) { + level++ + } + // 判断字符串中有没有字母 + if (/[a-zA-Z]/.test(value)) { + level++ + } + // 判断字符串中有没有特殊符号 + if (/[^0-9a-zA-Z_]/.test(value)) { + level++ + } + if (level >= 2) { + callback() + } else { + callback(new Error('密码强度不够')) + } + } + } +}; +</script> +<style lang="less" scoped> +/deep/ .ant-form-item:last-child { + margin-bottom: 0; +} +</style> \ No newline at end of file diff --git a/src/views/user/list.vue b/src/views/user/list.vue new file mode 100644 index 0000000000..4ba5ddcc97 --- /dev/null +++ b/src/views/user/list.vue @@ -0,0 +1,231 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索用户名称" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col :md="13" style="text-align:right" :sm="24"> + <a-button type="primary" @click="$refs.userDetail.add()">新增</a-button> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch()">全部用户</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="用户名称"> + <a-input v-model.trim="queryParam.userName" /> + </a-form-item> + <a-form-item style="text-align: right;margin-bottom: 0;margin-top: 15px;"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px;" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="doctorId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <span slot="operation" slot-scope="text, record"> + <template> + <a @click="handleReview(record)">编辑</a> + <a-divider type="vertical" /> + <a @click="resetPwd(record)">重置密码</a> + </template> + </span> + <template slot="status" slot-scope="text"> + <span v-if="text == 1">使用</span> + <span v-if="text == -1">停用</span> + </template> + </s-table> + <user-detail ref="userDetail" @ok="handleOk"></user-detail> + <!-- <a-spin :spinning="spinning"></a-spin> --> + </a-card> +</template> +<script> +import moment from 'moment' +import { getDoctorDataList } from '@/api/center' +import { resetPwd } from '@/api/patient' +import { STable } from '@/components' +import UserDetail from './UserDetail' +export default { + components: { + STable, + UserDetail + }, + data() { + return { + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + scroll: false, + loadData: parameter => { + return getDoctorDataList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + spinning: false, + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [{ + title: '用户名称', + dataIndex: 'name', + width: '150px' + }, + { + title: '账号', + dataIndex: 'account', + width: '150px' + }, + { + title: '所属分支中心', + dataIndex: 'centerName', + width: '120px' + }, + { + title: '状态', + dataIndex: 'status', + width: '120px', + scopedSlots: { customRender: 'status' } + }, + { + title: '创建时间', + dataIndex: 'createTime', + customRender: createTime => moment(createTime).format('YYYY-MM-DD'), + width: '120px' + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '100px' + } + ], + } + }, + created() { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + }, + methods: { + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + clearForm() { + this.queryParam = {} + }, + tableSearch(type) { + this.queryParam.isUser = type + this.$refs.table.refresh() + this.advanced = false + }, + refreshTable() { + this.advanced = false + this.$refs.table.refresh() + }, + handleReview(record) { + this.$refs.userDetail.edit(record) + }, + handleOk() { + this.$refs.table.refresh() + }, + resetPwd(record) { + var that = this + this.$confirm({ + title: '确认重置密码?', + onOk() { + var params = new URLSearchParams() + params.append('doctorId', record.doctorId) + resetPwd(params) + .then(res => { + that.$message.success(res.msg) + }).catch(error => { + console.log(error) + }) + } + }) + } + } +} +</script> +<style lang="less" scoped> + +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/wx/article.vue b/src/views/wx/article.vue new file mode 100644 index 0000000000..01baa7315b --- /dev/null +++ b/src/views/wx/article.vue @@ -0,0 +1,139 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.title" placeholder="搜索文章标题" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + </a-form-item> + </a-col> + <a-col :md="13" style="text-align:right" :sm="24"> + <a-button type="primary" @click="handleReview">新增</a-button> + </a-col> + </a-row> + </a-form> + </div> + + <s-table ref="table" :scroll="scroll" size="small" rowKey="textId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <template slot="terminal" slot-scope="text"> + <span v-if="text == 1">微信</span> + <span v-if="text == 2">官网</span> + </template> + <template slot="operation" slot-scope="text, record"> + <a @click="handleReview(record)">编辑</a> + </template> + </s-table> + + <article-detail ref="articleDetail" @ok="handleOk"></article-detail> + </a-card> +</template> + +<script> + import moment from 'moment' + import { getWXList } from '@/api/text' + import { STable } from '@/components' + import ArticleDetail from './modules/ArticleDetail' + export default { + components: { + STable, + ArticleDetail + }, + data() { + return { + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 查询参数 + queryParam: {}, + scroll: false, + loadData: parameter => { + return getWXList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [ + { + title: '文章标题', + dataIndex: 'title', + width: '220px' + }, + { + title: '文章发布人', + dataIndex: 'publisher', + width: '100px' + }, + { + title: '发布终端', + dataIndex: 'terminal', + scopedSlots: { customRender: 'terminal' }, + width: '100px' + }, + { + title: '发布时间', + dataIndex: 'publishDate', + customRender: publishDate => moment(publishDate).format('YYYY-MM-DD'), + width: '150px' + }, + { + title: '阅读量', + dataIndex: 'num', + width: '100px' + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '100px' + } + ], + } + }, + created() { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + methods: { + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + refreshTable() { + this.$refs.table.refresh() + }, + handleReview(recode) { + this.$refs.articleDetail.show(recode.textId) + }, + handleOk() { + this.$refs.table.refresh() + } + }, + } +</script> + +<style lang="less" scoped> + /deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; + } +</style> \ No newline at end of file diff --git a/src/views/wx/famousDoctor.vue b/src/views/wx/famousDoctor.vue new file mode 100644 index 0000000000..2de543b2c0 --- /dev/null +++ b/src/views/wx/famousDoctor.vue @@ -0,0 +1,214 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索医生姓名" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col :md="13" style="text-align:right" :sm="24"> + <a-button type="primary" @click="handleReview">新增</a-button> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch(1)">已启用医生</p> + <p @click="tableSearch(0)">未启用医生</p> + <p @click="tableSearch()">全部医生</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="医生姓名"> + <a-input v-model.trim="queryParam.doctorName" /> + </a-form-item> + <a-form-item label="所属中心"> + <a-input v-model.trim="queryParam.centerName" /> + </a-form-item> + <a-form-item style="text-align: right;margin-bottom: 0;margin-top: 15px;"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px;" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + </a-row> + </a-form> + </div> + + <s-table ref="table" :scroll="scroll" size="small" rowKey="doctorDetailId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <span slot="operation" slot-scope="text, record"> + <template> + <a @click="handleReview(record)">编辑</a> + </template> + </span> + </s-table> + <doctor-detail ref="doctorDetail" @ok="handleOk"></doctor-detail> + </a-card> +</template> + +<script> + import moment from 'moment' + import { getFamousDoctorList } from '@/api/famousDoctor' + import { STable } from '@/components' + import DoctorDetail from './modules/DoctorDetail' + export default { + components: { + STable, + DoctorDetail + }, + data() { + return { + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + scroll: false, + loadData: parameter => { + return getFamousDoctorList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [ + { + title: '医生姓名', + dataIndex: 'doctorName', + width: '150px' + }, + { + title: '职称', + dataIndex: 'job', + width: '120px' + }, + { + title: '所属中心', + dataIndex: 'centerName', + width: '120px' + }, + { + title: '是否启用', + dataIndex: 'useName', + width: '100px' + }, + { + title: '创建人', + dataIndex: 'creatorName', + width: '150px' + }, + { + title: '创建时间', + dataIndex: 'createDate', + customRender: createDate => moment(createDate).format('YYYY-MM-DD'), + width: '120px' + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '100px' + } + ], + } + }, + created() { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + }, + methods: { + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + clearForm() { + this.queryParam = {} + }, + tableSearch(type) { + this.queryParam.isUser = type + this.$refs.table.refresh() + this.advanced = false + }, + refreshTable() { + this.advanced = false + this.$refs.table.refresh() + }, + handleReview(recode) { + this.$refs.doctorDetail.show(recode.doctorDetailId) + }, + handleOk() { + this.$refs.table.refresh() + } + } + } +</script> + +<style lang="less" scoped> + /deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; + } + .tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item > .ant-form-item-label { + width: 70px !important; + } + .commonRetrieval { + padding: 10px; + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } + } +</style> \ No newline at end of file diff --git a/src/views/wx/messageReply.vue b/src/views/wx/messageReply.vue new file mode 100644 index 0000000000..297008c01b --- /dev/null +++ b/src/views/wx/messageReply.vue @@ -0,0 +1,241 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索患者姓名、手机号" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs :style="{width: '250px'}" defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch()">全部</p> + <p @click="tableSearch(1)">待答复</p> + <p @click="tableSearch(3)">已答复</p> + </div> + </a-tab-pane> + <!-- <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="姓名"> + <a-input v-model.trim="queryParam.name" /> + </a-form-item> + <a-form-item label="身份证号"> + <a-input v-model.trim="queryParam.card" /> + </a-form-item> + <a-form-item style="text-align: right; margin-bottom: 0; margin-top: 15px"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> --> + </a-tabs> + </div> + </a-col> + </a-row> + </a-form> + </div> + <s-table + ref="table" + :scroll="scroll" + size="small" + rowKey="wxPatientId" + :columns="columns" + :data="loadData" + :alert="options.alert" + :rowSelection="options.rowSelection" + showPagination="auto" + > + <span slot="operation" slot-scope="text, record"> + <template> + <a @click="handleReview(record)">答复</a> + </template> + </span> + </s-table> + <reply-view ref="replyView" @ok="handleOk"></reply-view> + </a-card> +</template> +<script> +import moment from 'moment' +import { getMessageDataList, getPatientMessageList } from '@/api/messageReply' +import { STable } from '@/components' +import $ from 'jquery' +import replyView from './modules/replyView.vue' +export default { + components: { + STable, + replyView + }, + data () { + return { + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + scroll: false, + dataEchoInfo: {}, + loadData: (parameter) => { + return getMessageDataList(Object.assign(parameter, this.queryParam)).then((res) => { + return res + }) + }, + form: this.$form.createForm(this), + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [ + { + title: '患者姓名', + dataIndex: 'patientName', + width: 100 + }, + { + title: '手机号码', + dataIndex: 'telephone', + width: 120 + }, + { + title: '留言状态', + dataIndex: 'statusStr', + width: 100 + }, + { + title: '首次留言', + dataIndex: 'firstMessage', + width: 300, + ellipsis: true + }, + { + title: '最新留言', + dataIndex: 'lastMessage', + width: 300, + ellipsis: true + }, + { + title: '最新留言时间', + dataIndex: 'lastMessageTime', + customRender: (lastMessageTime) => moment(lastMessageTime).format('YYYY-MM-DD HH:mm:ss'), + width: 150 + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: 60 + } + ] + } + }, + created () { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + mounted () { + var that = this + $(document).on('click', function (e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ( + $(e.target).closest('.tableSearch').length == 0 && + $(e.target).closest('.ant-calendar').length == 0 && + $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && + $(e.target).closest('.ant-calendar-month-panel-table').length === 0 + ) { + that.advanced = false + } + }) + }, + methods: { + onSelectChange (selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys + this.selectedRows = selectedRows + }, + clearForm () { + this.queryParam = {} + }, + tableSearch (type) { + this.queryParam.replyStatus = type + this.$refs.table.refresh() + this.advanced = false + }, + refreshTable () { + this.advanced = false + this.$refs.table.refresh() + }, + async handleReview (recode) { + const { data } = await getPatientMessageList(recode.patientCenterMessageId) + this.$refs.replyView.replyMessage(data) + }, + handleOk () { + this.$refs.table.refresh() + } + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +/deep/ .ant-table-tbody td{ + max-width: 300px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item > .ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} +</style> + diff --git a/src/views/wx/modules/ArticleDetail.vue b/src/views/wx/modules/ArticleDetail.vue new file mode 100644 index 0000000000..34afec4efd --- /dev/null +++ b/src/views/wx/modules/ArticleDetail.vue @@ -0,0 +1,209 @@ +<template> + <a-modal :title="title" okText="发布" :width="800" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :centered="centered" :destroyOnClose="destroyOnClose" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item label="文章标题" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['title', requiredRule]" /> + </a-form-item> + <a-form-item label="标题配图" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-upload v-decorator="[ 'url', { ...requiredRule, valuePropName: 'fileList', getValueFromEvent: normFile }]" :action="action" list-type="picture" @preview="handlePreview" :remove="handleRemove"> + <a-button v-if="!fileName"> + <a-icon type="upload" />点击上传 + </a-button> + </a-upload> + <a-modal :visible="previewVisible" :footer="null" @cancel="previewVisible=false"> + <img alt="example" style="width: 100%" :src="previewImage" /> + </a-modal> + </a-form-item> + <!-- <a-form-item label="发布终端" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-radio-group v-model="terminal"> + <a-radio value="1">微信</a-radio> + </a-radio-group> + </a-form-item> --> + <a-form-item label="模块类型" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-select style="width: 100%" v-decorator="['type', requiredRule]"> + <a-select-option value="3">科普知识</a-select-option> + <a-select-option value="4">日常护理</a-select-option> + <a-select-option value="5">饮食健康</a-select-option> + <a-select-option value="6">注意事项</a-select-option> + </a-select> + </a-form-item> + <a-form-item label="文章发布人" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['publisher', requiredRule]" /> + </a-form-item> + <a-form-item class="textarea" label="文章内容" :labelCol="labelCol" :wrapperCol="wrapperCol" style="margin-bottom: 0"> + <quill-editor v-decorator="['text', { ...requiredRule, valuePropName: 'value', getValueFromEvent: normEditor }]" :options="editorOption"></quill-editor> + </a-form-item> + </a-form> + </a-spin> + </a-modal> +</template> + +<script> + import { getArticleDetail, addOrEdit } from '@/api/text' + import { quillEditor, Quill } from 'vue-quill-editor' + import Video from '@/utils/quill-video.js' + import 'quill/dist/quill.snow.css' + import quillConfig from '@/utils/quillConfig' + Quill.register(Video, true) + export default { + components: { + quillEditor + }, + data() { + return { + editorOption: quillConfig, + title: '', + bodyStyle: { + height: '500px', + overflow: 'auto' + }, + maskClosable: false, + centered: true, + destroyOnClose: true, + visible: false, + confirmLoading: false, + form: this.$form.createForm(this), + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 17 } + }, + requiredRule: { rules: [{ required: true, message: '该选项必填' }] }, + textId: '', + previewVisible: false, + previewImage: '', + action: process.env.VUE_APP_API_UPLOAD_URL, + attachsPrefix: process.env.VUE_APP_API_VIEW_PIC_URL, + fileName: '' + } + }, + methods: { + show(textId) { + this.visible = true; + this.textId = textId; + + if (textId) { + this.confirmLoading = true + this.title = '修改文章' + const params = { + textId, + terminal: '1' + } + getArticleDetail(params).then(res => { + this.confirmLoading = false + this.form.setFieldsValue({ + title: res.data.title, + type: String(res.data.type), + publisher: res.data.publisher, + text: res.data.text + }); + if (res.data.url) { + this.form.setFieldsValue({ + url: [{ + uid: '1', + name: res.data.url, + status: 'done', + url: this.attachsPrefix + res.data.url + }], + }) + } + this.fileName = res.data.url + }) + } else { + this.title = '新增文章' + this.fileName = '' + } + }, + handleChange(e) { + if (e.target.value) { + this.form.setFieldsValue({ type: '' }) + } + }, + normEditor(e) { + return e && e.html + }, + normFile(e) { + if (Array.isArray(e)) { + return e; + } + const isJPG = e.file.type === 'image/jpeg'; + const isPNG = e.file.type === 'image/png'; + if (!(isJPG || isPNG)) { + this.$message.error('请上传正确的图片格式'); + } + const isLt1M = e.file.size / 1024 / 1024 < 1; + if (!isLt1M) { + this.$message.error('图片大小不能超过1MB!'); + } + if (e.file.status == 'done') { + this.fileName = e.file.response.fileName + } + if ((isJPG || isPNG) && isLt1M) { + return e && e.fileList; + } + return [] + }, + handleRemove(file) { + this.fileName = '' + }, + handlePreview(file) { + this.previewImage = file.url || file.thumbUrl; + this.previewVisible = true; + }, + handleSubmit() { + this.confirmLoading = true + + const { form: { validateFieldsAndScroll } } = this; + + validateFieldsAndScroll((errors, fieldsValue) => { + if (errors) { + this.confirmLoading = false; + return; + } + + const params = new FormData() + const textWx = { + ...fieldsValue, + terminal: '1', + url: this.fileName + } + if (this.textId) { + textWx.textId = this.textId + } + params.append('entity', JSON.stringify(textWx)) + + addOrEdit(params).then(res => { + this.$message.success(res.msg); + this.visible = false + this.confirmLoading = false + this.$emit('ok') + }) + }) + }, + handleCancel() { + this.visible = false + } + } + } +</script> + +<style lang="less" scoped> + .textarea { + /deep/.ant-form-item-control { + line-height: 1; + } + } + /deep/ .ql-editor { + height: 350px; + } + /deep/ .ql-video[type='file'] { + display: none; + } + /deep/ .ql-editor .ql-video { + width: 100%; + } +</style> \ No newline at end of file diff --git a/src/views/wx/modules/CaseInfo.vue b/src/views/wx/modules/CaseInfo.vue new file mode 100644 index 0000000000..6b51a2e8aa --- /dev/null +++ b/src/views/wx/modules/CaseInfo.vue @@ -0,0 +1,128 @@ +<template> + <div class="patient"> + <div class="patient-box"> + <img src="../../../assets/woman.png" height="60px" v-if="patient.sex == 0" /> + <img src="../../../assets/man.png" height="60px" v-else /> + <div class="patient-info"> + <span class="patient-name">{{ patient.name }}</span> + <span class="patient-age" :class="patient.sex == 0 ? 'womenBg' : ''"> + <a-icon :type="patient.sex == 1 ? 'man':'woman'" /> + {{getAge}}岁 + </span> + <span class="patient-nation">{{patient.nationName}}</span> + </div> + </div> + <a-row> + <a-col :span="8"> + <p>患者编号:{{patient.code}}</p> + </a-col> + <a-col :span="8"> + <p>身份证号:{{patient.card}}</p> + </a-col> + <a-col :span="8"> + <p>创建人:{{patient.creatorName}}</p> + </a-col> + </a-row> + <a-row> + <a-col :span="8"> + <p>联系电话:{{patient.telephone1}}</p> + </a-col> + <a-col :span="8"> + <p>所属中心:{{patient.centerName}}</p> + </a-col> + <a-col :span="8"> + <p>创建时间:{{patient.createDate | moment}}</p> + </a-col> + </a-row> + <a-row> + <a-col :span="8"> + <p>文化程度:{{patient.censusName}}</p> + </a-col> + <a-col :span="8"> + <p>职业:{{patient.workName}}</p> + </a-col> + <a-col :span="8"> + <p>家庭年收入:{{patient.income + '万元'}}</p> + </a-col> + </a-row> + </div> +</template> + +<script> + import moment from 'moment' + export default { + props: ['patient'], + computed: { + getAge() { + var identityCard = this.patient.card + var len = (identityCard + '').length + var strBirthday = '' + if (len == 18) { + //处理18位的身份证号码从号码中得到生日和性别代码 + strBirthday = identityCard.substr(6, 4) + '/' + identityCard.substr(10, 2) + '/' + identityCard.substr(12, 2) + } + if (len == 15) { + strBirthday = + '19' + identityCard.substr(6, 2) + '/' + identityCard.substr(8, 2) + '/' + identityCard.substr(10, 2) + } + //时间字符串里,必须是“/” + var birthDate = new Date(strBirthday) + var nowDateTime = new Date() + var age = nowDateTime.getFullYear() - birthDate.getFullYear() + //再考虑月、天的因素;.getMonth()获取的是从0开始的,这里进行比较,不需要加1 + if ( + nowDateTime.getMonth() < birthDate.getMonth() || + (nowDateTime.getMonth() == birthDate.getMonth() && nowDateTime.getDate() < birthDate.getDate()) + ) { + age-- + } + return age + } + } + } +</script> +<style lang="less" scoped> + .patient { + border: 1px solid rgba(22, 143, 253, 0.15); + background: #f5f9fd; + padding: 15px 20px; + .patient-box { + border-bottom: 1px dashed rgba(22, 143, 253, 0.15); + padding-bottom: 15px; + margin-bottom: 15px; + display: flex; + .patient-info { + flex: 1; + display: flex; + align-items: center; + span { + height: 24px; + line-height: 24px; + font-size: 14px; + margin-left: 15px; + } + .patient-name { + font-size: 20px; + } + .womenBg { + background-color: #fd94dc !important; + } + .patient-age { + color: #fff; + background-color: #96dcfd; + padding: 0px 10px; + border-radius: 3px; + } + .patient-nation { + background-color: #e8e8e8; + padding: 0px 10px; + border-radius: 3px; + margin-left: 10px; + } + } + } + p { + font-size: 14px; + } + } +</style> diff --git a/src/views/wx/modules/DoctorDetail.vue b/src/views/wx/modules/DoctorDetail.vue new file mode 100644 index 0000000000..4eee932289 --- /dev/null +++ b/src/views/wx/modules/DoctorDetail.vue @@ -0,0 +1,252 @@ +<template> + <a-modal :title="title" okText="保存" :width="800" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :centered="centered" :destroyOnClose="destroyOnClose" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item label="医生姓名" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['doctorName', requiredRule]" placeholder="请输入医生姓名" /> + </a-form-item> + <a-form-item label="头像上传" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-upload v-decorator="[ 'url', { ...requiredRule, valuePropName: 'fileList', getValueFromEvent: normFile }]" :action="action" list-type="picture" @preview="handlePreview" :remove="handleRemove"> + <a-button v-if="!fileName"> + <a-icon type="upload" />点击上传 + </a-button> + </a-upload> + <a-modal :visible="previewVisible" :footer="null" @cancel="previewVisible=false"> + <img alt="example" style="width: 100%" :src="previewImage" /> + </a-modal> + </a-form-item> + <a-form-item label="职称" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['job', requiredRule]" placeholder="请输入职称" /> + </a-form-item> + <a-form-item label="科室" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['department', requiredRule]" placeholder="请输入科室" /> + </a-form-item> + <a-form-item label="所属中心" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-select v-decorator="['centerId', requiredRule]" placeholder="请选择所属中心"> + <template v-for="item in centerList"> + <a-select-option :value="item.centerId" :key="item.centerId">{{item.name}}</a-select-option> + </template> + </a-select> + </a-form-item> + <a-form-item label="医生标签" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <input-tag placeholder="添加标签" v-model="markDetail" :beforeAdding="beforeAdding" :add-tag-on-blur="true" :limit="4"></input-tag> + </a-form-item> + <a-form-item class="textarea" label="医生简介" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-textarea rows="5" v-decorator="['detail', requiredRule]" placeholder="请输入医生简介" /> + </a-form-item> + <a-form-item label="擅长领域" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-textarea rows="3" v-decorator="['disease', requiredRule]" placeholder="请输入擅长领域" /> + </a-form-item> + <a-form-item class="textarea" label="获得荣誉" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-textarea rows="5" v-decorator="['honor', requiredRule]" placeholder="请输入获得荣誉" /> + </a-form-item> + <a-form-item label="是否启用" :labelCol="labelCol" :wrapperCol="wrapperCol" style="margin-bottom:0"> + <a-radio-group v-decorator="['isUser', requiredRule]"> + <a-radio value="1">启用</a-radio> + <a-radio value="0">停用</a-radio> + </a-radio-group> + </a-form-item> + </a-form> + </a-spin> + </a-modal> +</template> + +<script> + import { getDoctorDetail, saveDoctor, getCenter } from '@/api/famousDoctor' + import InputTag from 'vue-input-tag' + export default { + data() { + return { + markDetail: [], + title: '', + bodyStyle: { + height: '500px', + overflow: 'auto' + }, + maskClosable: false, + centered: true, + destroyOnClose: true, + visible: false, + confirmLoading: false, + form: this.$form.createForm(this), + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 17 } + }, + requiredRule: { rules: [{ required: true, message: '该选项必填' }] }, + doctorId: '', + centerList: [], + creatorId: '', + previewVisible: false, + previewImage: '', + action: process.env.VUE_APP_API_UPLOAD_URL, + attachsPrefix: process.env.VUE_APP_API_VIEW_PIC_URL, + fileName: '' + } + }, + mounted() { + this.getCenterList() + }, + components: { + 'input-tag': InputTag + }, + methods: { + beforeAdding(val) { + if (val.length >= 8) { + return false + } else { + return val + } + }, + show(id) { + this.visible = true + + this.doctorId = id + + if (id) { + this.title = '修改医生信息' + this.confirmLoading = true + + const params = new FormData() + params.append('doctorDetailId', id) + getDoctorDetail(params).then(res => { + this.confirmLoading = false + + this.creatorId = res.data.doctorDetail.creatorId + this.markDetail = res.data.doctorDetail.markDetail && res.data.doctorDetail.markDetail.split(',') + this.form.setFieldsValue({ + doctorName: res.data.doctorDetail.doctorName, + job: res.data.doctorDetail.job, + department: res.data.doctorDetail.department, + centerId: res.data.doctorDetail.centerId, + detail: res.data.doctorDetail.detail, + disease: res.data.doctorDetail.disease, + honor: res.data.doctorDetail.honor, + isUser: String(res.data.doctorDetail.isUser) + }); + // if (res.data.doctorDetail.url) { + if (res.data.annexList[0].annexAddress) { + this.form.setFieldsValue({ + url: [{ + uid: '1', + // name: res.data.doctorDetail.url, + name: res.data.annexList[0].annexAddress, + status: 'done', + // url: this.attachsPrefix + res.data.doctorDetail.url + url: this.attachsPrefix + res.data.annexList[0].annexAddress + }], + }) + // this.fileName = res.data.doctorDetail.url + this.fileName = res.data.annexList[0].annexAddress + } + }) + } else { + this.title = '新增医生信息' + this.fileName = '' + } + }, + getCenterList() { + getCenter().then(res => { + this.centerList = res.data.centerList + }) + }, + normFile(e) { + if (Array.isArray(e)) { + return e; + } + const isJPG = e.file.type === 'image/jpeg'; + const isPNG = e.file.type === 'image/png'; + if (!(isJPG || isPNG)) { + this.$message.error('请上传正确的图片格式'); + } + const isLt1M = e.file.size / 1024 / 1024 < 1; + if (!isLt1M) { + this.$message.error('图片大小不能超过1MB!'); + } + if (e.file.status == 'done') { + this.fileName = e.file.response.fileName + } + if ((isJPG || isPNG) && isLt1M) { + return e && e.fileList; + } + return [] + }, + handleRemove(file) { + this.fileName = '' + }, + handlePreview(file) { + this.previewImage = file.url || file.thumbUrl; + this.previewVisible = true; + }, + handleSubmit() { + this.confirmLoading = true + + const { form: { validateFieldsAndScroll } } = this; + + validateFieldsAndScroll((errors, fieldsValue) => { + if (errors) { + this.confirmLoading = false; + return; + } + + const params = new FormData() + const doctorDetail = { + markDetail: this.markDetail.join(','), + doctorName: fieldsValue['doctorName'], + job: fieldsValue['job'], + department: fieldsValue['department'], + centerId: fieldsValue['centerId'], + detail: fieldsValue['detail'], + disease: fieldsValue['disease'], + honor: fieldsValue['honor'], + isUser: Number(fieldsValue['isUser']) + } + + if (this.doctorId) { + doctorDetail.doctorDetailId = this.doctorId + doctorDetail.creatorId = this.creatorId + } + params.append('doctorDetail', JSON.stringify(doctorDetail)) + params.append('fileName', this.fileName) + + saveDoctor(params).then(res => { + this.$message.success(res.msg); + this.visible = false + this.confirmLoading = false + this.$emit('ok') + }) + }) + }, + handleCancel() { + this.visible = false + } + } + } +</script> + +<style lang="less" scoped> + .textarea { + /deep/.ant-form-item-control { + line-height: 1; + } + } + + .vue-input-tag-wrapper { + border-color: #d9d9d9; + border-radius: 5px; + line-height: 1.5; + } + + /deep/ .vue-input-tag-wrapper .new-tag { + padding-left: 5px; + margin-top: 0; + line-height: normal; + &::placeholder { + color: #ccc; + } + } +</style> \ No newline at end of file diff --git a/src/views/wx/modules/ReportDetail.vue b/src/views/wx/modules/ReportDetail.vue new file mode 100644 index 0000000000..962cb700f2 --- /dev/null +++ b/src/views/wx/modules/ReportDetail.vue @@ -0,0 +1,115 @@ +<template> + <a-modal title="患者报告审阅" okText="审阅" :width="800" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :centered="centered" :destroyOnClose="destroyOnClose" :visible="visible" :confirmLoading="confirmLoading" :okButtonProps="{ props: {disabled: !isSee} }" @ok="handleSubmit" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item label="报告标题" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-decorator="['reportTitle']" readOnly /> + </a-form-item> + <a-form-item label="报告详情" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-textarea rows="3" v-decorator="['reprotDescription']" readOnly /> + </a-form-item> + <a-form-item label="上报时间" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-date-picker style="width: 100%" format="YYYY-MM-DD" v-decorator="['uploadDate']" disabled /> + </a-form-item> + <a-form-item label="报告附件" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <viewer class="img-list" :images="imgList"> + <img v-for="item in imgList" :src="`${attachsPrefix}${item.annexAddress}`" :key="item.annexAddress" height="150px"> + </viewer> + </a-form-item> + <a-form-item v-if="isSee" label="反馈意见" :labelCol="labelCol" :wrapperCol="wrapperCol" style="margin-bottom:0"> + <a-textarea rows="3" v-decorator="['feedback', requiredRule]" /> + </a-form-item> + </a-form> + </a-spin> + </a-modal> +</template> + +<script> + import moment from 'moment' + import { getReportInfo, updateReport } from '@/api/reportCheck' + export default { + data() { + return { + bodyStyle: { + height: '550px', + overflow: 'auto' + }, + maskClosable: false, + centered: true, + destroyOnClose: true, + visible: false, + confirmLoading: false, + isSee: false, + checkId: '', + form: this.$form.createForm(this), + labelCol: { + xs: { span: 24 }, + sm: { span: 4 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 } + }, + requiredRule: { rules: [{ required: true, message: '该选项必填' }] }, + attachsPrefix: '', + imgList: [] + } + }, + methods: { + show(id, isSee) { + this.visible = true; + this.checkId = id + this.isSee = isSee + + this.confirmLoading = true + + const params = new FormData() + params.append('checkId', id) + getReportInfo(params).then(res => { + this.confirmLoading = false + this.imgList = res.data.annexList + this.attachsPrefix = res.data.attachsPrefix + + this.form.setFieldsValue({ + reportTitle: res.data.reportCheck.reportTitle, + reprotDescription: res.data.reportCheck.reprotDescription, + uploadDate: moment(res.data.reportCheck.uploadDate, 'x'), + feedback: res.data.reportCheck.feedback + }); + }) + }, + handleSubmit() { + this.confirmLoading = true + const { form: { validateFieldsAndScroll } } = this; + validateFieldsAndScroll((errors, fieldsValue) => { + if (errors) { + this.confirmLoading = false; + return; + } + const params = new FormData() + params.append('checkId', this.checkId) + params.append('feedback', fieldsValue['feedback']) + updateReport(params).then(res => { + this.$message.success(res.msg); + this.visible = false + this.confirmLoading = false + this.$emit('ok') + }) + }) + }, + handleCancel() { + this.visible = false + } + } + } +</script> + +<style lang="less" scoped> + .img-list img { + display: inline-block; + width: calc(25% - 5px); + margin-right: 5px; + margin-bottom: 5px; + cursor: pointer; + } +</style> \ No newline at end of file diff --git a/src/views/wx/modules/UserDetail.vue b/src/views/wx/modules/UserDetail.vue new file mode 100644 index 0000000000..bd83568f85 --- /dev/null +++ b/src/views/wx/modules/UserDetail.vue @@ -0,0 +1,151 @@ +<template> + <a-modal title="微信用户绑定" okText="绑定" :width="800" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :centered="centered" :destroyOnClose="destroyOnClose" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <div class="patientDetail-box"> + <a-divider orientation="left">微信用户信息</a-divider> + <div class="patient"> + <a-row> + <a-col :span="8"> + <p>患者姓名:{{userInfo.name}}</p> + </a-col> + <a-col :span="8"> + <p>微信号:{{userInfo.wxCode}}</p> + </a-col> + <a-col :span="8"> + <p>手机号码:{{userInfo.telephone}}</p> + </a-col> + </a-row> + <a-row> + <a-col :span="8"> + <p>微信昵称:{{userInfo.wxName}}</p> + </a-col> + <a-col :span="8"> + <p>身份证号:{{userInfo.card}}</p> + </a-col> + <a-col :span="8"> + <p>注册时间:{{userInfo.registeredDate}}</p> + </a-col> + </a-row> + </div> + + <a-divider orientation="left">患者病例信息</a-divider> + <div v-if="code == 0"> + <case-info :patient="patient"></case-info> + </div> + <div v-else-if="code == -1" class="tip">未查询到该患者病例,是否<span class="add" @click="$refs.createModal.add()">新增患者病例</span>?</div> + <div v-else-if="code == 1" class="tip">该患者病例不在本分支中心,请进行病例转移申请</div> + </div> + <create-form ref="createModal" @ok="handleOk" /> + </a-spin> + </a-modal> +</template> + +<script> + import { wxPatientReview, wxBind } from '@/api/distract' + import CaseInfo from './CaseInfo' + import CreateForm from '../../list/modules/CreateForm'; + export default { + components: { + CaseInfo, + CreateForm + }, + data() { + return { + bodyStyle: { + height: '500px', + paddingTop: '0', + overflow: 'auto' + }, + maskClosable: false, + centered: true, + destroyOnClose: true, + visible: false, + confirmLoading: false, + userInfo: {}, + patient: {}, + code: 0 + } + }, + methods: { + handleOk() { + this.show(this.userInfo) + }, + show(recode) { + this.visible = true; + this.confirmLoading = true + this.patient = {} + this.userInfo = recode + + const params = new FormData() + params.append('card', recode.card) + wxPatientReview(params).then(res => { + this.confirmLoading = false + this.code = res.code + if (res.code == 0) { + this.patient = res.data + } + }) + }, + handleSubmit() { + if (JSON.stringify(this.patient) == '{}') { + this.$message.error('患者病例信息为空无法绑定!'); + return + } + this.confirmLoading = true + const params = new FormData() + params.append('patientId', this.patient.patientId) + params.append('wxPatient', JSON.stringify(this.userInfo)) + wxBind(params).then(res => { + this.visible = false + this.confirmLoading = false + this.$message.success(res.msg) + this.$emit('ok') + }) + }, + handleCancel() { + this.visible = false + } + } + } +</script> + +<style lang="less" scoped> + /deep/ .ant-divider-horizontal.ant-divider-with-text-left { + color: #1890ff; + } + + .patientDetail-box { + font-size: 18px; + .title { + height: 40px; + line-height: 40px; + font-size: 18px; + padding-left: 15px; + margin-bottom: 15px; + background-color: #fafafa; + } + .patient { + border: 1px solid rgba(22, 143, 253, 0.15); + background: #f5f9fd; + padding: 15px 25px; + p { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + font-size: 14px; + } + } + .tip { + height: 100px; + line-height: 100px; + font-size: 16px; + text-align: center; + color: rgba(0, 0, 0, 0.45); + .add { + cursor: pointer; + color: rgba(24, 144, 255, 0.8); + font-size: inherit; + } + } + } +</style> \ No newline at end of file diff --git a/src/views/wx/modules/replyView.vue b/src/views/wx/modules/replyView.vue new file mode 100644 index 0000000000..cd635e94f1 --- /dev/null +++ b/src/views/wx/modules/replyView.vue @@ -0,0 +1,217 @@ +<template> + <a-modal title="留言答复" :width="800" :bodyStyle="bodyStyle" :maskClosable="maskClosable" :destroyOnClose="destroyOnClose" :centered="centered" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel" ref="modal"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <div class="replyList" ref="content" id="content"> + <div v-for="(item, index) in messageRecords" :key="index"> + <div v-if="item.type == 1" class="patient"> + <p class="time">{{ item.createTime | formDate }}</p> + <div class="item clearfix"> + <img src="../../../assets/p-a.png" alt=""> + <div class="info"> + <div class="clearfix"> + <p class="code">{{ patientCenterMessage.patientCode }}</p> + <p class="cus">患者</p> + </div> + <p class="question">{{ item.content }}</p> + </div> + </div> + </div> + <div v-if="item.type == 2" class="reply"> + <p class="time">{{ item.createTime | formDate }}</p> + <div class="item clearfix"> + <img src="../../../assets/h-a.png" alt=""> + <div class="info"> + <div class="clearfix"> + <p class="name">{{ patientCenterMessage.centerName }}</p> + <p class="cus">医院</p> + </div> + <p class="question">{{ item.content }}</p> + </div> + </div> + </div> + </div> + </div> + <div style="margin:20px;"> + <a-form-item hasFeedback> + <a-textarea class="textarea" style="top: 2px;" :rows="4" v-decorator="['content', {rules: [{required: true, message: '请输入回复内容'}]}]" placeholder="请输入回复....." autocomplete="off"></a-textarea> + </a-form-item> + </div> + </a-form> + </a-spin> + </a-modal> +</template> +<script> +import { replyMessageData } from '@/api/messageReply' +import moment from 'moment' +export default { + data() { + return { + bodyStyle: { + height: '600px', + overflow: 'auto' + }, + maskClosable: false, + destroyOnClose: true, + centered: true, + visible: false, + confirmLoading: false, + patientCenterMessageId: null, + messageRecords: [], + patientCenterMessage: {}, + form: this.$form.createForm(this) + } + }, + filters: { + formDate(date) { + return moment(date).format('YYYY-MM-DD HH:mm:ss') + } + }, + updated() { + const msg = document.getElementById('content') + msg.scrollTop = msg.scrollHeight + }, + methods: { + replyMessage(data) { + this.patientCenterMessageId = data.patientCenterMessage.patientCenterMessageId + this.messageRecords = data.messageRecords + this.patientCenterMessage = data.patientCenterMessage + this.visible = true + }, + handleSubmit() { + if (!this.confirmLoading) { + this.confirmLoading = true + this.form.validateFieldsAndScroll((errors, fieldsValue) => { + const that = this + if (errors) { + this.confirmLoading = false + return + } + const values = { + content: fieldsValue.content, + patientCenterMessageId: this.patientCenterMessageId + } + replyMessageData(values).then((res) => { + that.visible = false + that.confirmLoading = false + that.$message.success(res.msg) + that.$emit('ok', values) + }) + }) + } + }, + handleCancel() { + this.visible = false + // this.$parent.refreshTable() + this.$emit('refreshTable') + } + } +} +</script> +<style lang="less" scoped> +.replyList { + margin: 20px 10px; + max-height: 380px; + overflow: auto; + padding-right: 15px; + + .time { + text-align: center; + } + + .patient { + margin-bottom: 30px; + .item { + img { + float: left; + } + + .info { + float: left; + margin-left: 4px; + width: calc(100% - 100px); + .name{ + font-size: 16px; + color: black; + float: left; + margin-bottom: 0; + } + .code{ + background-color: #1890ff; + border-radius: 4px; + margin-left: 6px; + font-size: 12px; + padding: 3px 8px; + float: left; + color: #fff; + margin-bottom: 0; + } + .cus{ + background-color: #f6b42d; + border-radius: 4px; + margin-left: 6px; + font-size: 12px; + padding: 3px 8px; + float: left; + color: #fff; + margin-bottom: 0; + } + .question{ + background-color: #f2f3f4; + max-width: 70%; + border-radius: 3px; + padding: 12px; + line-height: 15px; + word-wrap: break-word; + word-break: normal; + margin-bottom: 0; + margin-top: 10px; + } + } + } + } + .reply{ + margin-bottom: 30px; + .item { + img { + float: right; + } + + .info { + float: right; + margin-right: 6px; + width: calc(100% - 100px); + .name{ + font-size: 16px; + color: black; + float: right; + margin-bottom: 0; + } + .cus{ + background-color: #0fd085; + border-radius: 4px; + margin-right: 6px; + font-size: 12px; + padding: 3px 8px; + float: right; + color: #fff; + margin-bottom: 0; + } + .question{ + background-color: #1890ff; + width: 70%; + border-radius: 3px; + padding: 12px; + line-height: 15px; + word-wrap: break-word; + word-break: normal; + float: right; + color: #fff; + margin-bottom: 0; + margin-top: 10px; + } + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/wx/patientReportReview.vue b/src/views/wx/patientReportReview.vue new file mode 100644 index 0000000000..c086f0401a --- /dev/null +++ b/src/views/wx/patientReportReview.vue @@ -0,0 +1,230 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索患者姓名、身份证号" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch(3)">全部报告</p> + <p @click="tableSearch(1)">待审阅报告</p> + <p @click="tableSearch(2)">已审阅报告</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="入组编号"> + <a-input v-model.trim="queryParam.fileBasisCode" /> + </a-form-item> + <a-form-item label="姓名"> + <a-input v-model.trim="queryParam.name" /> + </a-form-item> + <a-form-item label="身份证号"> + <a-input v-model.trim="queryParam.card" /> + </a-form-item> + <a-form-item style="text-align: right;margin-bottom: 0;margin-top: 15px;"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px;" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="checkId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <template slot="patientName" slot-scope="text,record"> + <p>{{modifyName(text)}}</p> + </template> + <template slot="executeStatus" slot-scope="text"> + <a-badge :status="text == 0 ? 'default' : 'success'" :text="text == 0 ? '待审阅' : '已审阅'" /> + </template> + <span slot="operation" slot-scope="text, record"> + <template> + <a v-if="record.executeStatus == 0" @click="handleReview(record, true)">审阅</a> + <span v-else>审阅</span> + <a-divider type="vertical" /> + <a @click="handleReview(record, false)">查看</a> + </template> + </span> + </s-table> + <report-detail ref="reportDetail" @ok="handleOk"></report-detail> + </a-card> +</template> +<script> +import moment from 'moment' +import { getReportDataList } from '@/api/reportCheck' +import { STable } from '@/components' +import ReportDetail from './modules/ReportDetail' +import $ from 'jquery' + +export default { + components: { + STable, + ReportDetail + }, + data() { + return { + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + scroll: false, + loadData: parameter => { + return getReportDataList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [{ + title: '入组编号', + dataIndex: 'fileBasisCode', + width: '120px' + }, + { + title: '微信号', + dataIndex: 'wxCode', + width: '120px' + }, + { + title: '姓名', + dataIndex: 'name', + width: '100px', + scopedSlots: { customRender: 'patientName' } + }, + { + title: '身份证号', + dataIndex: 'card', + width: '150px' + }, + { + title: '上报时间', + dataIndex: 'uploadDate', + customRender: uploadDate => moment(uploadDate).format('YYYY-MM-DD'), + width: '120px' + }, + { + title: '审阅状态', + dataIndex: 'executeStatus', + scopedSlots: { customRender: 'executeStatus' }, + width: '100px' + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '120px' + } + ], + } + }, + created() { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + }, + methods: { + modifyName(name) { + return name.replace(/(.)(.*)/, (_, $1, $2) => $1 + '*'.repeat($2.length)) + }, + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + clearForm() { + this.queryParam = {} + }, + tableSearch(type) { + this.queryParam.queryType = type + this.$refs.table.refresh(); + this.advanced = false + }, + refreshTable() { + this.advanced = false + this.$refs.table.refresh() + }, + handleReview(recode, isSee) { + this.$refs.reportDetail.show(recode.checkId, isSee) + }, + handleOk() { + this.$refs.table.refresh() + } + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/wx/questionDetail.vue b/src/views/wx/questionDetail.vue new file mode 100644 index 0000000000..15ddf64fc7 --- /dev/null +++ b/src/views/wx/questionDetail.vue @@ -0,0 +1,328 @@ +<template> + <div id="baselineInfo" class="page-header-index-wide page-header-wrapper-grid-content-main" style="height:100%;"> + <a-spin :spinning="isLoading" style="height:100%"> + <div style="flex: 1;display: flex;flex-direction: column;"> + <a-card :bordered="false" id="baselineHeader" style="background-color: #0399EC;color:#FFFFFF;"> + <a-row :gutter="30" style="line-height: 34px;"> + <a-col :md="1" :sm="4"> + <a-icon type="left" style="fontSize:18px;cursor: pointer;" @click="$router.back(-1)" /> + </a-col> + <a-col :md="5" :sm="20" class="UserNameCard"> + <my-icon type="iconshoufangzhehuaban" /> + 受访者:{{ info.name }} + </a-col> + <a-col :md="6" :sm="24" class="UserNameCard"> + <my-icon type="iconshenfenzhenghuaban" /> + 身份证号:{{ info.card }} + </a-col> + <a-col :md="12" :sm="24" style="fontSize:18px;textAlign: right;">创建时间:{{ info.createDate }}</a-col> + </a-row> + </a-card> + <!-- <a-card :bordered="false" style="margin-top: 10px"> --> + <a-row style="flex: 1;background: #fff;margin-top: 15px;overflow: hidden;"> + <a-col :span="5" :style="baselineInfoStyle"> + <ul class="menu"> + <template v-for="item in orgTree"> + <li class="menu-item" :class="{'active':item.questionTaskId == questionTaskId}" :key="item.questionTaskId" @click="handleChange(item.questionTaskId)">{{item.questionName}}</li> + </template> + </ul> + </a-col> + <a-col :span="19" style="height: 100%; display: flex; flex-direction: column;"> + <div class="head-bar"> + <a-row type="flex"> + <span class="head-icon"></span> + <div v-if="question.name" class="question-title">{{question.name}}</div> + <span v-if="(score) && (questionTask.questionId !== 36)" class="question-score">{{`(得分:${score}分)`}}</span> + <span v-if="(score) && (questionTask.questionId === 36) && (!questionTask.score9)" class="question-score">{{`(得分:${score}分)`}}</span> + <span v-if="(score) && (questionTask.questionId === 36) && (questionTask.score9)" class="question-score">{{`(HADS-A得分:${questionTask.score}分;`}}<span v-if="questionTask.score9">{{` HADS-D得分:${questionTask.score9}分`}}</span>)</span> + </a-row> + <span v-if="showBtnState == 3">已驳回</span> + <span v-else-if="showBtnState == 4">已审批</span> + <a-row v-else> + <a-button class="btn fr" type="primary" @click="save(4)">通过</a-button> + <a-button class="btn fr" @click="save(3)">不通过</a-button> + </a-row> + </div> + <div class="baselineForm"> + <!-- 调查问卷 --> + <div v-if="question.remark" class="question-des"><span style="color:#3398dc">说明:</span>{{question.remark}}</div> + <a-form :form="form"> + <div v-for="item in questionList" :key="item.id"> + <div class="question-t"> + <span class="question-icon"></span> + <span>{{item.name}}</span> + </div> + <a-form-item v-for="(qu1, index) in item.childrens" :key="index" :colon="false" :label="qu1.type !== 5 ? qu1.name : ''"> + <div v-if="qu1.type == 5" class="question-tip"> + <span class="tip-icon"></span> + <span>{{qu1.name}}</span> + </div> + <a-input v-if="qu1.type === 3" style="width: 200px" :addonAfter="qu1.unit" :name="qu1.questionTitleId+''" :defaultValue="qu1.answers && qu1.answers.length && qu1.answers[0].questionOptionValue" readOnly /> + <a-radio-group v-if="qu1.type === 1" :name="qu1.questionTitleId+''" v-model="qu1.inputType"> + <a-radio :style="disBlock" v-for="(item, index) in qu1.options" :key="index" :value="item.questionOptionId" disabled>{{item.name}}</a-radio> + </a-radio-group> + <a-checkbox-group v-if="qu1.type === 2" v-model="qu1.inputType"> + <a-checkbox :style="disBlock" v-for="(item, index) in qu1.options" :key="index" :value="item.questionOptionId" :name="qu1.questionTitleId+''" disabled>{{item.name}}</a-checkbox> + </a-checkbox-group> + <a-date-picker v-if="qu1.type === 6" :name="qu1.questionTitleId+''" :defaultValue="qu1.answers && qu1.answers.length && qu1.answers[0].questionOptionValue && moment(qu1.answers[0].questionOptionValue, 'YYYY-MM-DD')" disabled /> + </a-form-item> + </div> + </a-form> + </div> + </a-col> + </a-row> + <!-- </a-card> --> + </div> + </a-spin> + </div> +</template> +<script> + import moment from 'moment' + import { getWxQuestionDetail, questionReview } from '@/api/distract' + import { MyIcon } from '@/components/_util/util' + export default { + components: { + MyIcon + }, + data() { + return { + baselineInfoStyle: { + overflow: "auto", + height: "100%", + boxShadow: 'rgba(204, 204, 204,0.8) 1px 0px 20px' + }, + info: {}, + isLoading: true, + form: this.$form.createForm(this), + question: {}, + questionTask: {}, + orgTree: [], + questionList: [], + disBlock: { + display: 'block', + }, + questionTaskId: '', + showBtnState: '', + score: '' + } + }, + created() { + this.info = JSON.parse(localStorage.getItem('questionInfo')) + this.questionTaskId = this.$route.params.id + + const params = new FormData() + params.append('questionTaskId', this.questionTaskId) + params.append('createDate', this.info.createDate) + getWxQuestionDetail(params).then(res => { + this.isLoading = false + this.orgTree = res.data.questionList + this.questionList = this.initQuestionAnswers(res.data.topTitles) + this.question = res.data.question + this.showBtnState = res.data.questionTask && res.data.questionTask.status + this.score = res.data.questionTask && res.data.questionTask.score + }) + }, + methods: { + moment, + + handleChange(id) { + if(this.questionTaskId == id) return + this.questionTaskId = id + this.isLoading = true + const params = new FormData() + params.append('questionTaskId', id) + getWxQuestionDetail(params).then(res => { + this.isLoading = false + this.questionList = this.initQuestionAnswers(res.data.topTitles) + this.question = res.data.question + this.showBtnState = res.data.questionTask && res.data.questionTask.status + this.score = res.data.questionTask && res.data.questionTask.score + }) + }, + save(id) { + const params = new FormData() + params.append('questionTaskId', this.questionTaskId) + params.append('status', id) + questionReview(params).then(res => { + this.$message.success(res.msg); + this.handleChange(this.questionTaskId) + }) + }, + + initQuestionAnswers(list) { + _.each(list, function (a) { + if (a.childrens && a.childrens.length) { + _.each(a.childrens, function (b) { + if (b.type === 1 && b.answers && b.answers.length) { + b.inputType = b.answers[0].questionOptionId + } + if (b.type === 2) { + if (b.answers && b.answers.length) { + b.inputType = _.map(b.answers, function (v) { return v.questionOptionId }) + } else { + b.inputType = [] + } + } + }) + } + }) + return list + }, + } + } +</script> +<style lang="less" scoped> + .page-header-index-wide { + .UserNameCard { + font-size: 20px; + .anticon { + font-size: 26px; + vertical-align: text-bottom; + position: relative; + left: -5px; + } + } + /deep/ .ant-spin-container { + height: 100%; + display: flex; + } + .menu { + list-style: none; + margin: 0; + padding: 0; + background: rgba(245, 251, 255); + &-item { + height: 40px; + line-height: 40px; + font-size: 14px; + padding-left: 50px; + padding-right: 20px; + cursor: pointer; + transition: 0.5s; + &:hover { + background-color: #e6f7ff; + color: #1890ff; + } + } + } + .active { + background-color: #1890ff !important; + color: #fff !important; + } + .head-bar { + height: 70px; + display: flex; + align-items: center; + justify-content: space-between; + background-color: #f7ffff; + border: 2px solid #079ce9; + box-shadow: 4px 4px 0px #b9b4ac; + margin: 10px 20px; + padding: 0 15px; + /deep/ .ant-btn { + height: 35px; + line-height: 35px; + } + .question-title { + font-size: 30px; + color: #3398dc; + font-weight: bold; + margin-left: 15px; + } + .head-icon { + width: 50px; + height: 50px; + background-image: url('../../assets/head-icon.png'); + background-size: 100% 100%; + } + } + + .ant-row.ant-form-item:hover { + background-color: #e6f7ff; + } + + /deep/ .ant-card-wider-padding .ant-card-body { + padding: 10px 15px; + } + + .fr { + float: right; + } + + .btn { + margin-right: 10px; + } + + .baselineForm { + flex: 1; + overflow: auto; + padding: 40px 20px; + + /deep/ .ant-radio-disabled + span { + color: inherit; + } + + /deep/.ant-checkbox-disabled + span { + color: inherit; + } + + .question-des { + font-size: 16px; + margin-bottom: 25px; + } + + .question-t { + display: flex; + line-height: 40px; + font-size: 18px; + font-weight: 700; + border-bottom: 2px solid #3398dc; + padding-bottom: 5px; + .question-icon { + width: 40px; + height: 40px; + background-image: url('../../assets/question-icon.png'); + background-size: 100% 100%; + margin-right: 10px; + } + } + + .question-tip { + height: 50px; + display: flex; + align-items: center; + .tip-icon { + width: 20px; + height: 20px; + background-image: url('../../assets/tip-icon.png'); + background-size: 100% 100%; + margin-right: 5px; + } + } + + .ant-form-item { + margin-bottom: 0px; + border-bottom: 1px solid #eee; + } + + /deep/ .ant-form-item-label { + text-align: left; + display: block; + background-color: #f7f8f8; + color: #231815; + font-size: 16px; + font-weight: bold; + padding-left: 15px; + border-top: 1px solid #eee; + } + + /deep/ .ant-form-item-control-wrapper { + padding: 5px 0; + padding-left: 20px; + label { + margin: 5px 0; + } + } + } + } +</style> \ No newline at end of file diff --git a/src/views/wx/questionReview.vue b/src/views/wx/questionReview.vue new file mode 100644 index 0000000000..d1f26f787d --- /dev/null +++ b/src/views/wx/questionReview.vue @@ -0,0 +1,257 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索患者姓名、身份证号" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch(3)">全部问卷</p> + <p @click="tableSearch(1)">待审阅问卷</p> + <p @click="tableSearch(2)">已审阅问卷</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="入组编号"> + <a-input v-model.trim="queryParam.fileBasisCode" /> + </a-form-item> + <a-form-item label="姓名"> + <a-input v-model.trim="queryParam.patientName" /> + </a-form-item> + <a-form-item label="身份证号"> + <a-input v-model.trim="queryParam.card" /> + </a-form-item> + <a-form-item style="text-align: right;margin-bottom: 0;margin-top: 15px;"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px;" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="questionTaskId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <template slot="patientName" slot-scope="text,record"> + <p>{{modifyName(text)}}</p> + </template> + <template slot="status" slot-scope="text"> + <a-badge :status="text | visitTypeFilter" :text="text | visitFilter" /> + </template> + <template slot="operation" slot-scope="text, record"> + <a @click="handleClick(record)">审阅</a> + </template> + </s-table> + </a-card> +</template> +<script> +import moment from 'moment' +import { getWxQuestionList } from '@/api/distract' +import { STable } from '@/components' +import $ from 'jquery' + +const visitMap = { + 3: { + status: 'error', + text: '驳回' + }, + 4: { + status: 'success', + text: '已审阅' + }, + 5: { + status: 'default', + text: '未审阅' + }, +}; +export default { + components: { + STable + }, + data() { + return { + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + scroll: false, + loadData: parameter => { + return getWxQuestionList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [{ + title: '入组编号', + dataIndex: 'fileBasisCode', + width: '150px' + }, + { + title: '问卷名称', + dataIndex: 'questionName', + width: '120px' + }, + { + title: '微信号', + dataIndex: 'wxCode', + width: '120px' + }, + { + title: '姓名', + dataIndex: 'name', + width: '100px', + scopedSlots: { customRender: 'patientName' } + }, + { + title: '填写日期', + dataIndex: 'realExecuteTime', + customRender: realExecuteTime => moment(realExecuteTime).format('YYYY-MM-DD'), + width: '120px' + }, + { + title: '推送日期', + dataIndex: 'createDate', + width: '120px' + }, + { + title: '类型', + dataIndex: 'visitType', + width: '120px' + }, + { + title: '审阅状态', + dataIndex: 'status', + scopedSlots: { customRender: 'status' }, + width: '100px' + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '100px' + } + ], + } + }, + created() { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + }, + filters: { + visitFilter(type) { + return visitMap[type].text; + }, + visitTypeFilter(type) { + return visitMap[type].status; + } + }, + methods: { + modifyName(name) { + return name.replace(/(.)(.*)/, (_, $1, $2) => $1 + '*'.repeat($2.length)) + }, + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + clearForm() { + this.queryParam = {} + }, + tableSearch(type) { + this.queryParam.queryType = type + this.$refs.table.refresh(); + this.advanced = false + }, + handleClick(record) { + const params = { + name: record.name, + card: record.card, + createDate: record.createDate + } + localStorage.setItem('questionInfo', JSON.stringify(params)) + this.$router.push({ path: `/wx/questionDetail/${record.questionTaskId}`}) + }, + refreshTable() { + this.advanced = false + this.$refs.table.refresh() + } + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/wx/ticketRegister.vue b/src/views/wx/ticketRegister.vue new file mode 100644 index 0000000000..4e850f27f9 --- /dev/null +++ b/src/views/wx/ticketRegister.vue @@ -0,0 +1,230 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索姓名、身份证号" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch(0)">待注销活动券</p> + <p @click="tableSearch()">全部活动券</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="入组编号"> + <a-input v-model.trim="queryParam.fileBasisCode" /> + </a-form-item> + <a-form-item label="姓名"> + <a-input v-model.trim="queryParam.patientName" /> + </a-form-item> + <a-form-item label="身份证号"> + <a-input v-model.trim="queryParam.card" /> + </a-form-item> + <a-form-item style="text-align: right;margin-bottom: 0;margin-top: 15px;"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px;" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="ticketId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <template slot="patientName" slot-scope="text,record"> + <p>{{modifyName(text)}}</p> + </template> + <template slot="executeStatus" slot-scope="text"> + <a-badge :status="text == 0 ? 'success' : 'error'" :text="text == 0 ? '未注销' : '已注销'" /> + </template> + <template slot="operation" slot-scope="text, record"> + <span v-if="record.executeStatus == 1">注销</span> + <a v-else @click="handleLogout(record)">注销</a> + </template> + </s-table> + </a-card> +</template> +<script> +import moment from 'moment' +import { getTicketDataList, logoutTicket } from '@/api/ticket' +import { STable } from '@/components' +import $ from 'jquery' + +export default { + components: { + STable + }, + data() { + return { + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + scroll: false, + loadData: parameter => { + return getTicketDataList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [{ + title: '入组编号', + dataIndex: 'fileBasisCode', + width: '120px' + }, + { + title: '微信号', + dataIndex: 'wxCode', + width: '120px' + }, + { + title: '姓名', + dataIndex: 'patientNanme', + width: '100px', + scopedSlots: { customRender: 'patientName' } + }, + { + title: '活动券编号', + dataIndex: 'code', + width: '150px' + }, + { + title: '发放时间', + dataIndex: 'grantDate', + customRender: grantDate => moment(grantDate).format('YYYY-MM-DD'), + width: '120px' + }, + { + title: '注销状态', + dataIndex: 'executeStatus', + scopedSlots: { customRender: 'executeStatus' }, + width: '100px' + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '150px' + } + ], + } + }, + created() { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + methods: { + modifyName(name) { + return name.replace(/(.)(.*)/, (_, $1, $2) => $1 + '*'.repeat($2.length)) + }, + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + clearForm() { + this.queryParam = {} + }, + tableSearch(type) { + this.queryParam.executeStatus = type + this.$refs.table.refresh() + this.advanced = false + }, + handleLogout(record) { + let that = this + this.$confirm({ + title: '确定要注销该活动券吗?', + onOk() { + const params = new FormData(); + params.append('ticketId', record.ticketId) + logoutTicket(params).then(res => { + that.$refs.table.refresh() + }) + }, + onCancel() {}, + }); + }, + refreshTable() { + this.advanced = false + this.$refs.table.refresh() + } + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/wx/userBind.vue b/src/views/wx/userBind.vue new file mode 100644 index 0000000000..b7c90e7a7a --- /dev/null +++ b/src/views/wx/userBind.vue @@ -0,0 +1,234 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索患者姓名、身份证号" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch(3)">全部绑定用户</p> + <p @click="tableSearch(1)">待绑定用户</p> + <p @click="tableSearch(2)">已绑定用户</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="患者编号"> + <a-input v-model.trim="queryParam.code" /> + </a-form-item> + <a-form-item label="姓名"> + <a-input v-model.trim="queryParam.name" /> + </a-form-item> + <a-form-item label="身份证号"> + <a-input v-model.trim="queryParam.card" /> + </a-form-item> + <a-form-item style="text-align: right;margin-bottom: 0;margin-top: 15px;"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px;" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + </a-row> + </a-form> + </div> + <s-table ref="table" :scroll="scroll" size="small" rowKey="wxPatientId" :columns="columns" :data="loadData" :alert="options.alert" :rowSelection="options.rowSelection" showPagination="auto"> + <template slot="patientName" slot-scope="text,record"> + <p>{{modifyName(text)}}</p> + </template> + <span slot="bindStatus" slot-scope="text"> + <a-badge :status="text == 1 ? 'default' : text == 2 ? 'success' : 'error'" :text="text == 1 ? '未绑定': text == 2 ? '已绑定' : '忽略'" /> + </span> + <span slot="operation" slot-scope="text, record"> + <template> + <a v-if="record.bindStatus == 2">绑定</a> + <a v-else @click="handleReview(record)">绑定</a> + </template> + </span> + </s-table> + <user-detail ref="userDetail" @ok="handleOk"></user-detail> + </a-card> +</template> +<script> +import moment from 'moment' +import { getWxBingDataList } from '@/api/distract' +import { STable } from '@/components' +import UserDetail from './modules/UserDetail' +import $ from 'jquery' + +export default { + components: { + STable, + UserDetail + }, + data() { + return { + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: {}, + scroll: false, + loadData: parameter => { + return getWxBingDataList(Object.assign(parameter, this.queryParam)).then(res => { + return res + }) + }, + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [{ + title: '患者编号', + dataIndex: 'code', + width: '120px' + }, + { + title: '患者姓名', + dataIndex: 'name', + width: '120px', + scopedSlots: { customRender: 'patientName' } + }, + { + title: '微信号', + dataIndex: 'wxCode', + width: '120px' + }, + { + title: '微信昵称', + dataIndex: 'wxName', + width: '100px' + }, + { + title: '手机号码', + dataIndex: 'telephone', + width: '120px' + }, + { + title: '注册时间', + dataIndex: 'registeredDate', + customRender: registeredDate => moment(registeredDate).format('YYYY-MM-DD'), + width: '120px' + }, + { + title: '绑定状态', + dataIndex: 'bindStatus', + scopedSlots: { customRender: 'bindStatus' }, + width: '100px' + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '100px' + } + ], + } + }, + created() { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + mounted() { + var that = this + $(document).on('click', function(e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ($(e.target).closest(".tableSearch").length == 0 && $(e.target).closest(".ant-calendar").length == 0 && $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && $(e.target).closest('.ant-calendar-month-panel-table').length === 0) { + that.advanced = false + } + }) + }, + methods: { + modifyName(name) { + return name.replace(/(.)(.*)/, (_, $1, $2) => $1 + '*'.repeat($2.length)) + }, + onSelectChange(selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys; + this.selectedRows = selectedRows; + }, + clearForm() { + this.queryParam = {} + }, + tableSearch(type) { + this.queryParam.queryType = type + this.$refs.table.refresh() + this.advanced = false + }, + refreshTable() { + this.advanced = false + this.$refs.table.refresh() + }, + handleReview(recode) { + recode.registeredDate = moment(recode.registeredDate).format('YYYY-MM-DD') + this.$refs.userDetail.show(recode) + }, + handleOk() { + this.$refs.table.refresh() + } + }, +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item>.ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} +</style> \ No newline at end of file diff --git a/src/views/wx/userGroup.vue b/src/views/wx/userGroup.vue new file mode 100644 index 0000000000..a02ef86ab2 --- /dev/null +++ b/src/views/wx/userGroup.vue @@ -0,0 +1,262 @@ +<template> + <a-card :bordered="false" :bodyStyle="bodyStyle"> + <div class="table-page-search-wrapper"> + <a-form layout="inline"> + <a-row :gutter="16"> + <a-col :md="5" :sm="24"> + <a-form-item> + <a-input v-model.trim="queryParam.keyWord" placeholder="搜索患者姓名、身份证号" /> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <a-form-item> + <a-button type="primary" @click="refreshTable">查询</a-button> + <a @click="advanced = !advanced" style="margin-left: 8px" class="toggleAdvanced"> + 更多筛选 + <a-icon :type="advanced ? 'up' : 'down'" /> + </a> + </a-form-item> + </a-col> + <a-col v-if="advanced" class="tableSearch" :md="8"> + <div> + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="常用检索" key="1"> + <div class="commonRetrieval"> + <p @click="tableSearch()">全部用户</p> + <p @click="tableSearch(1)">待入组用户</p> + <p @click="tableSearch(0)">已入组用户</p> + </div> + </a-tab-pane> + <a-tab-pane tab="自定义检索" key="2" forceRender> + <a-card :bordered="false"> + <a-form> + <a-form-item label="姓名"> + <a-input v-model.trim="queryParam.name" /> + </a-form-item> + <a-form-item label="身份证号"> + <a-input v-model.trim="queryParam.card" /> + </a-form-item> + <a-form-item style="text-align: right; margin-bottom: 0; margin-top: 15px"> + <a-button type="primary" @click="clearForm()">清空</a-button> + <a-button type="primary" style="margin-left: 10px" @click="refreshTable">查询</a-button> + </a-form-item> + </a-form> + </a-card> + </a-tab-pane> + </a-tabs> + </div> + </a-col> + </a-row> + </a-form> + </div> + <s-table + ref="table" + :scroll="scroll" + size="small" + rowKey="patientPendingId" + :columns="columns" + :data="loadData" + :alert="options.alert" + :rowSelection="options.rowSelection" + showPagination="auto" + > + <template slot="patientName" slot-scope="text, record"> + <p>{{ modifyName(text) }}</p> + </template> + <template slot="patientCard" slot-scope="text, record"> + <p>{{ modifyCard(text) }}</p> + </template> + <span slot="operation" slot-scope="text, record"> + <template> + <a @click="handleReview(record)">入组</a> + </template> + </span> + </s-table> + <created-form ref="detailModal" @ok="handleOk"></created-form> + </a-card> +</template> +<script> +// import moment from 'moment' +import { getZKDataList } from '@/api/distract' +import { STable } from '@/components' +import CreatedForm from '@/views/list/modules/CreateForm' +import $ from 'jquery' + +export default { + components: { + STable, + CreatedForm + }, + data () { + return { + bodyStyle: { + padding: '10px', + paddingBottom: '0px' + }, + // 高级搜索 展开/关闭 + advanced: false, + // 查询参数 + queryParam: { + status: 1 + }, + scroll: false, + dataEchoInfo: {}, + loadData: (parameter) => { + return getZKDataList(Object.assign(parameter, this.queryParam)).then((res) => { + return res + }) + }, + form: this.$form.createForm(this), + selectedRowKeys: [], + selectedRows: [], + options: { + alert: { + show: false, + clear: () => { + this.selectedRowKeys = [] + } + }, + rowSelection: { + selectedRowKeys: this.selectedRowKeys, + onChange: this.onSelectChange + } + }, + columns: [ + { + title: '患者姓名', + dataIndex: 'name', + width: '120px', + scopedSlots: { customRender: 'patientName' } + }, + { + title: '身份证号', + dataIndex: 'card', + width: '180px', + scopedSlots: { customRender: 'patientCard' } + }, + { + title: '手机号码', + dataIndex: 'telephone1', + width: '120px' + }, + // { + // title: '注册时间', + // dataIndex: 'registeredDate', + // customRender: (registeredDate) => moment(registeredDate).format('YYYY-MM-DD'), + // width: '120px' + // }, + { + title: '民族', + dataIndex: 'nationName', + width: '100px' + }, + { + title: '职业', + dataIndex: 'workName', + width: '120px' + }, + { + title: '文化程度', + dataIndex: 'censusName', + width: '120px' + }, + { + title: '家庭年收入', + dataIndex: 'income', + width: '120px' + }, + { + title: '医疗费用支付类型', + dataIndex: 'payTypeName', + width: '120px' + }, + { + title: '操作', + dataIndex: 'operation', + scopedSlots: { customRender: 'operation' }, + width: '100px' + } + ] + } + }, + created () { + this.scroll = { + y: window.screen.height - 368 + 'px' + } + }, + mounted () { + var that = this + $(document).on('click', function (e) { + if (e.target.className === 'toggleAdvanced') { + return + } + if ( + $(e.target).closest('.tableSearch').length == 0 && + $(e.target).closest('.ant-calendar').length == 0 && + $(e.target).closest('.ant-calendar-year-panel-table').length === 0 && + $(e.target).closest('.ant-calendar-month-panel-table').length === 0 + ) { + that.advanced = false + } + }) + }, + methods: { + modifyName (name) { + return name.replace(/(.)(.*)/, (_, $1, $2) => $1 + '*'.repeat($2.length)) + }, + modifyCard (card) { + return card.replace(/^(.{8})(?:\d+)(.{4})$/, '$1******$2') + }, + onSelectChange (selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys + this.selectedRows = selectedRows + }, + clearForm () { + this.queryParam = {} + }, + tableSearch (type) { + this.queryParam.status = type + this.$refs.table.refresh() + this.advanced = false + }, + refreshTable () { + this.advanced = false + this.$refs.table.refresh() + }, + async handleReview (recode) { + this.$refs.detailModal.dataEcho(recode) + }, + handleOk () { + this.$refs.table.refresh() + } + } +} +</script> +<style lang="less" scoped> +/deep/.table-page-search-wrapper .ant-form-inline .ant-form-item { + margin-bottom: 10px; +} + +.tableSearch { + background: #ffffff; + position: absolute; + top: 52px; + box-shadow: 4px 4px 10px #ddd; + z-index: 100; + + /deep/ .ant-card-body .ant-form-horizontal .ant-form-item > .ant-form-item-label { + width: 70px !important; + } + + .commonRetrieval { + padding: 10px; + + p { + &:hover { + cursor: pointer; + text-decoration: underline; + } + } + } +} +</style> diff --git a/vue.config.js b/vue.config.js index cd0e920ee0..9ebb7a168e 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,125 +1,137 @@ -const path = require('path') -const webpack = require('webpack') -const ThemeColorReplacer = require('webpack-theme-color-replacer') -const generate = require('@ant-design/colors/lib/generate').default - -function resolve (dir) { - return path.join(__dirname, dir) -} - -// vue.config.js -module.exports = { - configureWebpack: { - plugins: [ - // Ignore all locale files of moment.js - new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/), - // 生成仅包含颜色的替换样式(主题色等) - // TODO 需要增加根据环境不开启主题需求 - new ThemeColorReplacer({ - fileName: 'css/theme-colors-[contenthash:8].css', - matchColors: getAntdSerials('#1890ff'), // 主色系列 - // 改变样式选择器,解决样式覆盖问题 - changeSelector (selector) { - switch (selector) { - case '.ant-calendar-today .ant-calendar-date': - return ':not(.ant-calendar-selected-date):not(.ant-calendar-selected-day)' + selector - case '.ant-btn:focus,.ant-btn:hover': - return '.ant-btn:focus:not(.ant-btn-primary),.ant-btn:hover:not(.ant-btn-primary)' - case '.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon': - return ':not(.ant-steps-item-process)' + selector - case '.ant-btn.active,.ant-btn:active': - return '.ant-btn.active:not(.ant-btn-primary),.ant-btn:active:not(.ant-btn-primary)' - case '.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-submenu-selected,.ant-menu-horizontal>.ant-menu-submenu:hover': - case '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal > .ant-menu-submenu-selected,.ant-menu-horizontal > .ant-menu-submenu:hover': - return '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover' - case '.ant-menu-horizontal > .ant-menu-item-selected > a': - return ':not(.ant-menu-horizontal)' + selector - case '.ant-menu-horizontal > .ant-menu-item > a:hover': - return ':not(.ant-menu-horizontal)' + selector - default : - return selector - } - } - }) - ] - }, - - chainWebpack: (config) => { - config.resolve.alias - .set('@$', resolve('src')) - - const svgRule = config.module.rule('svg') - svgRule.uses.clear() - svgRule - .oneOf('inline') - .resourceQuery(/inline/) - .use('vue-svg-icon-loader') - .loader('vue-svg-icon-loader') - .end() - .end() - .oneOf('external') - .use('file-loader') - .loader('file-loader') - .options({ - name: 'assets/[name].[hash:8].[ext]' - }) - /* svgRule.oneOf('inline') - .resourceQuery(/inline/) - .use('vue-svg-loader') - .loader('vue-svg-loader') - .end() - .end() - .oneOf('external') - .use('file-loader') - .loader('file-loader') - .options({ - name: 'assets/[name].[hash:8].[ext]' - }) - */ - }, - - css: { - loaderOptions: { - less: { - modifyVars: { - /* less 变量覆盖,用于自定义 ant design 主题 */ - - /* - 'primary-color': '#F5222D', - 'link-color': '#F5222D', - 'border-radius-base': '4px', - */ - }, - javascriptEnabled: true - } - } - }, - - devServer: { - // development server port 8000 - port: 8000 - // proxy: { - // '/api': { - // // target: 'https://mock.ihx.me/mock/5baf3052f7da7e07e04a5116/antd-pro', - // target: 'https://mock.ihx.me/mock/5baf3052f7da7e07e04a5116/antd-pro', - // ws: false, - // changeOrigin: true - // } - // } - }, - - // disable source map in production - productionSourceMap: false, - lintOnSave: undefined, - // babel-loader no-ignore node_modules/* - transpileDependencies: [] -} - -function getAntdSerials (color) { - // 淡化(即less的tint) - const lightens = new Array(9).fill().map((t, i) => { - return ThemeColorReplacer.varyColor.lighten(color, i / 10) - }) - const colorPalettes = generate(color) - return lightens.concat(colorPalettes) -} +const path = require('path') +const webpack = require('webpack') +const ThemeColorReplacer = require('webpack-theme-color-replacer') +const generate = require('@ant-design/colors/lib/generate').default + +function resolve (dir) { + return path.join(__dirname, dir) +} + +// vue.config.js +module.exports = { + configureWebpack: { + plugins: [ + // Ignore all locale files of moment.js + new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/), + // 生成仅包含颜色的替换样式(主题色等) + // TODO 需要增加根据环境不开启主题需求 + new ThemeColorReplacer({ + fileName: 'css/theme-colors-[contenthash:8].css', + matchColors: getAntdSerials('#1890ff'), // 主色系列 + // 改变样式选择器,解决样式覆盖问题 + changeSelector (selector) { + switch (selector) { + case '.ant-calendar-today .ant-calendar-date': + return ':not(.ant-calendar-selected-date):not(.ant-calendar-selected-day)' + selector + case '.ant-btn:focus,.ant-btn:hover': + return '.ant-btn:focus:not(.ant-btn-primary),.ant-btn:hover:not(.ant-btn-primary)' + case '.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon': + return ':not(.ant-steps-item-process)' + selector + case '.ant-btn.active,.ant-btn:active': + return '.ant-btn.active:not(.ant-btn-primary),.ant-btn:active:not(.ant-btn-primary)' + case '.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-submenu-selected,.ant-menu-horizontal>.ant-menu-submenu:hover': + case '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal > .ant-menu-submenu-selected,.ant-menu-horizontal > .ant-menu-submenu:hover': + return '.ant-menu-horizontal > .ant-menu-item-active,.ant-menu-horizontal > .ant-menu-item-open,.ant-menu-horizontal > .ant-menu-item-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-item:hover,.ant-menu-horizontal > .ant-menu-submenu-active,.ant-menu-horizontal > .ant-menu-submenu-open,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu-selected,.ant-menu-horizontal:not(.ant-menu-dark) > .ant-menu-submenu:hover' + case '.ant-menu-horizontal > .ant-menu-item-selected > a': + return ':not(.ant-menu-horizontal)' + selector + case '.ant-menu-horizontal > .ant-menu-item > a:hover': + return ':not(.ant-menu-horizontal)' + selector + default : + return selector + } + } + }), + new webpack.ProvidePlugin({ + jQuery: "jquery", + $: "jquery" + }) + ] + }, + + chainWebpack: (config) => { + config.resolve.alias + .set('@$', resolve('src')) + + const svgRule = config.module.rule('svg') + svgRule.uses.clear() + svgRule + .oneOf('inline') + .resourceQuery(/inline/) + .use('vue-svg-icon-loader') + .loader('vue-svg-icon-loader') + .end() + .end() + .oneOf('external') + .use('file-loader') + .loader('file-loader') + .options({ + name: 'assets/[name].[hash:8].[ext]' + }) + /* svgRule.oneOf('inline') + .resourceQuery(/inline/) + .use('vue-svg-loader') + .loader('vue-svg-loader') + .end() + .end() + .oneOf('external') + .use('file-loader') + .loader('file-loader') + .options({ + name: 'assets/[name].[hash:8].[ext]' + }) + */ + }, + + css: { + loaderOptions: { + less: { + modifyVars: { + /* less 变量覆盖,用于自定义 ant design 主题 */ + + /* + 'primary-color': '#F5222D', + 'link-color': '#F5222D', + 'border-radius-base': '4px', + */ + }, + javascriptEnabled: true + } + } + }, + + devServer: { + // development server port 8000 + port: 8000, + proxy: { + '/api': { + // target: 'http://172.16.1.11:9997/', + // target: 'http://172.16.2.124:9997/', // 袁朋槐 + // target: 'http://172.16.1.21:9997/',//测试 + target: 'http://172.16.2.109:9997/',//宋建文 + // target: 'http://172.16.2.135:9997/',//赵翔 + // target: 'http://localhost:9997/', + // target: 'http://61.132.50.162:9997/', + ws: false, + changeOrigin: true, + pathRewrite: { + '^/api': '' + } + } + } + }, + + // disable source map in production + productionSourceMap: false, + lintOnSave: undefined, + // babel-loader no-ignore node_modules/* + transpileDependencies: [] +} + +function getAntdSerials (color) { + // 淡化(即less的tint) + const lightens = new Array(9).fill().map((t, i) => { + return ThemeColorReplacer.varyColor.lighten(color, i / 10) + }) + const colorPalettes = generate(color) + return lightens.concat(colorPalettes) +} diff --git a/yarn.lock b/yarn.lock index f90dccd32f..738512132d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,11432 +1,11460 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ant-design/colors@^3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@ant-design/colors/-/colors-3.1.0.tgz#b7e2cc61a4e86d3d109494034acfb1222dacaa3c" - integrity sha512-Td7g1P53sNFyT4Gya6836e70TrhoVZ+HjZs6mpWIHrxl4/VqsjjOyzj/8ktOuw0lCx+BfYu9UO1CiJ0MoYYfhg== - dependencies: - tinycolor2 "^1.4.1" - -"@ant-design/icons-vue@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@ant-design/icons-vue/-/icons-vue-1.0.1.tgz#343579219c04190831c9ca3826aec7361bb8b4d4" - integrity sha512-WRlfa3t9/e2wwVw9FPRgJ/pan4Ttzd+JvgounFsXdpuyDm0q6djAwhjj7W/ZxWWU3XkArbcaXTMSslnn25804w== - dependencies: - ant-design-palettes "^1.1.3" - babel-runtime "^6.26.0" - -"@ant-design/icons@^1.1.15": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-1.2.1.tgz#8e19301b1433ec67d6bbd0e892782e2ade561ff9" - integrity sha512-gQx3nH6m1xvebOWh5xibhzVK02aoqHY7JUXUS4doAidSDRWsj5iwKC8Gq9DemDZ4T+bW6xO7jJZN1UsbvcW7Uw== - -"@antv/adjust@~0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@antv/adjust/-/adjust-0.1.1.tgz#e263ab0e1a1941a648842fc086cf65a7e3b75e98" - integrity sha512-9FaMOyBlM4AgoRL0b5o0VhEKAYkexBNUrxV8XmpHU/9NBPJONBOB/NZUlQDqxtLItrt91tCfbAuMQmF529UX2Q== - dependencies: - "@antv/util" "~1.3.1" - -"@antv/attr@~0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@antv/attr/-/attr-0.1.2.tgz#2eeb122fcaaf851a2d8749abc7c60519d3f77e37" - integrity sha512-QXjP+T2I+pJQcwZx1oCA4tipG43vgeCeKcGGKahlcxb71OBAzjJZm1QbF4frKXcnOqRkxVXtCr70X9TRair3Ew== - dependencies: - "@antv/util" "~1.3.1" - -"@antv/component@~0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@antv/component/-/component-0.3.1.tgz#25eb53e3ed3a0f413896be2f83e7e704bfb6b097" - integrity sha512-NH5CQNttfnCjQEGwEEYGS/2gD3L50gCcMV94PYVyvwmn8NoqNDNeF5ZHe9oUNB4DRZIoo1wvGF8M8HJ7ItFLJQ== - dependencies: - "@antv/attr" "~0.1.2" - "@antv/g" "~3.3.5" - "@antv/util" "~1.3.1" - wolfy87-eventemitter "~5.1.0" - -"@antv/coord@~0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@antv/coord/-/coord-0.1.0.tgz#48a80ae36d07552f96657e7f8095227c63f0c0a9" - integrity sha512-W1R8h3Jfb3AfMBVfCreFPMVetgEYuwHBIGn0+d3EgYXe2ckOF8XWjkpGF1fZhOMHREMr+Gt27NGiQh8yBdLUgg== - dependencies: - "@antv/util" "~1.3.1" - -"@antv/data-set@^0.10.1": - version "0.10.2" - resolved "https://registry.yarnpkg.com/@antv/data-set/-/data-set-0.10.2.tgz#584a9574e7e0853847cb658d51b9f7345a00032f" - integrity sha512-FFWG5tiTiFiUrLDRwulraU5XfOdDjkYOlZna+AMT9FJw406D/gfS8eXM9YibscBH28M/+KLAVO8xEwuD1sc3bw== - dependencies: - "@antv/hierarchy" "~0.4.0" - "@antv/util" "~1.3.1" - d3-array "~1.2.0" - d3-composite-projections "~1.2.0" - d3-dsv "~1.0.5" - d3-geo "~1.6.4" - d3-geo-projection "~2.1.2" - d3-hexjson "~1.0.1" - d3-hierarchy "~1.1.5" - d3-sankey "~0.7.1" - d3-voronoi "~1.1.2" - dagre "~0.8.2" - point-at-length "~1.0.2" - regression "~2.0.0" - simple-statistics "~6.1.0" - topojson-client "~3.0.0" - wolfy87-eventemitter "~5.1.0" - -"@antv/g2-brush@^0.0.2": - version "0.0.2" - resolved "https://registry.yarnpkg.com/@antv/g2-brush/-/g2-brush-0.0.2.tgz#0b65f3ebbf82690202913d0b6759ab2900faa841" - integrity sha512-7O9szwem19nmEgReXhFB8kVLRaz8J5MHvrzDSDY36YaBOaHSWRGHnvYt2KkkPqgWtHtLY1srssk4X/UmP5govA== - -"@antv/g2-plugin-slider@^2.1.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@antv/g2-plugin-slider/-/g2-plugin-slider-2.1.1.tgz#c20c5f1cf085bea478f8ab1fc84837e45c46a065" - integrity sha512-nB678VEGG3FkrvkDDFADAKjLQIeXzITEYqey5oeOpbf0vT5jOa55lQDyJDZ79cK8PmU/Hz6VPeSb3CNQBA+/FQ== - -"@antv/g2@^3.4.0": - version "3.4.10" - resolved "https://registry.yarnpkg.com/@antv/g2/-/g2-3.4.10.tgz#72607fa3fb261a2a935762c78c8e568297f523cf" - integrity sha512-4IltW4S8IV+KcMeGltAgKKr6vAjYAKj+WLTkZAYbzmXEcBsmt4Ss6QcoTrBk/y5AK9dE8Bz1JT+8CgEqMHC2tg== - dependencies: - "@antv/adjust" "~0.1.0" - "@antv/attr" "~0.1.2" - "@antv/component" "~0.3.1" - "@antv/coord" "~0.1.0" - "@antv/g" "~3.3.5" - "@antv/scale" "~0.1.0" - "@antv/util" "~1.3.1" - venn.js "~0.2.20" - wolfy87-eventemitter "~5.1.0" - -"@antv/g@~3.3.5": - version "3.3.5" - resolved "https://registry.yarnpkg.com/@antv/g/-/g-3.3.5.tgz#9959baad1b85199614e591c9926879afb1fbb943" - integrity sha512-VCfxmQ5ntIf4QHku6w7TnOWHVkfIzOkXVXx99WLYPau8HgLuM4iD9y7isG5T7VpRBAmV+Ow3RJHqL3vHFY2Low== - dependencies: - "@antv/gl-matrix" "~2.7.1" - "@antv/util" "~1.3.1" - d3-ease "~1.0.3" - d3-interpolate "~1.1.5" - d3-timer "~1.0.6" - wolfy87-eventemitter "~5.1.0" - -"@antv/gl-matrix@^2.7.1", "@antv/gl-matrix@~2.7.1": - version "2.7.1" - resolved "https://registry.yarnpkg.com/@antv/gl-matrix/-/gl-matrix-2.7.1.tgz#acb8e37f7ab3df01345aba4372d7942be42eba14" - integrity sha512-oOWcVNlpELIKi9x+Mm1Vwbz8pXfkbJKykoCIOJ/dNK79hSIANbpXJ5d3Rra9/wZqK6MC961B7sybFhPlLraT3Q== - -"@antv/hierarchy@~0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@antv/hierarchy/-/hierarchy-0.4.0.tgz#712b5b4477ee0b8b8db174c682b5356b0411aab6" - integrity sha512-ols+m+Z8QA4895SWMTOSjVImOX4tEbWQTwJ0NE+WATc0WLSKs6D9y2yaR+ZWt6P60BMGVIKS6lIfabO3CwGgnQ== - dependencies: - "@antv/util" "~1.3.1" - -"@antv/scale@~0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@antv/scale/-/scale-0.1.0.tgz#2b5459a100f97aac04781376d53904ccab18aab7" - integrity sha512-xQTWhoSYbIGSrNUBOuQvbYk1GnUruaG7az/HIcoA+5pb5WTa2HsW4Rf/mtTkkPVd6YFZJmPwht6lEuuhkCYEPg== - dependencies: - "@antv/util" "~1.3.1" - fecha "~2.3.3" - -"@antv/util@~1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@antv/util/-/util-1.3.1.tgz#30a34b201ff9126ec0d58c72c8166a9c3e644ccd" - integrity sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA== - dependencies: - "@antv/gl-matrix" "^2.7.1" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" - integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== - dependencies: - "@babel/highlight" "^7.0.0" - -"@babel/core@^7.0.0": - version "7.4.5" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.4.5.tgz#081f97e8ffca65a9b4b0fdc7e274e703f000c06a" - integrity sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.4" - "@babel/helpers" "^7.4.4" - "@babel/parser" "^7.4.5" - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.4.5" - "@babel/types" "^7.4.4" - convert-source-map "^1.1.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.11" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.1.2": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.3.4.tgz#921a5a13746c21e32445bf0798680e9d11a6530b" - integrity sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.3.4" - "@babel/helpers" "^7.2.0" - "@babel/parser" "^7.3.4" - "@babel/template" "^7.2.2" - "@babel/traverse" "^7.3.4" - "@babel/types" "^7.3.4" - convert-source-map "^1.1.0" - debug "^4.1.0" - json5 "^2.1.0" - lodash "^4.17.11" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.3.4", "@babel/generator@^7.4.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz#174a215eb843fc392c7edcaabeaa873de6e8f041" - integrity sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ== - dependencies: - "@babel/types" "^7.4.4" - jsesc "^2.5.1" - lodash "^4.17.11" - source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/helper-annotate-as-pure@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" - integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": - version "7.1.0" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" - integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-call-delegate@^7.4.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" - integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== - dependencies: - "@babel/helper-hoist-variables" "^7.4.4" - "@babel/traverse" "^7.4.4" - "@babel/types" "^7.4.4" - -"@babel/helper-create-class-features-plugin@^7.4.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.4.4.tgz#fc3d690af6554cc9efc607364a82d48f58736dba" - integrity sha512-UbBHIa2qeAGgyiNR9RszVF7bUHEdgS4JAUNT8SiqrAN6YJVxlOxeLr5pBzb5kan302dejJ9nla4RyKcR1XT6XA== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-member-expression-to-functions" "^7.0.0" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.4.4" - "@babel/helper-split-export-declaration" "^7.4.4" - -"@babel/helper-define-map@^7.4.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz#6969d1f570b46bdc900d1eba8e5d59c48ba2c12a" - integrity sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/types" "^7.4.4" - lodash "^4.17.11" - -"@babel/helper-explode-assignable-expression@^7.1.0": - version "7.1.0" - resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" - integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== - dependencies: - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" - integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== - dependencies: - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" - integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-hoist-variables@^7.4.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" - integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== - dependencies: - "@babel/types" "^7.4.4" - -"@babel/helper-member-expression-to-functions@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" - integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-module-imports@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" - integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz#96115ea42a2f139e619e98ed46df6019b94414b8" - integrity sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/template" "^7.4.4" - "@babel/types" "^7.4.4" - lodash "^4.17.11" - -"@babel/helper-optimise-call-expression@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" - integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== - dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== - -"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.4.4.tgz#a47e02bc91fb259d2e6727c2a30013e3ac13c4a2" - integrity sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q== - dependencies: - lodash "^4.17.11" - -"@babel/helper-remap-async-to-generator@^7.1.0": - version "7.1.0" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" - integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-wrap-function" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-replace-supers@^7.1.0", "@babel/helper-replace-supers@^7.4.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz#aee41783ebe4f2d3ab3ae775e1cc6f1a90cefa27" - integrity sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.0.0" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.4.4" - "@babel/types" "^7.4.4" - -"@babel/helper-simple-access@^7.1.0": - version "7.1.0" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" - integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== - dependencies: - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-split-export-declaration@^7.0.0", "@babel/helper-split-export-declaration@^7.4.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" - integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== - dependencies: - "@babel/types" "^7.4.4" - -"@babel/helper-wrap-function@^7.1.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" - integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/template" "^7.1.0" - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.2.0" - -"@babel/helpers@^7.2.0", "@babel/helpers@^7.4.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.4.4.tgz#868b0ef59c1dd4e78744562d5ce1b59c89f2f2a5" - integrity sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A== - dependencies: - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.4.4" - "@babel/types" "^7.4.4" - -"@babel/highlight@^7.0.0": - version "7.0.0" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" - integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.0.0": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.3.4.tgz#a43357e4bbf4b92a437fb9e465c192848287f27c" - integrity sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ== - -"@babel/parser@^7.3.4", "@babel/parser@^7.4.4", "@babel/parser@^7.4.5": - version "7.4.5" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz#04af8d5d5a2b044a2a1bffacc1e5e6673544e872" - integrity sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew== - -"@babel/plugin-proposal-async-generator-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" - integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" - -"@babel/plugin-proposal-class-properties@^7.0.0": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.4.4.tgz#93a6486eed86d53452ab9bab35e368e9461198ce" - integrity sha512-WjKTI8g8d5w1Bc9zgwSz2nfrsNQsXcCf9J9cdCvrJV6RF56yztwm4TmJC0MgJ9tvwO9gUA/mcYe89bLdGfiXFg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.4.4" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-proposal-decorators@^7.1.0": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.4.4.tgz#de9b2a1a8ab0196f378e2a82f10b6e2a36f21cc0" - integrity sha512-z7MpQz3XC/iQJWXH9y+MaWcLPNSMY9RQSthrLzak8R8hCj0fuyNk+Dzi9kfNe/JxxlWQ2g7wkABbgWjW36MTcw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.4.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-decorators" "^7.2.0" - -"@babel/plugin-proposal-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" - integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - -"@babel/plugin-proposal-object-rest-spread@^7.3.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz#1ef173fcf24b3e2df92a678f027673b55e7e3005" - integrity sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - -"@babel/plugin-proposal-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" - integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.2.0": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78" - integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" - -"@babel/plugin-syntax-async-generators@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" - integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-decorators@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz#c50b1b957dcc69e4b1127b65e1c33eef61570c1b" - integrity sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-dynamic-import@^7.0.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" - integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" - integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" - integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-object-rest-spread@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" - integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" - integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-arrow-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" - integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-async-to-generator@^7.3.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz#a3f1d01f2f21cadab20b33a82133116f14fb5894" - integrity sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.1.0" - -"@babel/plugin-transform-block-scoped-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" - integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-block-scoping@^7.3.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz#c13279fabf6b916661531841a23c4b7dae29646d" - integrity sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - lodash "^4.17.11" - -"@babel/plugin-transform-classes@^7.3.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz#0ce4094cdafd709721076d3b9c38ad31ca715eb6" - integrity sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-define-map" "^7.4.4" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.4.4" - "@babel/helper-split-export-declaration" "^7.4.4" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" - integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-destructuring@^7.2.0": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz#9d964717829cc9e4b601fc82a26a71a4d8faf20f" - integrity sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-dotall-regex@^7.2.0": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3" - integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" - -"@babel/plugin-transform-duplicate-keys@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3" - integrity sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-exponentiation-operator@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" - integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-for-of@^7.2.0": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" - integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-function-name@^7.2.0": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" - integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== - dependencies: - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" - integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-modules-amd@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" - integrity sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw== - dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-modules-commonjs@^7.2.0": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz#0bef4713d30f1d78c2e59b3d6db40e60192cac1e" - integrity sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw== - dependencies: - "@babel/helper-module-transforms" "^7.4.4" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" - -"@babel/plugin-transform-modules-systemjs@^7.3.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz#dc83c5665b07d6c2a7b224c00ac63659ea36a405" - integrity sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ== - dependencies: - "@babel/helper-hoist-variables" "^7.4.4" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-modules-umd@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" - integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== - dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.3.0": - version "7.4.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz#9d269fd28a370258199b4294736813a60bbdd106" - integrity sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg== - dependencies: - regexp-tree "^0.1.6" - -"@babel/plugin-transform-new-target@^7.0.0": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" - integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-object-super@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" - integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.1.0" - -"@babel/plugin-transform-parameters@^7.2.0": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" - integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== - dependencies: - "@babel/helper-call-delegate" "^7.4.4" - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-regenerator@^7.3.4": - version "7.4.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" - integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA== - dependencies: - regenerator-transform "^0.14.0" - -"@babel/plugin-transform-runtime@^7.1.0": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.3.4.tgz#57805ac8c1798d102ecd75c03b024a5b3ea9b431" - integrity sha512-PaoARuztAdd5MgeVjAxnIDAIUet5KpogqaefQvPOmPYCxYoaPhautxDh3aO8a4xHsKgT/b9gSxR0BKK1MIewPA== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/plugin-transform-runtime@^7.4.0": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.4.4.tgz#a50f5d16e9c3a4ac18a1a9f9803c107c380bce08" - integrity sha512-aMVojEjPszvau3NRg+TIH14ynZLvPewH4xhlCW1w6A3rkxTS1m4uwzRclYR9oS+rl/dr+kT+pzbfHuAWP/lc7Q== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/plugin-transform-shorthand-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" - integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-spread@^7.2.0": - version "7.2.2" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" - integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-sticky-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" - integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" - -"@babel/plugin-transform-template-literals@^7.2.0": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" - integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-typeof-symbol@^7.2.0": - version "7.2.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" - integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - -"@babel/plugin-transform-unicode-regex@^7.2.0": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f" - integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.5.4" - -"@babel/polyfill@^7.2.5": - version "7.2.5" - resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.2.5.tgz#6c54b964f71ad27edddc567d065e57e87ed7fa7d" - integrity sha512-8Y/t3MWThtMLYr0YNC/Q76tqN1w30+b0uQMeFUYauG2UGTR19zyUtFrAzT23zNtBxPp+LbE5E/nwV/q/r3y6ug== - dependencies: - core-js "^2.5.7" - regenerator-runtime "^0.12.0" - -"@babel/preset-env@^7.0.0 < 7.4.0", "@babel/preset-env@^7.1.0": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.3.4.tgz#887cf38b6d23c82f19b5135298bdb160062e33e1" - integrity sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.2.0" - "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.3.4" - "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.2.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.3.4" - "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.3.4" - "@babel/plugin-transform-classes" "^7.3.4" - "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.2.0" - "@babel/plugin-transform-dotall-regex" "^7.2.0" - "@babel/plugin-transform-duplicate-keys" "^7.2.0" - "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.2.0" - "@babel/plugin-transform-function-name" "^7.2.0" - "@babel/plugin-transform-literals" "^7.2.0" - "@babel/plugin-transform-modules-amd" "^7.2.0" - "@babel/plugin-transform-modules-commonjs" "^7.2.0" - "@babel/plugin-transform-modules-systemjs" "^7.3.4" - "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.3.0" - "@babel/plugin-transform-new-target" "^7.0.0" - "@babel/plugin-transform-object-super" "^7.2.0" - "@babel/plugin-transform-parameters" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.3.4" - "@babel/plugin-transform-shorthand-properties" "^7.2.0" - "@babel/plugin-transform-spread" "^7.2.0" - "@babel/plugin-transform-sticky-regex" "^7.2.0" - "@babel/plugin-transform-template-literals" "^7.2.0" - "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.2.0" - browserslist "^4.3.4" - invariant "^2.2.2" - js-levenshtein "^1.1.3" - semver "^5.3.0" - -"@babel/runtime-corejs2@^7.2.0": - version "7.4.5" - resolved "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.4.5.tgz#3d892f0560df21bafb384dd7727e33853e95d3c9" - integrity sha512-5yLuwzvIDecKwYMzJtiarky4Fb5643H3Ao5jwX0HrMR5oM5mn2iHH9wSZonxwNK0oAjAFUQAiOd4jT7/9Y2jMQ== - dependencies: - core-js "^2.6.5" - regenerator-runtime "^0.13.2" - -"@babel/runtime@^7.0.0": - version "7.4.5" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.5.tgz#582bb531f5f9dc67d2fcb682979894f75e253f12" - integrity sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ== - dependencies: - regenerator-runtime "^0.13.2" - -"@babel/template@^7.1.0", "@babel/template@^7.2.2", "@babel/template@^7.4.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237" - integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.4.4" - "@babel/types" "^7.4.4" - -"@babel/traverse@^7.0.0": - version "7.3.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.3.4.tgz#1330aab72234f8dea091b08c4f8b9d05c7119e06" - integrity sha512-TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.3.4" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.0.0" - "@babel/parser" "^7.3.4" - "@babel/types" "^7.3.4" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.11" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.3.4", "@babel/traverse@^7.4.4", "@babel/traverse@^7.4.5": - version "7.4.5" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz#4e92d1728fd2f1897dafdd321efbff92156c3216" - integrity sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/generator" "^7.4.4" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.4.5" - "@babel/types" "^7.4.4" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.11" - -"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.3.4", "@babel/types@^7.4.4": - version "7.4.4" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz#8db9e9a629bb7c29370009b4b779ed93fe57d5f0" - integrity sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ== - dependencies: - esutils "^2.0.2" - lodash "^4.17.11" - to-fast-properties "^2.0.0" - -"@hapi/address@2.x.x": - version "2.0.0" - resolved "https://registry.npmjs.org/@hapi/address/-/address-2.0.0.tgz#9f05469c88cb2fd3dcd624776b54ee95c312126a" - integrity sha512-mV6T0IYqb0xL1UALPFplXYQmR0twnXG0M6jUswpquqT2sD12BOiCiLy3EvMp/Fy7s3DZElC4/aPjEjo2jeZpvw== - -"@hapi/hoek@6.x.x": - version "6.2.4" - resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-6.2.4.tgz#4b95fbaccbfba90185690890bdf1a2fbbda10595" - integrity sha512-HOJ20Kc93DkDVvjwHyHawPwPkX44sIrbXazAUDiUXaY2R9JwQGo2PhFfnQtdrsIe4igjG2fPgMra7NYw7qhy0A== - -"@hapi/joi@^15.0.1": - version "15.0.3" - resolved "https://registry.npmjs.org/@hapi/joi/-/joi-15.0.3.tgz#e94568fd859e5e945126d5675e7dd218484638a7" - integrity sha512-z6CesJ2YBwgVCi+ci8SI8zixoj8bGFn/vZb9MBPbSyoxsS2PnWYjHcyTM17VLK6tx64YVK38SDIh10hJypB+ig== - dependencies: - "@hapi/address" "2.x.x" - "@hapi/hoek" "6.x.x" - "@hapi/topo" "3.x.x" - -"@hapi/topo@3.x.x": - version "3.1.0" - resolved "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.0.tgz#5c47cd9637c2953db185aa957a27bcb2a8b7a6f8" - integrity sha512-gZDI/eXOIk8kP2PkUKjWu9RW8GGVd2Hkgjxyr/S7Z+JF+0mr7bAlbw+DkTRxnD580o8Kqxlnba9wvqp5aOHBww== - dependencies: - "@hapi/hoek" "6.x.x" - -"@intervolga/optimize-cssnano-plugin@^1.0.5": - version "1.0.6" - resolved "https://registry.npmjs.org/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz#be7c7846128b88f6a9b1d1261a0ad06eb5c0fdf8" - integrity sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA== - dependencies: - cssnano "^4.0.0" - cssnano-preset-default "^4.0.0" - postcss "^7.0.0" - -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== - -"@soda/friendly-errors-webpack-plugin@^1.7.1": - version "1.7.1" - resolved "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.1.tgz#706f64bcb4a8b9642b48ae3ace444c70334d615d" - integrity sha512-cWKrGaFX+rfbMrAxVv56DzhPNqOJPZuNIS2HGMELtgGzb+vsMzyig9mml5gZ/hr2BGtSLV+dP2LUEuAL8aG2mQ== - dependencies: - chalk "^1.1.3" - error-stack-parser "^2.0.0" - string-width "^2.0.0" - -"@types/anymatch@*": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" - integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== - -"@types/d3-format@*": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-1.3.1.tgz#35bf88264bd6bcda39251165bb827f67879c4384" - integrity sha512-KAWvReOKMDreaAwOjdfQMm0HjcUMlQG47GwqdVKgmm20vTd2pucj0a70c3gUSHrnsmo6H2AMrkBsZU2UhJLq8A== - -"@types/events@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== - -"@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== - dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" - -"@types/loader-utils@1.1.3": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@types/loader-utils/-/loader-utils-1.1.3.tgz#82b9163f2ead596c68a8c03e450fbd6e089df401" - integrity sha512-euKGFr2oCB3ASBwG39CYJMR3N9T0nanVqXdiH7Zu/Nqddt6SmFRxytq/i2w9LQYNQekEtGBz+pE3qG6fQTNvRg== - dependencies: - "@types/node" "*" - "@types/webpack" "*" - -"@types/lodash@*": - version "4.14.121" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.121.tgz#9327e20d49b95fc2bf983fc2f045b2c6effc80b9" - integrity sha512-ORj7IBWj13iYufXt/VXrCNMbUuCTJfhzme5kx9U/UtcIPdJYuvPDUAlHlbNhz/8lKCLy9XGIZnGrqXOtQbPGoQ== - -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== - -"@types/node@*": - version "12.0.2" - resolved "https://registry.npmjs.org/@types/node/-/node-12.0.2.tgz#3452a24edf9fea138b48fad4a0a028a683da1e40" - integrity sha512-5tabW/i+9mhrfEOUcLDu2xBPsHJ+X5Orqy9FKpale3SjDA17j5AEpYq5vfy3oAeAHGcvANRCO3NV3d2D6q3NiA== - -"@types/node@8.9": - version "8.9.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.9.5.tgz#162b864bc70be077e6db212b322754917929e976" - integrity sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ== - -"@types/node@^8.0.53": - version "8.10.40" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.40.tgz#4314888d5cd537945d73e9ce165c04cc550144a4" - integrity sha512-RRSjdwz63kS4u7edIwJUn8NqKLLQ6LyqF/X4+4jp38MBT3Vwetewi2N4dgJEshLbDwNgOJXNYoOwzVZUSSLhkQ== - -"@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== - -"@types/q@^1.5.1": - version "1.5.2" - resolved "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" - integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== - -"@types/strip-bom@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" - integrity sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I= - -"@types/strip-json-comments@0.0.30": - version "0.0.30" - resolved "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" - integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== - -"@types/tapable@*": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.4.tgz#b4ffc7dc97b498c969b360a41eee247f82616370" - integrity sha512-78AdXtlhpCHT0K3EytMpn4JNxaf5tbqbLcbIRoQIHzpTIyjpxLQKRoxU55ujBXAtg3Nl2h/XWvfDa9dsMOd0pQ== - -"@types/uglify-js@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.0.4.tgz#96beae23df6f561862a830b4288a49e86baac082" - integrity sha512-SudIN9TRJ+v8g5pTG8RRCqfqTMNqgWCKKd3vtynhGzkIIjxaicNAMuY5TRadJ6tzDu3Dotf3ngaMILtmOdmWEQ== - dependencies: - source-map "^0.6.1" - -"@types/webpack@*": - version "4.4.25" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.4.25.tgz#c8a1eb968a33a3e6da641f529c5add0d44d34809" - integrity sha512-YaYVbSK1bC3xiAWFLSgDQyVHdCTNq5cLlcx633basmrwSoUxJiv4SZ0SoT1uoF15zWx98afOcCbqA1YHeCdRYA== - dependencies: - "@types/anymatch" "*" - "@types/node" "*" - "@types/tapable" "*" - "@types/uglify-js" "*" - source-map "^0.6.0" - -"@vue/babel-helper-vue-jsx-merge-props@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz#048fe579958da408fb7a8b2a3ec050b50a661040" - integrity sha512-6tyf5Cqm4m6v7buITuwS+jHzPlIPxbFzEhXR5JGZpbrvOcp1hiQKckd305/3C7C36wFekNTQSxAtgeM0j0yoUw== - -"@vue/babel-plugin-transform-vue-jsx@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.0.0.tgz#ebcbf39c312c94114c8c4f407ee4f6c97aa45432" - integrity sha512-U+JNwVQSmaLKjO3lzCUC3cNXxprgezV1N+jOdqbP4xWNaqtWUCJnkjTVcgECM18A/AinDKPcUUeoyhU7yxUxXQ== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0" - html-tags "^2.0.0" - lodash.kebabcase "^4.1.1" - svg-tags "^1.0.0" - -"@vue/babel-preset-app@^3.8.0": - version "3.8.0" - resolved "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-3.8.0.tgz#c889627c6a30418b2fb89caccd9065c4acae0829" - integrity sha512-A2NBzIVdtNq52foc+P+yQ/7rSm2q2oPpn2FJVW4hFgaWVOL+HaOLCjWDEQyEeMbRZvyOVHMuom097u3p2H2Rfw== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-decorators" "^7.1.0" - "@babel/plugin-syntax-dynamic-import" "^7.0.0" - "@babel/plugin-syntax-jsx" "^7.0.0" - "@babel/plugin-transform-runtime" "^7.4.0" - "@babel/preset-env" "^7.0.0 < 7.4.0" - "@babel/runtime" "^7.0.0" - "@babel/runtime-corejs2" "^7.2.0" - "@vue/babel-preset-jsx" "^1.0.0" - babel-plugin-dynamic-import-node "^2.2.0" - babel-plugin-module-resolver "3.2.0" - core-js "^2.6.5" - -"@vue/babel-preset-jsx@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.0.0.tgz#e515cd453a5a8ea6b0f30b2bb92f266d8ab4e9f5" - integrity sha512-5CbDu/QHS+TtQNw5aYAffiMxBBB2Eo9+RJpS8X+6FJbdG5Rvc4TVipEqkrg0pJviWadNg7TEy0Uz4o7VNXeIZw== - dependencies: - "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.0.0" - "@vue/babel-sugar-functional-vue" "^1.0.0" - "@vue/babel-sugar-inject-h" "^1.0.0" - "@vue/babel-sugar-v-model" "^1.0.0" - "@vue/babel-sugar-v-on" "^1.0.0" - -"@vue/babel-sugar-functional-vue@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.0.0.tgz#17e2c4ca27b74b244da3b923240ec91d10048cb3" - integrity sha512-XE/jNaaorTuhWayCz+QClk5AB9OV5HzrwbzEC6sIUY0J60A28ONQKeTwxfidW42egOkqNH/UU6eE3KLfmiDj0Q== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-inject-h@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.0.0.tgz#e5efb6c5b5b7988dc03831af6d133bf7bcde6347" - integrity sha512-NxWU+DqtbZgfGvd25GPoFMj+rvyQ8ZA1pHj8vIeqRij+vx3sXoKkObjA9ulZunvWw5F6uG9xYy4ytpxab/X+Hg== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - -"@vue/babel-sugar-v-model@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.0.0.tgz#f4da56aa67f65a349bd2c269a95e72e601af4613" - integrity sha512-Pfg2Al0io66P1eO6zUbRIgpyKCU2qTnumiE0lao/wA/uNdb7Dx5Tfd1W6tO5SsByETPnEs8i8+gawRIXX40rFw== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.0.0" - camelcase "^5.0.0" - html-tags "^2.0.0" - svg-tags "^1.0.0" - -"@vue/babel-sugar-v-on@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.0.0.tgz#a633ee8fe205763e865b011246981b7f89668033" - integrity sha512-2aqJaDLKdSSGlxZU+GjFERaSNUaa6DQreV+V/K4W/6Lxj8520/r1lChWEa/zuAoPD2Vhy0D2QrqqO+I0D6CkKw== - dependencies: - "@babel/plugin-syntax-jsx" "^7.2.0" - "@vue/babel-plugin-transform-vue-jsx" "^1.0.0" - camelcase "^5.0.0" - -"@vue/cli-overlay@^3.8.0": - version "3.8.0" - resolved "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-3.8.0.tgz#e4e8e2fa92b06fc282916df9c924f1dba50eeabb" - integrity sha512-4hY/+r9OwpMb7BPFnQGKftMC8CrfbV00REEFOij52+L4swQw+m879+5zX3Z0xHfPftw6JyaqJB0rmQ0ILI6Ovw== - -"@vue/cli-plugin-babel@^3.7.0": - version "3.8.0" - resolved "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-3.8.0.tgz#a7ce6ef9c6680e7953c609d859451dd937c7284e" - integrity sha512-VLWvpgDM+HN2FZu1x+r9pisombDTK1k+RPNPeslnwjGjrUXmKNAamXL1ZIsPwsj6k6PpWPN4jetBIMqcBzBu6Q== - dependencies: - "@babel/core" "^7.0.0" - "@vue/babel-preset-app" "^3.8.0" - "@vue/cli-shared-utils" "^3.8.0" - babel-loader "^8.0.5" - webpack ">=4 < 4.29" - -"@vue/cli-plugin-eslint@^3.7.0": - version "3.8.0" - resolved "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.8.0.tgz#0402dfd3864b0224bceb264df89a4209000bb98c" - integrity sha512-18LDJmjH0DDw9T4+RbrSVk4xkF8t8RDRsEPJLPurno1YVJodIkQ6lqVu82faVgtvPyCoqiaicoTq/iwi1avoLQ== - dependencies: - "@vue/cli-shared-utils" "^3.8.0" - babel-eslint "^10.0.1" - eslint-loader "^2.1.2" - globby "^9.2.0" - webpack ">=4 < 4.29" - optionalDependencies: - eslint "^4.19.1" - eslint-plugin-vue "^4.7.1" - -"@vue/cli-plugin-unit-jest@^3.7.0": - version "3.8.0" - resolved "https://registry.npmjs.org/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-3.8.0.tgz#13cd3b4f5d1c9e0ef1982cbaea19b73f7df947d6" - integrity sha512-8kvoh6NZYY7FjuqRorqo47VTi62a3u69+oAxqBiIOkc28OGaju/FrL0Vm95vRB8tMkU6EPXKVRtCjPz8R2QeZA== - dependencies: - "@vue/cli-shared-utils" "^3.8.0" - babel-jest "^23.6.0" - babel-plugin-transform-es2015-modules-commonjs "^6.26.2" - jest "^23.6.0" - jest-serializer-vue "^2.0.2" - jest-transform-stub "^2.0.0" - jest-watch-typeahead "0.2.1" - vue-jest "^3.0.4" - -"@vue/cli-service@^3.7.0": - version "3.8.0" - resolved "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.8.0.tgz#47eaa169a7bd96522c1a0df89214f1afee843cd6" - integrity sha512-ipJF4RHjyLyLC4oLx+JM1Jk6tiIG0KjCFAqfOscQ44K4CdyS03oFMAUR+SZYy/UXKccMnoeY6Ld4YrGXSytQsg== - dependencies: - "@intervolga/optimize-cssnano-plugin" "^1.0.5" - "@soda/friendly-errors-webpack-plugin" "^1.7.1" - "@vue/cli-overlay" "^3.8.0" - "@vue/cli-shared-utils" "^3.8.0" - "@vue/component-compiler-utils" "^2.6.0" - "@vue/preload-webpack-plugin" "^1.1.0" - "@vue/web-component-wrapper" "^1.2.0" - acorn "^6.1.1" - acorn-walk "^6.1.1" - address "^1.0.3" - autoprefixer "^9.5.1" - browserslist "^4.5.4" - cache-loader "^2.0.1" - case-sensitive-paths-webpack-plugin "^2.2.0" - chalk "^2.4.2" - cli-highlight "^2.1.0" - clipboardy "^2.0.0" - cliui "^5.0.0" - copy-webpack-plugin "^4.6.0" - css-loader "^1.0.1" - cssnano "^4.1.10" - current-script-polyfill "^1.0.0" - debug "^4.1.1" - dotenv "^7.0.0" - dotenv-expand "^5.1.0" - escape-string-regexp "^1.0.5" - file-loader "^3.0.1" - fs-extra "^7.0.1" - globby "^9.2.0" - hash-sum "^1.0.2" - html-webpack-plugin "^3.2.0" - launch-editor-middleware "^2.2.1" - lodash.defaultsdeep "^4.6.0" - lodash.mapvalues "^4.6.0" - lodash.transform "^4.6.0" - mini-css-extract-plugin "^0.6.0" - minimist "^1.2.0" - ora "^3.4.0" - portfinder "^1.0.20" - postcss-loader "^3.0.0" - read-pkg "^5.0.0" - semver "^6.0.0" - slash "^2.0.0" - source-map-url "^0.4.0" - ssri "^6.0.1" - string.prototype.padend "^3.0.0" - terser-webpack-plugin "^1.2.3" - thread-loader "^2.1.2" - url-loader "^1.1.2" - vue-loader "^15.7.0" - webpack ">=4 < 4.29" - webpack-bundle-analyzer "^3.3.0" - webpack-chain "^4.11.0" - webpack-dev-server "^3.4.1" - webpack-merge "^4.2.1" - yorkie "^2.0.0" - -"@vue/cli-shared-utils@^3.8.0": - version "3.8.0" - resolved "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-3.8.0.tgz#e7e728164eb92bd9e205fcd08dae896ee79cba5a" - integrity sha512-wn1L8pmQnotfftHOYm0VeXs2+cQTySd73uhWXwyO6pT0ehjqlY5c2RTipClmFF3Q+YCYjwlNpsV650F3l1tV8w== - dependencies: - "@hapi/joi" "^15.0.1" - chalk "^2.4.1" - execa "^1.0.0" - launch-editor "^2.2.1" - lru-cache "^5.1.1" - node-ipc "^9.1.1" - open "^6.3.0" - ora "^3.4.0" - request "^2.87.0" - request-promise-native "^1.0.7" - semver "^6.0.0" - string.prototype.padstart "^3.0.0" - -"@vue/component-compiler-utils@^2.5.1", "@vue/component-compiler-utils@^2.6.0": - version "2.6.0" - resolved "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-2.6.0.tgz#aa46d2a6f7647440b0b8932434d22f12371e543b" - integrity sha512-IHjxt7LsOFYc0DkTncB7OXJL7UzwOLPPQCfEUNyxL2qt+tF12THV+EO33O1G2Uk4feMSWua3iD39Itszx0f0bw== - dependencies: - consolidate "^0.15.1" - hash-sum "^1.0.2" - lru-cache "^4.1.2" - merge-source-map "^1.1.0" - postcss "^7.0.14" - postcss-selector-parser "^5.0.0" - prettier "1.16.3" - source-map "~0.6.1" - vue-template-es2015-compiler "^1.9.0" - -"@vue/eslint-config-standard@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@vue/eslint-config-standard/-/eslint-config-standard-4.0.0.tgz#6be447ee674e3b0f733c584098fd9a22e6d76fcd" - integrity sha512-bQghq1cw1BuMRHNhr3tRpAJx1tpGy0QtajQX873kLtA9YVuOIoXR7nAWnTN09bBHnSUh2N288vMsqPi2fI4Hzg== - dependencies: - eslint-config-standard "^12.0.0" - eslint-plugin-import "^2.14.0" - eslint-plugin-node "^8.0.0" - eslint-plugin-promise "^4.0.1" - eslint-plugin-standard "^4.0.0" - -"@vue/preload-webpack-plugin@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.0.tgz#d768dba004261c029b53a77c5ea2d5f9ee4f3cce" - integrity sha512-rcn2KhSHESBFMPj5vc5X2pI9bcBNQQixvJXhD5gZ4rN2iym/uH2qfDSQfUS5+qwiz0a85TCkeUs6w6jxFDudbw== - -"@vue/test-utils@^1.0.0-beta.20": - version "1.0.0-beta.29" - resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.0-beta.29.tgz#c942cf25e891cf081b6a03332b4ae1ef430726f0" - integrity sha512-yX4sxEIHh4M9yAbLA/ikpEnGKMNBCnoX98xE1RwxfhQVcn0MaXNSj1Qmac+ZydTj6VBSEVukchBogXBTwc+9iA== - dependencies: - dom-event-types "^1.0.0" - lodash "^4.17.4" - -"@vue/web-component-wrapper@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.2.0.tgz#bb0e46f1585a7e289b4ee6067dcc5a6ae62f1dd1" - integrity sha512-Xn/+vdm9CjuC9p3Ae+lTClNutrVhsXpzxvoTXXtoys6kVRX9FkueSUAqSWAyZntmVLlR4DosBV4pH8y5Z/HbUw== - -"@webassemblyjs/ast@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace" - integrity sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA== - dependencies: - "@webassemblyjs/helper-module-context" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/wast-parser" "1.7.11" - -"@webassemblyjs/ast@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.3.tgz#63a741bd715a6b6783f2ea5c6ab707516aa215eb" - integrity sha512-xy3m06+Iu4D32+6soz6zLnwznigXJRuFNTovBX2M4GqVqLb0dnyWLbPnpcXvUSdEN+9DVyDeaq2jyH1eIL2LZQ== - dependencies: - "@webassemblyjs/helper-module-context" "1.8.3" - "@webassemblyjs/helper-wasm-bytecode" "1.8.3" - "@webassemblyjs/wast-parser" "1.8.3" - -"@webassemblyjs/floating-point-hex-parser@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz#a69f0af6502eb9a3c045555b1a6129d3d3f2e313" - integrity sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg== - -"@webassemblyjs/floating-point-hex-parser@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.3.tgz#f198a2d203b3c50846a064f5addd6a133ef9bc0e" - integrity sha512-vq1TISG4sts4f0lDwMUM0f3kpe0on+G3YyV5P0IySHFeaLKRYZ++n2fCFfG4TcCMYkqFeTUYFxm75L3ddlk2xA== - -"@webassemblyjs/helper-api-error@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz#c7b6bb8105f84039511a2b39ce494f193818a32a" - integrity sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg== - -"@webassemblyjs/helper-api-error@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.3.tgz#3b708f6926accd64dcbaa7ba5b63db5660ff4f66" - integrity sha512-BmWEynI4FnZbjk8CaYZXwcv9a6gIiu+rllRRouQUo73hglanXD3AGFJE7Q4JZCoVE0p5/jeX6kf5eKa3D4JxwQ== - -"@webassemblyjs/helper-buffer@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz#3122d48dcc6c9456ed982debe16c8f37101df39b" - integrity sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w== - -"@webassemblyjs/helper-buffer@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.3.tgz#f3150a23ffaba68621e1f094c8a14bebfd53dd48" - integrity sha512-iVIMhWnNHoFB94+/2l7LpswfCsXeMRnWfExKtqsZ/E2NxZyUx9nTeKK/MEMKTQNEpyfznIUX06OchBHQ+VKi/Q== - -"@webassemblyjs/helper-code-frame@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz#cf8f106e746662a0da29bdef635fcd3d1248364b" - integrity sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw== - dependencies: - "@webassemblyjs/wast-printer" "1.7.11" - -"@webassemblyjs/helper-code-frame@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.3.tgz#f43ac605789b519d95784ef350fd2968aebdd3ef" - integrity sha512-K1UxoJML7GKr1QXR+BG7eXqQkvu+eEeTjlSl5wUFQ6W6vaOc5OwSxTcb3oE9x/3+w4NHhrIKD4JXXCZmLdL2cg== - dependencies: - "@webassemblyjs/wast-printer" "1.8.3" - -"@webassemblyjs/helper-fsm@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz#df38882a624080d03f7503f93e3f17ac5ac01181" - integrity sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A== - -"@webassemblyjs/helper-fsm@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.3.tgz#46aaa03f41082a916850ebcb97e9fc198ef36a9c" - integrity sha512-387zipfrGyO77/qm7/SDUiZBjQ5KGk4qkrVIyuoubmRNIiqn3g+6ijY8BhnlGqsCCQX5bYKOnttJobT5xoyviA== - -"@webassemblyjs/helper-module-context@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz#d874d722e51e62ac202476935d649c802fa0e209" - integrity sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg== - -"@webassemblyjs/helper-module-context@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.3.tgz#150da405d90c8ea81ae0b0e1965b7b64e585634f" - integrity sha512-lPLFdQfaRssfnGEJit5Sk785kbBPPPK4ZS6rR5W/8hlUO/5v3F+rN8XuUcMj/Ny9iZiyKhhuinWGTUuYL4VKeQ== - dependencies: - "@webassemblyjs/ast" "1.8.3" - mamacro "^0.0.3" - -"@webassemblyjs/helper-wasm-bytecode@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz#dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06" - integrity sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ== - -"@webassemblyjs/helper-wasm-bytecode@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.3.tgz#12f55bbafbbc7ddf9d8059a072cb7b0c17987901" - integrity sha512-R1nJW7bjyJLjsJQR5t3K/9LJ0QWuZezl8fGa49DZq4IVaejgvkbNlKEQxLYTC579zgT4IIIVHb5JA59uBPHXyw== - -"@webassemblyjs/helper-wasm-section@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz#9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a" - integrity sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-buffer" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/wasm-gen" "1.7.11" - -"@webassemblyjs/helper-wasm-section@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.3.tgz#9e79456d9719e116f4f8998ee62ab54ba69a6cf3" - integrity sha512-P6F7D61SJY73Yz+fs49Q3+OzlYAZP86OfSpaSY448KzUy65NdfzDmo2NPVte+Rw4562MxEAacvq/mnDuvRWOcg== - dependencies: - "@webassemblyjs/ast" "1.8.3" - "@webassemblyjs/helper-buffer" "1.8.3" - "@webassemblyjs/helper-wasm-bytecode" "1.8.3" - "@webassemblyjs/wasm-gen" "1.8.3" - -"@webassemblyjs/ieee754@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz#c95839eb63757a31880aaec7b6512d4191ac640b" - integrity sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/ieee754@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.3.tgz#0a89355b1f6c9d08d0605c2acbc2a6fe3141f5b4" - integrity sha512-UD4HuLU99hjIvWz1pD68b52qsepWQlYCxDYVFJQfHh3BHyeAyAlBJ+QzLR1nnS5J6hAzjki3I3AoJeobNNSZlg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz#d7267a1ee9c4594fd3f7e37298818ec65687db63" - integrity sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw== - dependencies: - "@xtuc/long" "4.2.1" - -"@webassemblyjs/leb128@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.3.tgz#b7fd9d7c039e34e375c4473bd4dc89ce8228b920" - integrity sha512-XXd3s1BmkC1gpGABuCRLqCGOD6D2L+Ma2BpwpjrQEHeQATKWAQtxAyU9Z14/z8Ryx6IG+L4/NDkIGHrccEhRUg== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz#06d7218ea9fdc94a6793aa92208160db3d26ee82" - integrity sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA== - -"@webassemblyjs/utf8@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.3.tgz#75712db52cfdda868731569ddfe11046f1f1e7a2" - integrity sha512-Wv/WH9Zo5h5ZMyfCNpUrjFsLZ3X1amdfEuwdb7MLdG3cPAjRS6yc6ElULlpjLiiBTuzvmLhr3ENsuGyJ3wyCgg== - -"@webassemblyjs/wasm-edit@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz#8c74ca474d4f951d01dbae9bd70814ee22a82005" - integrity sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-buffer" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/helper-wasm-section" "1.7.11" - "@webassemblyjs/wasm-gen" "1.7.11" - "@webassemblyjs/wasm-opt" "1.7.11" - "@webassemblyjs/wasm-parser" "1.7.11" - "@webassemblyjs/wast-printer" "1.7.11" - -"@webassemblyjs/wasm-edit@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.3.tgz#23c3c6206b096f9f6aa49623a5310a102ef0fb87" - integrity sha512-nB19eUx3Yhi1Vvv3yev5r+bqQixZprMtaoCs1brg9Efyl8Hto3tGaUoZ0Yb4Umn/gQCyoEGFfUxPLp1/8+Jvnw== - dependencies: - "@webassemblyjs/ast" "1.8.3" - "@webassemblyjs/helper-buffer" "1.8.3" - "@webassemblyjs/helper-wasm-bytecode" "1.8.3" - "@webassemblyjs/helper-wasm-section" "1.8.3" - "@webassemblyjs/wasm-gen" "1.8.3" - "@webassemblyjs/wasm-opt" "1.8.3" - "@webassemblyjs/wasm-parser" "1.8.3" - "@webassemblyjs/wast-printer" "1.8.3" - -"@webassemblyjs/wasm-gen@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz#9bbba942f22375686a6fb759afcd7ac9c45da1a8" - integrity sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/ieee754" "1.7.11" - "@webassemblyjs/leb128" "1.7.11" - "@webassemblyjs/utf8" "1.7.11" - -"@webassemblyjs/wasm-gen@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.3.tgz#1a433b8ab97e074e6ac2e25fcbc8cb6125400813" - integrity sha512-sDNmu2nLBJZ/huSzlJvd9IK8B1EjCsOl7VeMV9VJPmxKYgTJ47lbkSP+KAXMgZWGcArxmcrznqm7FrAPQ7vVGg== - dependencies: - "@webassemblyjs/ast" "1.8.3" - "@webassemblyjs/helper-wasm-bytecode" "1.8.3" - "@webassemblyjs/ieee754" "1.8.3" - "@webassemblyjs/leb128" "1.8.3" - "@webassemblyjs/utf8" "1.8.3" - -"@webassemblyjs/wasm-opt@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz#b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7" - integrity sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-buffer" "1.7.11" - "@webassemblyjs/wasm-gen" "1.7.11" - "@webassemblyjs/wasm-parser" "1.7.11" - -"@webassemblyjs/wasm-opt@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.3.tgz#54754bcf88f88e92b909416a91125301cc81419c" - integrity sha512-j8lmQVFR+FR4/645VNgV4R/Jz8i50eaPAj93GZyd3EIJondVshE/D9pivpSDIXyaZt+IkCodlzOoZUE4LnQbeA== - dependencies: - "@webassemblyjs/ast" "1.8.3" - "@webassemblyjs/helper-buffer" "1.8.3" - "@webassemblyjs/wasm-gen" "1.8.3" - "@webassemblyjs/wasm-parser" "1.8.3" - -"@webassemblyjs/wasm-parser@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz#6e3d20fa6a3519f6b084ef9391ad58211efb0a1a" - integrity sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-api-error" "1.7.11" - "@webassemblyjs/helper-wasm-bytecode" "1.7.11" - "@webassemblyjs/ieee754" "1.7.11" - "@webassemblyjs/leb128" "1.7.11" - "@webassemblyjs/utf8" "1.7.11" - -"@webassemblyjs/wasm-parser@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.3.tgz#d12ed19d1b8e8667a7bee040d2245aaaf215340b" - integrity sha512-NBI3SNNtRoy4T/KBsRZCAWUzE9lI94RH2nneLwa1KKIrt/2zzcTavWg6oY05ArCbb/PZDk3OUi63CD1RYtN65w== - dependencies: - "@webassemblyjs/ast" "1.8.3" - "@webassemblyjs/helper-api-error" "1.8.3" - "@webassemblyjs/helper-wasm-bytecode" "1.8.3" - "@webassemblyjs/ieee754" "1.8.3" - "@webassemblyjs/leb128" "1.8.3" - "@webassemblyjs/utf8" "1.8.3" - -"@webassemblyjs/wast-parser@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz#25bd117562ca8c002720ff8116ef9072d9ca869c" - integrity sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/floating-point-hex-parser" "1.7.11" - "@webassemblyjs/helper-api-error" "1.7.11" - "@webassemblyjs/helper-code-frame" "1.7.11" - "@webassemblyjs/helper-fsm" "1.7.11" - "@xtuc/long" "4.2.1" - -"@webassemblyjs/wast-parser@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.3.tgz#44aa123e145503e995045dc3e5e2770069da117b" - integrity sha512-gZPst4CNcmGtKC1eYQmgCx6gwQvxk4h/nPjfPBbRoD+Raw3Hs+BS3yhrfgyRKtlYP+BJ8LcY9iFODEQofl2qbg== - dependencies: - "@webassemblyjs/ast" "1.8.3" - "@webassemblyjs/floating-point-hex-parser" "1.8.3" - "@webassemblyjs/helper-api-error" "1.8.3" - "@webassemblyjs/helper-code-frame" "1.8.3" - "@webassemblyjs/helper-fsm" "1.8.3" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.7.11": - version "1.7.11" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz#c4245b6de242cb50a2cc950174fdbf65c78d7813" - integrity sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/wast-parser" "1.7.11" - "@xtuc/long" "4.2.1" - -"@webassemblyjs/wast-printer@1.8.3": - version "1.8.3" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.3.tgz#b1177780b266b1305f2eeba87c4d6aa732352060" - integrity sha512-DTA6kpXuHK4PHu16yAD9QVuT1WZQRT7079oIFFmFSjqjLWGXS909I/7kiLTn931mcj7wGsaUNungjwNQ2lGQ3Q== - dependencies: - "@webassemblyjs/ast" "1.8.3" - "@webassemblyjs/wast-parser" "1.8.3" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.1": - version "4.2.1" - resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" - integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -abab@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" - integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w== - -abbrev@1: - version "1.1.1" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -abs-svg-path@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/abs-svg-path/-/abs-svg-path-0.1.1.tgz#df601c8e8d2ba10d4a76d625e236a9a39c2723bf" - integrity sha1-32Acjo0roQ1KdtYl4japo5wnI78= - -accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -acorn-dynamic-import@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" - integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg== - dependencies: - acorn "^5.0.0" - -acorn-dynamic-import@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" - integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== - -acorn-globals@^4.1.0: - version "4.3.2" - resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.2.tgz#4e2c2313a597fd589720395f6354b41cd5ec8006" - integrity sha512-BbzvZhVtZP+Bs1J1HcwrQe8ycfO0wStkSGxuul3He3GkHOIZ6eTqOkPuw9IP1X3+IkOo4wiJmwkobzXYz4wewQ== - dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" - -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= - dependencies: - acorn "^3.0.4" - -acorn-jsx@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" - integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== - -acorn-walk@^6.0.1, acorn-walk@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" - integrity sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw== - -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= - -acorn@^5.0.0, acorn@^5.5.0, acorn@^5.5.3, acorn@^5.6.2: - version "5.7.3" - resolved "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== - -acorn@^6.0.1, acorn@^6.0.2, acorn@^6.0.5, acorn@^6.0.7, acorn@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.1.tgz#7d25ae05bb8ad1f9b699108e1094ecd7884adc1f" - integrity sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA== - -add-dom-event-listener@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz#6a92db3a0dd0abc254e095c0f1dc14acbbaae310" - integrity sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw== - dependencies: - object-assign "4.x" - -address@^1.0.3: - version "1.1.0" - resolved "https://registry.npmjs.org/address/-/address-1.1.0.tgz#ef8e047847fcd2c5b6f50c16965f924fd99fe709" - integrity sha512-4diPfzWbLEIElVG4AnqP+00SULlPzNuyJFNnmMrLgyaxG6tZXJ1sn7mjBu4fHrJE+Yp/jgylOweJn2xsLMFggQ== - -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - -ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" - integrity sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I= - -ajv-keywords@^3.1.0: - version "3.4.0" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz#4b831e7b531415a7cc518cd404e73f6193c6349d" - integrity sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw== - -ajv@^5.2.3, ajv@^5.3.0: - version "5.5.2" - resolved "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" - -ajv@^6.1.0, ajv@^6.5.5: - version "6.10.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1" - integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg== - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.9.1: - version "6.9.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.9.2.tgz#4927adb83e7f48e5a32b45729744c71ec39c9c7b" - integrity sha512-4UFy0/LgDo7Oa/+wOAlj44tp9K78u38E5/359eSrqEp1Z5PdVfimCcs7SluXMP755RUQu6d2b4AvF0R1C9RZjg== - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= - -ansi-colors@^3.0.0: - version "3.2.4" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== - -ansi-escapes@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" - integrity sha1-06ioOzGapneTZisT52HHkRQiMG4= - -ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ant-design-palettes@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/ant-design-palettes/-/ant-design-palettes-1.1.3.tgz#84119b1a4d86363adc52a38d587e65336a0a27dd" - integrity sha512-UpkkTp8egEN21KZNvY7sTcabLlkHvLvS71EVPk4CYi77Z9AaGGCaVn7i72tbOgWDrQp2wjIg8WgMbKBdK7GtWA== - dependencies: - tinycolor2 "^1.4.1" - -ant-design-vue@~1.3.9: - version "1.3.9" - resolved "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-1.3.9.tgz#089b197be755b633196660a5ba97b6c8752c0cf5" - integrity sha512-Zw/5+4FyJI9PeOGW2uJ21/aaHAsyhAL+umNR2qHkKeTrmP2OJ6FXm00VNFTKeDdzSqAw8weiPfYT/0wJt1rqWw== - dependencies: - "@ant-design/icons" "^1.1.15" - "@ant-design/icons-vue" "^1.0.1" - add-dom-event-listener "^1.0.2" - array-tree-filter "^2.1.0" - async-validator "^1.8.2" - babel-helper-vue-jsx-merge-props "^2.0.3" - babel-runtime "6.x" - classnames "^2.2.5" - component-classes "^1.2.6" - dom-align "^1.7.0" - dom-closest "^0.2.0" - dom-scroll-into-view "^1.2.1" - enquire.js "^2.1.6" - intersperse "^1.0.0" - is-negative-zero "^2.0.0" - ismobilejs "^0.5.1" - json2mq "^0.2.0" - lodash "^4.17.5" - moment "^2.21.0" - mutationobserver-shim "^0.3.2" - omit.js "^1.0.0" - raf "^3.4.0" - resize-observer-polyfill "^1.5.1" - shallow-equal "^1.0.0" - shallowequal "^1.0.2" - vue-ref "^1.0.4" - warning "^3.0.0" - -any-promise@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -append-transform@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" - integrity sha1-126/jKlNJ24keja61EpLdKthGZE= - dependencies: - default-require-extensions "^1.0.0" - -aproba@^1.0.3, aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -arch@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" - integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg== - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= - dependencies: - arr-flatten "^1.0.1" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.0.1, arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= - -array-filter@~0.0.0: - version "0.0.1" - resolved "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" - integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= - -array-flatten@^2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - -array-map@~0.0.0: - version "0.0.0" - resolved "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" - integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= - -array-reduce@~0.0.0: - version "0.0.0" - resolved "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" - integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= - -array-tree-filter@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190" - integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw== - -array-union@^1.0.1, array-union@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= - -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-limiter@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" - integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== - -async-validator@^1.8.2: - version "1.10.1" - resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.10.1.tgz#41e9b0b9f8e719e6edf946372f018a958c2e70f3" - integrity sha512-VLiLKZuJc8VIeAMC3YobVsZov8XPNhbwyIkKjhPW5cFnhZXH+HHJpkE270YMD/6zJIOJXUN/Cq0t3fR7XPwaDQ== - dependencies: - babel-runtime "6.x" - -async@^1.5.2: - version "1.5.2" - resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= - -async@^2.1.4: - version "2.6.2" - resolved "https://registry.npmjs.org/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" - integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== - dependencies: - lodash "^4.17.11" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -atob@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -autoprefixer@^9.5.1: - version "9.5.1" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.5.1.tgz#243b1267b67e7e947f28919d786b50d3bb0fb357" - integrity sha512-KJSzkStUl3wP0D5sdMlP82Q52JLy5+atf2MHAre48+ckWkXgixmfHyWmA77wFDy6jTHU6mIgXv6hAQ2mf1PjJQ== - dependencies: - browserslist "^4.5.4" - caniuse-lite "^1.0.30000957" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^7.0.14" - postcss-value-parser "^3.3.1" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" - integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== - -axios@^0.19.0: - version "0.19.0" - resolved "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz#8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8" - integrity sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ== - dependencies: - follow-redirects "1.5.10" - is-buffer "^2.0.2" - -babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@7.0.0-bridge.0: - version "7.0.0-bridge.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" - integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== - -babel-core@^6.0.0, babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-eslint@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.1.tgz#919681dc099614cd7d31d45c8908695092a1faed" - integrity sha512-z7OT1iNV+TjOwHNLLyJk+HN+YVWX+CLE6fPD2SymJZOZQBs+QIexFjhm4keGTm8MW9xr4EC9Q0PbaLB24V5GoQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" - eslint-scope "3.7.1" - eslint-visitor-keys "^1.0.0" - -babel-generator@^6.18.0, babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-vue-jsx-merge-props@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" - integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg== - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-jest@^23.6.0: - version "23.6.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1" - integrity sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew== - dependencies: - babel-plugin-istanbul "^4.1.6" - babel-preset-jest "^23.2.0" - -babel-loader@^8.0.0-beta.0: - version "8.0.5" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.5.tgz#225322d7509c2157655840bba52e46b6c2f2fe33" - integrity sha512-NTnHnVRd2JnRqPC0vW+iOQWU5pchDbYXsG2E6DMXEpMfUcQKclF9gmf3G3ZMhzG7IG9ji4coL0cm+FxeWxDpnw== - dependencies: - find-cache-dir "^2.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - util.promisify "^1.0.0" - -babel-loader@^8.0.5: - version "8.0.6" - resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" - integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== - dependencies: - find-cache-dir "^2.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - pify "^4.0.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-dynamic-import-node@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.2.0.tgz#c0adfb07d95f4a4495e9aaac6ec386c4d7c2524e" - integrity sha512-fP899ELUnTaBcIzmrW7nniyqqdYWrWuJUyPWHxFa/c7r7hS6KC8FscNfLlBNIoPSc55kYMGEEKjPjJGCLbE1qA== - dependencies: - object.assign "^4.1.0" - -babel-plugin-import@^1.11.0: - version "1.11.2" - resolved "https://registry.npmjs.org/babel-plugin-import/-/babel-plugin-import-1.11.2.tgz#7566459543656585382c60e99a9c751c6d09ff3d" - integrity sha512-Ja3LvQZEMqwxo3QkxRwq4pnl4F18kzd/eTbMFOP6MKtSecPajSXE22fZQcfBr5OQ/jWEwZY3PulIvrlDABNIEA== - dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/runtime" "^7.0.0" - -babel-plugin-istanbul@^4.1.6: - version "4.1.6" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" - integrity sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ== - dependencies: - babel-plugin-syntax-object-rest-spread "^6.13.0" - find-up "^2.1.0" - istanbul-lib-instrument "^1.10.1" - test-exclude "^4.2.1" - -babel-plugin-jest-hoist@^23.2.0: - version "23.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167" - integrity sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc= - -babel-plugin-module-resolver@3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz#ddfa5e301e3b9aa12d852a9979f18b37881ff5a7" - integrity sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA== - dependencies: - find-babel-config "^1.1.0" - glob "^7.1.2" - pkg-up "^2.0.0" - reselect "^3.0.1" - resolve "^1.4.0" - -babel-plugin-syntax-object-rest-spread@^6.13.0: - version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" - integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= - -babel-plugin-transform-es2015-modules-commonjs@^6.26.0, babel-plugin-transform-es2015-modules-commonjs@^6.26.2: - version "6.26.2" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-runtime@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" - integrity sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4= - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-polyfill@6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" - integrity sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0= - dependencies: - babel-runtime "^6.22.0" - core-js "^2.4.0" - regenerator-runtime "^0.10.0" - -babel-preset-jest@^23.2.0: - version "23.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46" - integrity sha1-jsegOhOPABoaj7HoETZSvxpV2kY= - dependencies: - babel-plugin-jest-hoist "^23.2.0" - babel-plugin-syntax-object-rest-spread "^6.13.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@6.x, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-js@^1.0.2: - version "1.3.0" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" - integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -batch@0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" - integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -bfj@^6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/bfj/-/bfj-6.1.1.tgz#05a3b7784fbd72cfa3c22e56002ef99336516c48" - integrity sha512-+GUNvzHR4nRyGybQc2WpNJL4MJazMuvf92ueIyA0bIkPRwhhQu3IfZQ2PSoVPpCBJfmoSdOxu5rnotfFLlvYRQ== - dependencies: - bluebird "^3.5.1" - check-types "^7.3.0" - hoopy "^0.1.2" - tryer "^1.0.0" - -big.js@^3.1.3: - version "3.2.0" - resolved "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" - integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -bluebird@^3.1.1, bluebird@^3.5.1, bluebird@^3.5.3: - version "3.5.4" - resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz#d6cc661595de30d5b3af5fcedd3c0b3ef6ec5714" - integrity sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - -body-parser@1.19.0: - version "1.19.0" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -bonjour@^3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" - integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= - dependencies: - array-flatten "^2.1.0" - deep-equal "^1.0.1" - dns-equal "^1.0.0" - dns-txt "^2.0.2" - multicast-dns "^6.0.1" - multicast-dns-service-types "^1.1.0" - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browser-process-hrtime@^0.1.2: - version "0.1.3" - resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" - integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== - -browser-resolve@^1.11.3: - version "1.11.3" - resolved "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== - dependencies: - resolve "1.1.7" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.0.0, browserslist@^4.3.4, browserslist@^4.5.4: - version "4.6.0" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.6.0.tgz#5274028c26f4d933d5b1323307c1d1da5084c9ff" - integrity sha512-Jk0YFwXBuMOOol8n6FhgkDzn3mY9PYLYGk29zybF05SbRTsMgPqmTNeQQhOghCxq5oFqAXE3u4sYddr4C0uRhg== - dependencies: - caniuse-lite "^1.0.30000967" - electron-to-chromium "^1.3.133" - node-releases "^1.1.19" - -bser@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" - integrity sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk= - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-indexof@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@^10.0.4: - version "10.0.4" - resolved "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" - integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA== - dependencies: - bluebird "^3.5.1" - chownr "^1.0.1" - glob "^7.1.2" - graceful-fs "^4.1.11" - lru-cache "^4.1.1" - mississippi "^2.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.2" - ssri "^5.2.4" - unique-filename "^1.1.0" - y18n "^4.0.0" - -cacache@^11.3.2: - version "11.3.2" - resolved "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa" - integrity sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg== - dependencies: - bluebird "^3.5.3" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.3" - graceful-fs "^4.1.15" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.2" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cache-loader@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/cache-loader/-/cache-loader-2.0.1.tgz#5758f41a62d7c23941e3c3c7016e6faeb03acb07" - integrity sha512-V99T3FOynmGx26Zom+JrVBytLBsmUCzVG2/4NnUKgvXN4bEV42R1ERl1IyiH/cvFIDA1Ytq2lPZ9tXDSahcQpQ== - dependencies: - loader-utils "^1.1.0" - mkdirp "^0.5.1" - neo-async "^2.6.0" - normalize-path "^3.0.0" - schema-utils "^1.0.0" - -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= - dependencies: - callsites "^0.2.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -callsites@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3" - integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw== - -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000957, caniuse-lite@^1.0.30000967: - version "1.0.30000971" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000971.tgz#d1000e4546486a6977756547352bc96a4cfd2b13" - integrity sha512-TQFYFhRS0O5rdsmSbF1Wn+16latXYsQJat66f7S7lizXW1PVpWJeZw9wqqVLIjuxDRz7s7xRUj13QCfd8hKn6g== - -capture-exit@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" - integrity sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28= - dependencies: - rsvp "^3.3.3" - -case-sensitive-paths-webpack-plugin@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.2.0.tgz#3371ef6365ef9c25fa4b81c16ace0e9c7dc58c3e" - integrity sha512-u5ElzokS8A1pm9vM3/iDgTcI3xqHxuCao94Oz8etI3cf0Tio0p8izkDYbTIn09uP3yUUr6+veaE6IkjnTYS46g== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chardet@^0.4.0: - version "0.4.2" - resolved "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" - integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= - -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -charenc@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= - -check-types@^7.3.0: - version "7.4.0" - resolved "https://registry.npmjs.org/check-types/-/check-types-7.4.0.tgz#0378ec1b9616ec71f774931a3c6516fad8c152f4" - integrity sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg== - -chokidar@^2.0.2, chokidar@^2.1.6: - version "2.1.6" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" - integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chownr@^1.0.1, chownr@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" - integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== - -chrome-trace-event@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" - integrity sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A== - dependencies: - tslib "^1.9.0" - -ci-info@^1.5.0: - version "1.6.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" - integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -classnames@^2.2.5: - version "2.2.6" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" - integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== - -clean-css@4.2.x: - version "4.2.1" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17" - integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g== - dependencies: - source-map "~0.6.0" - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - -cli-highlight@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.1.tgz#2180223d51618b112f4509cf96e4a6c750b07e97" - integrity sha512-0y0VlNmdD99GXZHYnvrQcmHxP8Bi6T00qucGgBgGv4kJ0RyDthNnnFPupHV7PYv/OXSVk+azFbOeaW6+vGmx9A== - dependencies: - chalk "^2.3.0" - highlight.js "^9.6.0" - mz "^2.4.0" - parse5 "^4.0.0" - yargs "^13.0.0" - -cli-spinners@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.1.0.tgz#22c34b4d51f573240885b201efda4e4ec9fff3c7" - integrity sha512-8B00fJOEh1HPrx4fo5eW16XmE1PcL1tGpGrxy63CXGP9nHdPBN63X75hA1zhvQuhVztJWLqV58Roj2qlNM7cAA== - -cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= - -clipboard@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.4.tgz#836dafd66cf0fea5d71ce5d5b0bf6e958009112d" - integrity sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ== - dependencies: - good-listener "^1.2.2" - select "^1.1.2" - tiny-emitter "^2.0.0" - -clipboardy@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/clipboardy/-/clipboardy-2.0.0.tgz#3fcee421fdeca4e6a62ce72b66f3eb0c42165acd" - integrity sha512-XbVjHMsss0giNUkp/tV/3eEAZe8i1fZTLzmPKqjE1RGIAWOTiF5D014f6R+g53ZAq0IK3cPrJXFvqE8eQjhFYQ== - dependencies: - arch "^2.1.1" - execa "^1.0.0" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -clone@2.x, clone@^2.1.1, clone@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.1: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.5.2: - version "1.5.3" - resolved "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" - integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/color/-/color-3.1.1.tgz#7abf5c0d38e89378284e873c207ae2172dcc8a61" - integrity sha512-PvUltIXRjehRKPSy89VnDWFKY58xyhTLyxIg21vwQBI6qLwZNPmC8k3C1uytIgFKEpOIzN4y32iPm8231zFHIg== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.2" - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -commander@*, commander@^2.18.0, commander@^2.19.0, commander@~2.20.0: - version "2.20.0" - resolved "http://registry.npm.taobao.org/commander/download/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" - integrity sha1-1YuytcHuj4ew00ACfp6U4iLFpCI= - -commander@2, commander@~2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== - -commander@2.17.x: - version "2.17.1" - resolved "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - -component-classes@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/component-classes/-/component-classes-1.2.6.tgz#c642394c3618a4d8b0b8919efccbbd930e5cd691" - integrity sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE= - dependencies: - component-indexof "0.0.3" - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -component-indexof@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-indexof/-/component-indexof-0.0.3.tgz#11d091312239eb8f32c8f25ae9cb002ffe8d3c24" - integrity sha1-EdCRMSI5648yyPJa6csAL/6NPCQ= - -compressible@~2.0.16: - version "2.0.17" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" - integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== - dependencies: - mime-db ">= 1.40.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.5.0, concat-stream@^1.6.0: - version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -condense-newlines@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" - integrity sha1-PemFVTE5R10yUCyDsC9gaE0kxV8= - dependencies: - extend-shallow "^2.0.1" - is-whitespace "^0.3.0" - kind-of "^3.0.2" - -config-chain@^1.1.12: - version "1.1.12" - resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -connect-history-api-fallback@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -consolidate@^0.15.1: - version "0.15.1" - resolved "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" - integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== - dependencies: - bluebird "^3.1.1" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= - -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -contour_plot@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/contour_plot/-/contour_plot-0.0.1.tgz#475870f032b8e338412aa5fc507880f0bf495c77" - integrity sha1-R1hw8DK44zhBKqX8UHiA8L9JXHc= - -convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1: - version "1.6.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" - integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -copy-webpack-plugin@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz#e7f40dd8a68477d405dd1b7a854aae324b158bae" - integrity sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA== - dependencies: - cacache "^10.0.4" - find-cache-dir "^1.0.0" - globby "^7.1.1" - is-glob "^4.0.0" - loader-utils "^1.1.0" - minimatch "^3.0.4" - p-limit "^1.0.0" - serialize-javascript "^1.4.0" - -core-js@^2.4.0, core-js@^2.5.0, core-js@^2.5.7: - version "2.6.8" - resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.8.tgz#dc3a1e633a04267944e0cb850d3880f340248139" - integrity sha512-RWlREFU74TEkdXzyl1bka66O3kYp8jeTXrvJZDzVVMH8AiHUSOFpL1yfhQJ+wHocAm1m+4971W1PPzfLuCv1vg== - -core-js@^2.6.5: - version "2.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895" - integrity sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A== - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -cosmiconfig@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" - integrity sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ== - dependencies: - is-directory "^0.3.1" - js-yaml "^3.9.0" - parse-json "^4.0.0" - require-from-string "^2.0.1" - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2: - version "1.2.0" - resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.7" - resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^5.0.1, cross-spawn@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" - integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= - dependencies: - lru-cache "^4.0.1" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypt@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-loader@^1.0.0, css-loader@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.1.tgz#6885bb5233b35ec47b006057da01cc640b6b79fe" - integrity sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw== - dependencies: - babel-code-frame "^6.26.0" - css-selector-tokenizer "^0.7.0" - icss-utils "^2.1.0" - loader-utils "^1.0.2" - lodash "^4.17.11" - postcss "^6.0.23" - postcss-modules-extract-imports "^1.2.0" - postcss-modules-local-by-default "^1.2.0" - postcss-modules-scope "^1.1.0" - postcss-modules-values "^1.3.0" - postcss-value-parser "^3.3.0" - source-list-map "^2.0.0" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - -css-select@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede" - integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ== - dependencies: - boolbase "^1.0.0" - css-what "^2.1.2" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-selector-tokenizer@^0.7.0: - version "0.7.1" - resolved "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" - integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA== - dependencies: - cssesc "^0.1.0" - fastparse "^1.1.1" - regexpu-core "^1.0.0" - -css-tree@1.0.0-alpha.28: - version "1.0.0-alpha.28" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f" - integrity sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w== - dependencies: - mdn-data "~1.1.0" - source-map "^0.5.3" - -css-tree@1.0.0-alpha.29: - version "1.0.0-alpha.29" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" - integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg== - dependencies: - mdn-data "~1.1.0" - source-map "^0.5.3" - -css-unit-converter@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" - integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= - -css-url-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec" - integrity sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w= - -css-what@2.1, css-what@^2.1.2: - version "2.1.3" - resolved "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== - -css@^2.1.0: - version "2.2.4" - resolved "https://registry.npmjs.org/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" - integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== - dependencies: - inherits "^2.0.3" - source-map "^0.6.1" - source-map-resolve "^0.5.2" - urix "^0.1.0" - -cssesc@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" - integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q= - -cssesc@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== - -cssnano-preset-default@^4.0.0, cssnano-preset-default@^4.0.7: - version "4.0.7" - resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" - integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.2" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.0.0, cssnano@^4.1.10: - version "4.1.10" - resolved "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" - integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.7" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^3.5.1: - version "3.5.1" - resolved "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" - integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg== - dependencies: - css-tree "1.0.0-alpha.29" - -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": - version "0.3.6" - resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz#f85206cee04efa841f3c5982a74ba96ab20d65ad" - integrity sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A== - -cssstyle@^1.0.0: - version "1.2.2" - resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.2.tgz#427ea4d585b18624f6fdbf9de7a2a1a3ba713077" - integrity sha512-43wY3kl1CVQSvL7wUY1qXkxVGkStjpkDmVjiIKX8R97uhajy8Bybay78uOtqvh7Q5GK75dNPfW0geWjE6qQQow== - dependencies: - cssom "0.3.x" - -current-script-polyfill@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/current-script-polyfill/-/current-script-polyfill-1.0.0.tgz#f31cf7e4f3e218b0726e738ca92a02d3488ef615" - integrity sha1-8xz35PPiGLBybnOMqSoC00iO9hU= - -cyclist@~0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" - integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= - -d3-array@1, d3-array@~1.2.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" - integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== - -d3-collection@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" - integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== - -d3-color@1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.2.3.tgz#6c67bb2af6df3cc8d79efcc4d3a3e83e28c8048f" - integrity sha512-x37qq3ChOTLd26hnps36lexMRhNXEtVxZ4B25rL0DVdDsGQIJGB18S7y9XDwlDD6MD/ZBzITCf4JjGMM10TZkw== - -d3-composite-projections@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-composite-projections/-/d3-composite-projections-1.2.0.tgz#fa0e6f1442f17d04643843a3a883c7d94e0c27c0" - integrity sha1-+g5vFELxfQRkOEOjqIPH2U4MJ8A= - dependencies: - d3-geo "1.2.4" - d3-path "^1.0.1" - -d3-dispatch@1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.5.tgz#e25c10a186517cd6c82dd19ea018f07e01e39015" - integrity sha512-vwKx+lAqB1UuCeklr6Jh1bvC4SZgbSqbkGBLClItFBIYH4vqDJCA7qfoy14lXmJdnBOdxndAMxjCbImJYW7e6g== - -d3-dsv@~1.0.5: - version "1.0.10" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.0.10.tgz#4371c489a2a654a297aca16fcaf605a6f31a6f51" - integrity sha512-vqklfpxmtO2ZER3fq/B33R/BIz3A1PV0FaZRuFM8w6jLo7sUX1BZDh73fPlr0s327rzq4H6EN1q9U+eCBCSN8g== - dependencies: - commander "2" - iconv-lite "0.4" - rw "1" - -d3-ease@1, d3-ease@~1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.5.tgz#8ce59276d81241b1b72042d6af2d40e76d936ffb" - integrity sha512-Ct1O//ly5y5lFM9YTdu+ygq7LleSgSE4oj7vUt9tPLHUi8VCV7QoizGpdWRWAwCO9LdYzIrQDg97+hGVdsSGPQ== - -d3-format@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.3.2.tgz#6a96b5e31bcb98122a30863f7d92365c00603562" - integrity sha512-Z18Dprj96ExragQ0DeGi+SYPQ7pPfRMtUXtsg/ChVIKNBCzjO8XYJvRTC1usblx52lqge56V5ect+frYTQc8WQ== - -d3-geo-projection@~2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/d3-geo-projection/-/d3-geo-projection-2.1.2.tgz#7df8e1e9d046d631c6509f7e531357d4adc24aa3" - integrity sha1-ffjh6dBG1jHGUJ9+UxNX1K3CSqM= - dependencies: - commander "2" - d3-array "1" - d3-geo "^1.1.0" - -d3-geo@1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.2.4.tgz#d179f3baa76e623ef1e0d83693db705b7c599006" - integrity sha1-0XnzuqduYj7x4Ng2k9twW3xZkAY= - dependencies: - d3-array "1" - -d3-geo@^1.1.0: - version "1.11.3" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.11.3.tgz#5bb08388f45e4b281491faa72d3abd43215dbd1c" - integrity sha512-n30yN9qSKREvV2fxcrhmHUdXP9TNH7ZZj3C/qnaoU0cVf/Ea85+yT7HY7i8ySPwkwjCNYtmKqQFTvLFngfkItQ== - dependencies: - d3-array "1" - -d3-geo@~1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.6.4.tgz#f20e1e461cb1845f5a8be55ab6f876542a7e3199" - integrity sha1-8g4eRhyxhF9ai+Vatvh2VCp+MZk= - dependencies: - d3-array "1" - -d3-hexjson@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d3-hexjson/-/d3-hexjson-1.0.1.tgz#6a23111e8359f1e214f5d0afa379c02b2b67df0b" - integrity sha512-TeH4T0PSbDazMm3gHgc4ulO0PfrZpz0Uk3y5tCGz+NgC7HnX7KBdem7uAN+j9x3ZshTh7raN3V/bFhaLB2C8DA== - dependencies: - d3-array "1" - -d3-hierarchy@~1.1.5: - version "1.1.8" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz#7a6317bd3ed24e324641b6f1e76e978836b008cc" - integrity sha512-L+GHMSZNwTpiq4rt9GEsNcpLa4M96lXMR8M/nMG9p5hBE0jy6C+3hWtyZMenPQdwla249iJy7Nx0uKt3n+u9+w== - -d3-interpolate@1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.3.2.tgz#417d3ebdeb4bc4efcc8fd4361c55e4040211fd68" - integrity sha512-NlNKGopqaz9qM1PXh9gBF1KSCVh+jSFErrSlD/4hybwoNX/gt1d8CDbDW+3i+5UOHhjC6s6nMvRxcuoMVNgL2w== - dependencies: - d3-color "1" - -d3-interpolate@~1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.6.tgz#2cf395ae2381804df08aa1bf766b7f97b5f68fb6" - integrity sha512-mOnv5a+pZzkNIHtw/V6I+w9Lqm9L5bG3OTXPM5A+QO0yyVMQ4W1uZhR+VOJmazaOZXri2ppbiZ5BUNWT0pFM9A== - dependencies: - d3-color "1" - -d3-path@1, d3-path@^1.0.1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.7.tgz#8de7cd693a75ac0b5480d3abaccd94793e58aae8" - integrity sha512-q0cW1RpvA5c5ma2rch62mX8AYaiLX0+bdaSM2wxSU9tXjU4DNvkx9qiUvjkuWCj3p22UO/hlPivujqMiR9PDzA== - -d3-sankey@~0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/d3-sankey/-/d3-sankey-0.7.1.tgz#d229832268fc69a7fec84803e96c2256a614c521" - integrity sha1-0imDImj8aaf+yEgD6WwiVqYUxSE= - dependencies: - d3-array "1" - d3-collection "1" - d3-shape "^1.2.0" - -d3-selection@^1.0.2, d3-selection@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.0.tgz#ab9ac1e664cf967ebf1b479cc07e28ce9908c474" - integrity sha512-EYVwBxQGEjLCKF2pJ4+yrErskDnz5v403qvAid96cNdCMr8rmCYfY5RGzWz24mdIbxmDf6/4EAH+K9xperD5jg== - -d3-shape@^1.2.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.4.tgz#358e76014645321eecc7c364e188f8ae3d2a07d4" - integrity sha512-izaz4fOpOnY3CD17hkZWNxbaN70sIGagLR/5jb6RS96Y+6VqX+q1BQf1av6QSBRdfULi3Gb8Js4CzG4+KAPjMg== - dependencies: - d3-path "1" - -d3-timer@1, d3-timer@~1.0.6: - version "1.0.9" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.9.tgz#f7bb8c0d597d792ff7131e1c24a36dd471a471ba" - integrity sha512-rT34J5HnQUHhcLvhSB9GjCkN0Ddd5Y8nCwDBG2u6wQEeYxT/Lf51fTFFkldeib/sE/J0clIe0pnCfs6g/lRbyg== - -d3-transition@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.2.0.tgz#f538c0e21b2aa1f05f3e965f8567e81284b3b2b8" - integrity sha512-VJ7cmX/FPIPJYuaL2r1o1EMHLttvoIuZhhuAlRoOxDzogV8iQS6jYulDm3xEU3TqL80IZIhI551/ebmCMrkvhw== - dependencies: - d3-color "1" - d3-dispatch "1" - d3-ease "1" - d3-interpolate "1" - d3-selection "^1.1.0" - d3-timer "1" - -d3-voronoi@~1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297" - integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg== - -dagre@~0.8.2: - version "0.8.4" - resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.4.tgz#26b9fb8f7bdc60c6110a0458c375261836786061" - integrity sha512-Dj0csFDrWYKdavwROb9FccHfTC4fJbyF/oJdL9LNZJ8WUvl968P6PAKEriGqfbdArVJEmmfA+UyumgWEwcHU6A== - dependencies: - graphlib "^2.1.7" - lodash "^4.17.4" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -data-urls@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" - integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== - dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= - -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@=3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@^3.1.0, debug@^3.2.5, debug@^3.2.6: - version "3.2.6" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -deep-equal@^1.0.1, deep-equal@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" - integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -deepmerge@^1.5.2: - version "1.5.2" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" - integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== - -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== - dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" - -default-require-extensions@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" - integrity sha1-836hXT4T/9m0N9M+GnW1+5eHTLg= - dependencies: - strip-bom "^2.0.0" - -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= - dependencies: - clone "^1.0.2" - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= - -del@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -delegate@^3.1.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" - integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= - dependencies: - repeating "^2.0.0" - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - -detect-newline@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= - -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - -diff@^3.2.0: - version "3.5.0" - resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^2.0.0, dir-glob@^2.2.2: - version "2.2.2" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" - integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== - dependencies: - path-type "^3.0.0" - -dns-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" - integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= - -dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== - dependencies: - ip "^1.1.0" - safe-buffer "^5.0.1" - -dns-txt@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" - integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= - dependencies: - buffer-indexof "^1.0.0" - -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-align@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.8.0.tgz#c0e89b5b674c6e836cd248c52c2992135f093654" - integrity sha512-B85D4ef2Gj5lw0rK0KM2+D5/pH7yqNxg2mB+E8uzFaolpm7RQmsxEfjyEuNiF8UBBkffumYDeKRzTzc3LePP+w== - -dom-closest@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/dom-closest/-/dom-closest-0.2.0.tgz#ebd9f91d1bf22e8d6f477876bbcd3ec90216c0cf" - integrity sha1-69n5HRvyLo1vR3h2u80+yQIWwM8= - dependencies: - dom-matches ">=1.0.1" - -dom-converter@^0.2: - version "0.2.0" - resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" - integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== - dependencies: - utila "~0.4" - -dom-event-types@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dom-event-types/-/dom-event-types-1.0.0.tgz#5830a0a29e1bf837fe50a70cd80a597232813cae" - integrity sha512-2G2Vwi2zXTHBGqXHsJ4+ak/iP0N8Ar+G8a7LiD2oup5o4sQWytwqqrZu/O6hIMV0KMID2PL69OhpshLO0n7UJQ== - -dom-matches@>=1.0.1: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dom-matches/-/dom-matches-2.0.0.tgz#d2728b416a87533980eb089b848d253cf23a758c" - integrity sha1-0nKLQWqHUzmA6wibhI0lPPI6dYw= - -dom-scroll-into-view@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz#e8f36732dd089b0201a88d7815dc3f88e6d66c7e" - integrity sha1-6PNnMt0ImwIBqI14Fdw/iObWbH4= - -dom-serializer@0: - version "0.1.1" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" - integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== - dependencies: - domelementtype "^1.3.0" - entities "^1.1.1" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== - dependencies: - webidl-conversions "^4.0.2" - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== - dependencies: - domelementtype "1" - -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= - dependencies: - dom-serializer "0" - domelementtype "1" - -domutils@^1.5.1, domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^4.1.1: - version "4.2.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== - dependencies: - is-obj "^1.0.0" - -dotenv-expand@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" - integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== - -dotenv@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz#a2be3cd52736673206e8a85fb5210eea29628e7c" - integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g== - -duplexer@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= - -duplexify@^3.4.2, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - -easy-stack@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.0.tgz#12c91b3085a37f0baa336e9486eac4bf94e3e788" - integrity sha1-EskbMIWjfwuqM26UhurEv5Tj54g= - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -editorconfig@^0.15.3: - version "0.15.3" - resolved "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" - integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== - dependencies: - commander "^2.19.0" - lru-cache "^4.1.5" - semver "^5.6.0" - sigmund "^1.0.1" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -ejs@^2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz#498ec0d495655abc6f23cd61868d926464071aa0" - integrity sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ== - -electron-to-chromium@^1.3.133: - version "1.3.137" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.137.tgz#ba7c88024984c038a5c5c434529aabcea7b42944" - integrity sha512-kGi32g42a8vS/WnYE7ELJyejRT7hbr3UeOOu0WeuYuQ29gCpg9Lrf6RdcTQVXSt/v0bjCfnlb/EWOOsiKpTmkw== - -elliptic@^6.0.0: - version "6.4.1" - resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" - integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= - dependencies: - iconv-lite "~0.4.13" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== - dependencies: - once "^1.4.0" - -enhanced-resolve@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" - integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - tapable "^1.0.0" - -enquire.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/enquire.js/-/enquire.js-2.1.6.tgz#3e8780c9b8b835084c3f60e166dbc3c2a3c89814" - integrity sha1-PoeAybi4NQhMP2DhZtvDwqPImBQ= - -entities@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== - dependencies: - prr "~1.0.1" - -error-ex@^1.2.0, error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -error-stack-parser@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.2.tgz#4ae8dbaa2bf90a8b450707b9149dcabca135520d" - integrity sha512-E1fPutRDdIj/hohG0UpT5mayXNCxXP9d+snxFsPU9X0XgccOumKraa3juDMwTUyi7+Bu5+mCGagjg4IYeNbOdw== - dependencies: - stackframe "^1.0.4" - -es-abstract@^1.12.0, es-abstract@^1.4.3, es-abstract@^1.5.0, es-abstract@^1.5.1: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" - integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-keys "^1.0.12" - -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escodegen@^1.9.1: - version "1.11.1" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510" - integrity sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw== - dependencies: - esprima "^3.1.3" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-config-standard@^12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9" - integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== - -eslint-import-resolver-node@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" - integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== - dependencies: - debug "^2.6.9" - resolve "^1.5.0" - -eslint-loader@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.1.2.tgz#453542a1230d6ffac90e4e7cb9cadba9d851be68" - integrity sha512-rA9XiXEOilLYPOIInvVH5S/hYfyTPyxag6DZhoQOduM+3TkghAEQ3VcFO8VnX4J4qg/UIBzp72aOf/xvYmpmsg== - dependencies: - loader-fs-cache "^1.0.0" - loader-utils "^1.0.2" - object-assign "^4.0.1" - object-hash "^1.1.4" - rimraf "^2.6.1" - -eslint-module-utils@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.3.0.tgz#546178dab5e046c8b562bbb50705e2456d7bda49" - integrity sha512-lmDJgeOOjk8hObTysjqH7wyMi+nsHwwvfBykwfhjR1LNdd7C2uFJBvx4OpWYpXOw4df1yE1cDEVd1yLHitk34w== - dependencies: - debug "^2.6.8" - pkg-dir "^2.0.0" - -eslint-plugin-es@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz#475f65bb20c993fc10e8c8fe77d1d60068072da6" - integrity sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw== - dependencies: - eslint-utils "^1.3.0" - regexpp "^2.0.1" - -eslint-plugin-html@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-html/-/eslint-plugin-html-5.0.3.tgz#3db133995e49a73596f6a473c16a1b83634deffd" - integrity sha512-46ruAnp3jVQP/5Bi5eEIOooscjUTPFU3vxCxHe/OG6ORdM7Xv5c25/Nz9fAbHklzCpiXuIiH4/mV/XBkm7MINw== - dependencies: - htmlparser2 "^3.10.0" - -eslint-plugin-import@^2.14.0: - version "2.16.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.16.0.tgz#97ac3e75d0791c4fac0e15ef388510217be7f66f" - integrity sha512-z6oqWlf1x5GkHIFgrSvtmudnqM6Q60KM4KvpWi5ubonMjycLjndvd5+8VAZIsTlHC03djdgJuyKG6XO577px6A== - dependencies: - contains-path "^0.1.0" - debug "^2.6.9" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.2" - eslint-module-utils "^2.3.0" - has "^1.0.3" - lodash "^4.17.11" - minimatch "^3.0.4" - read-pkg-up "^2.0.0" - resolve "^1.9.0" - -eslint-plugin-node@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz#55ae3560022863d141fa7a11799532340a685964" - integrity sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w== - dependencies: - eslint-plugin-es "^1.3.1" - eslint-utils "^1.3.1" - ignore "^5.0.2" - minimatch "^3.0.4" - resolve "^1.8.1" - semver "^5.5.0" - -eslint-plugin-promise@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz#2d074b653f35a23d1ba89d8e976a985117d1c6a2" - integrity sha512-Si16O0+Hqz1gDHsys6RtFRrW7cCTB6P7p3OJmKp3Y3dxpQE2qwOA7d3xnV+0mBmrPoi0RBnxlCKvqu70te6wjg== - -eslint-plugin-standard@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz#f845b45109c99cd90e77796940a344546c8f6b5c" - integrity sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA== - -eslint-plugin-vue@^4.7.1: - version "4.7.1" - resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-4.7.1.tgz#c829b9fc62582c1897b5a0b94afd44ecca511e63" - integrity sha512-esETKhVMI7Vdli70Wt4bvAwnZBJeM0pxVX9Yb0wWKxdCJc2EADalVYK/q2FzMw8oKN0wPMdqVCKS8kmR89recA== - dependencies: - vue-eslint-parser "^2.0.3" - -eslint-plugin-vue@^5.0.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-5.2.2.tgz#86601823b7721b70bc92d54f1728cfc03b36283c" - integrity sha512-CtGWH7IB0DA6BZOwcV9w9q3Ri6Yuo8qMjx05SmOGJ6X6E0Yo3y9E/gQ5tuNxg2dEt30tRnBoFTbvtmW9iEoyHA== - dependencies: - vue-eslint-parser "^5.0.0" - -eslint-scope@3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" - integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug= - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^3.7.1: - version "3.7.3" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" - integrity sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-utils@^1.3.0, eslint-utils@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" - integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q== - -eslint-visitor-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" - integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== - -eslint@^4.19.1: - version "4.19.1" - resolved "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" - integrity sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ== - dependencies: - ajv "^5.3.0" - babel-code-frame "^6.22.0" - chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" - debug "^3.1.0" - doctrine "^2.1.0" - eslint-scope "^3.7.1" - eslint-visitor-keys "^1.0.0" - espree "^3.5.4" - esquery "^1.0.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.0.1" - ignore "^3.3.3" - imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" - progress "^2.0.0" - regexpp "^1.0.1" - require-uncached "^1.0.3" - semver "^5.3.0" - strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "4.0.2" - text-table "~0.2.0" - -eslint@^5.8.0: - version "5.14.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.14.1.tgz#490a28906be313685c55ccd43a39e8d22efc04ba" - integrity sha512-CyUMbmsjxedx8B0mr79mNOqetvkbij/zrXnFeK2zc3pGRn3/tibjiNAv/3UxFEyfMDjh+ZqTrJrEGBFiGfD5Og== - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.9.1" - chalk "^2.1.0" - cross-spawn "^6.0.5" - debug "^4.0.1" - doctrine "^3.0.0" - eslint-scope "^4.0.0" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^5.0.1" - esquery "^1.0.1" - esutils "^2.0.2" - file-entry-cache "^5.0.1" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.7.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - inquirer "^6.2.2" - js-yaml "^3.12.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.11" - minimatch "^3.0.4" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - progress "^2.0.0" - regexpp "^2.0.1" - semver "^5.5.1" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" - table "^5.2.3" - text-table "^0.2.0" - -espree@^3.5.2, espree@^3.5.4: - version "3.5.4" - resolved "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" - integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== - dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" - -espree@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f" - integrity sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w== - dependencies: - acorn "^6.0.2" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" - -espree@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" - integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== - dependencies: - acorn "^6.0.7" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" - -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.0.0, esquery@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" - integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== - dependencies: - estraverse "^4.0.0" - -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== - dependencies: - estraverse "^4.1.0" - -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -event-pubsub@4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e" - integrity sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ== - -eventemitter3@^2.0.3: - version "2.0.3" - resolved "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" - integrity sha1-teEHm1n7XhuidxwKmTvgYKWMmbo= - -eventemitter3@^3.0.0: - version "3.1.2" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - -events@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" - integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== - -eventsource@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" - integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== - dependencies: - original "^1.0.0" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -exec-sh@^0.2.0: - version "0.2.2" - resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" - integrity sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw== - dependencies: - merge "^1.2.0" - -execa@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" - integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^0.8.0: - version "0.8.0" - resolved "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" - integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= - dependencies: - cross-spawn "^5.0.1" - get-stream "^3.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= - dependencies: - is-posix-bracket "^0.1.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= - dependencies: - fill-range "^2.1.0" - -expect@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98" - integrity sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w== - dependencies: - ansi-styles "^3.2.0" - jest-diff "^23.6.0" - jest-get-type "^22.1.0" - jest-matcher-utils "^23.6.0" - jest-message-util "^23.4.0" - jest-regex-util "^23.3.0" - -express@^4.16.3, express@^4.17.0: - version "4.17.0" - resolved "https://registry.npmjs.org/express/-/express-4.17.0.tgz#288af62228a73f4c8ea2990ba3b791bb87cd4438" - integrity sha512-1Z7/t3Z5ZnBG252gKUPyItc4xdeaA0X934ca2ewckAsVsw9EG71i++ZHZPYnus8g/s5Bty8IMpSVEuRkmwwPRQ== - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.1, extend@^3.0.2, extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -external-editor@^2.0.1, external-editor@^2.0.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" - integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== - dependencies: - chardet "^0.4.0" - iconv-lite "^0.4.17" - tmp "^0.0.33" - -external-editor@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz#5866db29a97826dbe4bf3afd24070ead9ea43a27" - integrity sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= - dependencies: - is-extglob "^1.0.0" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extract-from-css@^0.4.4: - version "0.4.4" - resolved "https://registry.npmjs.org/extract-from-css/-/extract-from-css-0.4.4.tgz#1ea7df2e7c7c6eb9922fa08e8adaea486f6f8f92" - integrity sha1-HqffLnx8brmSL6COitrqSG9vj5I= - dependencies: - css "^2.1.0" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" - integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= - -fast-diff@1.1.2: - version "1.1.2" - resolved "https://registry.npm.taobao.org/fast-diff/download/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" - integrity sha1-S2LEK44D3j+EhGC2OQeZIGldAVQ= - -fast-glob@^2.2.6: - version "2.2.7" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" - integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastparse@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.1: - version "0.11.1" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" - integrity sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg= - dependencies: - websocket-driver ">=0.5.1" - -fb-watchman@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" - integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg= - dependencies: - bser "^2.0.0" - -fecha@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd" - integrity sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg== - -figgy-pudding@^3.5.1: - version "3.5.1" - resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" - integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== - -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== - dependencies: - flat-cache "^2.0.1" - -file-loader@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" - integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== - dependencies: - loader-utils "^1.0.2" - schema-utils "^1.0.0" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= - -fileset@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" - integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA= - dependencies: - glob "^7.0.3" - minimatch "^3.0.3" - -filesize@^3.6.1: - version "3.6.1" - resolved "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" - integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== - -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-babel-config@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2" - integrity sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA== - dependencies: - json5 "^0.5.1" - path-exists "^3.0.0" - -find-cache-dir@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" - integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= - dependencies: - commondir "^1.0.1" - mkdirp "^0.5.1" - pkg-dir "^1.0.0" - -find-cache-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" - integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8= - dependencies: - commondir "^1.0.1" - make-dir "^1.0.0" - pkg-dir "^2.0.0" - -find-cache-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -flat-cache@^1.2.1: - version "1.3.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" - integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== - dependencies: - circular-json "^0.3.1" - graceful-fs "^4.1.2" - rimraf "~2.6.2" - write "^0.2.1" - -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== - dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" - -flatted@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916" - integrity sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg== - -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -fmin@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/fmin/-/fmin-0.0.2.tgz#59bbb40d43ffdc1c94cd00a568c41f95f1973017" - integrity sha1-Wbu0DUP/3ByUzQClaMQflfGXMBc= - dependencies: - contour_plot "^0.0.1" - json2module "^0.0.3" - rollup "^0.25.8" - tape "^4.5.1" - uglify-js "^2.6.2" - -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" - -follow-redirects@^1.0.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" - integrity sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ== - dependencies: - debug "^3.2.6" - -for-each@~0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -for-in@^1.0.1, for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= - dependencies: - for-in "^1.0.1" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -from2@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" - integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.0" - -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^1.2.5: - version "1.2.6" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" - integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== - dependencies: - minipass "^2.2.1" - -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.3, fsevents@^1.2.7: - version "1.2.9" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" - integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== - dependencies: - nan "^2.12.1" - node-pre-gyp "^0.12.0" - -function-bind@^1.0.2, function-bind@^1.1.1, function-bind@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= - -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= - dependencies: - is-glob "^2.0.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= - -glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: - version "7.1.4" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@~7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.0.1, globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^11.7.0: - version "11.11.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.11.0.tgz#dcf93757fa2de5486fbeed7118538adf789e9c2e" - integrity sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw== - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -globby@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" - integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= - dependencies: - array-union "^1.0.1" - dir-glob "^2.0.0" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" - -globby@^9.2.0: - version "9.2.0" - resolved "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" - integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^1.0.2" - dir-glob "^2.2.2" - fast-glob "^2.2.6" - glob "^7.1.3" - ignore "^4.0.3" - pify "^4.0.1" - slash "^2.0.0" - -good-listener@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" - integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= - dependencies: - delegate "^3.1.2" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: - version "4.1.15" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" - integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== - -graphlib@^2.1.7: - version "2.1.7" - resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.7.tgz#b6a69f9f44bd9de3963ce6804a2fc9e73d86aecc" - integrity sha512-TyI9jIy2J4j0qgPmOOrHTCtpPqJGN/aurBwc6ZT+bRii+di1I+Wv3obRhVrmBEXet+qkMaEX67dXrwsd3QQM6w== - dependencies: - lodash "^4.17.5" - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= - -gzip-size@^5.0.0: - version "5.1.1" - resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" - integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== - dependencies: - duplexer "^0.1.1" - pify "^4.0.1" - -handle-thing@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" - integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== - -handlebars@^4.0.3: - version "4.1.2" - resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" - integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw== - dependencies: - neo-async "^2.6.0" - optimist "^0.6.1" - source-map "^0.6.1" - optionalDependencies: - uglify-js "^3.1.4" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.0: - version "5.1.3" - resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.0, has@^1.0.1, has@^1.0.3, has@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -hash-sum@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" - integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@1.2.x, he@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -highlight.js@^9.6.0: - version "9.15.6" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.6.tgz#72d4d8d779ec066af9a17cb14360c3def0aa57c4" - integrity sha512-zozTAWM1D6sozHo8kqhfYgsac+B+q0PmsjXeyDrYIHHcBN0zTVT66+s2GW1GZv7DbyaROdLXKdabwS/WqPyIdQ== - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -hoopy@^0.1.2: - version "0.1.4" - resolved "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" - integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== - -hosted-git-info@^2.1.4: - version "2.7.1" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" - integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== - -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-comment-regex@^1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" - integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== - -html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== - dependencies: - whatwg-encoding "^1.0.1" - -html-entities@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" - integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= - -html-minifier@^3.2.3: - version "3.5.21" - resolved "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" - integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== - dependencies: - camel-case "3.0.x" - clean-css "4.2.x" - commander "2.17.x" - he "1.2.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.4.x" - -html-tags@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" - integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos= - -html-webpack-plugin@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" - integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s= - dependencies: - html-minifier "^3.2.3" - loader-utils "^0.2.16" - lodash "^4.17.3" - pretty-error "^2.0.2" - tapable "^1.0.0" - toposort "^1.0.0" - util.promisify "1.0.0" - -htmlparser2@^3.10.0, htmlparser2@^3.3.0: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - -http-deceiver@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" - integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= - -http-errors@1.7.2, http-errors@~1.7.2: - version "1.7.2" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-parser-js@>=0.4.0: - version "0.5.0" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz#d65edbede84349d0dc30320815a15d39cc3cbbd8" - integrity sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w== - -http-proxy-middleware@^0.19.1: - version "0.19.1" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - -http-proxy@^1.17.0: - version "1.17.0" - resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" - integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g== - dependencies: - eventemitter3 "^3.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= - -icss-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" - integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI= - dependencies: - postcss "^6.0.1" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= - -ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== - dependencies: - minimatch "^3.0.4" - -ignore@^3.3.3, ignore@^3.3.5: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== - -ignore@^4.0.3, ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - -ignore@^5.0.2: - version "5.0.5" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.0.5.tgz#c663c548d6ce186fb33616a8ccb5d46e56bdbbf9" - integrity sha512-kOC8IUb8HSDMVcYrDVezCxpJkzSQWTAzf3olpKM6o9rM5zpojx23O0Fl8Wr4+qJ6ZbPEHqf1fdwev/DS7v7pmA== - -image-size@~0.5.0: - version "0.5.5" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" - integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= - -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz#a3d897f420cab0e671236897f75bc14b4885c390" - integrity sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - -import-local@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" - integrity sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ== - dependencies: - pkg-dir "^2.0.0" - resolve-cwd "^2.0.0" - -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -ini@^1.3.4, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -inquirer@3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347" - integrity sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c= - dependencies: - ansi-escapes "^1.1.0" - chalk "^1.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.1" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx "^4.1.0" - string-width "^2.0.0" - strip-ansi "^3.0.0" - through "^2.3.6" - -inquirer@^3.0.6: - version "3.3.0" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" - integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.0" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^2.0.4" - figures "^2.0.0" - lodash "^4.3.0" - mute-stream "0.0.7" - run-async "^2.2.0" - rx-lite "^4.0.8" - rx-lite-aggregates "^4.0.8" - string-width "^2.1.0" - strip-ansi "^4.0.0" - through "^2.3.6" - -inquirer@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.2.tgz#46941176f65c9eb20804627149b743a218f25406" - integrity sha512-Z2rREiXA6cHRR9KBOarR3WuLlFzlIfAEIiB45ll5SSadMg7WqOh1MKEjjndfuH5ewXdixWCxqnVfGOQzPeiztA== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.11" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.0.0" - through "^2.3.6" - -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== - dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" - -intersperse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/intersperse/-/intersperse-1.0.0.tgz#f2561fb1cfef9f5277cc3347a22886b4351a5181" - integrity sha1-8lYfsc/vn1J3zDNHoiiGtDUaUYE= - -invariant@^2.2.2, invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= - -ip@^1.1.0, ip@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipaddr.js@1.9.0, ipaddr.js@^1.9.0: - version "1.9.0" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" - integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5, is-buffer@~1.1.1: - version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-buffer@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" - integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== - -is-callable@^1.1.3, is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== - -is-ci@^1.0.10: - version "1.2.1" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" - integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== - dependencies: - ci-info "^1.5.0" - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-generator-fn@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" - integrity sha1-lp1J4bszKfa7fwkIm+JleLLd1Go= - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= - dependencies: - is-extglob "^1.0.0" - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-negative-zero@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" - integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= - -is-path-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.1.0.tgz#2e0c7e463ff5b7a0eb60852d851a6809347a124c" - integrity sha512-Sc5j3/YnM8tDeyCsVeKlm/0p95075DyLmDEIkSgQ7mXkrOX+uTCtmQFm0CYzVyJwcCCmO3k8qfJt17SxQwB5Zw== - -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" - -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-plain-obj@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= - -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= - dependencies: - has "^1.0.1" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-stream@^1.0.1, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= - -is-svg@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" - integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== - dependencies: - html-comment-regex "^1.1.0" - -is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== - dependencies: - has-symbols "^1.0.0" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= - -is-whitespace@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" - integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isarray@~0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -ismobilejs@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/ismobilejs/-/ismobilejs-0.5.1.tgz#0e3f825e29e32f84ad5ddbb60e9e04a894046488" - integrity sha512-QX4STsOcBYqlTjVGuAdP1MiRVxtiUbRHOKH0v7Gn1EvfUVIQnrSdgCM4zB4VCZuIejnb2NUMUx0Bwd3EIG6yyA== - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -istanbul-api@^1.3.1: - version "1.3.7" - resolved "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz#a86c770d2b03e11e3f778cd7aedd82d2722092aa" - integrity sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA== - dependencies: - async "^2.1.4" - fileset "^2.0.2" - istanbul-lib-coverage "^1.2.1" - istanbul-lib-hook "^1.2.2" - istanbul-lib-instrument "^1.10.2" - istanbul-lib-report "^1.1.5" - istanbul-lib-source-maps "^1.2.6" - istanbul-reports "^1.5.1" - js-yaml "^3.7.0" - mkdirp "^0.5.1" - once "^1.4.0" - -istanbul-lib-coverage@^1.2.0, istanbul-lib-coverage@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" - integrity sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ== - -istanbul-lib-hook@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86" - integrity sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw== - dependencies: - append-transform "^0.4.0" - -istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca" - integrity sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A== - dependencies: - babel-generator "^6.18.0" - babel-template "^6.16.0" - babel-traverse "^6.18.0" - babel-types "^6.18.0" - babylon "^6.18.0" - istanbul-lib-coverage "^1.2.1" - semver "^5.3.0" - -istanbul-lib-report@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz#f2a657fc6282f96170aaf281eb30a458f7f4170c" - integrity sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw== - dependencies: - istanbul-lib-coverage "^1.2.1" - mkdirp "^0.5.1" - path-parse "^1.0.5" - supports-color "^3.1.2" - -istanbul-lib-source-maps@^1.2.4, istanbul-lib-source-maps@^1.2.6: - version "1.2.6" - resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f" - integrity sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg== - dependencies: - debug "^3.1.0" - istanbul-lib-coverage "^1.2.1" - mkdirp "^0.5.1" - rimraf "^2.6.1" - source-map "^0.5.3" - -istanbul-reports@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz#97e4dbf3b515e8c484caea15d6524eebd3ff4e1a" - integrity sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw== - dependencies: - handlebars "^4.0.3" - -javascript-stringify@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-1.6.0.tgz#142d111f3a6e3dae8f4a9afd77d45855b5a9cce3" - integrity sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM= - -jest-changed-files@^23.4.2: - version "23.4.2" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-23.4.2.tgz#1eed688370cd5eebafe4ae93d34bb3b64968fe83" - integrity sha512-EyNhTAUWEfwnK0Is/09LxoqNDOn7mU7S3EHskG52djOFS/z+IT0jT3h3Ql61+dklcG7bJJitIWEMB4Sp1piHmA== - dependencies: - throat "^4.0.0" - -jest-cli@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-23.6.0.tgz#61ab917744338f443ef2baa282ddffdd658a5da4" - integrity sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ== - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.1.11" - import-local "^1.0.0" - is-ci "^1.0.10" - istanbul-api "^1.3.1" - istanbul-lib-coverage "^1.2.0" - istanbul-lib-instrument "^1.10.1" - istanbul-lib-source-maps "^1.2.4" - jest-changed-files "^23.4.2" - jest-config "^23.6.0" - jest-environment-jsdom "^23.4.0" - jest-get-type "^22.1.0" - jest-haste-map "^23.6.0" - jest-message-util "^23.4.0" - jest-regex-util "^23.3.0" - jest-resolve-dependencies "^23.6.0" - jest-runner "^23.6.0" - jest-runtime "^23.6.0" - jest-snapshot "^23.6.0" - jest-util "^23.4.0" - jest-validate "^23.6.0" - jest-watcher "^23.4.0" - jest-worker "^23.2.0" - micromatch "^2.3.11" - node-notifier "^5.2.1" - prompts "^0.1.9" - realpath-native "^1.0.0" - rimraf "^2.5.4" - slash "^1.0.0" - string-length "^2.0.0" - strip-ansi "^4.0.0" - which "^1.2.12" - yargs "^11.0.0" - -jest-config@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-23.6.0.tgz#f82546a90ade2d8c7026fbf6ac5207fc22f8eb1d" - integrity sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ== - dependencies: - babel-core "^6.0.0" - babel-jest "^23.6.0" - chalk "^2.0.1" - glob "^7.1.1" - jest-environment-jsdom "^23.4.0" - jest-environment-node "^23.4.0" - jest-get-type "^22.1.0" - jest-jasmine2 "^23.6.0" - jest-regex-util "^23.3.0" - jest-resolve "^23.6.0" - jest-util "^23.4.0" - jest-validate "^23.6.0" - micromatch "^2.3.11" - pretty-format "^23.6.0" - -jest-diff@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-23.6.0.tgz#1500f3f16e850bb3d71233408089be099f610c7d" - integrity sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g== - dependencies: - chalk "^2.0.1" - diff "^3.2.0" - jest-get-type "^22.1.0" - pretty-format "^23.6.0" - -jest-docblock@^23.2.0: - version "23.2.0" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7" - integrity sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c= - dependencies: - detect-newline "^2.1.0" - -jest-each@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-23.6.0.tgz#ba0c3a82a8054387016139c733a05242d3d71575" - integrity sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg== - dependencies: - chalk "^2.0.1" - pretty-format "^23.6.0" - -jest-environment-jsdom@^23.4.0: - version "23.4.0" - resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz#056a7952b3fea513ac62a140a2c368c79d9e6023" - integrity sha1-BWp5UrP+pROsYqFAosNox52eYCM= - dependencies: - jest-mock "^23.2.0" - jest-util "^23.4.0" - jsdom "^11.5.1" - -jest-environment-node@^23.4.0: - version "23.4.0" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-23.4.0.tgz#57e80ed0841dea303167cce8cd79521debafde10" - integrity sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA= - dependencies: - jest-mock "^23.2.0" - jest-util "^23.4.0" - -jest-get-type@^22.1.0: - version "22.4.3" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" - integrity sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w== - -jest-haste-map@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.6.0.tgz#2e3eb997814ca696d62afdb3f2529f5bbc935e16" - integrity sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg== - dependencies: - fb-watchman "^2.0.0" - graceful-fs "^4.1.11" - invariant "^2.2.4" - jest-docblock "^23.2.0" - jest-serializer "^23.0.1" - jest-worker "^23.2.0" - micromatch "^2.3.11" - sane "^2.0.0" - -jest-jasmine2@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz#840e937f848a6c8638df24360ab869cc718592e0" - integrity sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ== - dependencies: - babel-traverse "^6.0.0" - chalk "^2.0.1" - co "^4.6.0" - expect "^23.6.0" - is-generator-fn "^1.0.0" - jest-diff "^23.6.0" - jest-each "^23.6.0" - jest-matcher-utils "^23.6.0" - jest-message-util "^23.4.0" - jest-snapshot "^23.6.0" - jest-util "^23.4.0" - pretty-format "^23.6.0" - -jest-leak-detector@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz#e4230fd42cf381a1a1971237ad56897de7e171de" - integrity sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg== - dependencies: - pretty-format "^23.6.0" - -jest-matcher-utils@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz#726bcea0c5294261a7417afb6da3186b4b8cac80" - integrity sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog== - dependencies: - chalk "^2.0.1" - jest-get-type "^22.1.0" - pretty-format "^23.6.0" - -jest-message-util@^23.4.0: - version "23.4.0" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-23.4.0.tgz#17610c50942349508d01a3d1e0bda2c079086a9f" - integrity sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8= - dependencies: - "@babel/code-frame" "^7.0.0-beta.35" - chalk "^2.0.1" - micromatch "^2.3.11" - slash "^1.0.0" - stack-utils "^1.0.1" - -jest-mock@^23.2.0: - version "23.2.0" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134" - integrity sha1-rRxg8p6HGdR8JuETgJi20YsmETQ= - -jest-regex-util@^23.3.0: - version "23.3.0" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" - integrity sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U= - -jest-resolve-dependencies@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz#b4526af24c8540d9a3fab102c15081cf509b723d" - integrity sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA== - dependencies: - jest-regex-util "^23.3.0" - jest-snapshot "^23.6.0" - -jest-resolve@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-23.6.0.tgz#cf1d1a24ce7ee7b23d661c33ba2150f3aebfa0ae" - integrity sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA== - dependencies: - browser-resolve "^1.11.3" - chalk "^2.0.1" - realpath-native "^1.0.0" - -jest-runner@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-23.6.0.tgz#3894bd219ffc3f3cb94dc48a4170a2e6f23a5a38" - integrity sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA== - dependencies: - exit "^0.1.2" - graceful-fs "^4.1.11" - jest-config "^23.6.0" - jest-docblock "^23.2.0" - jest-haste-map "^23.6.0" - jest-jasmine2 "^23.6.0" - jest-leak-detector "^23.6.0" - jest-message-util "^23.4.0" - jest-runtime "^23.6.0" - jest-util "^23.4.0" - jest-worker "^23.2.0" - source-map-support "^0.5.6" - throat "^4.0.0" - -jest-runtime@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-23.6.0.tgz#059e58c8ab445917cd0e0d84ac2ba68de8f23082" - integrity sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw== - dependencies: - babel-core "^6.0.0" - babel-plugin-istanbul "^4.1.6" - chalk "^2.0.1" - convert-source-map "^1.4.0" - exit "^0.1.2" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.1.11" - jest-config "^23.6.0" - jest-haste-map "^23.6.0" - jest-message-util "^23.4.0" - jest-regex-util "^23.3.0" - jest-resolve "^23.6.0" - jest-snapshot "^23.6.0" - jest-util "^23.4.0" - jest-validate "^23.6.0" - micromatch "^2.3.11" - realpath-native "^1.0.0" - slash "^1.0.0" - strip-bom "3.0.0" - write-file-atomic "^2.1.0" - yargs "^11.0.0" - -jest-serializer-vue@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/jest-serializer-vue/-/jest-serializer-vue-2.0.2.tgz#b238ef286357ec6b480421bd47145050987d59b3" - integrity sha1-sjjvKGNX7GtIBCG9RxRQUJh9WbM= - dependencies: - pretty "2.0.0" - -jest-serializer@^23.0.1: - version "23.0.1" - resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" - integrity sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU= - -jest-snapshot@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.6.0.tgz#f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a" - integrity sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg== - dependencies: - babel-types "^6.0.0" - chalk "^2.0.1" - jest-diff "^23.6.0" - jest-matcher-utils "^23.6.0" - jest-message-util "^23.4.0" - jest-resolve "^23.6.0" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - pretty-format "^23.6.0" - semver "^5.5.0" - -jest-transform-stub@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/jest-transform-stub/-/jest-transform-stub-2.0.0.tgz#19018b0851f7568972147a5d60074b55f0225a7d" - integrity sha512-lspHaCRx/mBbnm3h4uMMS3R5aZzMwyNpNIJLXj4cEsV0mIUtS4IjYJLSoyjRCtnxb6RIGJ4NL2quZzfIeNhbkg== - -jest-util@^23.4.0: - version "23.4.0" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-23.4.0.tgz#4d063cb927baf0a23831ff61bec2cbbf49793561" - integrity sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE= - dependencies: - callsites "^2.0.0" - chalk "^2.0.1" - graceful-fs "^4.1.11" - is-ci "^1.0.10" - jest-message-util "^23.4.0" - mkdirp "^0.5.1" - slash "^1.0.0" - source-map "^0.6.0" - -jest-validate@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474" - integrity sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A== - dependencies: - chalk "^2.0.1" - jest-get-type "^22.1.0" - leven "^2.1.0" - pretty-format "^23.6.0" - -jest-watch-typeahead@0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.2.1.tgz#6c40f232996ca6c39977e929e9f79b189e7d87e4" - integrity sha512-xdhEtKSj0gmnkDQbPTIHvcMmXNUDzYpHLEJ5TFqlaI+schi2NI96xhWiZk9QoesAS7oBmKwWWsHazTrYl2ORgg== - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.4.1" - jest-watcher "^23.1.0" - slash "^2.0.0" - string-length "^2.0.0" - strip-ansi "^5.0.0" - -jest-watcher@^23.1.0, jest-watcher@^23.4.0: - version "23.4.0" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-23.4.0.tgz#d2e28ce74f8dad6c6afc922b92cabef6ed05c91c" - integrity sha1-0uKM50+NrWxq/JIrksq+9u0FyRw= - dependencies: - ansi-escapes "^3.0.0" - chalk "^2.0.1" - string-length "^2.0.0" - -jest-worker@^23.2.0: - version "23.2.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9" - integrity sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk= - dependencies: - merge-stream "^1.0.1" - -jest@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/jest/-/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d" - integrity sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw== - dependencies: - import-local "^1.0.0" - jest-cli "^23.6.0" - -js-beautify@^1.6.12, js-beautify@^1.6.14: - version "1.10.0" - resolved "https://registry.npmjs.org/js-beautify/-/js-beautify-1.10.0.tgz#9753a13c858d96828658cd18ae3ca0e5783ea672" - integrity sha512-OMwf/tPDpE/BLlYKqZOhqWsd3/z2N3KOlyn1wsCRGFwViE8LOQTcDtathQvHvZc+q+zWmcNAbwKSC+iJoMaH2Q== - dependencies: - config-chain "^1.1.12" - editorconfig "^0.15.3" - glob "^7.1.3" - mkdirp "~0.5.1" - nopt "~4.0.1" - -js-cookie@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.0.tgz#1b2c279a6eece380a12168b92485265b35b1effb" - integrity sha1-Gywnmm7s44ChIWi5JIUmWzWx7/s= - -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== - -js-message@1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/js-message/-/js-message-1.0.5.tgz#2300d24b1af08e89dd095bc1a4c9c9cfcb892d15" - integrity sha1-IwDSSxrwjondCVvBpMnJz8uJLRU= - -js-queue@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/js-queue/-/js-queue-2.0.0.tgz#362213cf860f468f0125fc6c96abc1742531f948" - integrity sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug= - dependencies: - easy-stack "^1.0.0" - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - -js-yaml@^3.12.0, js-yaml@^3.13.1, js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1: - version "3.13.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsdom@^11.5.1: - version "11.12.0" - resolved "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" - integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== - dependencies: - abab "^2.0.0" - acorn "^5.5.3" - acorn-globals "^4.1.0" - array-equal "^1.0.0" - cssom ">= 0.3.2 < 0.4.0" - cssstyle "^1.0.0" - data-urls "^1.0.0" - domexception "^1.0.1" - escodegen "^1.9.1" - html-encoding-sniffer "^1.0.2" - left-pad "^1.3.0" - nwsapi "^2.0.7" - parse5 "4.0.0" - pn "^1.1.0" - request "^2.87.0" - request-promise-native "^1.0.5" - sax "^1.2.4" - symbol-tree "^3.2.2" - tough-cookie "^2.3.4" - w3c-hr-time "^1.0.1" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.3" - whatwg-mimetype "^2.1.0" - whatwg-url "^6.4.1" - ws "^5.2.0" - xml-name-validator "^3.0.0" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.3.0: - version "0.3.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" - integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json2module@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/json2module/-/json2module-0.0.3.tgz#00fb5f4a9b7adfc3f0647c29cb17bcd1979be9b2" - integrity sha1-APtfSpt638PwZHwpyxe80Zeb6bI= - dependencies: - rw "^1.3.2" - -json2mq@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" - integrity sha1-tje9O6nqvhIsg+lyBIOusQ0skEo= - dependencies: - string-convert "^0.2.0" - -json3@^3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" - integrity sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE= - -json5@^0.5.0, json5@^0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" - integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== - dependencies: - minimist "^1.2.0" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -killable@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== - -kleur@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300" - integrity sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ== - -launch-editor-middleware@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz#e14b07e6c7154b0a4b86a0fd345784e45804c157" - integrity sha512-s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg== - dependencies: - launch-editor "^2.2.1" - -launch-editor@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca" - integrity sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw== - dependencies: - chalk "^2.3.0" - shell-quote "^1.6.1" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= - dependencies: - invert-kv "^1.0.0" - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - -left-pad@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" - integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== - -less-loader@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-4.1.0.tgz#2c1352c5b09a4f84101490274fd51674de41363e" - integrity sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg== - dependencies: - clone "^2.1.1" - loader-utils "^1.1.0" - pify "^3.0.0" - -less@^3.8.1: - version "3.9.0" - resolved "https://registry.yarnpkg.com/less/-/less-3.9.0.tgz#b7511c43f37cf57dc87dffd9883ec121289b1474" - integrity sha512-31CmtPEZraNUtuUREYjSqRkeETFdyEHSEPAGq4erDlUXtda7pzNmctdljdIagSb589d/qXGWiiP31R5JVf+v0w== - dependencies: - clone "^2.1.2" - optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - mime "^1.4.1" - mkdirp "^0.5.0" - promise "^7.1.1" - request "^2.83.0" - source-map "~0.6.0" - -leven@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= - -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -loader-fs-cache@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz#54cedf6b727e1779fd8f01205f05f6e88706f086" - integrity sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw== - dependencies: - find-cache-dir "^0.1.1" - mkdirp "0.5.1" - -loader-runner@^2.3.0, loader-runner@^2.3.1: - version "2.4.0" - resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" - integrity sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0= - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -loader-utils@^1.0.2, loader-utils@^1.1.0: - version "1.2.3" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -lodash.defaultsdeep@^4.6.0: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" - integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== - -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= - -lodash.kebabcase@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= - -lodash.mapvalues@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" - integrity sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw= - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.pick@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - -lodash.transform@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" - integrity sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A= - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash@4.x, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: - version "4.17.14" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.14.tgz#9ce487ae66c96254fe20b599f21b6816028078ba" - integrity sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw== - -log-symbols@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== - dependencies: - chalk "^2.0.1" - -loglevel@^1.6.1: - version "1.6.1" - resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" - integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po= - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= - -lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2, lru-cache@^4.1.5: - version "4.1.5" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -makeerror@1.0.x: - version "1.0.11" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" - integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= - dependencies: - tmpl "1.0.x" - -mamacro@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" - integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== - -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -math-random@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" - integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -md5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" - integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk= - dependencies: - charenc "~0.0.1" - crypt "~0.0.1" - is-buffer "~1.1.1" - -mdn-data@~1.1.0: - version "1.1.4" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" - integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -mem@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" - integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= - dependencies: - mimic-fn "^1.0.0" - -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - -memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -merge-source-map@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" - integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== - dependencies: - source-map "^0.6.1" - -merge-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" - integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= - dependencies: - readable-stream "^2.0.1" - -merge2@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.2.3.tgz#7ee99dbd69bb6481689253f018488a1b902b0ed5" - integrity sha512-gdUU1Fwj5ep4kplwcmftruWofEFt6lfpkkr3h860CXbAB9c3hGb55EOL2ali0Td5oebvW0E1+3Sr+Ur7XfKpRA== - -merge@^1.2.0: - version "1.2.1" - resolved "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" - integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^2.3.11: - version "2.3.11" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: - version "3.1.10" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.40.0, "mime-db@>= 1.40.0 < 2": - version "1.40.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" - integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== - -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.24" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" - integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== - dependencies: - mime-db "1.40.0" - -mime@1.6.0, mime@^1.4.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.0.3, mime@^2.4.2: - version "2.4.3" - resolved "https://registry.npmjs.org/mime/-/mime-2.4.3.tgz#229687331e86f68924e6cb59e1cdd937f18275fe" - integrity sha512-QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw== - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mini-css-extract-plugin@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz#a3f13372d6fcde912f3ee4cd039665704801e3b9" - integrity sha512-79q5P7YGI6rdnVyIAV4NXpBQJFWdkzJxCim3Kog4078fM0piAaFlwocqbejdWtLW1cEzCexPrh6EdyFsPgVdAw== - dependencies: - loader-utils "^1.1.0" - normalize-url "^2.0.1" - schema-utils "^1.0.0" - webpack-sources "^1.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@1.2.0, minimist@^1.1.1, minimist@^1.2.0, minimist@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= - -minipass@^2.2.1, minipass@^2.3.4: - version "2.3.5" - resolved "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" - integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.1.1: - version "1.2.1" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" - integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== - dependencies: - minipass "^2.2.1" - -mississippi@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" - integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^2.0.1" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - -mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" - integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -mockjs2@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/mockjs2/-/mockjs2-1.0.5.tgz#be80f670e0468092b15454169591e936c3bd29f9" - integrity sha512-2RPYSxVuIsmV0S8FwUh2srTm+K1EWr57GyUgjA5+6H49ZwqtFUlRfZAVJNYwKtswxehP4FDTsfuCRMd290bFTA== - dependencies: - commander "*" - -moment@^2.21.0, moment@^2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" - integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1, ms@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -multicast-dns-service-types@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" - integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= - -multicast-dns@^6.0.1: - version "6.2.3" - resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== - dependencies: - dns-packet "^1.3.1" - thunky "^1.0.2" - -mutationobserver-shim@^0.3.2: - version "0.3.3" - resolved "https://registry.yarnpkg.com/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz#65869630bc89d7bf8c9cd9cb82188cd955aacd2b" - integrity sha512-gciOLNN8Vsf7YzcqRjKzlAJ6y7e+B86u7i3KXes0xfxx/nfLmozlW1Vn+Sc9x3tPIePFgc1AeIFhtRgkqTjzDQ== - -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= - -mz@^2.4.0: - version "2.7.0" - resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - -nan@^2.12.1: - version "2.14.0" - resolved "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - -needle@^2.2.1: - version "2.4.0" - resolved "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== - -neo-async@^2.5.0, neo-async@^2.6.0: - version "2.6.1" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== - dependencies: - lower-case "^1.1.1" - -node-cache@^4.1.1: - version "4.2.0" - resolved "https://registry.npmjs.org/node-cache/-/node-cache-4.2.0.tgz#48ac796a874e762582692004a376d26dfa875811" - integrity sha512-obRu6/f7S024ysheAjoYFEEBqqDWv4LOMNJEuO8vMeEw2AT4z+NCzO4hlc2lhI4vATzbCQv6kke9FVdx0RbCOw== - dependencies: - clone "2.x" - lodash "4.x" - -node-fetch@1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" - integrity sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ= - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - -node-forge@0.7.5: - version "0.7.5" - resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" - integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= - -node-ipc@^9.1.1: - version "9.1.1" - resolved "https://registry.npmjs.org/node-ipc/-/node-ipc-9.1.1.tgz#4e245ed6938e65100e595ebc5dc34b16e8dd5d69" - integrity sha512-FAyICv0sIRJxVp3GW5fzgaf9jwwRQxAKDJlmNFUL5hOy+W4X/I5AypyHoq0DXXbo9o/gt79gj++4cMr4jVWE/w== - dependencies: - event-pubsub "4.3.0" - js-message "1.0.5" - js-queue "2.0.0" - -node-libs-browser@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz#c72f60d9d46de08a940dedbb25f3ffa2f9bbaa77" - integrity sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.0" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "0.0.4" - -node-notifier@^5.2.1: - version "5.4.0" - resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.0.tgz#7b455fdce9f7de0c63538297354f3db468426e6a" - integrity sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ== - dependencies: - growly "^1.3.0" - is-wsl "^1.1.0" - semver "^5.5.0" - shellwords "^0.1.1" - which "^1.3.0" - -node-pre-gyp@^0.12.0: - version "0.12.0" - resolved "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" - integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-releases@^1.1.19: - version "1.1.21" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.21.tgz#46c86f9adaceae4d63c75d3c2f2e6eee618e55f3" - integrity sha512-TwnURTCjc8a+ElJUjmDqU6+12jhli1Q61xOQmdZ7ECZVBZuQpN/1UnembiIHDM1wCcfLvh5wrWXUF5H6ufX64Q== - dependencies: - semver "^5.3.0" - -nopt@^4.0.1, nopt@~4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" - integrity sha1-MtDkcvkf80VwHBWoMRAY07CpA3k= - -normalize-path@^2.0.1, normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -normalize-url@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" - integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== - dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -npm-bundled@^1.0.1: - version "1.0.6" - resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" - integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== - -npm-packlist@^1.1.6: - version "1.4.1" - resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" - integrity sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= - dependencies: - path-key "^2.0.0" - -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -nprogress@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" - integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E= - -nth-check@^1.0.2, nth-check@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -nwsapi@^2.0.7: - version "2.1.4" - resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" - integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@4.x, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-hash@^1.1.4: - version "1.3.1" - resolved "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" - integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== - -object-inspect@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" - integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== - -object-keys@^1.0.11, object-keys@^1.0.12: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= - dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" - integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.12.0" - function-bind "^1.1.1" - has "^1.0.3" - -obuf@^1.0.0, obuf@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== - -omit.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/omit.js/-/omit.js-1.0.0.tgz#e013cb86a7517b9cf6f7cfb0ddb4297256a99288" - integrity sha512-O1rwbvEfAdhtonTv+v6IQeMOKTi/wlHcXpI3hehyPDlujkjSBQC6Vtzg0mdy+v2KVDmuPf7hAbHlTBM6q1bUHQ== - dependencies: - babel-runtime "^6.23.0" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - -open@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/open/-/open-6.3.0.tgz#60d0b845ee38fae0631f5d739a21bd40e3d2a527" - integrity sha512-6AHdrJxPvAXIowO/aIaeHZ8CeMdDf7qCyRNq8NwJpinmCdXhz+NZR7ie1Too94lpciCDsG+qHGO9Mt0svA4OqA== - dependencies: - is-wsl "^1.1.0" - -opencollective-postinstall@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" - integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== - -opencollective@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/opencollective/-/opencollective-1.0.3.tgz#aee6372bc28144583690c3ca8daecfc120dd0ef1" - integrity sha1-ruY3K8KBRFg2kMPKja7PwSDdDvE= - dependencies: - babel-polyfill "6.23.0" - chalk "1.1.3" - inquirer "3.0.6" - minimist "1.2.0" - node-fetch "1.6.3" - opn "4.0.2" - -opener@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" - integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== - -opn@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" - integrity sha1-erwi5kTf9jsKltWrfyeQwPAavJU= - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optionator@^0.8.1, optionator@^0.8.2: - version "0.8.2" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -ora@^3.4.0: - version "3.4.0" - resolved "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" - integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== - dependencies: - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-spinners "^2.0.0" - log-symbols "^2.2.0" - strip-ansi "^5.2.0" - wcwidth "^1.0.1" - -original@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== - dependencies: - url-parse "^1.4.3" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-locale@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" - integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== - dependencies: - execa "^0.7.0" - lcid "^1.0.0" - mem "^1.1.0" - -os-locale@^3.0.0, os-locale@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= - -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - -p-limit@^1.0.0, p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" - integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== - dependencies: - p-try "^2.0.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-map@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -pako@~1.0.5: - version "1.0.10" - resolved "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" - integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== - -parallel-transform@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" - integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= - dependencies: - cyclist "~0.2.2" - inherits "^2.0.3" - readable-stream "^2.1.5" - -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= - dependencies: - no-case "^2.2.0" - -parchment@^1.1.4: - version "1.1.4" - resolved "https://registry.npm.taobao.org/parchment/download/parchment-1.1.4.tgz#aeded7ab938fe921d4c34bc339ce1168bc2ffde5" - integrity sha1-rt7Xq5OP6SHUw0vDOc4RaLwv/eU= - -parent-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz#df250bdc5391f4a085fb589dad761f5ad6b865b5" - integrity sha512-8Mf5juOMmiE4FcmzYc4IaiS9L3+9paz2KOiXzkRviCP6aDmN49Hz6EMWz0lGNp9pX80GvvAuLADtyGfW/Em3TA== - dependencies: - callsites "^3.0.0" - -parse-asn1@^5.0.0: - version "5.1.4" - resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" - integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw== - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-svg-path@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/parse-svg-path/-/parse-svg-path-0.1.2.tgz#7a7ec0d1eb06fa5325c7d3e009b859a09b5d49eb" - integrity sha1-en7A0esG+lMlx9PgCbhZoJtdSes= - -parse5@4.0.0, parse5@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" - integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo= - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-parse@^1.0.5, path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= - dependencies: - find-up "^1.0.0" - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" - -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" - -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== - -pn@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" - integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== - -point-at-length@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/point-at-length/-/point-at-length-1.0.2.tgz#9176d8d6d7c8162f12b646f707db9f0ea728125e" - integrity sha1-kXbY1tfIFi8Stkb3B9ufDqcoEl4= - dependencies: - abs-svg-path "~0.1.1" - isarray "~0.0.1" - parse-svg-path "~0.1.1" - -portfinder@^1.0.20: - version "1.0.20" - resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz#bea68632e54b2e13ab7b0c4775e9b41bf270e44a" - integrity sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw== - dependencies: - async "^1.5.2" - debug "^2.2.0" - mkdirp "0.5.x" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-calc@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" - integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ== - dependencies: - css-unit-converter "^1.1.1" - postcss "^7.0.5" - postcss-selector-parser "^5.0.0-rc.4" - postcss-value-parser "^3.3.1" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-load-config@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz#f1312ddbf5912cd747177083c5ef7a19d62ee484" - integrity sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ== - dependencies: - cosmiconfig "^4.0.0" - import-cwd "^2.0.0" - -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== - dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@^1.2.0: - version "1.2.1" - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" - integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw== - dependencies: - postcss "^6.0.1" - -postcss-modules-local-by-default@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" - integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-scope@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" - integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-values@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" - integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^6.0.1" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-selector-parser@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" - integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= - dependencies: - dot-prop "^4.1.1" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.4: - version "5.0.0" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== - dependencies: - cssesc "^2.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-svgo@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" - integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== - dependencies: - is-svg "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: - version "3.3.1" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss@^6.0.1, postcss@^6.0.23: - version "6.0.23" - resolved "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.5: - version "7.0.16" - resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.16.tgz#48f64f1b4b558cb8b52c88987724359acb010da2" - integrity sha512-MOo8zNSlIqh22Uaa3drkdIAgUGEL+AD1ESiSdmElLUmE2uVDo1QloiT/IfW9qRw8Gw+Y/w69UVMGwbufMSftxA== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= - -prettier@1.16.3: - version "1.16.3" - resolved "https://registry.npmjs.org/prettier/-/prettier-1.16.3.tgz#8c62168453badef702f34b45b6ee899574a6a65d" - integrity sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw== - -pretty-error@^2.0.2: - version "2.1.1" - resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" - integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= - dependencies: - renderkid "^2.0.1" - utila "~0.4" - -pretty-format@^23.6.0: - version "23.6.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" - integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw== - dependencies: - ansi-regex "^3.0.0" - ansi-styles "^3.2.0" - -pretty@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" - integrity sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU= - dependencies: - condense-newlines "^0.2.1" - extend-shallow "^2.0.1" - js-beautify "^1.6.12" - -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - -prompts@^0.1.9: - version "0.1.14" - resolved "https://registry.npmjs.org/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2" - integrity sha512-rxkyiE9YH6zAz/rZpywySLKkpaj0NMVyNw1qhsubdbjjSgcayjTShDreZGlFMcGSu5sab3bAKPfFk78PB90+8w== - dependencies: - kleur "^2.0.1" - sisteransi "^0.1.1" - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= - -proxy-addr@~2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" - integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.0" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.24, psl@^1.1.28: - version "1.1.31" - resolved "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" - integrity sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^2.0.0, pump@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -querystringify@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" - integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== - -quill-delta@^3.6.2: - version "3.6.3" - resolved "https://registry.npm.taobao.org/quill-delta/download/quill-delta-3.6.3.tgz#b19fd2b89412301c60e1ff213d8d860eac0f1032" - integrity sha1-sZ/SuJQSMBxg4f8hPY2GDqwPEDI= - dependencies: - deep-equal "^1.0.1" - extend "^3.0.2" - fast-diff "1.1.2" - -quill@^1.3.4: - version "1.3.6" - resolved "https://registry.npm.taobao.org/quill/download/quill-1.3.6.tgz#99f4de1fee85925a0d7d4163b6d8328f23317a4d" - integrity sha1-mfTeH+6FkloNfUFjttgyjyMxek0= - dependencies: - clone "^2.1.1" - deep-equal "^1.0.1" - eventemitter3 "^2.0.3" - extend "^3.0.1" - parchment "^1.1.4" - quill-delta "^3.6.2" - -raf@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" - integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== - dependencies: - performance-now "^2.1.0" - -randomatic@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" - integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -read-pkg@^5.0.0: - version "5.1.1" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.1.1.tgz#5cf234dde7a405c90c88a519ab73c467e9cb83f5" - integrity sha512-dFcTLQi6BZ+aFUaICg7er+/usEoqFdQxiEBsEMNGoipenihtxxtdrQuBXvyANCEI8VuUIVYFgeHGx9sLLvim4w== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^4.0.0" - type-fest "^0.4.1" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.0.6, readable-stream@^3.1.1: - version "3.3.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz#cb8011aad002eb717bf040291feba8569c986fb9" - integrity sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -realpath-native@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" - integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== - dependencies: - util.promisify "^1.0.0" - -regenerate-unicode-properties@^8.0.2: - version "8.1.0" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.2.1, regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== - -regenerator-runtime@^0.10.0: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" - integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.12.0: - version "0.12.1" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" - integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== - -regenerator-runtime@^0.13.2: - version "0.13.2" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447" - integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA== - -regenerator-transform@^0.14.0: - version "0.14.0" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.0.tgz#2ca9aaf7a2c239dd32e4761218425b8c7a86ecaf" - integrity sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w== - dependencies: - private "^0.1.6" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== - dependencies: - is-equal-shallow "^0.1.3" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp-tree@^0.1.6: - version "0.1.10" - resolved "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.10.tgz#d837816a039c7af8a8d64d7a7c3cf6a1d93450bc" - integrity sha512-K1qVSbcedffwuIslMwpe6vGlj+ZXRnGkvjAtFHfDZZZuEdA/h0dxljAPu9vhUo6Rrx2U2AwJ+nSQ6hK+lrP5MQ== - -regexpp@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" - integrity sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw== - -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - -regexpu-core@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" - integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs= - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regexpu-core@^4.5.4: - version "4.5.4" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz#080d9d02289aa87fe1667a4f5136bc98a6aebaae" - integrity sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.0.2" - regjsgen "^0.5.0" - regjsparser "^0.6.0" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.1.0" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= - -regjsgen@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" - integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= - dependencies: - jsesc "~0.5.0" - -regjsparser@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" - integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== - dependencies: - jsesc "~0.5.0" - -regression@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regression/-/regression-2.0.1.tgz#8d29c3e8224a10850c35e337e85a8b2fac3b0c87" - integrity sha1-jSnD6CJKEIUMNeM36FqLL6w7DIc= - -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -renderkid@^2.0.1: - version "2.0.3" - resolved "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" - integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA== - dependencies: - css-select "^1.1.0" - dom-converter "^0.2" - htmlparser2 "^3.3.0" - strip-ansi "^3.0.0" - utila "^0.4.0" - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.5.2, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -request-promise-core@1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" - integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag== - dependencies: - lodash "^4.17.11" - -request-promise-native@^1.0.5, request-promise-native@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" - integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w== - dependencies: - request-promise-core "1.1.2" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.83.0, request@^2.87.0: - version "2.88.0" - resolved "https://registry.npmjs.org/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.0" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.4.3" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -require-from-string@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -require-uncached@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -reselect@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/reselect/-/reselect-3.0.1.tgz#efdaa98ea7451324d092b2b2163a6a1d7a9a2147" - integrity sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc= - -resize-observer-polyfill@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= - -resolve@^1.10.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1: - version "1.11.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz#4014870ba296176b86343d50b60f3b50609ce232" - integrity sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw== - dependencies: - path-parse "^1.0.6" - -resolve@^1.5.0, resolve@^1.9.0, resolve@~1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" - integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== - dependencies: - path-parse "^1.0.6" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -resumer@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" - integrity sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k= - dependencies: - through "~2.3.4" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= - dependencies: - align-text "^0.1.1" - -rimraf@2.6.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rollup@^0.25.8: - version "0.25.8" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.25.8.tgz#bf6ce83b87510d163446eeaa577ed6a6fc5835e0" - integrity sha1-v2zoO4dRDRY0Ru6qV37WpvxYNeA= - dependencies: - chalk "^1.1.1" - minimist "^1.2.0" - source-map-support "^0.3.2" - -rsvp@^3.3.3: - version "3.6.2" - resolved "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" - integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== - -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= - dependencies: - is-promise "^2.1.0" - -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= - dependencies: - aproba "^1.1.1" - -rw@1, rw@^1.3.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" - integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= - -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= - dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= - -rx@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" - integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= - -rxjs@^6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz#f3bb0fe7bda7fb69deac0c16f17b50b0b8790504" - integrity sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw== - dependencies: - tslib "^1.9.0" - -safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sane@^2.0.0: - version "2.5.2" - resolved "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" - integrity sha1-tNwYYcIbQn6SlQej51HiosuKs/o= - dependencies: - anymatch "^2.0.0" - capture-exit "^1.2.0" - exec-sh "^0.2.0" - fb-watchman "^2.0.0" - micromatch "^3.1.4" - minimist "^1.1.1" - walker "~1.0.5" - watch "~0.18.0" - optionalDependencies: - fsevents "^1.2.3" - -sax@^1.2.4, sax@~1.2.4: - version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -schema-utils@^0.4.4: - version "0.4.7" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" - integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - -select-hose@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" - integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= - -select@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" - integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= - -selfsigned@^1.10.4: - version "1.10.4" - resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd" - integrity sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw== - dependencies: - node-forge "0.7.5" - -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: - version "5.7.0" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" - integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== - -semver@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.1.0.tgz#e95dc415d45ecf03f2f9f83b264a6b11f49c0cca" - integrity sha512-kCqEOOHoBcFs/2Ccuk4Xarm/KiWRSLEX9CAZF8xkJ6ZPlIoTZ8V5f7J16vYLJqDbR7KrxTJpR2lqjIEm2Qx9cQ== - -send@0.17.1: - version "0.17.1" - resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-javascript@^1.4.0, serialize-javascript@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65" - integrity sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA== - -serve-index@^1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" - integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= - dependencies: - accepts "~1.3.4" - batch "0.6.1" - debug "2.6.9" - escape-html "~1.0.3" - http-errors "~1.6.2" - mime-types "~2.1.17" - parseurl "~1.3.2" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" - integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-equal@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.1.0.tgz#cc022f030dcba0d1c198abf658a3c6c744e171ca" - integrity sha512-0SW1nWo1hnabO62SEeHsl8nmTVVEzguVWZCj5gaQrgWAxz/BaCja4OWdJBWLVPDxdtE/WU7c98uUCCXyPHSCvw== - -shallowequal@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" - integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -shell-quote@^1.6.1: - version "1.6.1" - resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" - integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= - dependencies: - array-filter "~0.0.0" - array-map "~0.0.0" - array-reduce "~0.0.0" - jsonify "~0.0.0" - -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== - -sigmund@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= - -signal-exit@^3.0.0, signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= - -simple-statistics@~6.1.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/simple-statistics/-/simple-statistics-6.1.1.tgz#e3a0799ffc49914d6f421c5a4ac585f6a13e2bad" - integrity sha512-zGwn0DDRa9Zel4H4n2pjTFIyGoAGpnpjrGIctreCxj5XWrcx9v7Xy7270FkC967WMmcvuc8ZU7m0ZG+hGN7gAA== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -sisteransi@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" - integrity sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g== - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -slice-ansi@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" - integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== - dependencies: - is-fullwidth-code-point "^2.0.0" - -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -sockjs-client@1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177" - integrity sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg== - dependencies: - debug "^3.2.5" - eventsource "^1.0.7" - faye-websocket "~0.11.1" - inherits "^2.0.3" - json3 "^3.3.2" - url-parse "^1.4.3" - -sockjs@0.3.19: - version "0.3.19" - resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" - integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== - dependencies: - faye-websocket "^0.10.0" - uuid "^3.0.1" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= - dependencies: - is-plain-obj "^1.0.0" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.3.2: - version "0.3.3" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.3.3.tgz#34900977d5ba3f07c7757ee72e73bb1a9b53754f" - integrity sha1-NJAJd9W6PwfHdX7nLnO7GptTdU8= - dependencies: - source-map "0.1.32" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - -source-map-support@^0.5.6, source-map-support@~0.5.10: - version "0.5.12" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" - integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@0.1.32: - version "0.1.32" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.32.tgz#c8b6c167797ba4740a8ea33252162ff08591b266" - integrity sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY= - dependencies: - amdefine ">=0.0.4" - -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.4" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" - integrity sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA== - -spdy-transport@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== - dependencies: - debug "^4.1.0" - detect-node "^2.0.4" - hpack.js "^2.1.6" - obuf "^1.1.2" - readable-stream "^3.0.6" - wbuf "^1.7.3" - -spdy@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.0.tgz#81f222b5a743a329aa12cea6a390e60e9b613c52" - integrity sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q== - dependencies: - debug "^4.1.0" - handle-thing "^2.0.0" - http-deceiver "^1.2.7" - select-hose "^2.0.0" - spdy-transport "^3.0.0" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -ssri@^5.2.4: - version "5.3.0" - resolved "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" - integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== - dependencies: - safe-buffer "^5.1.1" - -ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== - dependencies: - figgy-pudding "^3.5.1" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stack-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" - integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== - -stackframe@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.0.4.tgz#357b24a992f9427cba6b545d96a14ed2cbca187b" - integrity sha512-to7oADIniaYwS3MhtCa/sQhrxidCCQiF/qp4/m5iN3ipf0Y7Xlri0f6eG29r08aL7JYl8n32AF3Q5GYBZ7K8vw== - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-each@^1.1.0: - version "1.2.3" - resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== - dependencies: - end-of-stream "^1.1.0" - stream-shift "^1.0.0" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - -string-convert@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" - integrity sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c= - -string-length@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" - integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0= - dependencies: - astral-regex "^1.0.0" - strip-ansi "^4.0.0" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.0.0.tgz#5a1690a57cc78211fffd9bf24bbe24d090604eb1" - integrity sha512-rr8CUxBbvOZDUvc5lNIJ+OC1nPVpz+Siw9VBtUjB9b6jZehZLFt0JMCZzShFHIsI8cbhm0EsNIfWJMFV3cu3Ew== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.0.0" - -string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string.prototype.padend@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" - integrity sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA= - dependencies: - define-properties "^1.1.2" - es-abstract "^1.4.3" - function-bind "^1.0.2" - -string.prototype.padstart@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.0.0.tgz#5bcfad39f4649bb2d031292e19bcf0b510d4b242" - integrity sha1-W8+tOfRkm7LQMSkuGbzwtRDUskI= - dependencies: - define-properties "^1.1.2" - es-abstract "^1.4.3" - function-bind "^1.0.2" - -string.prototype.trim@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" - integrity sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo= - dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.0" - function-bind "^1.0.2" - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" - integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== - dependencies: - safe-buffer "~5.1.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-bom@3.0.0, strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= - dependencies: - is-utf8 "^0.2.0" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= - -strip-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= - -strip-json-comments@^2.0.0, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -style-loader@^0.23.1: - version "0.23.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" - integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== - dependencies: - loader-utils "^1.1.0" - schema-utils "^1.0.0" - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^3.1.2: - version "3.2.3" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= - dependencies: - has-flag "^1.0.0" - -supports-color@^5.3.0, supports-color@^5.4.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -svg-tags@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= - -svgo@^1.0.0: - version "1.2.2" - resolved "https://registry.npmjs.org/svgo/-/svgo-1.2.2.tgz#0253d34eccf2aed4ad4f283e11ee75198f9d7316" - integrity sha512-rAfulcwp2D9jjdGu+0CuqlrAUin6bBWrpoqXWwKDZZZJfXcUXQSxLJOFJCQCSA0x0pP2U0TxSlJu2ROq5Bq6qA== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.28" - css-url-regex "^1.1.0" - csso "^3.5.1" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -symbol-tree@^3.2.2: - version "3.2.2" - resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" - integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY= - -table@4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" - integrity sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA== - dependencies: - ajv "^5.2.3" - ajv-keywords "^2.1.0" - chalk "^2.1.0" - lodash "^4.17.4" - slice-ansi "1.0.0" - string-width "^2.1.1" - -table@^5.2.3: - version "5.2.3" - resolved "https://registry.yarnpkg.com/table/-/table-5.2.3.tgz#cde0cc6eb06751c009efab27e8c820ca5b67b7f2" - integrity sha512-N2RsDAMvDLvYwFcwbPyF3VmVSSkuF+G1e+8inhBLtHpvwXGw4QRPEZhihQNeEN0i1up6/f6ObCJXNdlRG3YVyQ== - dependencies: - ajv "^6.9.1" - lodash "^4.17.11" - slice-ansi "^2.1.0" - string-width "^3.0.0" - -tapable@^1.0.0, tapable@^1.1.0: - version "1.1.3" - resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - -tape@^4.5.1: - version "4.10.1" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.10.1.tgz#f73be60888dcb120f08b57f947af65a829506a5f" - integrity sha512-G0DywYV1jQeY3axeYnXUOt6ktnxS9OPJh97FGR3nrua8lhWi1zPflLxcAHavZ7Jf3qUfY7cxcVIVFa4mY2IY1w== - dependencies: - deep-equal "~1.0.1" - defined "~1.0.0" - for-each "~0.3.3" - function-bind "~1.1.1" - glob "~7.1.3" - has "~1.0.3" - inherits "~2.0.3" - minimist "~1.2.0" - object-inspect "~1.6.0" - resolve "~1.10.0" - resumer "~0.0.0" - string.prototype.trim "~1.1.2" - through "~2.3.8" - -tar@^4: - version "4.4.8" - resolved "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" - integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.3.4" - minizlib "^1.1.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.2" - -terser-webpack-plugin@^1.1.0, terser-webpack-plugin@^1.2.3: - version "1.2.4" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.4.tgz#56f87540c28dd5265753431009388f473b5abba3" - integrity sha512-64IiILNQlACWZLzFlpzNaG0bpQ4ytaB7fwOsbpsdIV70AfLUmIGGeuKL0YV2WmtcrURjE2aOvHD4/lrFV3Rg+Q== - dependencies: - cacache "^11.3.2" - find-cache-dir "^2.0.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^1.7.0" - source-map "^0.6.1" - terser "^3.17.0" - webpack-sources "^1.3.0" - worker-farm "^1.7.0" - -terser@^3.17.0: - version "3.17.0" - resolved "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" - integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== - dependencies: - commander "^2.19.0" - source-map "~0.6.1" - source-map-support "~0.5.10" - -test-exclude@^4.2.1: - version "4.2.3" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20" - integrity sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA== - dependencies: - arrify "^1.0.1" - micromatch "^2.3.11" - object-assign "^4.1.0" - read-pkg-up "^1.0.1" - require-main-filename "^1.0.1" - -text-table@^0.2.0, text-table@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" - integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= - dependencies: - thenify ">= 3.1.0 < 4" - -"thenify@>= 3.1.0 < 4": - version "3.3.0" - resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" - integrity sha1-5p44obq+lpsBCCB5eLn2K4hgSDk= - dependencies: - any-promise "^1.0.0" - -thread-loader@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/thread-loader/-/thread-loader-2.1.2.tgz#f585dd38e852c7f9cded5d092992108148f5eb30" - integrity sha512-7xpuc9Ifg6WU+QYw/8uUqNdRwMD+N5gjwHKMqETrs96Qn+7BHwECpt2Brzr4HFlf4IAkZsayNhmGdbkBsTJ//w== - dependencies: - loader-runner "^2.3.1" - loader-utils "^1.1.0" - neo-async "^2.6.0" - -throat@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" - integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= - -through2@^2.0.0: - version "2.0.5" - resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@^2.3.6, through@~2.3.4, through@~2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -thunky@^1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" - integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow== - -timers-browserify@^2.0.4: - version "2.0.10" - resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" - integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== - dependencies: - setimmediate "^1.0.4" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -tiny-emitter@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" - integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== - -tinycolor2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" - integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -tmpl@1.0.x: - version "1.0.4" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" - integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -topojson-client@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/topojson-client/-/topojson-client-3.0.0.tgz#1f99293a77ef42a448d032a81aa982b73f360d2f" - integrity sha1-H5kpOnfvQqRI0DKoGqmCtz82DS8= - dependencies: - commander "2" - -toposort@^1.0.0: - version "1.0.7" - resolved "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" - integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= - -tough-cookie@^2.3.3, tough-cookie@^2.3.4: - version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== - dependencies: - psl "^1.1.24" - punycode "^1.4.1" - -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: - punycode "^2.1.0" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - -tryer@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" - integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== - -tsconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" - integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== - dependencies: - "@types/strip-bom" "^3.0.0" - "@types/strip-json-comments" "0.0.30" - strip-bom "^3.0.0" - strip-json-comments "^2.0.0" - -tslib@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" - integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-fest@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" - integrity sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw== - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -uglify-js@3.4.x: - version "3.4.10" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" - integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== - dependencies: - commander "~2.19.0" - source-map "~0.6.1" - -uglify-js@^2.6.2: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-js@^3.1.4: - version "3.5.15" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.5.15.tgz#fe2b5378fd0b09e116864041437bff889105ce24" - integrity sha512-fe7aYFotptIddkwcm6YuA0HmknBZ52ZzOsUxZEdhhkSsz7RfjHDX2QDxwKTiv4JQ5t5NhfmpgAK+J7LiDhKSqg== - dependencies: - commander "~2.20.0" - source-map "~0.6.1" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== - -union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" - integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^0.4.3" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -unique-filename@^1.1.0, unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" - integrity sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg== - dependencies: - imurmurhash "^0.1.4" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" - integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== - -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-loader@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" - integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== - dependencies: - loader-utils "^1.1.0" - mime "^2.0.3" - schema-utils "^1.0.0" - -url-parse@^1.4.3: - version "1.4.7" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@1.0.0, util.promisify@^1.0.0, util.promisify@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -utila@^0.4.0, utila@~0.4: - version "0.4.0" - resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" - integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -uuid@^3.0.1, uuid@^3.3.2: - version "3.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vendors@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0" - integrity sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw== - -venn.js@~0.2.20: - version "0.2.20" - resolved "https://registry.yarnpkg.com/venn.js/-/venn.js-0.2.20.tgz#3f0e50cc75cba1f58692a8a32f67bd7aaf1aa6fa" - integrity sha512-bb5SYq/wamY9fvcuErb9a0FJkgIFHJjkLZWonQ+DoKKuDX3WPH2B4ouI1ce4K2iejBklQy6r1ly8nOGIyOCO6w== - dependencies: - d3-selection "^1.0.2" - d3-transition "^1.0.1" - fmin "0.0.2" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -viser-vue@^2.3.3: - version "2.4.5" - resolved "https://registry.yarnpkg.com/viser-vue/-/viser-vue-2.4.5.tgz#77318bb32113c5c10868c85c79cbbbff4a16d394" - integrity sha512-wSs07wKqsYj9hBzRLqSb87ytfnZrpP/KXQ54bMcjjrX+/ubSLoj1cVEoQcU9ivLy0KUTi1mANHQPA2i9q8UVTQ== - dependencies: - "@types/node" "*" - viser "^2.0.0" - vue "^2.5.3" - -viser@^2.0.0: - version "2.4.5" - resolved "https://registry.yarnpkg.com/viser/-/viser-2.4.5.tgz#781f4ef29fdc8893189ee88f745080be6aa77cec" - integrity sha512-NJDCEP3ApIi8PsrINFwlYB2z3VT1qf7jJS9vm/xTXv4Pb0wh3y+o3KLuSpzdJQkRtPewJcwMX21/97DhvXcIvA== - dependencies: - "@antv/g2" "^3.4.0" - "@antv/g2-brush" "^0.0.2" - "@antv/g2-plugin-slider" "^2.1.0" - "@types/d3-format" "*" - "@types/lodash" "*" - "@types/node" "^8.0.53" - d3-format "^1.3.0" - lodash "^4.17.4" - -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= - dependencies: - indexof "0.0.1" - -vue-clipboard2@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/vue-clipboard2/-/vue-clipboard2-0.2.1.tgz#9f06690af1c98aef344be1fc4beb00cdc5307ee1" - integrity sha512-n6ie/0g0bKohmLlC/5ja1esq2Q0jQ5hWmhNSZcvCsWfDeDnVARjl6cBB9p72XV1nlVfuqsZcfV8HTjjZAIlLBA== - dependencies: - clipboard "^2.0.0" - -vue-cropper@0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/vue-cropper/-/vue-cropper-0.4.4.tgz#63c85ba5c7f9d9779370930c8522b61deb177c97" - integrity sha512-5xJ3jWyTnsx3JM+lFV5mwdPjKfpYi2rvByEh4H0sFtCMILo3YTmMti2pq9YeoPLybJz04ho+wemYw5TqidYV5g== - dependencies: - "@babel/core" "^7.1.2" - "@babel/plugin-transform-runtime" "^7.1.0" - "@babel/preset-env" "^7.1.0" - babel-loader "^8.0.0-beta.0" - babel-plugin-transform-runtime "^6.23.0" - babel-runtime "^6.26.0" - css-loader "^1.0.0" - style-loader "^0.23.1" - vue "^2.5.17" - vue-template-compiler "^2.5.17" - webpack "^4.20.2" - -vue-eslint-parser@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1" - integrity sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw== - dependencies: - debug "^3.1.0" - eslint-scope "^3.7.1" - eslint-visitor-keys "^1.0.0" - espree "^3.5.2" - esquery "^1.0.0" - lodash "^4.17.4" - -vue-eslint-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz#00f4e4da94ec974b821a26ff0ed0f7a78402b8a1" - integrity sha512-JlHVZwBBTNVvzmifwjpZYn0oPWH2SgWv5dojlZBsrhablDu95VFD+hriB1rQGwbD+bms6g+rAFhQHk6+NyiS6g== - dependencies: - debug "^4.1.0" - eslint-scope "^4.0.0" - eslint-visitor-keys "^1.0.0" - espree "^4.1.0" - esquery "^1.0.1" - lodash "^4.17.11" - -vue-hot-reload-api@^2.3.0: - version "2.3.3" - resolved "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.3.tgz#2756f46cb3258054c5f4723de8ae7e87302a1ccf" - integrity sha512-KmvZVtmM26BQOMK1rwUZsrqxEGeKiYSZGA7SNWE6uExx8UX/cj9hq2MRV/wWC3Cq6AoeDGk57rL9YMFRel/q+g== - -vue-jest@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/vue-jest/-/vue-jest-3.0.4.tgz#b6a2b0d874968f26fa775ac901903fece531e08b" - integrity sha512-PY9Rwt4OyaVlA+KDJJ0614CbEvNOkffDI9g9moLQC/2DDoo0YrqZm7dHi13Q10uoK5Nt5WCYFdeAheOExPah0w== - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.26.0" - chalk "^2.1.0" - extract-from-css "^0.4.4" - find-babel-config "^1.1.0" - js-beautify "^1.6.14" - node-cache "^4.1.1" - object-assign "^4.1.1" - source-map "^0.5.6" - tsconfig "^7.0.0" - vue-template-es2015-compiler "^1.6.0" - -vue-loader@^15.7.0: - version "15.7.0" - resolved "https://registry.npmjs.org/vue-loader/-/vue-loader-15.7.0.tgz#27275aa5a3ef4958c5379c006dd1436ad04b25b3" - integrity sha512-x+NZ4RIthQOxcFclEcs8sXGEWqnZHodL2J9Vq+hUz+TDZzBaDIh1j3d9M2IUlTjtrHTZy4uMuRdTi8BGws7jLA== - dependencies: - "@vue/component-compiler-utils" "^2.5.1" - hash-sum "^1.0.2" - loader-utils "^1.1.0" - vue-hot-reload-api "^2.3.0" - vue-style-loader "^4.1.0" - -vue-ls@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/vue-ls/-/vue-ls-3.2.1.tgz#25d1c75b3a51c17018129de607b44bb120a3385a" - integrity sha512-JoZDpSu0qV5AM50vspEzOut2lcm8R0tr5WG99jMHh14qFXkUes3ZdmDMG/p8iSQVQpg0pd/svGwM9Nd7OI2oaw== - -vue-quill-editor@^3.0.6: - version "3.0.6" - resolved "https://registry.npm.taobao.org/vue-quill-editor/download/vue-quill-editor-3.0.6.tgz#1f85646211d68a31a80a72cb7f45bb2f119bc8fb" - integrity sha1-H4VkYhHWijGoCnLLf0W7LxGbyPs= - dependencies: - object-assign "^4.1.1" - quill "^1.3.4" - -vue-ref@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vue-ref/-/vue-ref-1.0.4.tgz#c27862b15a2720cff6b792566d824d1c3ac53320" - integrity sha512-DDyR/HlHeeNSkEi4Uj/F/7rER9ma0lnqqx8j9uEhdh0UyBWUCI1HJnX01OjTpLMB4F4TZHlK/6H2I6lqq3QC3Q== - -vue-router@^3.0.1: - version "3.0.6" - resolved "https://registry.npmjs.org/vue-router/-/vue-router-3.0.6.tgz#2e4f0f9cbb0b96d0205ab2690cfe588935136ac3" - integrity sha512-Ox0ciFLswtSGRTHYhGvx2L44sVbTPNS+uD2kRISuo8B39Y79rOo0Kw0hzupTmiVtftQYCZl87mwldhh2L9Aquw== - -vue-style-loader@^4.1.0: - version "4.1.2" - resolved "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8" - integrity sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ== - dependencies: - hash-sum "^1.0.2" - loader-utils "^1.0.2" - -vue-svg-component-builder@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/vue-svg-component-builder/-/vue-svg-component-builder-2.0.3.tgz#c4e0a19073587ab882fd6f72bb7b3b63b4396801" - integrity sha512-We9ZLSYPQx9y3v5+HNWyjkGFaxZMlWPTqYBU08y4YT46f453BQ4JxIoS8rV0a8PIxnKap7m/YIzrdIfoHxrpaA== - -vue-svg-component-runtime@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/vue-svg-component-runtime/-/vue-svg-component-runtime-1.0.1.tgz#c4c241cdf92fead742ef33133b997ff42d8b9ee6" - integrity sha512-TkmZ1qwFeFJSRH6b6KVqDU2f8DCSdoNoo/veKqog7FsyF0UETTI66ALKX1rrLXy/KT6LSaJB5IfZkuuSfaQsEA== - -vue-svg-icon-loader@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/vue-svg-icon-loader/-/vue-svg-icon-loader-2.1.1.tgz#7b999ccb0647ce3b3903bfbf535fe247e11b032a" - integrity sha512-JOL4fyh9rnbcqMLTF5NVG8YVupnLIMHMY+3CLMaEb9xDUmfk6Cp3RqyI/8gBea7d51i4lyNdzZ3tQ/EJLQxQDA== - dependencies: - "@types/loader-utils" "1.1.3" - "@types/node" "8.9" - loader-utils "1.1.0" - vue-svg-component-builder "2.0.3" - -vue-template-compiler@^2.5.17, vue-template-compiler@^2.5.22: - version "2.6.7" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.7.tgz#7f6c14eacf3c912d28d33b029cde706d9756e00c" - integrity sha512-ZjxJLr6Lw2gj6aQGKwBWTxVNNd28/qggIdwvr5ushrUHUvqgbHD0xusOVP2yRxT4pX3wRIJ2LfxjgFT41dEtoQ== - dependencies: - de-indent "^1.0.2" - he "^1.1.0" - -vue-template-es2015-compiler@^1.6.0, vue-template-es2015-compiler@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" - integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== - -vue@^2.5.17, vue@^2.5.22, vue@^2.5.3: - version "2.6.7" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.7.tgz#254f188e7621d2d19ee28d0c0442c6d21b53ae2d" - integrity sha512-g7ADfQ82QU+j6F/bVDioVQf2ccIMYLuR4E8ev+RsDBlmwRkhGO3HhgF4PF9vpwjdPpxyb1zzLur2nQ2oIMAMEg== - -vuex@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/vuex/-/vuex-3.1.1.tgz#0c264bfe30cdbccf96ab9db3177d211828a5910e" - integrity sha512-ER5moSbLZuNSMBFnEBVGhQ1uCBNJslH9W/Dw2W7GZN23UQA69uapP5GTT9Vm8Trc0PzBSVt6LzF3hGjmv41xcg== - -w3c-hr-time@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" - integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= - dependencies: - browser-process-hrtime "^0.1.2" - -walker@~1.0.5: - version "1.0.7" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" - integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= - dependencies: - makeerror "1.0.x" - -wangeditor@^3.1.1: - version "3.1.1" - resolved "https://registry.npm.taobao.org/wangeditor/download/wangeditor-3.1.1.tgz#fbd3c1d4976923c9edebb85b29d30b35512ad039" - integrity sha1-+9PB1JdpI8nt67hbKdMLNVEq0Dk= - -warning@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" - integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w= - dependencies: - loose-envify "^1.0.0" - -watch@~0.18.0: - version "0.18.0" - resolved "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" - integrity sha1-KAlUdsbffJDJYxOJkMClQj60uYY= - dependencies: - exec-sh "^0.2.0" - minimist "^1.2.0" - -watchpack@^1.5.0: - version "1.6.0" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== - dependencies: - chokidar "^2.0.2" - graceful-fs "^4.1.2" - neo-async "^2.5.0" - -wbuf@^1.1.0, wbuf@^1.7.3: - version "1.7.3" - resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== - dependencies: - minimalistic-assert "^1.0.0" - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= - dependencies: - defaults "^1.0.3" - -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - -webpack-bundle-analyzer@^3.3.0: - version "3.3.2" - resolved "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.3.2.tgz#3da733a900f515914e729fcebcd4c40dde71fc6f" - integrity sha512-7qvJLPKB4rRWZGjVp5U1KEjwutbDHSKboAl0IfafnrdXMrgC0tOtZbQD6Rw0u4cmpgRN4O02Fc0t8eAT+FgGzA== - dependencies: - acorn "^6.0.7" - acorn-walk "^6.1.1" - bfj "^6.1.1" - chalk "^2.4.1" - commander "^2.18.0" - ejs "^2.6.1" - express "^4.16.3" - filesize "^3.6.1" - gzip-size "^5.0.0" - lodash "^4.17.10" - mkdirp "^0.5.1" - opener "^1.5.1" - ws "^6.0.0" - -webpack-chain@^4.11.0: - version "4.12.1" - resolved "https://registry.npmjs.org/webpack-chain/-/webpack-chain-4.12.1.tgz#6c8439bbb2ab550952d60e1ea9319141906c02a6" - integrity sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ== - dependencies: - deepmerge "^1.5.2" - javascript-stringify "^1.6.0" - -webpack-dev-middleware@^3.7.0: - version "3.7.0" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz#ef751d25f4e9a5c8a35da600c5fda3582b5c6cff" - integrity sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA== - dependencies: - memory-fs "^0.4.1" - mime "^2.4.2" - range-parser "^1.2.1" - webpack-log "^2.0.0" - -webpack-dev-server@^3.4.1: - version "3.4.1" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.4.1.tgz#a5fd8dec95dec410098e7d9a037ff9405395d51a" - integrity sha512-CRqZQX2ryMtrg0r3TXQPpNh76eM1HD3Wmu6zDBxIKi/d2y+4aa28Ia8weNT0bfgWpY6Vs3Oq/K8+DjfbR+tWYw== - dependencies: - ansi-html "0.0.7" - bonjour "^3.5.0" - chokidar "^2.1.6" - compression "^1.7.4" - connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" - express "^4.17.0" - html-entities "^1.2.1" - http-proxy-middleware "^0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" - killable "^1.0.1" - loglevel "^1.6.1" - opn "^5.5.0" - portfinder "^1.0.20" - schema-utils "^1.0.0" - selfsigned "^1.10.4" - semver "^6.0.0" - serve-index "^1.9.1" - sockjs "0.3.19" - sockjs-client "1.3.0" - spdy "^4.0.0" - strip-ansi "^3.0.1" - supports-color "^6.1.0" - url "^0.11.0" - webpack-dev-middleware "^3.7.0" - webpack-log "^2.0.0" - yargs "12.0.5" - -webpack-log@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== - dependencies: - ansi-colors "^3.0.0" - uuid "^3.3.2" - -webpack-merge@^4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz#5e923cf802ea2ace4fd5af1d3247368a633489b4" - integrity sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw== - dependencies: - lodash "^4.17.5" - -webpack-sources@^1.1.0, webpack-sources@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" - integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-theme-color-replacer@^1.2.15: - version "1.2.15" - resolved "https://registry.yarnpkg.com/webpack-theme-color-replacer/-/webpack-theme-color-replacer-1.2.15.tgz#f42ab038974d8a6ee85a074b65de0cfc17c9f472" - integrity sha512-tht5fk6ce6ZwXqPbvkLBJMS+iAM3H60pyexKvZHEbkHpQ1Onq2Y0u6+wUbNBQ/QfDEvCTX5MSkNfD2w/ZJEeKg== - -"webpack@>=4 < 4.29": - version "4.28.4" - resolved "https://registry.npmjs.org/webpack/-/webpack-4.28.4.tgz#1ddae6c89887d7efb752adf0c3cd32b9b07eacd0" - integrity sha512-NxjD61WsK/a3JIdwWjtIpimmvE6UrRi3yG54/74Hk9rwNj5FPkA4DJCf1z4ByDWLkvZhTZE+P3C/eh6UD5lDcw== - dependencies: - "@webassemblyjs/ast" "1.7.11" - "@webassemblyjs/helper-module-context" "1.7.11" - "@webassemblyjs/wasm-edit" "1.7.11" - "@webassemblyjs/wasm-parser" "1.7.11" - acorn "^5.6.2" - acorn-dynamic-import "^3.0.0" - ajv "^6.1.0" - ajv-keywords "^3.1.0" - chrome-trace-event "^1.0.0" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.0" - json-parse-better-errors "^1.0.2" - loader-runner "^2.3.0" - loader-utils "^1.1.0" - memory-fs "~0.4.1" - micromatch "^3.1.8" - mkdirp "~0.5.0" - neo-async "^2.5.0" - node-libs-browser "^2.0.0" - schema-utils "^0.4.4" - tapable "^1.1.0" - terser-webpack-plugin "^1.1.0" - watchpack "^1.5.0" - webpack-sources "^1.3.0" - -webpack@^4.20.2: - version "4.29.5" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.29.5.tgz#52b60a7b0838427c3a894cd801a11dc0836bc79f" - integrity sha512-DuWlYUT982c7XVHodrLO9quFbNpVq5FNxLrMUfYUTlgKW0+yPimynYf1kttSQpEneAL1FH3P3OLNgkyImx8qIQ== - dependencies: - "@webassemblyjs/ast" "1.8.3" - "@webassemblyjs/helper-module-context" "1.8.3" - "@webassemblyjs/wasm-edit" "1.8.3" - "@webassemblyjs/wasm-parser" "1.8.3" - acorn "^6.0.5" - acorn-dynamic-import "^4.0.0" - ajv "^6.1.0" - ajv-keywords "^3.1.0" - chrome-trace-event "^1.0.0" - enhanced-resolve "^4.1.0" - eslint-scope "^4.0.0" - json-parse-better-errors "^1.0.2" - loader-runner "^2.3.0" - loader-utils "^1.1.0" - memory-fs "~0.4.1" - micromatch "^3.1.8" - mkdirp "~0.5.0" - neo-async "^2.5.0" - node-libs-browser "^2.0.0" - schema-utils "^1.0.0" - tapable "^1.1.0" - terser-webpack-plugin "^1.1.0" - watchpack "^1.5.0" - webpack-sources "^1.3.0" - -websocket-driver@>=0.5.1: - version "0.7.0" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" - integrity sha1-DK+dLXVdk67gSdS90NP+LMoqJOs= - dependencies: - http-parser-js ">=0.4.0" - websocket-extensions ">=0.1.1" - -websocket-extensions@>=0.1.1: - version "0.1.3" - resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" - integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== - -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: - version "1.0.5" - resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^6.4.1: - version "6.5.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" - integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -whatwg-url@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" - integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= - -which@^1.2.12, which@^1.2.9, which@^1.3.0: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= - -wolfy87-eventemitter@~5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wolfy87-eventemitter/-/wolfy87-eventemitter-5.1.0.tgz#35c1ac0dd1ac0c15e35d981508fc22084a13a011" - integrity sha1-NcGsDdGsDBXjXZgVCPwiCEoToBE= - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= - -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^2.1.0: - version "2.4.2" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9" - integrity sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - -write@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= - dependencies: - mkdirp "^0.5.1" - -ws@^5.2.0: - version "5.2.2" - resolved "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== - dependencies: - async-limiter "~1.0.0" - -ws@^6.0.0: - version "6.2.1" - resolved "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68= - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= - -"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.0, yallist@^3.0.2: - version "3.0.3" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" - integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== - -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^13.1.0: - version "13.1.0" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.0.tgz#7016b6dd03e28e1418a510e258be4bff5a31138f" - integrity sha512-Yq+32PrijHRri0vVKQEm+ys8mbqWjLiwQkMFNXEENutzLPP0bE4Lcd4iA3OQY5HF+GD3xXxf0MEHb8E4/SA3AA== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^9.0.2: - version "9.0.2" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" - integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc= - dependencies: - camelcase "^4.1.0" - -yargs@12.0.5: - version "12.0.5" - resolved "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== - dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" - -yargs@^11.0.0: - version "11.1.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" - integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A== - dependencies: - cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^9.0.2" - -yargs@^13.0.0: - version "13.2.4" - resolved "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" - integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" - -yorkie@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/yorkie/-/yorkie-2.0.0.tgz#92411912d435214e12c51c2ae1093e54b6bb83d9" - integrity sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw== - dependencies: - execa "^0.8.0" - is-ci "^1.0.10" - normalize-path "^1.0.0" - strip-indent "^2.0.0" +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ant-design/colors@^3.1.0": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-3.2.2.tgz#5ad43d619e911f3488ebac303d606e66a8423903" + integrity sha512-YKgNbG2dlzqMhA9NtI3/pbY16m3Yl/EeWBRa+lB1X1YaYxHrxNexiQYCLTWO/uDvAjLFMEDU+zR901waBtMtjQ== + dependencies: + tinycolor2 "^1.4.1" + +"@ant-design/colors@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@ant-design/colors/-/colors-6.0.0.tgz#9b9366257cffcc47db42b9d0203bb592c13c0298" + integrity sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ== + dependencies: + "@ctrl/tinycolor" "^3.4.0" + +"@ant-design/icons-svg@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz#8630da8eb4471a4aabdaed7d1ff6a97dcb2cf05a" + integrity sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw== + +"@ant-design/icons-vue@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@ant-design/icons-vue/-/icons-vue-2.0.0.tgz#0357f5010a404e9f34a87a4b41b2a08df691dbce" + integrity sha512-2c0QQE5hL4N48k5NkPG5sdpMl9YnvyNhf0U7YkdZYDlLnspoRU7vIA0UK9eHBs6OpFLcJB6o8eJrIl2ajBskPg== + dependencies: + "@ant-design/colors" "^3.1.0" + babel-runtime "^6.26.0" + +"@ant-design/icons-vue@^6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@ant-design/icons-vue/-/icons-vue-6.1.0.tgz#f9324fdc0eb4cea943cf626d2bf3db9a4ff4c074" + integrity sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA== + dependencies: + "@ant-design/colors" "^6.0.0" + "@ant-design/icons-svg" "^4.2.1" + +"@ant-design/icons@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@ant-design/icons/-/icons-2.1.1.tgz#7b9c08dffd4f5d41db667d9dbe5e0107d0bd9a4a" + integrity sha512-jCH+k2Vjlno4YWl6g535nHR09PwCEmTBKAG6VqF+rhkrSPRLfgpU2maagwbZPLjaHuU5Jd1DFQ2KJpQuI6uG8w== + +"@antv/adjust@~0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@antv/adjust/-/adjust-0.1.1.tgz#e263ab0e1a1941a648842fc086cf65a7e3b75e98" + integrity sha512-9FaMOyBlM4AgoRL0b5o0VhEKAYkexBNUrxV8XmpHU/9NBPJONBOB/NZUlQDqxtLItrt91tCfbAuMQmF529UX2Q== + dependencies: + "@antv/util" "~1.3.1" + +"@antv/attr@~0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@antv/attr/-/attr-0.1.2.tgz#2eeb122fcaaf851a2d8749abc7c60519d3f77e37" + integrity sha512-QXjP+T2I+pJQcwZx1oCA4tipG43vgeCeKcGGKahlcxb71OBAzjJZm1QbF4frKXcnOqRkxVXtCr70X9TRair3Ew== + dependencies: + "@antv/util" "~1.3.1" + +"@antv/component@~0.3.2": + version "0.3.8" + resolved "https://registry.yarnpkg.com/@antv/component/-/component-0.3.8.tgz#677ecd3b5026907d4cb70d9082951d7c3c2b5434" + integrity sha512-1WN3FzeRyJ1jraS/2og5gnm2ragnwtRMVQMiLolztWaUgC++F/B1CcSrPYfV1WvYrfuwbpX/QQxo3HL9aS+YJA== + dependencies: + "@antv/attr" "~0.1.2" + "@antv/g" "~3.3.5" + "@antv/util" "~1.3.1" + wolfy87-eventemitter "~5.1.0" + +"@antv/coord@~0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@antv/coord/-/coord-0.1.0.tgz#48a80ae36d07552f96657e7f8095227c63f0c0a9" + integrity sha512-W1R8h3Jfb3AfMBVfCreFPMVetgEYuwHBIGn0+d3EgYXe2ckOF8XWjkpGF1fZhOMHREMr+Gt27NGiQh8yBdLUgg== + dependencies: + "@antv/util" "~1.3.1" + +"@antv/data-set@^0.10.1": + version "0.10.2" + resolved "https://registry.yarnpkg.com/@antv/data-set/-/data-set-0.10.2.tgz#584a9574e7e0853847cb658d51b9f7345a00032f" + integrity sha512-FFWG5tiTiFiUrLDRwulraU5XfOdDjkYOlZna+AMT9FJw406D/gfS8eXM9YibscBH28M/+KLAVO8xEwuD1sc3bw== + dependencies: + "@antv/hierarchy" "~0.4.0" + "@antv/util" "~1.3.1" + d3-array "~1.2.0" + d3-composite-projections "~1.2.0" + d3-dsv "~1.0.5" + d3-geo "~1.6.4" + d3-geo-projection "~2.1.2" + d3-hexjson "~1.0.1" + d3-hierarchy "~1.1.5" + d3-sankey "~0.7.1" + d3-voronoi "~1.1.2" + dagre "~0.8.2" + point-at-length "~1.0.2" + regression "~2.0.0" + simple-statistics "~6.1.0" + topojson-client "~3.0.0" + wolfy87-eventemitter "~5.1.0" + +"@antv/g2-brush@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@antv/g2-brush/-/g2-brush-0.0.2.tgz#0b65f3ebbf82690202913d0b6759ab2900faa841" + integrity sha512-7O9szwem19nmEgReXhFB8kVLRaz8J5MHvrzDSDY36YaBOaHSWRGHnvYt2KkkPqgWtHtLY1srssk4X/UmP5govA== + +"@antv/g2-plugin-slider@^2.1.0": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@antv/g2-plugin-slider/-/g2-plugin-slider-2.1.1.tgz#c20c5f1cf085bea478f8ab1fc84837e45c46a065" + integrity sha512-nB678VEGG3FkrvkDDFADAKjLQIeXzITEYqey5oeOpbf0vT5jOa55lQDyJDZ79cK8PmU/Hz6VPeSb3CNQBA+/FQ== + +"@antv/g2@3.5.3": + version "3.5.3" + resolved "https://registry.yarnpkg.com/@antv/g2/-/g2-3.5.3.tgz#8451719aac860690b67a409d5fb7b06802c4aca6" + integrity sha512-JXaceNrJ186auehjBLatl0tz/mYLa2fhQ/SK5/aC4nTcvCdSDIJgMXPmAaKbsqz7y9G0iE9FDRxE2UMkYIzI2A== + dependencies: + "@antv/adjust" "~0.1.0" + "@antv/attr" "~0.1.2" + "@antv/component" "~0.3.2" + "@antv/coord" "~0.1.0" + "@antv/g" "~3.3.6" + "@antv/scale" "~0.1.1" + "@antv/util" "~1.3.1" + venn.js "~0.2.20" + wolfy87-eventemitter "~5.1.0" + +"@antv/g@~3.3.5", "@antv/g@~3.3.6": + version "3.3.6" + resolved "https://registry.yarnpkg.com/@antv/g/-/g-3.3.6.tgz#11fed9ddc9ed4e5a2aa244b7c8abb982a003f201" + integrity sha512-2GtyTz++s0BbN6s0ZL2/nrqGYCkd52pVoNH92YkrTdTOvpO6Z4DNoo6jGVgZdPX6Nzwli6yduC8MinVAhE8X6g== + dependencies: + "@antv/gl-matrix" "~2.7.1" + "@antv/util" "~1.3.1" + d3-ease "~1.0.3" + d3-interpolate "~1.1.5" + d3-timer "~1.0.6" + wolfy87-eventemitter "~5.1.0" + +"@antv/gl-matrix@^2.7.1", "@antv/gl-matrix@~2.7.1": + version "2.7.1" + resolved "https://registry.yarnpkg.com/@antv/gl-matrix/-/gl-matrix-2.7.1.tgz#acb8e37f7ab3df01345aba4372d7942be42eba14" + integrity sha512-oOWcVNlpELIKi9x+Mm1Vwbz8pXfkbJKykoCIOJ/dNK79hSIANbpXJ5d3Rra9/wZqK6MC961B7sybFhPlLraT3Q== + +"@antv/hierarchy@~0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@antv/hierarchy/-/hierarchy-0.4.0.tgz#712b5b4477ee0b8b8db174c682b5356b0411aab6" + integrity sha512-ols+m+Z8QA4895SWMTOSjVImOX4tEbWQTwJ0NE+WATc0WLSKs6D9y2yaR+ZWt6P60BMGVIKS6lIfabO3CwGgnQ== + dependencies: + "@antv/util" "~1.3.1" + +"@antv/scale@~0.1.1": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@antv/scale/-/scale-0.1.3.tgz#4876e6140cb7dcda190e7fe2e780882dcac6b09d" + integrity sha512-oknlOg4OUqIh8LygrfQttx+OAnNJm2fQ81si4g8aby1WJJwj/TU1gCr+J3loIpKBtBK4VpP/OzTTqg1Ym67SOQ== + dependencies: + "@antv/util" "~1.3.1" + fecha "~2.3.3" + +"@antv/util@~1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@antv/util/-/util-1.3.1.tgz#30a34b201ff9126ec0d58c72c8166a9c3e644ccd" + integrity sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA== + dependencies: + "@antv/gl-matrix" "^2.7.1" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35", "@babel/code-frame@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/core@^7.0.0", "@babel/core@^7.1.2": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.6.4.tgz#6ebd9fe00925f6c3e177bb726a188b5f578088ff" + integrity sha512-Rm0HGw101GY8FTzpWSyRbki/jzq+/PkNQJ+nSulrdY6gFGOsNseCqD6KHRYe2E+EdzuBdr2pxCp6s4Uk6eJ+XQ== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.6.4" + "@babel/helpers" "^7.6.2" + "@babel/parser" "^7.6.4" + "@babel/template" "^7.6.0" + "@babel/traverse" "^7.6.3" + "@babel/types" "^7.6.3" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.6.3", "@babel/generator@^7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.4.tgz#a4f8437287bf9671b07f483b76e3bb731bc97671" + integrity sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w== + dependencies: + "@babel/types" "^7.6.3" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" + integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" + integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-call-delegate@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" + integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== + dependencies: + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/traverse" "^7.4.4" + "@babel/types" "^7.4.4" + +"@babel/helper-create-class-features-plugin@^7.5.5", "@babel/helper-create-class-features-plugin@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.6.0.tgz#769711acca889be371e9bc2eb68641d55218021f" + integrity sha512-O1QWBko4fzGju6VoVvrZg0RROCVifcLxiApnGP3OWfWzvxRZFCoBD81K5ur5e3bVY2Vf/5rIJm8cqPKn8HUJng== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-split-export-declaration" "^7.4.4" + +"@babel/helper-define-map@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369" + integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/types" "^7.5.5" + lodash "^4.17.13" + +"@babel/helper-explode-assignable-expression@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" + integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== + dependencies: + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== + dependencies: + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-get-function-arity@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-hoist-variables@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" + integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== + dependencies: + "@babel/types" "^7.4.4" + +"@babel/helper-member-expression-to-functions@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" + integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== + dependencies: + "@babel/types" "^7.5.5" + +"@babel/helper-module-imports@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" + integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" + integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/template" "^7.4.4" + "@babel/types" "^7.5.5" + lodash "^4.17.13" + +"@babel/helper-optimise-call-expression@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" + integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-plugin-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" + integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== + +"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" + integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== + dependencies: + lodash "^4.17.13" + +"@babel/helper-remap-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" + integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-wrap-function" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-replace-supers@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" + integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.5.5" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/traverse" "^7.5.5" + "@babel/types" "^7.5.5" + +"@babel/helper-simple-access@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" + integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== + dependencies: + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-split-export-declaration@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" + integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== + dependencies: + "@babel/types" "^7.4.4" + +"@babel/helper-wrap-function@^7.1.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" + integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.2.0" + +"@babel/helpers@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.6.2.tgz#681ffe489ea4dcc55f23ce469e58e59c1c045153" + integrity sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA== + dependencies: + "@babel/template" "^7.6.0" + "@babel/traverse" "^7.6.2" + "@babel/types" "^7.6.0" + +"@babel/highlight@^7.0.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" + integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== + dependencies: + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.0.0", "@babel/parser@^7.6.0", "@babel/parser@^7.6.3", "@babel/parser@^7.6.4": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.4.tgz#cb9b36a7482110282d5cb6dd424ec9262b473d81" + integrity sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A== + +"@babel/plugin-proposal-async-generator-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" + integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + +"@babel/plugin-proposal-class-properties@^7.0.0": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4" + integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.5.5" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-proposal-decorators@^7.1.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.6.0.tgz#6659d2572a17d70abd68123e89a12a43d90aa30c" + integrity sha512-ZSyYw9trQI50sES6YxREXKu+4b7MAg6Qx2cvyDDYjP2Hpzd3FleOUwC9cqn1+za8d0A2ZU8SHujxFao956efUg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.6.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-decorators" "^7.2.0" + +"@babel/plugin-proposal-dynamic-import@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz#e532202db4838723691b10a67b8ce509e397c506" + integrity sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + +"@babel/plugin-proposal-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" + integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + +"@babel/plugin-proposal-object-rest-spread@^7.3.4", "@babel/plugin-proposal-object-rest-spread@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096" + integrity sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" + integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.2.0", "@babel/plugin-proposal-unicode-property-regex@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz#05413762894f41bfe42b9a5e80919bd575dcc802" + integrity sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.6.0" + +"@babel/plugin-syntax-async-generators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" + integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-decorators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz#c50b1b957dcc69e4b1127b65e1c33eef61570c1b" + integrity sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" + integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" + integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7" + integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-object-rest-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" + integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" + integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-arrow-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" + integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-async-to-generator@^7.3.4", "@babel/plugin-transform-async-to-generator@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e" + integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + +"@babel/plugin-transform-block-scoped-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" + integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-block-scoping@^7.3.4", "@babel/plugin-transform-block-scoping@^7.6.3": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz#6e854e51fbbaa84351b15d4ddafe342f3a5d542a" + integrity sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + lodash "^4.17.13" + +"@babel/plugin-transform-classes@^7.3.4", "@babel/plugin-transform-classes@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9" + integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-define-map" "^7.5.5" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-split-export-declaration" "^7.4.4" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" + integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-destructuring@^7.2.0", "@babel/plugin-transform-destructuring@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6" + integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-dotall-regex@^7.2.0", "@babel/plugin-transform-dotall-regex@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz#44abb948b88f0199a627024e1508acaf8dc9b2f9" + integrity sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.6.0" + +"@babel/plugin-transform-duplicate-keys@^7.2.0", "@babel/plugin-transform-duplicate-keys@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" + integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-exponentiation-operator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" + integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-for-of@^7.2.0", "@babel/plugin-transform-for-of@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" + integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-function-name@^7.2.0", "@babel/plugin-transform-function-name@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad" + integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" + integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-member-expression-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" + integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-amd@^7.2.0", "@babel/plugin-transform-modules-amd@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" + integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-commonjs@^7.2.0", "@babel/plugin-transform-modules-commonjs@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486" + integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g== + dependencies: + "@babel/helper-module-transforms" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-systemjs@^7.3.4", "@babel/plugin-transform-modules-systemjs@^7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249" + integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg== + dependencies: + "@babel/helper-hoist-variables" "^7.4.4" + "@babel/helper-plugin-utils" "^7.0.0" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-umd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" + integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.3.0", "@babel/plugin-transform-named-capturing-groups-regex@^7.6.3": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.3.tgz#aaa6e409dd4fb2e50b6e2a91f7e3a3149dbce0cf" + integrity sha512-jTkk7/uE6H2s5w6VlMHeWuH+Pcy2lmdwFoeWCVnvIrDUnB5gQqTVI8WfmEAhF2CDEarGrknZcmSFg1+bkfCoSw== + dependencies: + regexpu-core "^4.6.0" + +"@babel/plugin-transform-new-target@^7.0.0", "@babel/plugin-transform-new-target@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" + integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-object-super@^7.2.0", "@babel/plugin-transform-object-super@^7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" + integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.5.5" + +"@babel/plugin-transform-parameters@^7.2.0", "@babel/plugin-transform-parameters@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" + integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== + dependencies: + "@babel/helper-call-delegate" "^7.4.4" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-property-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" + integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-regenerator@^7.3.4", "@babel/plugin-transform-regenerator@^7.4.5": + version "7.4.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f" + integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA== + dependencies: + regenerator-transform "^0.14.0" + +"@babel/plugin-transform-reserved-words@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" + integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-runtime@^7.1.0", "@babel/plugin-transform-runtime@^7.4.0": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.6.2.tgz#2669f67c1fae0ae8d8bf696e4263ad52cb98b6f8" + integrity sha512-cqULw/QB4yl73cS5Y0TZlQSjDvNkzDbu0FurTZyHlJpWE5T3PCMdnyV+xXoH1opr1ldyHODe3QAX3OMAii5NxA== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + resolve "^1.8.1" + semver "^5.5.1" + +"@babel/plugin-transform-shorthand-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" + integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-spread@^7.2.0", "@babel/plugin-transform-spread@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz#fc77cf798b24b10c46e1b51b1b88c2bf661bb8dd" + integrity sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-sticky-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" + integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + +"@babel/plugin-transform-template-literals@^7.2.0", "@babel/plugin-transform-template-literals@^7.4.4": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" + integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typeof-symbol@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" + integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-unicode-regex@^7.2.0", "@babel/plugin-transform-unicode-regex@^7.6.2": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz#b692aad888a7e8d8b1b214be6b9dc03d5031f698" + integrity sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.4.4" + regexpu-core "^4.6.0" + +"@babel/polyfill@^7.2.5": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.6.0.tgz#6d89203f8b6cd323e8d946e47774ea35dc0619cc" + integrity sha512-q5BZJI0n/B10VaQQvln1IlDK3BTBJFbADx7tv+oXDPIDZuTo37H5Adb9jhlXm/fEN4Y7/64qD9mnrJJG7rmaTw== + dependencies: + core-js "^2.6.5" + regenerator-runtime "^0.13.2" + +"@babel/preset-env@^7.0.0 < 7.4.0": + version "7.3.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.3.4.tgz#887cf38b6d23c82f19b5135298bdb160062e33e1" + integrity sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.3.4" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.2.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.3.4" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.3.4" + "@babel/plugin-transform-classes" "^7.3.4" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.2.0" + "@babel/plugin-transform-dotall-regex" "^7.2.0" + "@babel/plugin-transform-duplicate-keys" "^7.2.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.2.0" + "@babel/plugin-transform-function-name" "^7.2.0" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.2.0" + "@babel/plugin-transform-modules-commonjs" "^7.2.0" + "@babel/plugin-transform-modules-systemjs" "^7.3.4" + "@babel/plugin-transform-modules-umd" "^7.2.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.3.0" + "@babel/plugin-transform-new-target" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.2.0" + "@babel/plugin-transform-parameters" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.3.4" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.2.0" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.2.0" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.2.0" + browserslist "^4.3.4" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.3.0" + +"@babel/preset-env@^7.1.0": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.3.tgz#9e1bf05a2e2d687036d24c40e4639dc46cef2271" + integrity sha512-CWQkn7EVnwzlOdR5NOm2+pfgSNEZmvGjOhlCHBDq0J8/EStr+G+FvPEiz9B56dR6MoiUFjXhfE4hjLoAKKJtIQ== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-dynamic-import" "^7.5.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.6.2" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.6.2" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.5.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.6.3" + "@babel/plugin-transform-classes" "^7.5.5" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.6.0" + "@babel/plugin-transform-dotall-regex" "^7.6.2" + "@babel/plugin-transform-duplicate-keys" "^7.5.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.4.4" + "@babel/plugin-transform-function-name" "^7.4.4" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-member-expression-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.5.0" + "@babel/plugin-transform-modules-commonjs" "^7.6.0" + "@babel/plugin-transform-modules-systemjs" "^7.5.0" + "@babel/plugin-transform-modules-umd" "^7.2.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.3" + "@babel/plugin-transform-new-target" "^7.4.4" + "@babel/plugin-transform-object-super" "^7.5.5" + "@babel/plugin-transform-parameters" "^7.4.4" + "@babel/plugin-transform-property-literals" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.4.5" + "@babel/plugin-transform-reserved-words" "^7.2.0" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.6.2" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.4.4" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.6.2" + "@babel/types" "^7.6.3" + browserslist "^4.6.0" + core-js-compat "^3.1.1" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.5.0" + +"@babel/runtime-corejs2@^7.2.0": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.6.3.tgz#de3f446b3fb688b98cbd220474d1a7cad909bcb8" + integrity sha512-nuA2o+rgX2+PrNTZ063ehncVcg7sn+tU71BB81SaWRVUbGwCOlb0+yQA1e0QqmzOfRSYOxfvf8cosYqFbJEiwQ== + dependencies: + core-js "^2.6.5" + regenerator-runtime "^0.13.2" + +"@babel/runtime@^7.0.0": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.6.3.tgz#935122c74c73d2240cafd32ddb5fc2a6cd35cf1f" + integrity sha512-kq6anf9JGjW8Nt5rYfEuGRaEAaH1mkv3Bbu6rYvLOpPh/RusSJXuKPEAoZ7L7gybZkchE8+NV5g9vKF4AGAtsA== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/template@^7.1.0", "@babel/template@^7.4.4", "@babel/template@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" + integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.6.0" + "@babel/types" "^7.6.0" + +"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5", "@babel/traverse@^7.6.2", "@babel/traverse@^7.6.3": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.3.tgz#66d7dba146b086703c0fb10dd588b7364cec47f9" + integrity sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw== + dependencies: + "@babel/code-frame" "^7.5.5" + "@babel/generator" "^7.6.3" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.4.4" + "@babel/parser" "^7.6.3" + "@babel/types" "^7.6.3" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0", "@babel/types@^7.6.3": + version "7.6.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.3.tgz#3f07d96f854f98e2fbd45c64b0cb942d11e8ba09" + integrity sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA== + dependencies: + esutils "^2.0.2" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@ctrl/tinycolor@^3.4.0": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz#75b4c27948c81e88ccd3a8902047bcd797f38d32" + integrity sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw== + +"@hapi/address@2.x.x": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.2.tgz#1c794cd6dbf2354d1eb1ef10e0303f573e1c7222" + integrity sha512-O4QDrx+JoGKZc6aN64L04vqa7e41tIiLU+OvKdcYaEMP97UttL0f9GIi9/0A4WAMx0uBd6SidDIhktZhgOcN8Q== + +"@hapi/bourne@1.x.x": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" + integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== + +"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.3.2.tgz#91e7188edebc5d876f0b91a860f555ff06f0782b" + integrity sha512-NP5SG4bzix+EtSMtcudp8TvI0lB46mXNo8uFpTDw6tqxGx4z5yx+giIunEFA0Z7oUO4DuWrOJV9xqR2tJVEdyA== + +"@hapi/joi@^15.0.1": + version "15.1.1" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" + integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== + dependencies: + "@hapi/address" "2.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/topo" "3.x.x" + +"@hapi/topo@3.x.x": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" + integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== + dependencies: + "@hapi/hoek" "^8.3.0" + +"@intervolga/optimize-cssnano-plugin@^1.0.5": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz#be7c7846128b88f6a9b1d1261a0ad06eb5c0fdf8" + integrity sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA== + dependencies: + cssnano "^4.0.0" + cssnano-preset-default "^4.0.0" + postcss "^7.0.0" + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@soda/friendly-errors-webpack-plugin@^1.7.1": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.1.tgz#706f64bcb4a8b9642b48ae3ace444c70334d615d" + integrity sha512-cWKrGaFX+rfbMrAxVv56DzhPNqOJPZuNIS2HGMELtgGzb+vsMzyig9mml5gZ/hr2BGtSLV+dP2LUEuAL8aG2mQ== + dependencies: + chalk "^1.1.3" + error-stack-parser "^2.0.0" + string-width "^2.0.0" + +"@types/anymatch@*": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" + integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== + +"@types/d3-format@*": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-1.3.1.tgz#35bf88264bd6bcda39251165bb827f67879c4384" + integrity sha512-KAWvReOKMDreaAwOjdfQMm0HjcUMlQG47GwqdVKgmm20vTd2pucj0a70c3gUSHrnsmo6H2AMrkBsZU2UhJLq8A== + +"@types/events@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== + +"@types/glob@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/loader-utils@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@types/loader-utils/-/loader-utils-1.1.3.tgz#82b9163f2ead596c68a8c03e450fbd6e089df401" + integrity sha512-euKGFr2oCB3ASBwG39CYJMR3N9T0nanVqXdiH7Zu/Nqddt6SmFRxytq/i2w9LQYNQekEtGBz+pE3qG6fQTNvRg== + dependencies: + "@types/node" "*" + "@types/webpack" "*" + +"@types/lodash@*": + version "4.14.144" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.144.tgz#12e57fc99064bce45e5ab3c8bc4783feb75eab8e" + integrity sha512-ogI4g9W5qIQQUhXAclq6zhqgqNUr7UlFaqDHbch7WLSLeeM/7d3CRaw7GLajxvyFvhJqw4Rpcz5bhoaYtIx6Tg== + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/node@*": + version "12.11.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.11.7.tgz#57682a9771a3f7b09c2497f28129a0462966524a" + integrity sha512-JNbGaHFCLwgHn/iCckiGSOZ1XYHsKFwREtzPwSGCVld1SGhOlmZw2D4ZI94HQCrBHbADzW9m4LER/8olJTRGHA== + +"@types/node@8.9": + version "8.9.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.9.5.tgz#162b864bc70be077e6db212b322754917929e976" + integrity sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ== + +"@types/node@^8.0.53": + version "8.10.56" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.56.tgz#f1d55b979163cc0cfb6b927b6e4bf9632bcc8fe7" + integrity sha512-5yWs9hy3UWdandOgvmmPCNJ3jI5/o8syatQWOmiAO/9/PptOQ+0O2ANKHltFhE4MGCt/QiVkoxQFUbeha9Yf4w== + +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + +"@types/q@^1.5.1": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" + integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== + +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/strip-bom@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/strip-bom/-/strip-bom-3.0.0.tgz#14a8ec3956c2e81edb7520790aecf21c290aebd2" + integrity sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I= + +"@types/strip-json-comments@0.0.30": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" + integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== + +"@types/tapable@*": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.4.tgz#b4ffc7dc97b498c969b360a41eee247f82616370" + integrity sha512-78AdXtlhpCHT0K3EytMpn4JNxaf5tbqbLcbIRoQIHzpTIyjpxLQKRoxU55ujBXAtg3Nl2h/XWvfDa9dsMOd0pQ== + +"@types/uglify-js@*": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.0.4.tgz#96beae23df6f561862a830b4288a49e86baac082" + integrity sha512-SudIN9TRJ+v8g5pTG8RRCqfqTMNqgWCKKd3vtynhGzkIIjxaicNAMuY5TRadJ6tzDu3Dotf3ngaMILtmOdmWEQ== + dependencies: + source-map "^0.6.1" + +"@types/webpack-sources@*": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.5.tgz#be47c10f783d3d6efe1471ff7f042611bd464a92" + integrity sha512-zfvjpp7jiafSmrzJ2/i3LqOyTYTuJ7u1KOXlKgDlvsj9Rr0x7ZiYu5lZbXwobL7lmsRNtPXlBfmaUD8eU2Hu8w== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.6.1" + +"@types/webpack@*": + version "4.39.5" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.39.5.tgz#3671b65928d9e0c6fcd4adff3f8167d48b174681" + integrity sha512-9twG6D97ao13MBLvigwfBJe6rxtb04UY3TcYHBYkW5sXZjUrNhqIRxLYg74VzK/YAE8xlVhOyd+3Whr7E5RrBA== + dependencies: + "@types/anymatch" "*" + "@types/node" "*" + "@types/tapable" "*" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + source-map "^0.6.0" + +"@vue/babel-helper-vue-jsx-merge-props@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz#048fe579958da408fb7a8b2a3ec050b50a661040" + integrity sha512-6tyf5Cqm4m6v7buITuwS+jHzPlIPxbFzEhXR5JGZpbrvOcp1hiQKckd305/3C7C36wFekNTQSxAtgeM0j0yoUw== + +"@vue/babel-plugin-transform-vue-jsx@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.0.0.tgz#ebcbf39c312c94114c8c4f407ee4f6c97aa45432" + integrity sha512-U+JNwVQSmaLKjO3lzCUC3cNXxprgezV1N+jOdqbP4xWNaqtWUCJnkjTVcgECM18A/AinDKPcUUeoyhU7yxUxXQ== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0" + html-tags "^2.0.0" + lodash.kebabcase "^4.1.1" + svg-tags "^1.0.0" + +"@vue/babel-preset-app@^3.12.1": + version "3.12.1" + resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-3.12.1.tgz#24c477052f078f30fdb7735103b14dd1fa2cbfe1" + integrity sha512-Zjy5jQaikV1Pz+ri0YgXFS7q4/5wCxB5tRkDOEIt5+4105u0Feb/pvH20nVL6nx9GyXrECFfcm7Yxr/z++OaPQ== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/plugin-proposal-class-properties" "^7.0.0" + "@babel/plugin-proposal-decorators" "^7.1.0" + "@babel/plugin-syntax-dynamic-import" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + "@babel/plugin-transform-runtime" "^7.4.0" + "@babel/preset-env" "^7.0.0 < 7.4.0" + "@babel/runtime" "^7.0.0" + "@babel/runtime-corejs2" "^7.2.0" + "@vue/babel-preset-jsx" "^1.0.0" + babel-plugin-dynamic-import-node "^2.2.0" + babel-plugin-module-resolver "3.2.0" + core-js "^2.6.5" + +"@vue/babel-preset-jsx@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.1.1.tgz#3a74642ca0ecea10aae13649df5ff70f9d24a6f5" + integrity sha512-SeyndwQZc8MAOkhbJaC34ocTwcKekKkwrwnTMC3YF8VmGp5IQWW5gPIU66bqO9WFBXFA3J3ANsUbP2pj8q8KdQ== + dependencies: + "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.0.0" + "@vue/babel-sugar-functional-vue" "^1.0.0" + "@vue/babel-sugar-inject-h" "^1.0.0" + "@vue/babel-sugar-v-model" "^1.1.1" + "@vue/babel-sugar-v-on" "^1.1.0" + +"@vue/babel-sugar-functional-vue@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.0.0.tgz#17e2c4ca27b74b244da3b923240ec91d10048cb3" + integrity sha512-XE/jNaaorTuhWayCz+QClk5AB9OV5HzrwbzEC6sIUY0J60A28ONQKeTwxfidW42egOkqNH/UU6eE3KLfmiDj0Q== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-inject-h@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.0.0.tgz#e5efb6c5b5b7988dc03831af6d133bf7bcde6347" + integrity sha512-NxWU+DqtbZgfGvd25GPoFMj+rvyQ8ZA1pHj8vIeqRij+vx3sXoKkObjA9ulZunvWw5F6uG9xYy4ytpxab/X+Hg== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + +"@vue/babel-sugar-v-model@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.1.1.tgz#a0f0750fcee20769805a20178299eebd4babf25a" + integrity sha512-qiPbdUTiqNQdhXzvWQMVfrYGHCiMmscY7j/cudLxdxWZ8AFhgPRVlniVgaWIT7A1iOjs92e8U6qVyqkf0d4ZrA== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.0.0" + camelcase "^5.0.0" + html-tags "^2.0.0" + svg-tags "^1.0.0" + +"@vue/babel-sugar-v-on@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.1.0.tgz#1f2b35eeeabb87eaf8925931f4d34fd8e6404a45" + integrity sha512-8DwAj/RLpmrDP4eZ3erJcKcyuLArLUYagNODTsSQrMdG5zmLJoFFtEjODfYRh/XxM2wXv9Wxe+HAB41FQxxwQA== + dependencies: + "@babel/plugin-syntax-jsx" "^7.2.0" + "@vue/babel-plugin-transform-vue-jsx" "^1.0.0" + camelcase "^5.0.0" + +"@vue/cli-overlay@^3.12.1": + version "3.12.1" + resolved "https://registry.yarnpkg.com/@vue/cli-overlay/-/cli-overlay-3.12.1.tgz#bdfde8f7123561ab06e4e4c60b854cc5092f5ab1" + integrity sha512-Bym92EN+lj+cNRN2ozbYyH+V8DMXWGbCDUk+hiJ4EYDBZfBkZKvalk1/mOBFwyxiopnnbOEBAAhL/UuMQ1xARg== + +"@vue/cli-plugin-babel@^3.7.0": + version "3.12.1" + resolved "https://registry.yarnpkg.com/@vue/cli-plugin-babel/-/cli-plugin-babel-3.12.1.tgz#9a79159de8cd086b013fa6d78a39830b2e2ec706" + integrity sha512-Zetvz8PikLCGomeKOKu8pC9YQ7cfxs7pGpvEOzaxGdhMnebhjAYR6i6dOB57A6N5lhxQksXCtYTv26QgfiIpdg== + dependencies: + "@babel/core" "^7.0.0" + "@vue/babel-preset-app" "^3.12.1" + "@vue/cli-shared-utils" "^3.12.1" + babel-loader "^8.0.5" + webpack "^4.0.0" + +"@vue/cli-plugin-eslint@^3.7.0": + version "3.12.1" + resolved "https://registry.yarnpkg.com/@vue/cli-plugin-eslint/-/cli-plugin-eslint-3.12.1.tgz#302c463867f38e790bb996eafdf7159c782dc8cf" + integrity sha512-tVTZlEZsy3sQbO4LLWFK11yzlWwqVAqaM+IY+BeWHITBzEJKh2KmouG+x6x/reXiU3qROsMJ4Ej3Hs8buSMWyQ== + dependencies: + "@vue/cli-shared-utils" "^3.12.1" + babel-eslint "^10.0.1" + eslint-loader "^2.1.2" + globby "^9.2.0" + webpack "^4.0.0" + yorkie "^2.0.0" + optionalDependencies: + eslint "^4.19.1" + eslint-plugin-vue "^4.7.1" + +"@vue/cli-plugin-unit-jest@^3.7.0": + version "3.12.1" + resolved "https://registry.yarnpkg.com/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-3.12.1.tgz#b7edd30701191deaa9d53cea752b8d72b825d640" + integrity sha512-Cc9Kq4+RaUN1yfNVb7c9hVDNXo2tFTWHgwooCL3XWMu2iL+pDawQt8ZeSqauDY95JoMeEAVy2xBimjL+7jo/jw== + dependencies: + "@vue/cli-shared-utils" "^3.12.1" + babel-jest "^23.6.0" + babel-plugin-transform-es2015-modules-commonjs "^6.26.2" + jest "^23.6.0" + jest-serializer-vue "^2.0.2" + jest-transform-stub "^2.0.0" + jest-watch-typeahead "0.2.1" + vue-jest "^3.0.4" + +"@vue/cli-service@^3.7.0": + version "3.12.1" + resolved "https://registry.yarnpkg.com/@vue/cli-service/-/cli-service-3.12.1.tgz#13220b1c189254e7c003390df329086f9b6e77e6" + integrity sha512-PDxNrTGnSKzeV1ruFlsRIAO8JcPizwT0EJXq9GeyooU+p+sOkv7aKkCBJQVYNjZapD1NOGWx6CvAAC/wAW+gew== + dependencies: + "@intervolga/optimize-cssnano-plugin" "^1.0.5" + "@soda/friendly-errors-webpack-plugin" "^1.7.1" + "@vue/cli-overlay" "^3.12.1" + "@vue/cli-shared-utils" "^3.12.1" + "@vue/component-compiler-utils" "^3.0.0" + "@vue/preload-webpack-plugin" "^1.1.0" + "@vue/web-component-wrapper" "^1.2.0" + acorn "^6.1.1" + acorn-walk "^6.1.1" + address "^1.0.3" + autoprefixer "^9.5.1" + browserslist "^4.5.4" + cache-loader "^2.0.1" + case-sensitive-paths-webpack-plugin "^2.2.0" + chalk "^2.4.2" + cli-highlight "^2.1.0" + clipboardy "^2.0.0" + cliui "^5.0.0" + copy-webpack-plugin "^4.6.0" + css-loader "^1.0.1" + cssnano "^4.1.10" + current-script-polyfill "^1.0.0" + debug "^4.1.1" + default-gateway "^5.0.2" + dotenv "^7.0.0" + dotenv-expand "^5.1.0" + escape-string-regexp "^1.0.5" + file-loader "^3.0.1" + fs-extra "^7.0.1" + globby "^9.2.0" + hash-sum "^1.0.2" + html-webpack-plugin "^3.2.0" + launch-editor-middleware "^2.2.1" + lodash.defaultsdeep "^4.6.1" + lodash.mapvalues "^4.6.0" + lodash.transform "^4.6.0" + mini-css-extract-plugin "^0.8.0" + minimist "^1.2.0" + ora "^3.4.0" + portfinder "^1.0.20" + postcss-loader "^3.0.0" + read-pkg "^5.0.0" + semver "^6.0.0" + slash "^2.0.0" + source-map-url "^0.4.0" + ssri "^6.0.1" + string.prototype.padend "^3.0.0" + terser-webpack-plugin "^1.2.3" + thread-loader "^2.1.2" + url-loader "^1.1.2" + vue-loader "^15.7.0" + webpack "^4.0.0" + webpack-bundle-analyzer "^3.3.0" + webpack-chain "^4.11.0" + webpack-dev-server "^3.4.1" + webpack-merge "^4.2.1" + +"@vue/cli-shared-utils@^3.12.1": + version "3.12.1" + resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-3.12.1.tgz#bcf076287ddadeebbb97c6a748dfe9ff50ec8df0" + integrity sha512-jFblzRFjutGwu5utOKdVlPlsbA1lBUNNQlAThzNqej+JtTKJjnvjlhjKX0Gq0oOny5FjKWhoyfQ74p9h1qE6JQ== + dependencies: + "@hapi/joi" "^15.0.1" + chalk "^2.4.1" + execa "^1.0.0" + launch-editor "^2.2.1" + lru-cache "^5.1.1" + node-ipc "^9.1.1" + open "^6.3.0" + ora "^3.4.0" + request "^2.87.0" + request-promise-native "^1.0.7" + semver "^6.0.0" + string.prototype.padstart "^3.0.0" + +"@vue/component-compiler-utils@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.0.0.tgz#d16fa26b836c06df5baaeb45f3d80afc47e35634" + integrity sha512-am+04/0UX7ektcmvhYmrf84BDVAD8afFOf4asZjN84q8xzxFclbk5x0MtxuKGfp+zjN5WWPJn3fjFAWtDdIGSw== + dependencies: + consolidate "^0.15.1" + hash-sum "^1.0.2" + lru-cache "^4.1.2" + merge-source-map "^1.1.0" + postcss "^7.0.14" + postcss-selector-parser "^5.0.0" + prettier "1.16.3" + source-map "~0.6.1" + vue-template-es2015-compiler "^1.9.0" + +"@vue/eslint-config-standard@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@vue/eslint-config-standard/-/eslint-config-standard-4.0.0.tgz#6be447ee674e3b0f733c584098fd9a22e6d76fcd" + integrity sha512-bQghq1cw1BuMRHNhr3tRpAJx1tpGy0QtajQX873kLtA9YVuOIoXR7nAWnTN09bBHnSUh2N288vMsqPi2fI4Hzg== + dependencies: + eslint-config-standard "^12.0.0" + eslint-plugin-import "^2.14.0" + eslint-plugin-node "^8.0.0" + eslint-plugin-promise "^4.0.1" + eslint-plugin-standard "^4.0.0" + +"@vue/preload-webpack-plugin@^1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.1.tgz#18723530d304f443021da2292d6ec9502826104a" + integrity sha512-8VCoJeeH8tCkzhkpfOkt+abALQkS11OIHhte5MBzYaKMTqK0A3ZAKEUVAffsOklhEv7t0yrQt696Opnu9oAx+w== + +"@vue/test-utils@^1.0.0-beta.20": + version "1.0.0-beta.29" + resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.0.0-beta.29.tgz#c942cf25e891cf081b6a03332b4ae1ef430726f0" + integrity sha512-yX4sxEIHh4M9yAbLA/ikpEnGKMNBCnoX98xE1RwxfhQVcn0MaXNSj1Qmac+ZydTj6VBSEVukchBogXBTwc+9iA== + dependencies: + dom-event-types "^1.0.0" + lodash "^4.17.4" + +"@vue/web-component-wrapper@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@vue/web-component-wrapper/-/web-component-wrapper-1.2.0.tgz#bb0e46f1585a7e289b4ee6067dcc5a6ae62f1dd1" + integrity sha512-Xn/+vdm9CjuC9p3Ae+lTClNutrVhsXpzxvoTXXtoys6kVRX9FkueSUAqSWAyZntmVLlR4DosBV4pH8y5Z/HbUw== + +"@webassemblyjs/ast@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" + integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== + dependencies: + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + +"@webassemblyjs/floating-point-hex-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" + integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== + +"@webassemblyjs/helper-api-error@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" + integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== + +"@webassemblyjs/helper-buffer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" + integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== + +"@webassemblyjs/helper-code-frame@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" + integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== + dependencies: + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/helper-fsm@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" + integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== + +"@webassemblyjs/helper-module-context@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" + integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== + dependencies: + "@webassemblyjs/ast" "1.8.5" + mamacro "^0.0.3" + +"@webassemblyjs/helper-wasm-bytecode@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" + integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== + +"@webassemblyjs/helper-wasm-section@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" + integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + +"@webassemblyjs/ieee754@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" + integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" + integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" + integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== + +"@webassemblyjs/wasm-edit@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" + integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/helper-wasm-section" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-opt" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + "@webassemblyjs/wast-printer" "1.8.5" + +"@webassemblyjs/wasm-gen@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" + integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wasm-opt@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" + integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-buffer" "1.8.5" + "@webassemblyjs/wasm-gen" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + +"@webassemblyjs/wasm-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" + integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-wasm-bytecode" "1.8.5" + "@webassemblyjs/ieee754" "1.8.5" + "@webassemblyjs/leb128" "1.8.5" + "@webassemblyjs/utf8" "1.8.5" + +"@webassemblyjs/wast-parser@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" + integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/floating-point-hex-parser" "1.8.5" + "@webassemblyjs/helper-api-error" "1.8.5" + "@webassemblyjs/helper-code-frame" "1.8.5" + "@webassemblyjs/helper-fsm" "1.8.5" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.8.5": + version "1.8.5" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" + integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/wast-parser" "1.8.5" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.2.tgz#a2fba1b122c69a85caa02d10f9270c7219709a9d" + integrity sha512-2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abs-svg-path@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/abs-svg-path/-/abs-svg-path-0.1.1.tgz#df601c8e8d2ba10d4a76d625e236a9a39c2723bf" + integrity sha1-32Acjo0roQ1KdtYl4japo5wnI78= + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + integrity sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s= + dependencies: + acorn "^3.0.4" + +acorn-jsx@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" + integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw== + +acorn-walk@^6.0.1, acorn-walk@^6.1.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + integrity sha1-ReN/s56No/JbruP/U2niu18iAXo= + +acorn@^5.5.0, acorn@^5.5.3: + version "5.7.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== + +acorn@^6.0.1, acorn@^6.0.2, acorn@^6.0.7, acorn@^6.1.1, acorn@^6.2.1: + version "6.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" + integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== + +add-dom-event-listener@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz#6a92db3a0dd0abc254e095c0f1dc14acbbaae310" + integrity sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw== + dependencies: + object-assign "4.x" + +address@^1.0.3: + version "1.1.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" + integrity sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I= + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" + integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== + +ajv@^5.2.3, ajv@^5.3.0: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1: + version "6.10.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + dependencies: + fast-deep-equal "^2.0.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + integrity sha1-DNkKVhCT810KmSVsIrcGlDP60Rc= + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + integrity sha1-06ioOzGapneTZisT52HHkRQiMG4= + +ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ant-design-vue@~1.3.9: + version "1.3.17" + resolved "https://registry.yarnpkg.com/ant-design-vue/-/ant-design-vue-1.3.17.tgz#4c420fd53f5a5bc255e01c16aaf34744f143026b" + integrity sha512-Yb19yCXmO/+lcJvZaiQs/J87xXZuweDEZkuKGACiW4UhcR8gP1d3q6wZGOekhys4ryqJvvuVZBQdbuxpH0btAw== + dependencies: + "@ant-design/icons" "^2.1.1" + "@ant-design/icons-vue" "^2.0.0" + add-dom-event-listener "^1.0.2" + array-tree-filter "^2.1.0" + async-validator "^3.0.3" + babel-helper-vue-jsx-merge-props "^2.0.3" + babel-runtime "6.x" + classnames "^2.2.5" + component-classes "^1.2.6" + dom-align "^1.7.0" + dom-closest "^0.2.0" + dom-scroll-into-view "^1.2.1" + enquire.js "^2.1.6" + intersperse "^1.0.0" + is-negative-zero "^2.0.0" + ismobilejs "^0.5.1" + json2mq "^0.2.0" + lodash "^4.17.5" + moment "^2.21.0" + mutationobserver-shim "^0.3.2" + node-emoji "^1.10.0" + omit.js "^1.0.0" + raf "^3.4.0" + resize-observer-polyfill "^1.5.1" + shallow-equal "^1.0.0" + shallowequal "^1.0.2" + vue-ref "^1.0.4" + warning "^3.0.0" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +append-transform@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + integrity sha1-126/jKlNJ24keja61EpLdKthGZE= + dependencies: + default-require-extensions "^1.0.0" + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +arch@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" + integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + integrity sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8= + dependencies: + arr-flatten "^1.0.1" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + +array-tree-filter@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz#873ac00fec83749f255ac8dd083814b4f6329190" + integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw== + +array-union@^1.0.1, array-union@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async-validator@^3.0.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-3.2.0.tgz#fcbd644e7b5b7c9304d29a4752c3f06214ef0d56" + integrity sha512-QBuW7Qrg8wbh7Wtqw1QdN162GUmXDs9gayxFaXcCOf3bCqHJ/TQep0H4I63iVk7Q3kIGWU4wbAr/C0Uj64JiMw== + +async@^2.1.4, async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +atob@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@^9.5.1: + version "9.7.0" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.0.tgz#905ec19e50f04545fe9ff131182cc9ab25246901" + integrity sha512-j2IRvaCfrUxIiZun9ba4mhJ2omhw4OY88/yVzLO+lHhGBumAAK72PgM6gkbSN8iregPOn1ZlxGkmZh2CQ7X4AQ== + dependencies: + browserslist "^4.7.2" + caniuse-lite "^1.0.30001004" + chalk "^2.4.2" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.19" + postcss-value-parser "^4.0.2" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + +axios@^0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz#8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8" + integrity sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ== + dependencies: + follow-redirects "1.5.10" + is-buffer "^2.0.2" + +babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@7.0.0-bridge.0: + version "7.0.0-bridge.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" + integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== + +babel-core@^6.0.0, babel-core@^6.26.0: + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.1" + debug "^2.6.9" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.8" + slash "^1.0.0" + source-map "^0.5.7" + +babel-eslint@^10.0.1: + version "10.0.3" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.3.tgz#81a2c669be0f205e19462fed2482d33e4687a88a" + integrity sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.0.0" + "@babel/traverse" "^7.0.0" + "@babel/types" "^7.0.0" + eslint-visitor-keys "^1.0.0" + resolve "^1.12.0" + +babel-generator@^6.18.0, babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helper-vue-jsx-merge-props@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6" + integrity sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg== + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-jest@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1" + integrity sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew== + dependencies: + babel-plugin-istanbul "^4.1.6" + babel-preset-jest "^23.2.0" + +babel-loader@^8.0.0-beta.0, babel-loader@^8.0.5: + version "8.0.6" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" + integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== + dependencies: + find-cache-dir "^2.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + pify "^4.0.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-dynamic-import-node@^2.2.0, babel-plugin-dynamic-import-node@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" + integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-import@^1.11.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/babel-plugin-import/-/babel-plugin-import-1.12.2.tgz#bb8e11dabae68fbff4484c8e2bc2db1e086286a8" + integrity sha512-Vz9s+I6vAnsY8sYczU/cdtkKAHSorapa/2St6K+OzowplKizpWxul4HLi3kj1eRmHMFjhbROSMGXP+mFna2nUw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/runtime" "^7.0.0" + +babel-plugin-istanbul@^4.1.6: + version "4.1.6" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" + integrity sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ== + dependencies: + babel-plugin-syntax-object-rest-spread "^6.13.0" + find-up "^2.1.0" + istanbul-lib-instrument "^1.10.1" + test-exclude "^4.2.1" + +babel-plugin-jest-hoist@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167" + integrity sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc= + +babel-plugin-module-resolver@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz#ddfa5e301e3b9aa12d852a9979f18b37881ff5a7" + integrity sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA== + dependencies: + find-babel-config "^1.1.0" + glob "^7.1.2" + pkg-up "^2.0.0" + reselect "^3.0.1" + resolve "^1.4.0" + +babel-plugin-syntax-object-rest-spread@^6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= + +babel-plugin-transform-es2015-modules-commonjs@^6.26.0, babel-plugin-transform-es2015-modules-commonjs@^6.26.2: + version "6.26.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" + integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-runtime@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" + integrity sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4= + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + integrity sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g= + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-polyfill@6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" + integrity sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0= + dependencies: + babel-runtime "^6.22.0" + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-preset-jest@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46" + integrity sha1-jsegOhOPABoaj7HoETZSvxpV2kY= + dependencies: + babel-plugin-jest-hoist "^23.2.0" + babel-plugin-syntax-object-rest-spread "^6.13.0" + +babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@6.x, babel-runtime@^6.22.0, babel-runtime@^6.23.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + integrity sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI= + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-js@^1.0.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bfj@^6.1.1: + version "6.1.2" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" + integrity sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw== + dependencies: + bluebird "^3.5.5" + check-types "^8.0.3" + hoopy "^0.1.4" + tryer "^1.0.1" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +bluebird@^3.1.1, bluebird@^3.5.1, bluebird@^3.5.5: + version "3.7.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.1.tgz#df70e302b471d7473489acf26a93d63b53f874de" + integrity sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + integrity sha1-uneWLhLf+WnWt2cR6RS3N4V79qc= + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-process-hrtime@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" + integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@^4.0.0, browserslist@^4.3.4, browserslist@^4.5.4, browserslist@^4.6.0, browserslist@^4.7.2: + version "4.7.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.2.tgz#1bb984531a476b5d389cedecb195b2cd69fb1348" + integrity sha512-uZavT/gZXJd2UTi9Ov7/Z340WOSQ3+m1iBVRUknf+okKxonL9P83S3ctiBDtuRmRu8PiCHjqyueqQ9HYlJhxiw== + dependencies: + caniuse-lite "^1.0.30001004" + electron-to-chromium "^1.3.295" + node-releases "^1.1.38" + +bser@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^10.0.4: + version "10.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" + integrity sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA== + dependencies: + bluebird "^3.5.1" + chownr "^1.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.1" + mississippi "^2.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^5.2.4" + unique-filename "^1.1.0" + y18n "^4.0.0" + +cacache@^12.0.2: + version "12.0.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" + integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cache-loader@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-2.0.1.tgz#5758f41a62d7c23941e3c3c7016e6faeb03acb07" + integrity sha512-V99T3FOynmGx26Zom+JrVBytLBsmUCzVG2/4NnUKgvXN4bEV42R1ERl1IyiH/cvFIDA1Ytq2lPZ9tXDSahcQpQ== + dependencies: + loader-utils "^1.1.0" + mkdirp "^0.5.1" + neo-async "^2.6.0" + normalize-path "^3.0.0" + schema-utils "^1.0.0" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= + dependencies: + callsites "^0.2.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + integrity sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk= + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001004: + version "1.0.30001005" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001005.tgz#823054210be638c725521edcb869435dae46728d" + integrity sha512-g78miZm1Z5njjYR216a5812oPiLgV1ssndgGxITHWUopmjUrCswMisA0a2kSB7a0vZRox6JOKhM51+efmYN8Mg== + +capture-exit@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" + integrity sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28= + dependencies: + rsvp "^3.3.3" + +case-sensitive-paths-webpack-plugin@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.2.0.tgz#3371ef6365ef9c25fa4b81c16ace0e9c7dc58c3e" + integrity sha512-u5ElzokS8A1pm9vM3/iDgTcI3xqHxuCao94Oz8etI3cf0Tio0p8izkDYbTIn09uP3yUUr6+veaE6IkjnTYS46g== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + integrity sha1-qg0yYptu6XIgBBHL1EYckHvCt60= + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@1.1.3, chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +charenc@~0.0.1: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= + +check-types@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" + integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== + +chokidar@^2.0.2, chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.0.1, chownr@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" + integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +ci-info@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circular-json@^0.3.1: + version "0.3.3" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +classnames@^2.2.5: + version "2.2.6" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" + integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== + +clean-css@4.2.x: + version "4.2.1" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17" + integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g== + dependencies: + source-map "~0.6.0" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-highlight@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.1.tgz#2180223d51618b112f4509cf96e4a6c750b07e97" + integrity sha512-0y0VlNmdD99GXZHYnvrQcmHxP8Bi6T00qucGgBgGv4kJ0RyDthNnnFPupHV7PYv/OXSVk+azFbOeaW6+vGmx9A== + dependencies: + chalk "^2.3.0" + highlight.js "^9.6.0" + mz "^2.4.0" + parse5 "^4.0.0" + yargs "^13.0.0" + +cli-spinners@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.2.0.tgz#e8b988d9206c692302d8ee834e7a85c0144d8f77" + integrity sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ== + +cli-width@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + +clipboard@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.4.tgz#836dafd66cf0fea5d71ce5d5b0bf6e958009112d" + integrity sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ== + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + +clipboardy@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-2.1.0.tgz#0123a0c8fac92f256dc56335e0bb8be97a4909a5" + integrity sha512-2pzOUxWcLlXWtn+Jd6js3o12TysNOOVes/aQfg+MT/35vrxWzedHlLwyoJpXjsFKWm95BTNEcMGD9+a7mKzZkQ== + dependencies: + arch "^2.1.1" + execa "^1.0.0" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + integrity sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE= + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +clone@2.x, clone@^2.1.1, clone@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" + integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@*: + version "3.0.2" + resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" + integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== + +commander@2, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@~2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@2.17.x: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== + +commander@~2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-classes@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/component-classes/-/component-classes-1.2.6.tgz#c642394c3618a4d8b0b8919efccbbd930e5cd691" + integrity sha1-xkI5TDYYpNiwuJGe/Mu9kw5c1pE= + dependencies: + component-indexof "0.0.3" + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +component-indexof@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-indexof/-/component-indexof-0.0.3.tgz#11d091312239eb8f32c8f25ae9cb002ffe8d3c24" + integrity sha1-EdCRMSI5648yyPJa6csAL/6NPCQ= + +compressible@~2.0.16: + version "2.0.17" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" + integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== + dependencies: + mime-db ">= 1.40.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0, concat-stream@^1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +condense-newlines@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f" + integrity sha1-PemFVTE5R10yUCyDsC9gaE0kxV8= + dependencies: + extend-shallow "^2.0.1" + is-whitespace "^0.3.0" + kind-of "^3.0.2" + +config-chain@^1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +consolidate@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7" + integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw== + dependencies: + bluebird "^3.1.1" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +contour_plot@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/contour_plot/-/contour_plot-0.0.1.tgz#475870f032b8e338412aa5fc507880f0bf495c77" + integrity sha1-R1hw8DK44zhBKqX8UHiA8L9JXHc= + +convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +copy-webpack-plugin@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz#e7f40dd8a68477d405dd1b7a854aae324b158bae" + integrity sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA== + dependencies: + cacache "^10.0.4" + find-cache-dir "^1.0.0" + globby "^7.1.1" + is-glob "^4.0.0" + loader-utils "^1.1.0" + minimatch "^3.0.4" + p-limit "^1.0.0" + serialize-javascript "^1.4.0" + +core-js-compat@^3.1.1: + version "3.3.4" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.3.4.tgz#a151c6cd754edbfe6a4a2a66b9382df2ae74fbcd" + integrity sha512-7OK3/LPP8R3Ovasf3GilEOp+o1w0ZKJ75FMou2RDfTwIV69G5RkKCGFnqgBv/ZhR6xo9GCzlfVALyHmydbE7DA== + dependencies: + browserslist "^4.7.2" + semver "^6.3.0" + +core-js@^2.4.0, core-js@^2.5.0, core-js@^2.6.5: + version "2.6.10" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f" + integrity sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^5.0.1, cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" + integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@~0.0.1: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-loader@^1.0.0, css-loader@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.1.tgz#6885bb5233b35ec47b006057da01cc640b6b79fe" + integrity sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw== + dependencies: + babel-code-frame "^6.26.0" + css-selector-tokenizer "^0.7.0" + icss-utils "^2.1.0" + loader-utils "^1.0.2" + lodash "^4.17.11" + postcss "^6.0.23" + postcss-modules-extract-imports "^1.2.0" + postcss-modules-local-by-default "^1.2.0" + postcss-modules-scope "^1.1.0" + postcss-modules-values "^1.3.0" + postcss-value-parser "^3.3.0" + source-list-map "^2.0.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-select@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede" + integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ== + dependencies: + boolbase "^1.0.0" + css-what "^2.1.2" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-selector-tokenizer@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" + integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA== + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" + +css-tree@1.0.0-alpha.29: + version "1.0.0-alpha.29" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" + integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg== + dependencies: + mdn-data "~1.1.0" + source-map "^0.5.3" + +css-tree@1.0.0-alpha.33: + version "1.0.0-alpha.33" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.33.tgz#970e20e5a91f7a378ddd0fc58d0b6c8d4f3be93e" + integrity sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w== + dependencies: + mdn-data "2.0.4" + source-map "^0.5.3" + +css-unit-converter@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" + integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= + +css-what@2.1, css-what@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +css@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +cssesc@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q= + +cssesc@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" + integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== + +cssnano-preset-default@^4.0.0, cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.0.0, cssnano@^4.1.10: + version "4.1.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" + integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg== + dependencies: + css-tree "1.0.0-alpha.29" + +cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" + integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== + dependencies: + cssom "0.3.x" + +current-script-polyfill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/current-script-polyfill/-/current-script-polyfill-1.0.0.tgz#f31cf7e4f3e218b0726e738ca92a02d3488ef615" + integrity sha1-8xz35PPiGLBybnOMqSoC00iO9hU= + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +d3-array@1, d3-array@~1.2.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" + integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== + +d3-collection@1: + version "1.0.7" + resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" + integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== + +d3-color@1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.0.tgz#89c45a995ed773b13314f06460df26d60ba0ecaf" + integrity sha512-TzNPeJy2+iEepfiL92LAAB7fvnp/dV2YwANPVHdDWmYMm23qIJBYww3qT8I8C1wXrmrg4UWs7BKc2tKIgyjzHg== + +d3-composite-projections@~1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/d3-composite-projections/-/d3-composite-projections-1.2.3.tgz#d4283b32fca77ab0aeab92354f7726410f94b1cc" + integrity sha512-RxNBoRGf3epTnQBUKeEpaXpD8BA/Ud0xRuLwWxyI7dWfuuYgJZMKw6ZsZOwfDNC0ZbMWaU0eBFlL05A2jlcsWg== + dependencies: + d3-geo "^1.11.6" + d3-path "^1.0.7" + +d3-dispatch@1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.5.tgz#e25c10a186517cd6c82dd19ea018f07e01e39015" + integrity sha512-vwKx+lAqB1UuCeklr6Jh1bvC4SZgbSqbkGBLClItFBIYH4vqDJCA7qfoy14lXmJdnBOdxndAMxjCbImJYW7e6g== + +d3-dsv@~1.0.5: + version "1.0.10" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.0.10.tgz#4371c489a2a654a297aca16fcaf605a6f31a6f51" + integrity sha512-vqklfpxmtO2ZER3fq/B33R/BIz3A1PV0FaZRuFM8w6jLo7sUX1BZDh73fPlr0s327rzq4H6EN1q9U+eCBCSN8g== + dependencies: + commander "2" + iconv-lite "0.4" + rw "1" + +d3-ease@1, d3-ease@~1.0.3: + version "1.0.5" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.5.tgz#8ce59276d81241b1b72042d6af2d40e76d936ffb" + integrity sha512-Ct1O//ly5y5lFM9YTdu+ygq7LleSgSE4oj7vUt9tPLHUi8VCV7QoizGpdWRWAwCO9LdYzIrQDg97+hGVdsSGPQ== + +d3-format@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.1.tgz#c45f74b17c5a290c072a4ba7039dd19662cd5ce6" + integrity sha512-TUswGe6hfguUX1CtKxyG2nymO+1lyThbkS1ifLX0Sr+dOQtAD5gkrffpHnx+yHNKUZ0Bmg5T4AjUQwugPDrm0g== + +d3-geo-projection@~2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/d3-geo-projection/-/d3-geo-projection-2.1.2.tgz#7df8e1e9d046d631c6509f7e531357d4adc24aa3" + integrity sha1-ffjh6dBG1jHGUJ9+UxNX1K3CSqM= + dependencies: + commander "2" + d3-array "1" + d3-geo "^1.1.0" + +d3-geo@^1.1.0, d3-geo@^1.11.6: + version "1.11.6" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.11.6.tgz#134f2ef035ff75a448075fafdea92702a2e0e0cf" + integrity sha512-z0J8InXR9e9wcgNtmVnPTj0TU8nhYT6lD/ak9may2PdKqXIeHUr8UbFLoCtrPYNsjv6YaLvSDQVl578k6nm7GA== + dependencies: + d3-array "1" + +d3-geo@~1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.6.4.tgz#f20e1e461cb1845f5a8be55ab6f876542a7e3199" + integrity sha1-8g4eRhyxhF9ai+Vatvh2VCp+MZk= + dependencies: + d3-array "1" + +d3-hexjson@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d3-hexjson/-/d3-hexjson-1.0.1.tgz#6a23111e8359f1e214f5d0afa379c02b2b67df0b" + integrity sha512-TeH4T0PSbDazMm3gHgc4ulO0PfrZpz0Uk3y5tCGz+NgC7HnX7KBdem7uAN+j9x3ZshTh7raN3V/bFhaLB2C8DA== + dependencies: + d3-array "1" + +d3-hierarchy@~1.1.5: + version "1.1.8" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz#7a6317bd3ed24e324641b6f1e76e978836b008cc" + integrity sha512-L+GHMSZNwTpiq4rt9GEsNcpLa4M96lXMR8M/nMG9p5hBE0jy6C+3hWtyZMenPQdwla249iJy7Nx0uKt3n+u9+w== + +d3-interpolate@1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.3.2.tgz#417d3ebdeb4bc4efcc8fd4361c55e4040211fd68" + integrity sha512-NlNKGopqaz9qM1PXh9gBF1KSCVh+jSFErrSlD/4hybwoNX/gt1d8CDbDW+3i+5UOHhjC6s6nMvRxcuoMVNgL2w== + dependencies: + d3-color "1" + +d3-interpolate@~1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.6.tgz#2cf395ae2381804df08aa1bf766b7f97b5f68fb6" + integrity sha512-mOnv5a+pZzkNIHtw/V6I+w9Lqm9L5bG3OTXPM5A+QO0yyVMQ4W1uZhR+VOJmazaOZXri2ppbiZ5BUNWT0pFM9A== + dependencies: + d3-color "1" + +d3-path@1, d3-path@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.8.tgz#4a0606a794d104513ec4a8af43525f374b278719" + integrity sha512-J6EfUNwcMQ+aM5YPOB8ZbgAZu6wc82f/0WFxrxwV6Ll8wBwLaHLKCqQ5Imub02JriCVVdPjgI+6P3a4EWJCxAg== + +d3-sankey@~0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/d3-sankey/-/d3-sankey-0.7.1.tgz#d229832268fc69a7fec84803e96c2256a614c521" + integrity sha1-0imDImj8aaf+yEgD6WwiVqYUxSE= + dependencies: + d3-array "1" + d3-collection "1" + d3-shape "^1.2.0" + +d3-selection@^1.0.2, d3-selection@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.0.tgz#ab9ac1e664cf967ebf1b479cc07e28ce9908c474" + integrity sha512-EYVwBxQGEjLCKF2pJ4+yrErskDnz5v403qvAid96cNdCMr8rmCYfY5RGzWz24mdIbxmDf6/4EAH+K9xperD5jg== + +d3-shape@^1.2.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.5.tgz#e81aea5940f59f0a79cfccac012232a8987c6033" + integrity sha512-VKazVR3phgD+MUCldapHD7P9kcrvPcexeX/PkMJmkUov4JM8IxsSg1DvbYoYich9AtdTsa5nNk2++ImPiDiSxg== + dependencies: + d3-path "1" + +d3-timer@1, d3-timer@~1.0.6: + version "1.0.9" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.9.tgz#f7bb8c0d597d792ff7131e1c24a36dd471a471ba" + integrity sha512-rT34J5HnQUHhcLvhSB9GjCkN0Ddd5Y8nCwDBG2u6wQEeYxT/Lf51fTFFkldeib/sE/J0clIe0pnCfs6g/lRbyg== + +d3-transition@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.2.0.tgz#f538c0e21b2aa1f05f3e965f8567e81284b3b2b8" + integrity sha512-VJ7cmX/FPIPJYuaL2r1o1EMHLttvoIuZhhuAlRoOxDzogV8iQS6jYulDm3xEU3TqL80IZIhI551/ebmCMrkvhw== + dependencies: + d3-color "1" + d3-dispatch "1" + d3-ease "1" + d3-interpolate "1" + d3-selection "^1.1.0" + d3-timer "1" + +d3-voronoi@~1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297" + integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg== + +dagre@~0.8.2: + version "0.8.4" + resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.4.tgz#26b9fb8f7bdc60c6110a0458c375261836786061" + integrity sha512-Dj0csFDrWYKdavwROb9FccHfTC4fJbyF/oJdL9LNZJ8WUvl968P6PAKEriGqfbdArVJEmmfA+UyumgWEwcHU6A== + dependencies: + graphlib "^2.1.7" + lodash "^4.17.4" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= + +de-indent@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" + integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@=3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +deep-equal@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.0.tgz#3103cdf8ab6d32cf4a8df7865458f2b8d33f3745" + integrity sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-equal@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deepmerge@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753" + integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ== + +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +default-gateway@^5.0.2: + version "5.0.4" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-5.0.4.tgz#d10bf9ec1446b96acb977f88e62d59c7eefe5d01" + integrity sha512-RncYZFuHZlB69pT3aAZK/YUjOpllMc3pKm/dIxHR0AyJlhRKSFbLIQbZia1WOrNoY0F1UsqadrHW9mx/lAWAgg== + dependencies: + execa "^3.0.0" + +default-require-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + integrity sha1-836hXT4T/9m0N9M+GnW1+5eHTLg= + dependencies: + strip-bom "^2.0.0" + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +defined@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + integrity sha1-920GQ1LN9Docts5hnE7jqUdd4gg= + dependencies: + repeating "^2.0.0" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detect-newline@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= + +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + +diff@^3.2.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^2.0.0, dir-glob@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" + integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== + dependencies: + path-type "^3.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-align@^1.7.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/dom-align/-/dom-align-1.10.2.tgz#540ea1c9e20462bd11b9fc28c561dc8351ece4c6" + integrity sha512-AYZUzLepy05E9bCY4ExoqHrrIlM49PEak9oF93JEFoibqKL0F7w5DLM70/rosLOawerWZ3MlepQcl+EmHskOyw== + +dom-closest@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-closest/-/dom-closest-0.2.0.tgz#ebd9f91d1bf22e8d6f477876bbcd3ec90216c0cf" + integrity sha1-69n5HRvyLo1vR3h2u80+yQIWwM8= + dependencies: + dom-matches ">=1.0.1" + +dom-converter@^0.2: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-event-types@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dom-event-types/-/dom-event-types-1.0.0.tgz#5830a0a29e1bf837fe50a70cd80a597232813cae" + integrity sha512-2G2Vwi2zXTHBGqXHsJ4+ak/iP0N8Ar+G8a7LiD2oup5o4sQWytwqqrZu/O6hIMV0KMID2PL69OhpshLO0n7UJQ== + +dom-matches@>=1.0.1: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-matches/-/dom-matches-2.0.0.tgz#d2728b416a87533980eb089b848d253cf23a758c" + integrity sha1-0nKLQWqHUzmA6wibhI0lPPI6dYw= + +dom-scroll-into-view@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/dom-scroll-into-view/-/dom-scroll-into-view-1.2.1.tgz#e8f36732dd089b0201a88d7815dc3f88e6d66c7e" + integrity sha1-6PNnMt0ImwIBqI14Fdw/iObWbH4= + +dom-serializer@0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb" + integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== + dependencies: + is-obj "^1.0.0" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-7.0.0.tgz#a2be3cd52736673206e8a85fb5210eea29628e7c" + integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g== + +duplexer@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +easy-stack@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/easy-stack/-/easy-stack-1.0.0.tgz#12c91b3085a37f0baa336e9486eac4bf94e3e788" + integrity sha1-EskbMIWjfwuqM26UhurEv5Tj54g= + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +editorconfig@^0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +ejs@^2.6.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz#5b5ab57f718b79d4aca9254457afecd36fa80228" + integrity sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ== + +electron-to-chromium@^1.3.295: + version "1.3.296" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.296.tgz#a1d4322d742317945285d3ba88966561b67f3ac8" + integrity sha512-s5hv+TSJSVRsxH190De66YHb50pBGTweT9XGWYu/LMR20KX6TsjFzObo36CjVAzM+PUeeKSBRtm/mISlCzeojQ== + +elliptic@^6.0.0: + version "6.5.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.1.tgz#c380f5f909bf1b9b4428d028cd18d3b0efd6b52b" + integrity sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= + dependencies: + iconv-lite "~0.4.13" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" + integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enquire.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/enquire.js/-/enquire.js-2.1.6.tgz#3e8780c9b8b835084c3f60e166dbc3c2a3c89814" + integrity sha1-PoeAybi4NQhMP2DhZtvDwqPImBQ= + +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + +errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.4.tgz#a757397dc5d9de973ac9a5d7d4e8ade7cfae9101" + integrity sha512-fZ0KkoxSjLFmhW5lHbUT3tLwy3nX1qEzMYo8koY1vrsAco53CMT1djnBSeC/wUjTEZRhZl9iRw7PaMaxfJ4wzQ== + dependencies: + stackframe "^1.1.0" + +es-abstract@^1.12.0, es-abstract@^1.4.3, es-abstract@^1.5.0, es-abstract@^1.5.1, es-abstract@^1.7.0: + version "1.16.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.16.0.tgz#d3a26dc9c3283ac9750dca569586e976d9dcc06d" + integrity sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg== + dependencies: + es-to-primitive "^1.2.0" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.0" + is-callable "^1.1.4" + is-regex "^1.0.4" + object-inspect "^1.6.0" + object-keys "^1.1.1" + string.prototype.trimleft "^2.1.0" + string.prototype.trimright "^2.1.0" + +es-to-primitive@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" + integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escodegen@^1.9.1: + version "1.12.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" + integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== + dependencies: + esprima "^3.1.3" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-standard@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9" + integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== + +eslint-import-resolver-node@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" + integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== + dependencies: + debug "^2.6.9" + resolve "^1.5.0" + +eslint-loader@^2.1.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337" + integrity sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg== + dependencies: + loader-fs-cache "^1.0.0" + loader-utils "^1.0.2" + object-assign "^4.0.1" + object-hash "^1.1.4" + rimraf "^2.6.1" + +eslint-module-utils@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz#7b4675875bf96b0dbf1b21977456e5bb1f5e018c" + integrity sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw== + dependencies: + debug "^2.6.8" + pkg-dir "^2.0.0" + +eslint-plugin-es@^1.3.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz#12acae0f4953e76ba444bfd1b2271081ac620998" + integrity sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA== + dependencies: + eslint-utils "^1.4.2" + regexpp "^2.0.1" + +eslint-plugin-html@^5.0.0: + version "5.0.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-html/-/eslint-plugin-html-5.0.5.tgz#e2388f813f75b2287cde884811eab287de8e0f56" + integrity sha512-v/33i3OD0fuXcRXexVyXXBOe4mLBLBQoF1UO1Uy9D+XLq4MC8K45GcQKfqjC/FnHAHp3pYUjpHHktYNCtShGmg== + dependencies: + htmlparser2 "^3.10.0" + +eslint-plugin-import@^2.14.0: + version "2.18.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz#02f1180b90b077b33d447a17a2326ceb400aceb6" + integrity sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ== + dependencies: + array-includes "^3.0.3" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.2" + eslint-module-utils "^2.4.0" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.0" + read-pkg-up "^2.0.0" + resolve "^1.11.0" + +eslint-plugin-node@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz#55ae3560022863d141fa7a11799532340a685964" + integrity sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w== + dependencies: + eslint-plugin-es "^1.3.1" + eslint-utils "^1.3.1" + ignore "^5.0.2" + minimatch "^3.0.4" + resolve "^1.8.1" + semver "^5.5.0" + +eslint-plugin-promise@^4.0.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a" + integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw== + +eslint-plugin-standard@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz#ff0519f7ffaff114f76d1bd7c3996eef0f6e20b4" + integrity sha512-v/KBnfyaOMPmZc/dmc6ozOdWqekGp7bBGq4jLAecEfPGmfKiWS4sA8sC0LqiV9w5qmXAtXVn4M3p1jSyhY85SQ== + +eslint-plugin-vue@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-4.7.1.tgz#c829b9fc62582c1897b5a0b94afd44ecca511e63" + integrity sha512-esETKhVMI7Vdli70Wt4bvAwnZBJeM0pxVX9Yb0wWKxdCJc2EADalVYK/q2FzMw8oKN0wPMdqVCKS8kmR89recA== + dependencies: + vue-eslint-parser "^2.0.3" + +eslint-plugin-vue@^5.0.0: + version "5.2.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-5.2.3.tgz#3ee7597d823b5478804b2feba9863b1b74273961" + integrity sha512-mGwMqbbJf0+VvpGR5Lllq0PMxvTdrZ/ZPjmhkacrCHbubJeJOt+T6E3HUzAifa2Mxi7RSdJfC9HFpOeSYVMMIw== + dependencies: + vue-eslint-parser "^5.0.0" + +eslint-scope@^3.7.1: + version "3.7.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" + integrity sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^4.0.0, eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.3.1, eslint-utils@^1.4.2: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + +eslint@^4.19.1: + version "4.19.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" + integrity sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ== + dependencies: + ajv "^5.3.0" + babel-code-frame "^6.22.0" + chalk "^2.1.0" + concat-stream "^1.6.0" + cross-spawn "^5.1.0" + debug "^3.1.0" + doctrine "^2.1.0" + eslint-scope "^3.7.1" + eslint-visitor-keys "^1.0.0" + espree "^3.5.4" + esquery "^1.0.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.0.1" + ignore "^3.3.3" + imurmurhash "^0.1.4" + inquirer "^3.0.6" + is-resolvable "^1.0.0" + js-yaml "^3.9.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.4" + minimatch "^3.0.2" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + pluralize "^7.0.0" + progress "^2.0.0" + regexpp "^1.0.1" + require-uncached "^1.0.3" + semver "^5.3.0" + strip-ansi "^4.0.0" + strip-json-comments "~2.0.1" + table "4.0.2" + text-table "~0.2.0" + +eslint@^5.8.0: + version "5.16.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" + integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.9.1" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^4.0.3" + eslint-utils "^1.3.1" + eslint-visitor-keys "^1.0.0" + espree "^5.0.1" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.7.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^6.2.2" + js-yaml "^3.13.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.11" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^5.5.1" + strip-ansi "^4.0.0" + strip-json-comments "^2.0.1" + table "^5.2.3" + text-table "^0.2.0" + +espree@^3.5.2, espree@^3.5.4: + version "3.5.4" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" + integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== + dependencies: + acorn "^5.5.0" + acorn-jsx "^3.0.0" + +espree@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f" + integrity sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w== + dependencies: + acorn "^6.0.2" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" + +espree@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" + integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== + dependencies: + acorn "^6.0.7" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" + +esprima@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.0.0, esquery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +event-pubsub@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/event-pubsub/-/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e" + integrity sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ== + +eventemitter3@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" + integrity sha1-teEHm1n7XhuidxwKmTvgYKWMmbo= + +eventemitter3@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" + integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== + +events@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" + integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== + +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" + integrity sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw== + dependencies: + merge "^1.2.0" + +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + integrity sha1-2NdrvBtVIX7RkP1t1J08d07PyNo= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.2.0.tgz#18326b79c7ab7fbd6610fd900c1b9e95fa48f90a" + integrity sha512-kJJfVbI/lZE1PZYDI5VPxp8zXPO9rtxOkhpZ0jMKha56AI9y2gGVC6bkukStQf0ka5Rh15BA5m7cCCH4jmHqkw== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + integrity sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s= + dependencies: + is-posix-bracket "^0.1.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + integrity sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc= + dependencies: + fill-range "^2.1.0" + +expect@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98" + integrity sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w== + dependencies: + ansi-styles "^3.2.0" + jest-diff "^23.6.0" + jest-get-type "^22.1.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + +express@^4.16.3, express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.2, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^2.0.1, external-editor@^2.0.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + integrity sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE= + dependencies: + is-extglob "^1.0.0" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extract-from-css@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/extract-from-css/-/extract-from-css-0.4.4.tgz#1ea7df2e7c7c6eb9922fa08e8adaea486f6f8f92" + integrity sha1-HqffLnx8brmSL6COitrqSG9vj5I= + dependencies: + css "^2.1.0" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ= + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +fast-diff@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.1.2.tgz#4b62c42b8e03de3f848460b639079920695d0154" + integrity sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig== + +fast-glob@^2.2.6: + version "2.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastparse@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.1: + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg= + dependencies: + bser "^2.0.0" + +fecha@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-2.3.3.tgz#948e74157df1a32fd1b12c3a3c3cdcb6ec9d96cd" + integrity sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg== + +figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +file-loader@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa" + integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw== + dependencies: + loader-utils "^1.0.2" + schema-utils "^1.0.0" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY= + +fileset@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA= + dependencies: + glob "^7.0.3" + minimatch "^3.0.3" + +filesize@^3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== + +fill-range@^2.1.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" + integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q== + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^3.0.0" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-babel-config@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2" + integrity sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA== + dependencies: + json5 "^0.5.1" + path-exists "^3.0.0" + +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-cache-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + integrity sha1-kojj6ePMN0hxfTnq3hfPcfww7m8= + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^2.0.0" + +find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +flat-cache@^1.2.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" + integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== + dependencies: + circular-json "^0.3.1" + graceful-fs "^4.1.2" + rimraf "~2.6.2" + write "^0.2.1" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flatted@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" + integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +fmin@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/fmin/-/fmin-0.0.2.tgz#59bbb40d43ffdc1c94cd00a568c41f95f1973017" + integrity sha1-Wbu0DUP/3ByUzQClaMQflfGXMBc= + dependencies: + contour_plot "^0.0.1" + json2module "^0.0.3" + rollup "^0.25.8" + tape "^4.5.1" + uglify-js "^2.6.2" + +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + +follow-redirects@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f" + integrity sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A== + dependencies: + debug "^3.0.0" + +for-each@~0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= + dependencies: + for-in "^1.0.1" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.3, fsevents@^1.2.7: + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.12.0" + +function-bind@^1.0.2, function-bind@^1.1.1, function-bind@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= + +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.4: + version "7.1.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.5.tgz#6714c69bee20f3c3e64c4dd905553e532b40cdc0" + integrity sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.0.1, globals@^11.1.0, globals@^11.7.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" + integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA= + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + +globby@^9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" + integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^1.0.2" + dir-glob "^2.2.2" + fast-glob "^2.2.6" + glob "^7.1.3" + ignore "^4.0.3" + pify "^4.0.1" + slash "^2.0.0" + +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= + dependencies: + delegate "^3.1.2" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + +graphlib@^2.1.7: + version "2.1.7" + resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.7.tgz#b6a69f9f44bd9de3963ce6804a2fc9e73d86aecc" + integrity sha512-TyI9jIy2J4j0qgPmOOrHTCtpPqJGN/aurBwc6ZT+bRii+di1I+Wv3obRhVrmBEXet+qkMaEX67dXrwsd3QQM6w== + dependencies: + lodash "^4.17.5" + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +gzip-size@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +handle-thing@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" + integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== + +handlebars@^4.0.3: + version "4.4.5" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.4.5.tgz#1b1f94f9bfe7379adda86a8b73fb570265a0dddd" + integrity sha512-0Ce31oWVB7YidkaTq33ZxEbN+UDxMMgThvCe8ptgQViymL5DPis9uLdTA13MiRPhgvqyxIegugrP97iK3JeBHg== + dependencies: + neo-async "^2.6.0" + optimist "^0.6.1" + source-map "^0.6.1" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + dependencies: + ajv "^6.5.5" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.1, has@^1.0.3, has@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash-sum@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04" + integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ= + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.x, he@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +highlight.js@^9.6.0: + version "9.15.10" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.15.10.tgz#7b18ed75c90348c045eef9ed08ca1319a2219ad2" + integrity sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw== + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +hosted-git-info@^2.1.4: + version "2.8.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" + integrity sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +html-entities@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= + +html-minifier@^3.2.3: + version "3.5.21" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" + integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== + dependencies: + camel-case "3.0.x" + clean-css "4.2.x" + commander "2.17.x" + he "1.2.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.4.x" + +html-tags@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b" + integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos= + +html-webpack-plugin@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b" + integrity sha1-sBq71yOsqqeze2r0SS69oD2d03s= + dependencies: + html-minifier "^3.2.3" + loader-utils "^0.2.16" + lodash "^4.17.3" + pretty-error "^2.0.2" + tapable "^1.0.0" + toposort "^1.0.0" + util.promisify "1.0.0" + +htmlparser2@^3.10.0, htmlparser2@^3.3.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +"http-parser-js@>=0.4.0 <0.4.11": + version "0.4.10" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" + integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= + +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.17.0: + version "1.18.0" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" + integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4, iconv-lite@~0.4.13: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= + +icss-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" + integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI= + dependencies: + postcss "^6.0.1" + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore-walk@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + dependencies: + minimatch "^3.0.4" + +ignore@^3.3.3, ignore@^3.3.5: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +ignore@^4.0.3, ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.0.2: + version "5.1.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" + integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== + +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.1.0.tgz#6d33fa1dcef6df930fae003446f33415af905118" + integrity sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + dependencies: + resolve-from "^3.0.0" + +import-local@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" + integrity sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ== + dependencies: + pkg-dir "^2.0.0" + resolve-cwd "^2.0.0" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +infer-owner@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +inquirer@3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.0.6.tgz#e04aaa9d05b7a3cb9b0f407d04375f0447190347" + integrity sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c= + dependencies: + ansi-escapes "^1.1.0" + chalk "^1.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.1" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx "^4.1.0" + string-width "^2.0.0" + strip-ansi "^3.0.0" + through "^2.3.6" + +inquirer@^3.0.6: + version "3.3.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +inquirer@^6.2.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +intersperse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/intersperse/-/intersperse-1.0.0.tgz#f2561fb1cfef9f5277cc3347a22886b4351a5181" + integrity sha1-8lYfsc/vn1J3zDNHoiiGtDUaUYE= + +invariant@^2.2.2, invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== + +ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5, is-buffer@~1.1.1: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-buffer@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" + integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== + +is-callable@^1.1.3, is-callable@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" + integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== + +is-ci@^1.0.10: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== + dependencies: + ci-info "^1.5.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + integrity sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ= + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-generator-fn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" + integrity sha1-lp1J4bszKfa7fwkIm+JleLLd1Go= + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-negative-zero@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" + integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + integrity sha1-Afy7s5NGOlSPL0ZszhbezknbkI8= + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + integrity sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q= + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU= + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= + dependencies: + has "^1.0.1" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" + integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + dependencies: + has-symbols "^1.0.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-whitespace@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" + integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isarray@~0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +ismobilejs@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/ismobilejs/-/ismobilejs-0.5.2.tgz#e81bacf6187c532ad8348355f4fecd6e6adfdce1" + integrity sha512-ta9UdV60xVZk/ZafFtSFslQaE76SvNkcs1r73d2PVR21zVzx9xuYv9tNe4MxA1NN7WoeCc2RjGot3Bz1eHDx3Q== + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-api@^1.3.1: + version "1.3.7" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.7.tgz#a86c770d2b03e11e3f778cd7aedd82d2722092aa" + integrity sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA== + dependencies: + async "^2.1.4" + fileset "^2.0.2" + istanbul-lib-coverage "^1.2.1" + istanbul-lib-hook "^1.2.2" + istanbul-lib-instrument "^1.10.2" + istanbul-lib-report "^1.1.5" + istanbul-lib-source-maps "^1.2.6" + istanbul-reports "^1.5.1" + js-yaml "^3.7.0" + mkdirp "^0.5.1" + once "^1.4.0" + +istanbul-lib-coverage@^1.2.0, istanbul-lib-coverage@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" + integrity sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ== + +istanbul-lib-hook@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86" + integrity sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw== + dependencies: + append-transform "^0.4.0" + +istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca" + integrity sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A== + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.18.0" + istanbul-lib-coverage "^1.2.1" + semver "^5.3.0" + +istanbul-lib-report@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz#f2a657fc6282f96170aaf281eb30a458f7f4170c" + integrity sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw== + dependencies: + istanbul-lib-coverage "^1.2.1" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-source-maps@^1.2.4, istanbul-lib-source-maps@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f" + integrity sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg== + dependencies: + debug "^3.1.0" + istanbul-lib-coverage "^1.2.1" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-reports@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.5.1.tgz#97e4dbf3b515e8c484caea15d6524eebd3ff4e1a" + integrity sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw== + dependencies: + handlebars "^4.0.3" + +javascript-stringify@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz#142d111f3a6e3dae8f4a9afd77d45855b5a9cce3" + integrity sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM= + +jest-changed-files@^23.4.2: + version "23.4.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.4.2.tgz#1eed688370cd5eebafe4ae93d34bb3b64968fe83" + integrity sha512-EyNhTAUWEfwnK0Is/09LxoqNDOn7mU7S3EHskG52djOFS/z+IT0jT3h3Ql61+dklcG7bJJitIWEMB4Sp1piHmA== + dependencies: + throat "^4.0.0" + +jest-cli@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.6.0.tgz#61ab917744338f443ef2baa282ddffdd658a5da4" + integrity sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ== + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.1" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.1.11" + import-local "^1.0.0" + is-ci "^1.0.10" + istanbul-api "^1.3.1" + istanbul-lib-coverage "^1.2.0" + istanbul-lib-instrument "^1.10.1" + istanbul-lib-source-maps "^1.2.4" + jest-changed-files "^23.4.2" + jest-config "^23.6.0" + jest-environment-jsdom "^23.4.0" + jest-get-type "^22.1.0" + jest-haste-map "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + jest-resolve-dependencies "^23.6.0" + jest-runner "^23.6.0" + jest-runtime "^23.6.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + jest-watcher "^23.4.0" + jest-worker "^23.2.0" + micromatch "^2.3.11" + node-notifier "^5.2.1" + prompts "^0.1.9" + realpath-native "^1.0.0" + rimraf "^2.5.4" + slash "^1.0.0" + string-length "^2.0.0" + strip-ansi "^4.0.0" + which "^1.2.12" + yargs "^11.0.0" + +jest-config@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-23.6.0.tgz#f82546a90ade2d8c7026fbf6ac5207fc22f8eb1d" + integrity sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ== + dependencies: + babel-core "^6.0.0" + babel-jest "^23.6.0" + chalk "^2.0.1" + glob "^7.1.1" + jest-environment-jsdom "^23.4.0" + jest-environment-node "^23.4.0" + jest-get-type "^22.1.0" + jest-jasmine2 "^23.6.0" + jest-regex-util "^23.3.0" + jest-resolve "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + micromatch "^2.3.11" + pretty-format "^23.6.0" + +jest-diff@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.6.0.tgz#1500f3f16e850bb3d71233408089be099f610c7d" + integrity sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g== + dependencies: + chalk "^2.0.1" + diff "^3.2.0" + jest-get-type "^22.1.0" + pretty-format "^23.6.0" + +jest-docblock@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7" + integrity sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c= + dependencies: + detect-newline "^2.1.0" + +jest-each@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-23.6.0.tgz#ba0c3a82a8054387016139c733a05242d3d71575" + integrity sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg== + dependencies: + chalk "^2.0.1" + pretty-format "^23.6.0" + +jest-environment-jsdom@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz#056a7952b3fea513ac62a140a2c368c79d9e6023" + integrity sha1-BWp5UrP+pROsYqFAosNox52eYCM= + dependencies: + jest-mock "^23.2.0" + jest-util "^23.4.0" + jsdom "^11.5.1" + +jest-environment-node@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-23.4.0.tgz#57e80ed0841dea303167cce8cd79521debafde10" + integrity sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA= + dependencies: + jest-mock "^23.2.0" + jest-util "^23.4.0" + +jest-get-type@^22.1.0: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" + integrity sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w== + +jest-haste-map@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.6.0.tgz#2e3eb997814ca696d62afdb3f2529f5bbc935e16" + integrity sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg== + dependencies: + fb-watchman "^2.0.0" + graceful-fs "^4.1.11" + invariant "^2.2.4" + jest-docblock "^23.2.0" + jest-serializer "^23.0.1" + jest-worker "^23.2.0" + micromatch "^2.3.11" + sane "^2.0.0" + +jest-jasmine2@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz#840e937f848a6c8638df24360ab869cc718592e0" + integrity sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ== + dependencies: + babel-traverse "^6.0.0" + chalk "^2.0.1" + co "^4.6.0" + expect "^23.6.0" + is-generator-fn "^1.0.0" + jest-diff "^23.6.0" + jest-each "^23.6.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + pretty-format "^23.6.0" + +jest-leak-detector@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz#e4230fd42cf381a1a1971237ad56897de7e171de" + integrity sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg== + dependencies: + pretty-format "^23.6.0" + +jest-matcher-utils@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz#726bcea0c5294261a7417afb6da3186b4b8cac80" + integrity sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog== + dependencies: + chalk "^2.0.1" + jest-get-type "^22.1.0" + pretty-format "^23.6.0" + +jest-message-util@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-23.4.0.tgz#17610c50942349508d01a3d1e0bda2c079086a9f" + integrity sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8= + dependencies: + "@babel/code-frame" "^7.0.0-beta.35" + chalk "^2.0.1" + micromatch "^2.3.11" + slash "^1.0.0" + stack-utils "^1.0.1" + +jest-mock@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134" + integrity sha1-rRxg8p6HGdR8JuETgJi20YsmETQ= + +jest-regex-util@^23.3.0: + version "23.3.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" + integrity sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U= + +jest-resolve-dependencies@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz#b4526af24c8540d9a3fab102c15081cf509b723d" + integrity sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA== + dependencies: + jest-regex-util "^23.3.0" + jest-snapshot "^23.6.0" + +jest-resolve@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.6.0.tgz#cf1d1a24ce7ee7b23d661c33ba2150f3aebfa0ae" + integrity sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA== + dependencies: + browser-resolve "^1.11.3" + chalk "^2.0.1" + realpath-native "^1.0.0" + +jest-runner@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-23.6.0.tgz#3894bd219ffc3f3cb94dc48a4170a2e6f23a5a38" + integrity sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA== + dependencies: + exit "^0.1.2" + graceful-fs "^4.1.11" + jest-config "^23.6.0" + jest-docblock "^23.2.0" + jest-haste-map "^23.6.0" + jest-jasmine2 "^23.6.0" + jest-leak-detector "^23.6.0" + jest-message-util "^23.4.0" + jest-runtime "^23.6.0" + jest-util "^23.4.0" + jest-worker "^23.2.0" + source-map-support "^0.5.6" + throat "^4.0.0" + +jest-runtime@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-23.6.0.tgz#059e58c8ab445917cd0e0d84ac2ba68de8f23082" + integrity sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw== + dependencies: + babel-core "^6.0.0" + babel-plugin-istanbul "^4.1.6" + chalk "^2.0.1" + convert-source-map "^1.4.0" + exit "^0.1.2" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.1.11" + jest-config "^23.6.0" + jest-haste-map "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + jest-resolve "^23.6.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + micromatch "^2.3.11" + realpath-native "^1.0.0" + slash "^1.0.0" + strip-bom "3.0.0" + write-file-atomic "^2.1.0" + yargs "^11.0.0" + +jest-serializer-vue@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/jest-serializer-vue/-/jest-serializer-vue-2.0.2.tgz#b238ef286357ec6b480421bd47145050987d59b3" + integrity sha1-sjjvKGNX7GtIBCG9RxRQUJh9WbM= + dependencies: + pretty "2.0.0" + +jest-serializer@^23.0.1: + version "23.0.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" + integrity sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU= + +jest-snapshot@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.6.0.tgz#f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a" + integrity sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg== + dependencies: + babel-types "^6.0.0" + chalk "^2.0.1" + jest-diff "^23.6.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-resolve "^23.6.0" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + pretty-format "^23.6.0" + semver "^5.5.0" + +jest-transform-stub@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/jest-transform-stub/-/jest-transform-stub-2.0.0.tgz#19018b0851f7568972147a5d60074b55f0225a7d" + integrity sha512-lspHaCRx/mBbnm3h4uMMS3R5aZzMwyNpNIJLXj4cEsV0mIUtS4IjYJLSoyjRCtnxb6RIGJ4NL2quZzfIeNhbkg== + +jest-util@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-23.4.0.tgz#4d063cb927baf0a23831ff61bec2cbbf49793561" + integrity sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE= + dependencies: + callsites "^2.0.0" + chalk "^2.0.1" + graceful-fs "^4.1.11" + is-ci "^1.0.10" + jest-message-util "^23.4.0" + mkdirp "^0.5.1" + slash "^1.0.0" + source-map "^0.6.0" + +jest-validate@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474" + integrity sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A== + dependencies: + chalk "^2.0.1" + jest-get-type "^22.1.0" + leven "^2.1.0" + pretty-format "^23.6.0" + +jest-watch-typeahead@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.2.1.tgz#6c40f232996ca6c39977e929e9f79b189e7d87e4" + integrity sha512-xdhEtKSj0gmnkDQbPTIHvcMmXNUDzYpHLEJ5TFqlaI+schi2NI96xhWiZk9QoesAS7oBmKwWWsHazTrYl2ORgg== + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.4.1" + jest-watcher "^23.1.0" + slash "^2.0.0" + string-length "^2.0.0" + strip-ansi "^5.0.0" + +jest-watcher@^23.1.0, jest-watcher@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-23.4.0.tgz#d2e28ce74f8dad6c6afc922b92cabef6ed05c91c" + integrity sha1-0uKM50+NrWxq/JIrksq+9u0FyRw= + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.1" + string-length "^2.0.0" + +jest-worker@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9" + integrity sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk= + dependencies: + merge-stream "^1.0.1" + +jest@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d" + integrity sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw== + dependencies: + import-local "^1.0.0" + jest-cli "^23.6.0" + +jquery@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" + integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw== + +js-beautify@^1.6.12, js-beautify@^1.6.14: + version "1.10.2" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.10.2.tgz#88c9099cd6559402b124cfab18754936f8a7b178" + integrity sha512-ZtBYyNUYJIsBWERnQP0rPN9KjkrDfJcMjuVGcvXOUJrD1zmOGwhRwQ4msG+HJ+Ni/FA7+sRQEMYVzdTQDvnzvQ== + dependencies: + config-chain "^1.1.12" + editorconfig "^0.15.3" + glob "^7.1.3" + mkdirp "~0.5.1" + nopt "~4.0.1" + +js-cookie@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" + integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== + +js-levenshtein@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" + integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== + +js-message@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/js-message/-/js-message-1.0.5.tgz#2300d24b1af08e89dd095bc1a4c9c9cfcb892d15" + integrity sha1-IwDSSxrwjondCVvBpMnJz8uJLRU= + +js-queue@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/js-queue/-/js-queue-2.0.0.tgz#362213cf860f468f0125fc6c96abc1742531f948" + integrity sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug= + dependencies: + easy-stack "^1.0.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.7.0, js-yaml@^3.9.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^11.5.1: + version "11.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== + dependencies: + abab "^2.0.0" + acorn "^5.5.3" + acorn-globals "^4.1.0" + array-equal "^1.0.0" + cssom ">= 0.3.2 < 0.4.0" + cssstyle "^1.0.0" + data-urls "^1.0.0" + domexception "^1.0.1" + escodegen "^1.9.1" + html-encoding-sniffer "^1.0.2" + left-pad "^1.3.0" + nwsapi "^2.0.7" + parse5 "4.0.0" + pn "^1.1.0" + request "^2.87.0" + request-promise-native "^1.0.5" + sax "^1.2.4" + symbol-tree "^3.2.2" + tough-cookie "^2.3.4" + w3c-hr-time "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.3" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^5.2.0" + xml-name-validator "^3.0.0" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + integrity sha1-RsP+yMGJKxKwgz25vHYiF226s0s= + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A= + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json2module@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/json2module/-/json2module-0.0.3.tgz#00fb5f4a9b7adfc3f0647c29cb17bcd1979be9b2" + integrity sha1-APtfSpt638PwZHwpyxe80Zeb6bI= + dependencies: + rw "^1.3.2" + +json2mq@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" + integrity sha1-tje9O6nqvhIsg+lyBIOusQ0skEo= + dependencies: + string-convert "^0.2.0" + +json3@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE= + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" + integrity sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ== + dependencies: + minimist "^1.2.0" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + +kleur@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300" + integrity sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ== + +launch-editor-middleware@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz#e14b07e6c7154b0a4b86a0fd345784e45804c157" + integrity sha512-s0UO2/gEGiCgei3/2UN3SMuUj1phjQN8lcpnvgLSz26fAzNWPQ6Nf/kF5IFClnfU2ehp6LrmKdMU/beveO+2jg== + dependencies: + launch-editor "^2.2.1" + +launch-editor@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca" + integrity sha512-On+V7K2uZK6wK7x691ycSUbLD/FyKKelArkbaAMSSJU8JmqmhwN2+mnJDNINuJWSrh2L0kDk+ZQtbC/gOWUwLw== + dependencies: + chalk "^2.3.0" + shell-quote "^1.6.1" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== + +less-loader@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-4.1.0.tgz#2c1352c5b09a4f84101490274fd51674de41363e" + integrity sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg== + dependencies: + clone "^2.1.1" + loader-utils "^1.1.0" + pify "^3.0.0" + +less@^3.8.1: + version "3.10.3" + resolved "https://registry.yarnpkg.com/less/-/less-3.10.3.tgz#417a0975d5eeecc52cff4bcfa3c09d35781e6792" + integrity sha512-vz32vqfgmoxF1h3K4J+yKCtajH0PWmjkIFgbs5d78E/c/e+UQTnI+lWK+1eQRE95PXM2mC3rJlLSSP9VQHnaow== + dependencies: + clone "^2.1.2" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + mime "^1.4.1" + mkdirp "^0.5.0" + promise "^7.1.1" + request "^2.83.0" + source-map "~0.6.0" + +leven@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-fs-cache@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.2.tgz#54cedf6b727e1779fd8f01205f05f6e88706f086" + integrity sha512-70IzT/0/L+M20jUlEqZhZyArTU6VKLRTYRDAYN26g4jfzpJqjipLL3/hgYpySqI9PwsVRHHFja0LfEmsx9X2Cw== + dependencies: + find-cache-dir "^0.1.1" + mkdirp "0.5.1" + +loader-runner@^2.3.1, loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + integrity sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0= + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +loader-utils@^0.2.16: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +lodash.defaultsdeep@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" + integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.kebabcase@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY= + +lodash.mapvalues@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" + integrity sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.toarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" + integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= + +lodash.transform@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" + integrity sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A= + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +log-symbols@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + +loglevel@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.4.tgz#f408f4f006db8354d0577dcf6d33485b3cb90d56" + integrity sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g== + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + integrity sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc= + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= + +lru-cache@^4.0.1, lru-cache@^4.1.1, lru-cache@^4.1.2, lru-cache@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +mamacro@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +math-random@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" + integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +md5@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" + integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk= + dependencies: + charenc "~0.0.1" + crypt "~0.0.1" + is-buffer "~1.1.1" + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +mdn-data@~1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" + integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-source-map@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" + integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== + dependencies: + source-map "^0.6.1" + +merge-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= + dependencies: + readable-stream "^2.0.1" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.2.3: + version "1.3.0" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" + integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== + +merge@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" + integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +micromatch@^2.3.11: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + integrity sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU= + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.40.0: + version "1.40.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== + +"mime-db@>= 1.40.0 < 2": + version "1.42.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac" + integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ== + +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.24" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + +mime@1.6.0, mime@^1.4.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.0.3, mime@^2.4.4: + version "2.4.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" + integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.0.0, mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mini-css-extract-plugin@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz#81d41ec4fe58c713a96ad7c723cdb2d0bd4d70e1" + integrity sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@1.2.0, minimist@^1.1.1, minimist@^1.2.0, minimist@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= + +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +mississippi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" + integrity sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^2.0.1" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +mockjs2@^1.0.5: + version "1.0.8" + resolved "https://registry.yarnpkg.com/mockjs2/-/mockjs2-1.0.8.tgz#37ca061d6c3319d888292aef656434380971c94c" + integrity sha512-IXY9wzq3Pr2tybkJnT+dzrTz0GBRTtgXc7Cke/UUQyyWtbjDrck8uZ3NmMF4LaWgAD8vm8EMGcBk4Itc6nzpRg== + dependencies: + commander "*" + +moment@^2.21.0, moment@^2.24.0: + version "2.24.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" + integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +mutationobserver-shim@^0.3.2: + version "0.3.3" + resolved "https://registry.yarnpkg.com/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz#65869630bc89d7bf8c9cd9cb82188cd955aacd2b" + integrity sha512-gciOLNN8Vsf7YzcqRjKzlAJ6y7e+B86u7i3KXes0xfxx/nfLmozlW1Vn+Sc9x3tPIePFgc1AeIFhtRgkqTjzDQ== + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +mz@^2.4.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nan@^2.12.1: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +needle@^2.2.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" + integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== + dependencies: + lower-case "^1.1.1" + +node-cache@^4.1.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/node-cache/-/node-cache-4.2.1.tgz#efd8474dee4edec4138cdded580f5516500f7334" + integrity sha512-BOb67bWg2dTyax5kdef5WfU3X8xu4wPg+zHzkvls0Q/QpYycIFRLEEIdAx9Wma43DxG6Qzn4illdZoYseKWa4A== + dependencies: + clone "2.x" + lodash "^4.17.15" + +node-emoji@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" + integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== + dependencies: + lodash.toarray "^4.4.0" + +node-fetch@1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" + integrity sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ= + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-forge@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" + integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-ipc@^9.1.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/node-ipc/-/node-ipc-9.1.1.tgz#4e245ed6938e65100e595ebc5dc34b16e8dd5d69" + integrity sha512-FAyICv0sIRJxVp3GW5fzgaf9jwwRQxAKDJlmNFUL5hOy+W4X/I5AypyHoq0DXXbo9o/gt79gj++4cMr4jVWE/w== + dependencies: + event-pubsub "4.3.0" + js-message "1.0.5" + js-queue "2.0.0" + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-notifier@^5.2.1: + version "5.4.3" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" + integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== + dependencies: + growly "^1.3.0" + is-wsl "^1.1.0" + semver "^5.5.0" + shellwords "^0.1.1" + which "^1.3.0" + +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + +node-releases@^1.1.38: + version "1.1.39" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.39.tgz#c1011f30343aff5b633153b10ff691d278d08e8d" + integrity sha512-8MRC/ErwNCHOlAFycy9OPca46fQYUjbJRDcZTHVWIGXIjYLM73k70vv3WkYutVnM4cCo4hE0MqBVVZjP6vjISA== + dependencies: + semver "^6.3.0" + +nopt@^4.0.1, nopt@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" + integrity sha1-MtDkcvkf80VwHBWoMRAY07CpA3k= + +normalize-path@^2.0.1, normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +npm-bundled@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" + integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== + +npm-packlist@^1.1.6: + version "1.4.6" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.6.tgz#53ba3ed11f8523079f1457376dd379ee4ea42ff4" + integrity sha512-u65uQdb+qwtGvEJh/DgQgW1Xg7sqeNbmxYyrvlNznaVTjV3E5P6F/EFjM+BVHXl7JJlsdG8A64M0XI8FI/IOlg== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.0.tgz#d644ec1bd0569187d2a52909971023a0a58e8438" + integrity sha512-8eyAOAH+bYXFPSnNnKr3J+yoybe8O87Is5rtAQ8qRczJz1ajcsjg8l2oZqP+Ppx15Ii3S1vUTjQN2h4YO2tWWQ== + dependencies: + path-key "^3.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nprogress@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" + integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E= + +nth-check@^1.0.2, nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nwsapi@^2.0.7: + version "2.1.4" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz#e006a878db23636f8e8a67d33ca0e4edf61a842f" + integrity sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@4.x, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-hash@^1.1.4: + version "1.3.1" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" + integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== + +object-inspect@^1.6.0, object-inspect@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" + integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== + +object-is@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" + integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.getownpropertydescriptors@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" + integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.1" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + integrity sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo= + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" + integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.12.0" + function-bind "^1.1.1" + has "^1.0.3" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +omit.js@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/omit.js/-/omit.js-1.0.2.tgz#91a14f0eba84066dfa015bf30e474c47f30bc858" + integrity sha512-/QPc6G2NS+8d4L/cQhbk6Yit1WTB6Us2g84A7A/1+w9d/eRGHyEqC5kkQtHVoHZ5NFWGG7tUGgrhVZwgZanKrQ== + dependencies: + babel-runtime "^6.23.0" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + dependencies: + mimic-fn "^2.1.0" + +open@^6.3.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" + integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== + dependencies: + is-wsl "^1.1.0" + +opencollective-postinstall@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" + integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== + +opencollective@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/opencollective/-/opencollective-1.0.3.tgz#aee6372bc28144583690c3ca8daecfc120dd0ef1" + integrity sha1-ruY3K8KBRFg2kMPKja7PwSDdDvE= + dependencies: + babel-polyfill "6.23.0" + chalk "1.1.3" + inquirer "3.0.6" + minimist "1.2.0" + node-fetch "1.6.3" + opn "4.0.2" + +opener@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" + integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== + +opn@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" + integrity sha1-erwi5kTf9jsKltWrfyeQwPAavJU= + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.1, optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +ora@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" + integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg== + dependencies: + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-spinners "^2.0.0" + log-symbols "^2.2.0" + strip-ansi "^5.2.0" + wcwidth "^1.0.1" + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^3.0.0, os-locale@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^1.0.0, p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" + integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@~1.0.5: + version "1.0.10" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" + integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@2.1.x: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= + dependencies: + no-case "^2.2.0" + +parchment@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/parchment/-/parchment-1.1.4.tgz#aeded7ab938fe921d4c34bc339ce1168bc2ffde5" + integrity sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0: + version "5.1.5" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" + integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" + integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + lines-and-columns "^1.1.6" + +parse-svg-path@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/parse-svg-path/-/parse-svg-path-0.1.2.tgz#7a7ec0d1eb06fa5325c7d3e009b859a09b5d49eb" + integrity sha1-en7A0esG+lMlx9PgCbhZoJtdSes= + +parse5@4.0.0, parse5@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.0.tgz#99a10d870a803bdd5ee6f0470e58dfcd2f9a54d3" + integrity sha512-8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg== + +path-parse@^1.0.5, path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= + dependencies: + find-up "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + +point-at-length@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/point-at-length/-/point-at-length-1.0.2.tgz#9176d8d6d7c8162f12b646f707db9f0ea728125e" + integrity sha1-kXbY1tfIFi8Stkb3B9ufDqcoEl4= + dependencies: + abs-svg-path "~0.1.1" + isarray "~0.0.1" + parse-svg-path "~0.1.1" + +portfinder@^1.0.20, portfinder@^1.0.25: + version "1.0.25" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" + integrity sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.1" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-calc@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" + integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ== + dependencies: + css-unit-converter "^1.1.1" + postcss "^7.0.5" + postcss-selector-parser "^5.0.0-rc.4" + postcss-value-parser "^3.3.1" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-load-config@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" + integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" + integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw== + dependencies: + postcss "^6.0.1" + +postcss-modules-local-by-default@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-scope@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-values@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-selector-parser@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" + integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= + dependencies: + dot-prop "^4.1.1" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.4: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" + integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== + dependencies: + cssesc "^2.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" + integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== + +postcss@^6.0.1, postcss@^6.0.23: + version "6.0.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.19, postcss@^7.0.5: + version "7.0.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" + integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= + +prettier@1.16.3: + version "1.16.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.3.tgz#8c62168453badef702f34b45b6ee899574a6a65d" + integrity sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw== + +pretty-error@^2.0.2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" + integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= + dependencies: + renderkid "^2.0.1" + utila "~0.4" + +pretty-format@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" + integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw== + dependencies: + ansi-regex "^3.0.0" + ansi-styles "^3.2.0" + +pretty@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5" + integrity sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU= + dependencies: + condense-newlines "^0.2.1" + extend-shallow "^2.0.1" + js-beautify "^1.6.12" + +private@^0.1.6, private@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +prompts@^0.1.9: + version "0.1.14" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2" + integrity sha512-rxkyiE9YH6zAz/rZpywySLKkpaj0NMVyNw1qhsubdbjjSgcayjTShDreZGlFMcGSu5sab3bAKPfFk78PB90+8w== + dependencies: + kleur "^2.0.1" + sisteransi "^0.1.1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +proxy-addr@~2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.0" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.24, psl@^1.1.28: + version "1.4.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" + integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0, pump@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + +quill-delta@^3.6.2: + version "3.6.3" + resolved "https://registry.yarnpkg.com/quill-delta/-/quill-delta-3.6.3.tgz#b19fd2b89412301c60e1ff213d8d860eac0f1032" + integrity sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg== + dependencies: + deep-equal "^1.0.1" + extend "^3.0.2" + fast-diff "1.1.2" + +quill@^1.3.4: + version "1.3.7" + resolved "https://registry.yarnpkg.com/quill/-/quill-1.3.7.tgz#da5b2f3a2c470e932340cdbf3668c9f21f9286e8" + integrity sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g== + dependencies: + clone "^2.1.1" + deep-equal "^1.0.1" + eventemitter3 "^2.0.3" + extend "^3.0.2" + parchment "^1.1.4" + quill-delta "^3.6.2" + +raf@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +randomatic@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" + integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw== + dependencies: + is-number "^4.0.0" + kind-of "^6.0.0" + math-random "^1.0.1" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read-pkg@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.1.1: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +realpath-native@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" + integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== + dependencies: + util.promisify "^1.0.0" + +regenerate-unicode-properties@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" + integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.2.1, regenerate@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + +regenerator-runtime@^0.10.0: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + integrity sha1-M2w+/BIgrc7dosn6tntaeVWjNlg= + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.2: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + +regenerator-transform@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" + integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== + dependencies: + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + integrity sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ== + dependencies: + is-equal-shallow "^0.1.3" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp.prototype.flags@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" + integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA== + dependencies: + define-properties "^1.1.2" + +regexpp@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" + integrity sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw== + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpu-core@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs= + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regexpu-core@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" + integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.1.0" + regjsgen "^0.5.0" + regjsparser "^0.6.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.1.0" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= + +regjsgen@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" + integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= + dependencies: + jsesc "~0.5.0" + +regjsparser@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" + integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== + dependencies: + jsesc "~0.5.0" + +regression@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regression/-/regression-2.0.1.tgz#8d29c3e8224a10850c35e337e85a8b2fac3b0c87" + integrity sha1-jSnD6CJKEIUMNeM36FqLL6w7DIc= + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" + integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA== + dependencies: + css-select "^1.1.0" + dom-converter "^0.2" + htmlparser2 "^3.3.0" + strip-ansi "^3.0.0" + utila "^0.4.0" + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= + dependencies: + is-finite "^1.0.0" + +request-promise-core@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz#339f6aababcafdb31c799ff158700336301d3346" + integrity sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag== + dependencies: + lodash "^4.17.11" + +request-promise-native@^1.0.5, request-promise-native@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz#a49868a624bdea5069f1251d0a836e0d89aa2c59" + integrity sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w== + dependencies: + request-promise-core "1.1.2" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.83.0, request@^2.87.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.0" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +require-uncached@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +reselect@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/reselect/-/reselect-3.0.1.tgz#efdaa98ea7451324d092b2b2163a6a1d7a9a2147" + integrity sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc= + +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1: + version "1.12.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" + integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== + dependencies: + path-parse "^1.0.6" + +resolve@~1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e" + integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw== + dependencies: + path-parse "^1.0.6" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +resumer@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + integrity sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k= + dependencies: + through "~2.3.4" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + integrity sha1-YTObci/mo1FWiSENJOFMlhSGE+8= + dependencies: + align-text "^0.1.1" + +rimraf@2.6.3, rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rollup@^0.25.8: + version "0.25.8" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.25.8.tgz#bf6ce83b87510d163446eeaa577ed6a6fc5835e0" + integrity sha1-v2zoO4dRDRY0Ru6qV37WpvxYNeA= + dependencies: + chalk "^1.1.1" + minimist "^1.2.0" + source-map-support "^0.3.2" + +rsvp@^3.3.3: + version "3.6.2" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" + integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== + +run-async@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= + dependencies: + is-promise "^2.1.0" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +rw@1, rw@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= + +rx@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= + +rxjs@^6.4.0: + version "6.5.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz#510e26317f4db91a7eb1de77d9dd9ba0a4899a3a" + integrity sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA== + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^2.0.0: + version "2.5.2" + resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" + integrity sha1-tNwYYcIbQn6SlQej51HiosuKs/o= + dependencies: + anymatch "^2.0.0" + capture-exit "^1.2.0" + exec-sh "^0.2.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + watch "~0.18.0" + optionalDependencies: + fsevents "^1.2.3" + +sax@^1.2.4, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +select@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= + +selfsigned@^1.10.7: + version "1.10.7" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" + integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== + dependencies: + node-forge "0.9.0" + +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^1.4.0, serialize-javascript@^1.7.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" + integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-equal@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.0.tgz#fd828d2029ff4e19569db7e19e535e94e2d1f5cc" + integrity sha512-Z21pVxR4cXsfwpMKMhCEIO1PCi5sp7KEp+CmOpBQ+E8GpHwKOw2sEzk7sgblM3d/j4z4gakoWEoPcjK0VJQogA== + +shallowequal@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.6.1: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= + +simple-statistics@~6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/simple-statistics/-/simple-statistics-6.1.1.tgz#e3a0799ffc49914d6f421c5a4ac585f6a13e2bad" + integrity sha512-zGwn0DDRa9Zel4H4n2pjTFIyGoAGpnpjrGIctreCxj5XWrcx9v7Xy7270FkC967WMmcvuc8ZU7m0ZG+hGN7gAA== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" + integrity sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g== + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slice-ansi@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== + dependencies: + is-fullwidth-code-point "^2.0.0" + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs-client@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" + integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== + dependencies: + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" + +sockjs@0.3.19: + version "0.3.19" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== + dependencies: + faye-websocket "^0.10.0" + uuid "^3.0.1" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" + integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + dependencies: + atob "^2.1.1" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.3.2: + version "0.3.3" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.3.3.tgz#34900977d5ba3f07c7757ee72e73bb1a9b53754f" + integrity sha1-NJAJd9W6PwfHdX7nLnO7GptTdU8= + dependencies: + source-map "0.1.32" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== + dependencies: + source-map "^0.5.6" + +source-map-support@^0.5.6, source-map-support@~0.5.12: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@0.1.32: + version "0.1.32" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.32.tgz#c8b6c167797ba4740a8ea33252162ff08591b266" + integrity sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY= + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" + integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== + dependencies: + safe-buffer "^5.1.1" + +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" + integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== + +stackframe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.1.0.tgz#e3fc2eb912259479c9822f7d1f1ff365bd5cbc83" + integrity sha512-Vx6W1Yvy+AM1R/ckVwcHQHV147pTPBKWCRLrXMuPrFVfvBUc3os7PR1QLIWCMhPpRg5eX9ojzbQIMLGBwyLjqg== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +string-convert@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" + integrity sha1-aYLMMEn7tM2F+LJFaLnZvznu/5c= + +string-length@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0= + dependencies: + astral-regex "^1.0.0" + strip-ansi "^4.0.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string.prototype.padend@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" + integrity sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.4.3" + function-bind "^1.0.2" + +string.prototype.padstart@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.padstart/-/string.prototype.padstart-3.0.0.tgz#5bcfad39f4649bb2d031292e19bcf0b510d4b242" + integrity sha1-W8+tOfRkm7LQMSkuGbzwtRDUskI= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.4.3" + function-bind "^1.0.2" + +string.prototype.trim@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" + integrity sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo= + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.0" + function-bind "^1.0.2" + +string.prototype.trimleft@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" + integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string.prototype.trimright@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" + integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== + dependencies: + define-properties "^1.1.3" + function-bind "^1.1.1" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-bom@3.0.0, strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= + +strip-json-comments@^2.0.0, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +style-loader@^0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" + integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== + dependencies: + loader-utils "^1.1.0" + schema-utils "^1.0.0" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^3.1.2: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= + dependencies: + has-flag "^1.0.0" + +supports-color@^5.3.0, supports-color@^5.4.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q= + +svgo@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.0.tgz#bae51ba95ded9a33a36b7c46ce9c359ae9154313" + integrity sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.33" + csso "^3.5.1" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-tree@^3.2.2: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" + integrity sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA== + dependencies: + ajv "^5.2.3" + ajv-keywords "^2.1.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" + string-width "^2.1.1" + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tape@^4.5.1: + version "4.11.0" + resolved "https://registry.yarnpkg.com/tape/-/tape-4.11.0.tgz#63d41accd95e45a23a874473051c57fdbc58edc1" + integrity sha512-yixvDMX7q7JIs/omJSzSZrqulOV51EC9dK8dM0TzImTIkHWfe2/kFyL5v+d9C+SrCMaICk59ujsqFAVidDqDaA== + dependencies: + deep-equal "~1.0.1" + defined "~1.0.0" + for-each "~0.3.3" + function-bind "~1.1.1" + glob "~7.1.4" + has "~1.0.3" + inherits "~2.0.4" + minimist "~1.2.0" + object-inspect "~1.6.0" + resolve "~1.11.1" + resumer "~0.0.0" + string.prototype.trim "~1.1.2" + through "~2.3.8" + +tar@^4: + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +terser-webpack-plugin@^1.2.3, terser-webpack-plugin@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" + integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^1.7.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^4.1.2: + version "4.3.9" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.9.tgz#e4be37f80553d02645668727777687dad26bbca8" + integrity sha512-NFGMpHjlzmyOtPL+fDw3G7+6Ueh/sz4mkaUYa4lJCxOPTNzd0Uj0aZJOmsDYoSQyfuVoWDMSWTPU3huyOm2zdA== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +test-exclude@^4.2.1: + version "4.2.3" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20" + integrity sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA== + dependencies: + arrify "^1.0.1" + micromatch "^2.3.11" + object-assign "^4.1.0" + read-pkg-up "^1.0.1" + require-main-filename "^1.0.1" + +text-table@^0.2.0, text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.0" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839" + integrity sha1-5p44obq+lpsBCCB5eLn2K4hgSDk= + dependencies: + any-promise "^1.0.0" + +thread-loader@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/thread-loader/-/thread-loader-2.1.3.tgz#cbd2c139fc2b2de6e9d28f62286ab770c1acbdda" + integrity sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg== + dependencies: + loader-runner "^2.3.1" + loader-utils "^1.1.0" + neo-async "^2.6.0" + +throat@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= + +throttle-debounce@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.1.0.tgz#257e648f0a56bd9e54fe0f132c4ab8611df4e1d5" + integrity sha512-AOvyNahXQuU7NN+VVvOOX+uW6FPaWdAOdRP5HfwYxAfCzXTFKRMoIMk+n+po318+ktcChx+F1Dd91G3YHeMKyg== + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@^2.3.6, through@~2.3.4, through@~2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timers-browserify@^2.0.4: + version "2.0.11" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + dependencies: + setimmediate "^1.0.4" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== + +tinycolor2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" + integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +topojson-client@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/topojson-client/-/topojson-client-3.0.1.tgz#774c0343b44fc4ec29c3a2274d7a1a9c3b213cd9" + integrity sha512-rfGGzyqefpxOaxvV9OTF9t+1g+WhjGEbAIuCcmKYrQkxr0nttjMMyzZsK+NhLW4cTl2g1bz2jQczPUtEshpbVQ== + dependencies: + commander "2" + +toposort@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029" + integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk= + +tough-cookie@^2.3.3, tough-cookie@^2.3.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +tsconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-7.0.0.tgz#84538875a4dc216e5c4a5432b3a4dec3d54e91b7" + integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== + dependencies: + "@types/strip-bom" "^3.0.0" + "@types/strip-json-comments" "0.0.30" + strip-bom "^3.0.0" + strip-json-comments "^2.0.0" + +tslib@^1.9.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +uglify-js@3.4.x: + version "3.4.10" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" + integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== + dependencies: + commander "~2.19.0" + source-map "~0.6.1" + +uglify-js@^2.6.2: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + integrity sha1-KcVzMUgFe7Th913zW3qcty5qWd0= + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-js@^3.1.4: + version "3.6.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.4.tgz#88cc880c6ed5cf9868fdfa0760654e7bed463f1d" + integrity sha512-9Yc2i881pF4BPGhjteCXQNaXx1DCwm3dtOyBaG2hitHjLWOczw/ki8vD1bqyT3u6K0Ms/FpCShkmfg+FtlOfYA== + dependencies: + commander "~2.20.3" + source-map "~0.6.1" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + integrity sha1-bgkk1r2mta/jSeOabWMoUKD4grc= + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" + integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" + integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.0, unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-loader@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" + integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== + dependencies: + loader-utils "^1.1.0" + mime "^2.0.3" + schema-utils "^1.0.0" + +url-parse@^1.4.3: + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url-search-params-polyfill@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/url-search-params-polyfill/-/url-search-params-polyfill-7.0.0.tgz#98b56ed29e67710588fdc3c361083b0f78303d95" + integrity sha512-0SEH3s+wCNbxEE/rWUalN004ICNi23Q74Ksc0gS2kG8EXnbayxGOrV97JdwnIVPKZ75Xk0hvKXvtIC4xReLMgg== + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@1.0.0, util.promisify@^1.0.0, util.promisify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utila@^0.4.0, utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.0.1, uuid@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + +v-viewer@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/v-viewer/-/v-viewer-1.4.2.tgz#23c31a037091445b6cba8aaa287e7e00a73f0971" + integrity sha512-WEslW+dKPHg10f9jl1v0ilH0uk4ZFOz4vUp4wJjomwl+VQEnsWLjSzHCeFoayxjE9KyZspVu9lYLNxk+o3xzkw== + dependencies: + throttle-debounce "^2.0.1" + viewerjs "^1.3.2" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0" + integrity sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw== + +venn.js@~0.2.20: + version "0.2.20" + resolved "https://registry.yarnpkg.com/venn.js/-/venn.js-0.2.20.tgz#3f0e50cc75cba1f58692a8a32f67bd7aaf1aa6fa" + integrity sha512-bb5SYq/wamY9fvcuErb9a0FJkgIFHJjkLZWonQ+DoKKuDX3WPH2B4ouI1ce4K2iejBklQy6r1ly8nOGIyOCO6w== + dependencies: + d3-selection "^1.0.2" + d3-transition "^1.0.1" + fmin "0.0.2" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +viewerjs@^1.3.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/viewerjs/-/viewerjs-1.4.0.tgz#f63aa06aa471a36152a316f81f3c7083f2c876c9" + integrity sha512-HTtR44rzdX76VrDfZGaYNciUL3EEexGX4HkvdJHP0VFSR+d2I/ZXFqdx6Q4Cc+X5VwhEf0Fx1Hi3wQy7msmKOA== + +viser-vue@^2.3.3: + version "2.4.6" + resolved "https://registry.yarnpkg.com/viser-vue/-/viser-vue-2.4.6.tgz#4ee2731313f3d7c2b8091fb6aeebe9db61b84c4a" + integrity sha512-M6MtTx6NM3ao7nt0YUIkg9HPBn0T3+OTv4PZZDFmz4gvCCP5jwYsqdyeEEJQ+QEF58CL66f5/VFbWLNawqE5Hw== + dependencies: + "@types/node" "*" + viser "^2.0.0" + vue "^2.5.3" + +viser@^2.0.0: + version "2.4.6" + resolved "https://registry.yarnpkg.com/viser/-/viser-2.4.6.tgz#d18ee18cea329d4bc3db00f0bcd7368f419912e0" + integrity sha512-iIodwrdhDedqKb4cT6gp35wUCysfdNnzEZlFg1u7xa6wfuEcQuWKQYTiiqGhUkJwWv2isSQvCJDAbDjFsgohsw== + dependencies: + "@antv/g2" "3.5.3" + "@antv/g2-brush" "^0.0.2" + "@antv/g2-plugin-slider" "^2.1.0" + "@types/d3-format" "*" + "@types/lodash" "*" + "@types/node" "^8.0.53" + d3-format "^1.3.0" + lodash "^4.17.4" + +vm-browserify@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" + integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== + +vue-clipboard2@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/vue-clipboard2/-/vue-clipboard2-0.2.1.tgz#9f06690af1c98aef344be1fc4beb00cdc5307ee1" + integrity sha512-n6ie/0g0bKohmLlC/5ja1esq2Q0jQ5hWmhNSZcvCsWfDeDnVARjl6cBB9p72XV1nlVfuqsZcfV8HTjjZAIlLBA== + dependencies: + clipboard "^2.0.0" + +vue-cropper@0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/vue-cropper/-/vue-cropper-0.4.4.tgz#63c85ba5c7f9d9779370930c8522b61deb177c97" + integrity sha512-5xJ3jWyTnsx3JM+lFV5mwdPjKfpYi2rvByEh4H0sFtCMILo3YTmMti2pq9YeoPLybJz04ho+wemYw5TqidYV5g== + dependencies: + "@babel/core" "^7.1.2" + "@babel/plugin-transform-runtime" "^7.1.0" + "@babel/preset-env" "^7.1.0" + babel-loader "^8.0.0-beta.0" + babel-plugin-transform-runtime "^6.23.0" + babel-runtime "^6.26.0" + css-loader "^1.0.0" + style-loader "^0.23.1" + vue "^2.5.17" + vue-template-compiler "^2.5.17" + webpack "^4.20.2" + +vue-eslint-parser@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-2.0.3.tgz#c268c96c6d94cfe3d938a5f7593959b0ca3360d1" + integrity sha512-ZezcU71Owm84xVF6gfurBQUGg8WQ+WZGxgDEQu1IHFBZNx7BFZg3L1yHxrCBNNwbwFtE1GuvfJKMtb6Xuwc/Bw== + dependencies: + debug "^3.1.0" + eslint-scope "^3.7.1" + eslint-visitor-keys "^1.0.0" + espree "^3.5.2" + esquery "^1.0.0" + lodash "^4.17.4" + +vue-eslint-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz#00f4e4da94ec974b821a26ff0ed0f7a78402b8a1" + integrity sha512-JlHVZwBBTNVvzmifwjpZYn0oPWH2SgWv5dojlZBsrhablDu95VFD+hriB1rQGwbD+bms6g+rAFhQHk6+NyiS6g== + dependencies: + debug "^4.1.0" + eslint-scope "^4.0.0" + eslint-visitor-keys "^1.0.0" + espree "^4.1.0" + esquery "^1.0.1" + lodash "^4.17.11" + +vue-hot-reload-api@^2.3.0: + version "2.3.4" + resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" + integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== + +vue-input-tag@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/vue-input-tag/-/vue-input-tag-2.0.6.tgz#e5421317c9a89584980be011b95bedc2e4e8ef22" + integrity sha512-PFz6XyWjLUsKJdxlK11ojqfw2vWAYFwWb5dlvB0l+U6ES+xtD0MkXTRd9HSeq7KnARA+n16yHtouVoTa9AOU7w== + dependencies: + vue "^2.5.17" + +vue-jest@^3.0.4: + version "3.0.5" + resolved "https://registry.yarnpkg.com/vue-jest/-/vue-jest-3.0.5.tgz#d6f124b542dcbff207bf9296c19413f4c40b70c9" + integrity sha512-xWDxde91pDqYBGDlODENZ3ezPgw+IQFoVDtf+5Awlg466w3KvMSqWzs8PxcTeTr+wmAHi0j+a+Lm3R7aUJa1jA== + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.26.0" + chalk "^2.1.0" + extract-from-css "^0.4.4" + find-babel-config "^1.1.0" + js-beautify "^1.6.14" + node-cache "^4.1.1" + object-assign "^4.1.1" + source-map "^0.5.6" + tsconfig "^7.0.0" + vue-template-es2015-compiler "^1.6.0" + +vue-loader@^15.7.0: + version "15.7.1" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.7.1.tgz#6ccacd4122aa80f69baaac08ff295a62e3aefcfd" + integrity sha512-fwIKtA23Pl/rqfYP5TSGK7gkEuLhoTvRYW+TU7ER3q9GpNLt/PjG5NLv3XHRDiTg7OPM1JcckBgds+VnAc+HbA== + dependencies: + "@vue/component-compiler-utils" "^3.0.0" + hash-sum "^1.0.2" + loader-utils "^1.1.0" + vue-hot-reload-api "^2.3.0" + vue-style-loader "^4.1.0" + +vue-ls@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vue-ls/-/vue-ls-3.2.1.tgz#25d1c75b3a51c17018129de607b44bb120a3385a" + integrity sha512-JoZDpSu0qV5AM50vspEzOut2lcm8R0tr5WG99jMHh14qFXkUes3ZdmDMG/p8iSQVQpg0pd/svGwM9Nd7OI2oaw== + +vue-quill-editor@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/vue-quill-editor/-/vue-quill-editor-3.0.6.tgz#1f85646211d68a31a80a72cb7f45bb2f119bc8fb" + integrity sha512-g20oSZNWg8Hbu41Kinjd55e235qVWPLfg4NvsLW6d+DhgBTFbEuMpcWlUdrD6qT3+Noim6DRu18VLM9lVShXOQ== + dependencies: + object-assign "^4.1.1" + quill "^1.3.4" + +vue-ref@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/vue-ref/-/vue-ref-1.0.6.tgz#b9b3d7d0e290ee2fd3d50d5d7bdac520806cb265" + integrity sha512-UzD8t1CG+aoWVOOpGd5KcaCNtCgUc0byaKhJMH+6N7H/p1ThVkYl/VCt7DmCrdhUlzZK+hT5JPTKAdrbWi0nNw== + +vue-router@^3.0.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.1.3.tgz#e6b14fabc0c0ee9fda0e2cbbda74b350e28e412b" + integrity sha512-8iSa4mGNXBjyuSZFCCO4fiKfvzqk+mhL0lnKuGcQtO1eoj8nq3CmbEG8FwK5QqoqwDgsjsf1GDuisDX4cdb/aQ== + +vue-style-loader@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8" + integrity sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ== + dependencies: + hash-sum "^1.0.2" + loader-utils "^1.0.2" + +vue-svg-component-builder@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/vue-svg-component-builder/-/vue-svg-component-builder-2.0.3.tgz#c4e0a19073587ab882fd6f72bb7b3b63b4396801" + integrity sha512-We9ZLSYPQx9y3v5+HNWyjkGFaxZMlWPTqYBU08y4YT46f453BQ4JxIoS8rV0a8PIxnKap7m/YIzrdIfoHxrpaA== + +vue-svg-component-runtime@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/vue-svg-component-runtime/-/vue-svg-component-runtime-1.0.1.tgz#c4c241cdf92fead742ef33133b997ff42d8b9ee6" + integrity sha512-TkmZ1qwFeFJSRH6b6KVqDU2f8DCSdoNoo/veKqog7FsyF0UETTI66ALKX1rrLXy/KT6LSaJB5IfZkuuSfaQsEA== + +vue-svg-icon-loader@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/vue-svg-icon-loader/-/vue-svg-icon-loader-2.1.1.tgz#7b999ccb0647ce3b3903bfbf535fe247e11b032a" + integrity sha512-JOL4fyh9rnbcqMLTF5NVG8YVupnLIMHMY+3CLMaEb9xDUmfk6Cp3RqyI/8gBea7d51i4lyNdzZ3tQ/EJLQxQDA== + dependencies: + "@types/loader-utils" "1.1.3" + "@types/node" "8.9" + loader-utils "1.1.0" + vue-svg-component-builder "2.0.3" + +vue-template-compiler@^2.5.17, vue-template-compiler@^2.5.22: + version "2.6.10" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.10.tgz#323b4f3495f04faa3503337a82f5d6507799c9cc" + integrity sha512-jVZkw4/I/HT5ZMvRnhv78okGusqe0+qH2A0Em0Cp8aq78+NK9TII263CDVz2QXZsIT+yyV/gZc/j/vlwa+Epyg== + dependencies: + de-indent "^1.0.2" + he "^1.1.0" + +vue-template-es2015-compiler@^1.6.0, vue-template-es2015-compiler@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" + integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== + +vue@^2.5.17, vue@^2.5.22, vue@^2.5.3: + version "2.6.10" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.10.tgz#a72b1a42a4d82a721ea438d1b6bf55e66195c637" + integrity sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ== + +vuex@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.1.1.tgz#0c264bfe30cdbccf96ab9db3177d211828a5910e" + integrity sha512-ER5moSbLZuNSMBFnEBVGhQ1uCBNJslH9W/Dw2W7GZN23UQA69uapP5GTT9Vm8Trc0PzBSVt6LzF3hGjmv41xcg== + +w3c-hr-time@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" + integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= + dependencies: + browser-process-hrtime "^0.1.2" + +walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +wangeditor@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/wangeditor/-/wangeditor-3.1.1.tgz#fbd3c1d4976923c9edebb85b29d30b35512ad039" + integrity sha1-+9PB1JdpI8nt67hbKdMLNVEq0Dk= + +warning@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" + integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w= + dependencies: + loose-envify "^1.0.0" + +watch@~0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" + integrity sha1-KAlUdsbffJDJYxOJkMClQj60uYY= + dependencies: + exec-sh "^0.2.0" + minimist "^1.2.0" + +watchpack@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== + dependencies: + chokidar "^2.0.2" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webpack-bundle-analyzer@^3.3.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.0.tgz#39b3a8f829ca044682bc6f9e011c95deb554aefd" + integrity sha512-orUfvVYEfBMDXgEKAKVvab5iQ2wXneIEorGNsyuOyVYpjYrI7CUOhhXNDd3huMwQ3vNNWWlGP+hzflMFYNzi2g== + dependencies: + acorn "^6.0.7" + acorn-walk "^6.1.1" + bfj "^6.1.1" + chalk "^2.4.1" + commander "^2.18.0" + ejs "^2.6.1" + express "^4.16.3" + filesize "^3.6.1" + gzip-size "^5.0.0" + lodash "^4.17.15" + mkdirp "^0.5.1" + opener "^1.5.1" + ws "^6.0.0" + +webpack-chain@^4.11.0: + version "4.12.1" + resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-4.12.1.tgz#6c8439bbb2ab550952d60e1ea9319141906c02a6" + integrity sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ== + dependencies: + deepmerge "^1.5.2" + javascript-stringify "^1.6.0" + +webpack-dev-middleware@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" + integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@^3.4.1: + version "3.9.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz#27c3b5d0f6b6677c4304465ac817623c8b27b89c" + integrity sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw== + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.2.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.4" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.25" + schema-utils "^1.0.0" + selfsigned "^1.10.7" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "0.3.19" + sockjs-client "1.4.0" + spdy "^4.0.1" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "12.0.5" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-merge@^4.2.1: + version "4.2.2" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" + integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== + dependencies: + lodash "^4.17.15" + +webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-theme-color-replacer@^1.2.15: + version "1.3.2" + resolved "https://registry.yarnpkg.com/webpack-theme-color-replacer/-/webpack-theme-color-replacer-1.3.2.tgz#56eda4042c1dbbd909f9d2e9398dda354321bb35" + integrity sha512-nCxEZUXfI+DYrdI05wGrKAuO24weIzpn2Emwssm8Yzlw0Q1i1C8xTdFaf8dz60OVgpxy8oPMlfo4pR7UvxLPCQ== + +webpack@^4.0.0, webpack@^4.20.2: + version "4.41.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.2.tgz#c34ec76daa3a8468c9b61a50336d8e3303dce74e" + integrity sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A== + dependencies: + "@webassemblyjs/ast" "1.8.5" + "@webassemblyjs/helper-module-context" "1.8.5" + "@webassemblyjs/wasm-edit" "1.8.5" + "@webassemblyjs/wasm-parser" "1.8.5" + acorn "^6.2.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.1" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.1" + watchpack "^1.6.0" + webpack-sources "^1.4.1" + +websocket-driver@>=0.5.1: + version "0.7.3" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" + integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== + dependencies: + http-parser-js ">=0.4.0 <0.4.11" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== + +whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^6.4.1: + version "6.5.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.12, which@^1.2.9, which@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.1.tgz#f1cf94d07a8e571b6ff006aeb91d0300c47ef0a4" + integrity sha512-N7GBZOTswtB9lkQBZA4+zAXrjEIWAUOB93AvzUiudRzRxhUdLURQ7D/gAIMY1gatT/LTbmbcv8SiYazy3eYB7w== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + integrity sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0= + +wolfy87-eventemitter@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wolfy87-eventemitter/-/wolfy87-eventemitter-5.1.0.tgz#35c1ac0dd1ac0c15e35d981508fc22084a13a011" + integrity sha1-NcGsDdGsDBXjXZgVCPwiCEoToBE= + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + integrity sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8= + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^2.1.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= + dependencies: + mkdirp "^0.5.1" + +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== + dependencies: + async-limiter "~1.0.0" + +ws@^6.0.0, ws@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^13.1.1: + version "13.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" + integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc= + dependencies: + camelcase "^4.1.0" + +yargs@12.0.5: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== + dependencies: + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" + +yargs@^11.0.0: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.1.tgz#5052efe3446a4df5ed669c995886cc0f13702766" + integrity sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw== + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^3.1.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^9.0.2" + +yargs@^13.0.0: + version "13.3.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" + integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.1" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + integrity sha1-9+572FfdfB0tOMDnTvvWgdFDH9E= + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yorkie@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yorkie/-/yorkie-2.0.0.tgz#92411912d435214e12c51c2ae1093e54b6bb83d9" + integrity sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw== + dependencies: + execa "^0.8.0" + is-ci "^1.0.10" + normalize-path "^1.0.0" + strip-indent "^2.0.0"