From aeb317703c9c82edb7c4c7ecc5985eef62864c7c Mon Sep 17 00:00:00 2001 From: jazz <jazzxhunter@163.com> Date: 星期二, 05 十二月 2023 19:41:21 +0800 Subject: [PATCH] update_202312051941_项目-治疗室屏幕web-切图v1 --- src/icons/svg/user.svg | 1 src/icons/svg/eye.svg | 1 vue.config.js | 26 package-lock.json | 1384 ++++++++++++++++++++++--- src/components/xio_customer_select/index.vue | 36 src/pages/login/getQueryObj.js | 27 src/pages/room/list.vue | 15 src/icons/index.js | 9 src/icons/svg/safecode.svg | 1 src/utils/auth.js | 98 + src/icons/svgo.yml | 22 src/utils/fn.js | 44 src/components/xio_room_status_chg/index.vue | 118 ++ src/config/index.js | 11 src/assets/login/logo.png | 0 .babelrc | 2 src/icons/svg/password.svg | 1 src/pages/login/index.vue | 1030 +++++++++++++++++++ config/index.js | 26 src/assets/login/login_left.png | 0 src/components/SvgIcon/index.vue | 62 + src/assets/login/login_right.png | 0 src/router/index.js | 8 src/pages/room/detail.vue | 52 src/utils/validate.js | 20 src/assets/login/login_mid.png | 0 src/main.js | 15 build/webpack.base.conf.js | 4 src/assets/css/common.css | 16 src/icons/svg/eye-open.svg | 1 package.json | 4 src/pages/login/g_mockData.js | 69 + src/utils/element-ui-preprocessing.js | 12 33 files changed, 2,888 insertions(+), 227 deletions(-) diff --git a/.babelrc b/.babelrc index d530c00..dca8ca9 100644 --- a/.babelrc +++ b/.babelrc @@ -8,7 +8,7 @@ }], "stage-2" ], - "plugins": ["transform-vue-jsx", "transform-runtime"], + "plugins": ["transform-vue-jsx", "transform-runtime"], "env": { "test": { "presets": ["env", "stage-2"] diff --git a/build/webpack.base.conf.js b/build/webpack.base.conf.js index a07e683..371a0b4 100644 --- a/build/webpack.base.conf.js +++ b/build/webpack.base.conf.js @@ -64,6 +64,10 @@ limit: 10000, name: utils.assetsPath('fonts/[name].[hash:7].[ext]') } + }, + { + test: /\.sass$/, + loaders: ['style', 'css', 'sass'] } ] }, diff --git a/config/index.js b/config/index.js index 782f223..6a3d140 100644 --- a/config/index.js +++ b/config/index.js @@ -3,7 +3,9 @@ // see http://vuejs-templates.github.io/webpack for documentation. const path = require('path') - +function resolve(dir) { + return path.join(__dirname, dir) +} module.exports = { dev: { @@ -20,7 +22,8 @@ } }, '/api_test': { // 娴嬭瘯鐜 - target: 'http://192.168.31.69:8080', + // target: 'http://192.168.31.69:8080', + target: 'https://test6.phiskin.com/phi_appt/', // 鏂伴绾� // target: 'http://hymctest.huoxiongit.com/',// 杩欎釜鏄綘鏈嶅姟鍣ㄥ紑鍚殑鎺ュ彛 changeOrigin: true,// 鏄惁璺ㄥ煙 pathRewrite: { @@ -82,5 +85,24 @@ // `npm run build --report` // Set to `true` or `false` to always turn it on or off bundleAnalyzerReport: process.env.npm_config_report + }, + // 閰嶇疆浣跨敤stylus鍏ㄥ眬鍙橀噺 + chainWebpack: config => { + // set svg-sprite-loader + config.module + .rule('svg') + .exclude.add(resolve('src/icons')) + .end() + config.module + .rule('icons') + .test(/\.svg$/) + .include.add(resolve('src/icons')) + .end() + .use('svg-sprite-loader') + .loader('svg-sprite-loader') + .options({ + symbolId: 'icon-[name]' + }) + .end() } } diff --git a/package-lock.json b/package-lock.json index d96515f..de3367c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,8 @@ "dependencies": { "axios": "^0.19.2", "clipboard": "^2.0.6", + "element-ui": "^2.15.6", + "svg-sprite-loader": "^6.0.11", "vue": "^2.5.2", "vue-router": "^3.0.1", "vuex": "^3.5.1" @@ -42,6 +44,7 @@ "mockjs": "^1.1.0", "nightwatch": "^0.9.12", "node-notifier": "^5.1.2", + "node-sass": "^4.14.1", "optimize-css-assets-webpack-plugin": "^3.2.0", "ora": "^1.2.0", "portfinder": "^1.0.13", @@ -51,6 +54,7 @@ "postcss-url": "^7.2.1", "postcss-viewport-units": "^0.1.6", "rimraf": "^2.6.0", + "sass-loader": "^7.3.1", "selenium-server": "^3.0.1", "semver": "^5.3.0", "shelljs": "^0.7.6", @@ -349,6 +353,12 @@ "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", "dev": true }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, "node_modules/accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -460,6 +470,15 @@ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", "dev": true }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "dev": true, + "engines": { + "node": ">=0.4.2" + } + }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -491,7 +510,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -500,7 +518,6 @@ "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, "dependencies": { "color-convert": "^1.9.0" }, @@ -528,6 +545,16 @@ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, + "node_modules/are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -541,7 +568,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -550,7 +576,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -559,7 +584,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -621,7 +645,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -700,7 +723,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -741,11 +763,28 @@ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true }, + "node_modules/async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/async-limiter": { "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 + }, + "node_modules/async-validator": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz", + "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==", + "dependencies": { + "babel-runtime": "6.x" + } }, "node_modules/asynckit": { "version": "0.4.0", @@ -757,7 +796,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, "bin": { "atob": "bin/atob.js" }, @@ -1105,8 +1143,7 @@ "node_modules/babel-helper-vue-jsx-merge-props": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz", - "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==", - "dev": true + "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==" }, "node_modules/babel-helpers": { "version": "6.24.1", @@ -1645,7 +1682,6 @@ "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, "dependencies": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" @@ -1712,7 +1748,6 @@ "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, "dependencies": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -1730,7 +1765,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "dependencies": { "is-descriptor": "^1.0.0" }, @@ -1742,7 +1776,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -1754,7 +1787,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -1766,7 +1798,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -1780,7 +1811,6 @@ "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, "engines": { "node": ">=0.10.0" } @@ -1825,7 +1855,6 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, "engines": { "node": "*" } @@ -1850,11 +1879,22 @@ "file-uri-to-path": "1.0.0" } }, + "node_modules/block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha512-OorbnJVPII4DuUKbjARAe8u8EfqOmkEEaSFIyoQ7OjTHn6kafxWl0wLgoZ2rXaYd7MyLcDaU4TmhfxtwgcccMQ==", + "dev": true, + "dependencies": { + "inherits": "~2.0.0" + }, + "engines": { + "node": "0.4 || >=0.5.8" + } + }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "node_modules/bn.js": { "version": "5.1.3", @@ -2195,7 +2235,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, "dependencies": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -2318,10 +2357,24 @@ "dev": true }, "node_modules/caniuse-lite": { - "version": "1.0.30001113", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001113.tgz", - "integrity": "sha512-qMvjHiKH21zzM/VDZr6oosO6Ri3U0V2tC015jRXjOecwQCJtsU5zklTNTk31jQbIOP8gha0h1ccM/g0ECP+4BA==", - "dev": true + "version": "1.0.30001566", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz", + "integrity": "sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] }, "node_modules/caseless": { "version": "0.12.0", @@ -2359,7 +2412,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -2486,7 +2538,6 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, "dependencies": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -2501,7 +2552,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, @@ -2590,6 +2640,29 @@ "node": ">=0.8" } }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-deep/node_modules/kind-of": { + "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, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -2625,7 +2698,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, "dependencies": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -2649,7 +2721,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -2657,8 +2728,7 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "node_modules/color-string": { "version": "0.3.0", @@ -2722,8 +2792,7 @@ "node_modules/component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "node_modules/compressible": { "version": "2.0.18", @@ -2798,6 +2867,12 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true }, "node_modules/consolidate": { @@ -2879,7 +2954,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -2925,7 +2999,6 @@ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, "hasInstallScript": true }, "node_modules/core-util-is": { @@ -3412,18 +3485,6 @@ "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" } - }, - "node_modules/cssnano-preset-advanced/node_modules/browserslist/node_modules/caniuse-lite": { - "version": "1.0.30001124", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001124.tgz", - "integrity": "sha512-zQW8V3CdND7GHRH6rxm6s59Ww4g/qGWTheoboW9nfeMg7sUoopIfKCcNZUjwYRCOrvereh3kwDpZj4VLQ7zGtA==", - "dev": true - }, - "node_modules/cssnano-preset-advanced/node_modules/electron-to-chromium": { - "version": "1.3.564", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.564.tgz", - "integrity": "sha512-fNaYN3EtKQWLQsrKXui8mzcryJXuA0LbCLoizeX6oayG2emBaS5MauKjCPAvc29NEY4FpLHIUWiP+Y0Bfrs5dg==", - "dev": true }, "node_modules/cssnano-preset-advanced/node_modules/postcss": { "version": "7.0.32", @@ -4393,7 +4454,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "dependencies": { "ms": "2.0.0" } @@ -4411,7 +4471,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, "engines": { "node": ">=0.10" } @@ -4451,6 +4510,14 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "node_modules/deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -4467,7 +4534,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, "dependencies": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -4480,7 +4546,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -4492,7 +4557,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -4504,7 +4568,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -4518,7 +4581,6 @@ "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, "engines": { "node": ">=0.10.0" } @@ -4583,6 +4645,12 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true }, "node_modules/depd": { "version": "1.1.2", @@ -4721,7 +4789,6 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, "dependencies": { "domelementtype": "^2.0.1", "entities": "^2.0.0" @@ -4730,8 +4797,7 @@ "node_modules/dom-serializer/node_modules/domelementtype": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", - "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", - "dev": true + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" }, "node_modules/domain-browser": { "version": "1.2.0", @@ -4746,23 +4812,25 @@ "node_modules/domelementtype": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" }, "node_modules/domhandler": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, "dependencies": { "domelementtype": "1" } + }, + "node_modules/domready": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/domready/-/domready-1.0.8.tgz", + "integrity": "sha512-uIzsOJUNk+AdGE9a6VDeessoMCzF8RrZvJCX/W8QtyfgdR6Uofn/MvRonih3OtCO79b2VDzDOymuiABrQ4z3XA==" }, "node_modules/domutils": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, "dependencies": { "dom-serializer": "0", "domelementtype": "1" @@ -4824,10 +4892,26 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.3.533", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.533.tgz", - "integrity": "sha512-YqAL+NXOzjBnpY+dcOKDlZybJDCOzgsq4koW3fvyty/ldTmsb4QazZpOWmVvZ2m0t5jbBf7L0lIGU3BUipwG+A==", + "version": "1.4.603", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.603.tgz", + "integrity": "sha512-Dvo5OGjnl7AZTU632dFJtWj0uJK835eeOVQIuRcmBmsFsTNn3cL05FqOyHAfGQDIoHfLhyJ1Tya3PJ0ceMz54g==", "dev": true + }, + "node_modules/element-ui": { + "version": "2.15.14", + "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.14.tgz", + "integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==", + "dependencies": { + "async-validator": "~1.8.1", + "babel-helper-vue-jsx-merge-props": "^2.0.0", + "deepmerge": "^1.2.0", + "normalize-wheel": "^1.0.1", + "resize-observer-polyfill": "^1.5.0", + "throttle-debounce": "^1.0.1" + }, + "peerDependencies": { + "vue": "^2.5.17" + } }, "node_modules/elliptic": { "version": "6.5.3", @@ -4860,7 +4944,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, "engines": { "node": ">= 4" } @@ -4901,8 +4984,7 @@ "node_modules/entities": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", - "dev": true + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" }, "node_modules/errno": { "version": "0.1.7", @@ -5058,9 +5140,9 @@ } }, "node_modules/escalade": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", - "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, "engines": { "node": ">=6" @@ -5076,7 +5158,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, "engines": { "node": ">=0.8.0" } @@ -5558,7 +5639,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, "dependencies": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -5576,7 +5656,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, @@ -5588,7 +5667,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, @@ -5671,7 +5749,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -5684,7 +5761,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, "dependencies": { "is-plain-object": "^2.0.4" }, @@ -5710,7 +5786,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, "dependencies": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -5729,7 +5804,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "dependencies": { "is-descriptor": "^1.0.0" }, @@ -5741,7 +5815,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, @@ -5753,7 +5826,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -5765,7 +5837,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -5777,7 +5848,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -5791,7 +5861,6 @@ "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, "engines": { "node": ">=0.10.0" } @@ -6080,7 +6149,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -6121,7 +6189,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, "dependencies": { "map-cache": "^0.2.2" }, @@ -6229,6 +6296,21 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, "node_modules/ftp": { "version": "0.3.10", "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", @@ -6267,16 +6349,72 @@ "dev": true }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "dev": true + }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", + "dev": true, + "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" + } + }, + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "dependencies": { + "globule": "^1.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } }, "node_modules/get-caller-file": { "version": "1.0.3", @@ -6320,7 +6458,6 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -6400,6 +6537,20 @@ "node": ">=0.10.0" } }, + "node_modules/globule": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", + "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==", + "dev": true, + "dependencies": { + "glob": "~7.1.1", + "lodash": "^4.17.21", + "minimatch": "~3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/good-listener": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", @@ -6409,9 +6560,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "node_modules/graceful-readlink": { @@ -6490,7 +6641,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, "dependencies": { "ansi-regex": "^2.0.0" }, @@ -6502,7 +6652,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, "engines": { "node": ">=4" } @@ -6519,11 +6668,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "dev": true + }, "node_modules/has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, "dependencies": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -6537,7 +6691,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, "dependencies": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -6550,7 +6703,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -6562,7 +6714,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -6574,7 +6725,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -6646,11 +6796,21 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, "bin": { "he": "bin/he" } @@ -6800,7 +6960,6 @@ "version": "3.10.1", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, "dependencies": { "domelementtype": "^1.3.1", "domhandler": "^2.3.0", @@ -6813,14 +6972,12 @@ "node_modules/htmlparser2/node_modules/entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" }, "node_modules/htmlparser2/node_modules/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==", - "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -6975,6 +7132,17 @@ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", "dev": true }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/import-cwd": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", @@ -7037,6 +7205,18 @@ "node": ">=0.8.19" } }, + "node_modules/in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", + "dev": true, + "bin": { + "in-install": "in-install.js", + "in-publish": "in-publish.js", + "not-in-install": "not-in-install.js", + "not-in-publish": "not-in-publish.js" + } + }, "node_modules/indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", @@ -7068,8 +7248,7 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/inquirer": { "version": "7.3.3", @@ -7337,7 +7516,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -7376,8 +7554,7 @@ "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "node_modules/is-callable": { "version": "1.2.0", @@ -7409,7 +7586,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -7433,7 +7609,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -7447,7 +7622,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -7465,7 +7639,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -7568,7 +7741,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -7577,7 +7749,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, "dependencies": { "isobject": "^3.0.1" }, @@ -7676,7 +7847,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -7707,8 +7877,7 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/isexe": { "version": "2.0.0", @@ -7720,7 +7889,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -7734,8 +7902,7 @@ "node_modules/js-base64": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", - "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", - "dev": true + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" }, "node_modules/js-tokens": { "version": "3.0.2", @@ -7861,7 +8028,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, @@ -7962,7 +8128,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -7976,7 +8141,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, "dependencies": { "minimist": "^1.2.0" }, @@ -8279,7 +8443,6 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -8297,7 +8460,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, "dependencies": { "object-visit": "^1.0.0" }, @@ -8500,6 +8662,17 @@ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true + }, + "node_modules/merge-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-1.0.1.tgz", + "integrity": "sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==", + "dependencies": { + "is-plain-obj": "^1.1" + }, + "engines": { + "node": ">=4" + } }, "node_modules/methods": { "version": "1.1.2", @@ -8728,8 +8901,7 @@ "node_modules/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "node_modules/mississippi": { "version": "2.0.0", @@ -8752,11 +8924,15 @@ "node": ">=4.0.0" } }, + "node_modules/mitt": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.1.2.tgz", + "integrity": "sha512-3btxP0O9iGADGWAkteQ8mzDtEspZqu4I32y4GZYCV5BrwtzdcRpF4dQgNdJadCrbBx7Lu6Sq9AVrerMHR0Hkmw==" + }, "node_modules/mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, "dependencies": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -8769,7 +8945,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, "dependencies": { "is-plain-object": "^2.0.4" }, @@ -8963,17 +9138,15 @@ "dev": true }, "node_modules/nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "dev": true, - "optional": true + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", + "dev": true }, "node_modules/nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -8995,7 +9168,6 @@ "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, "engines": { "node": ">=0.10.0" } @@ -9103,6 +9275,41 @@ "node": ">= 4.5.0" } }, + "node_modules/node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "dependencies": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/node-libs-browser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", @@ -9159,6 +9366,94 @@ "integrity": "sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==", "dev": true }, + "node_modules/node-sass": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "bin": { + "node-sass": "bin/node-sass" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-sass/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-sass/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-sass/node_modules/cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha512-eZ+m1WNhSZutOa/uRblAc9Ut5MQfukFrFMtPSm3bZCA888NmMd5AWXWdgRZ80zd+pTk1P2JrGjg9pUPTvl2PWQ==", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "node_modules/node-sass/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -9204,6 +9499,11 @@ "node": ">=4" } }, + "node_modules/normalize-wheel": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", + "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==" + }, "node_modules/npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -9214,6 +9514,18 @@ }, "engines": { "node": ">=4" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "node_modules/nth-check": { @@ -9253,7 +9565,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -9262,7 +9573,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, "dependencies": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -9276,7 +9586,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, @@ -9322,7 +9631,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, "dependencies": { "isobject": "^3.0.0" }, @@ -9365,7 +9673,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, "dependencies": { "isobject": "^3.0.1" }, @@ -9610,6 +9917,16 @@ "node": ">=0.10.0" } }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -9783,7 +10100,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -9974,7 +10290,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -9983,7 +10298,6 @@ "version": "6.0.23", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, "dependencies": { "chalk": "^2.4.1", "source-map": "^0.6.1", @@ -12219,6 +12533,14 @@ "node": ">=0.8.0" } }, + "node_modules/postcss-prefix-selector": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/postcss-prefix-selector/-/postcss-prefix-selector-1.16.0.tgz", + "integrity": "sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==", + "peerDependencies": { + "postcss": ">4 <9" + } + }, "node_modules/postcss-px-to-viewport-opt": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/postcss-px-to-viewport-opt/-/postcss-px-to-viewport-opt-0.0.4.tgz", @@ -12964,6 +13286,65 @@ "node": ">=0.8.0" } }, + "node_modules/posthtml": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.9.2.tgz", + "integrity": "sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==", + "dependencies": { + "posthtml-parser": "^0.2.0", + "posthtml-render": "^1.0.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posthtml-parser": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.2.1.tgz", + "integrity": "sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==", + "dependencies": { + "htmlparser2": "^3.8.3", + "isobject": "^2.1.0" + } + }, + "node_modules/posthtml-parser/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posthtml-rename-id": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/posthtml-rename-id/-/posthtml-rename-id-1.0.12.tgz", + "integrity": "sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==", + "dependencies": { + "escape-string-regexp": "1.0.5" + } + }, + "node_modules/posthtml-render": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.4.0.tgz", + "integrity": "sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/posthtml-svg-mode": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz", + "integrity": "sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==", + "dependencies": { + "merge-options": "1.0.1", + "posthtml": "^0.9.2", + "posthtml-parser": "^0.2.1", + "posthtml-render": "^1.0.6" + } + }, "node_modules/prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -13169,7 +13550,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, "dependencies": { "object-assign": "^4.1.0", "strict-uri-encode": "^1.0.0" @@ -13400,8 +13780,7 @@ "node_modules/regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" }, "node_modules/regenerator-transform": { "version": "0.10.1", @@ -13418,7 +13797,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, "dependencies": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -13522,7 +13900,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -13531,7 +13908,6 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, "engines": { "node": ">=0.10" } @@ -13610,6 +13986,11 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, "node_modules/resolve": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", @@ -13647,8 +14028,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true + "deprecated": "https://github.com/lydell/resolve-url#deprecated" }, "node_modules/restore-cursor": { "version": "2.0.0", @@ -13667,7 +14047,6 @@ "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, "engines": { "node": ">=0.12" } @@ -13757,14 +14136,12 @@ "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, "dependencies": { "ret": "~0.1.10" } @@ -13774,6 +14151,237 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true + }, + "node_modules/sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + }, + "bin": { + "sassgraph": "bin/sassgraph" + } + }, + "node_modules/sass-graph/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/sass-graph/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/sass-graph/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/sass-graph/node_modules/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 + }, + "node_modules/sass-graph/node_modules/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, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sass-graph/node_modules/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, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/sass-graph/node_modules/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, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sass-graph/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sass-graph/node_modules/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, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sass-graph/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/sass-graph/node_modules/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 + }, + "node_modules/sass-graph/node_modules/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, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sass-graph/node_modules/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, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sass-graph/node_modules/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, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sass-graph/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "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.2" + } + }, + "node_modules/sass-graph/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/sass-loader": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.3.1.tgz", + "integrity": "sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.0.1", + "neo-async": "^2.5.0", + "pify": "^4.0.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/sass-loader/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/sass-loader/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } }, "node_modules/sax": { "version": "1.2.4", @@ -13816,6 +14424,28 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", "dev": true + }, + "node_modules/scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha512-dYE8LhncfBUar6POCxMTm0Ln+erjeczqEvCJib5/7XNkdw1FkUGgwMPY360FY0FgPWQxHWCx29Jl3oejyGLM9Q==", + "dev": true, + "dependencies": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + } + }, + "node_modules/scss-tokenizer/node_modules/source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A==", + "dev": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } }, "node_modules/select": { "version": "1.1.2", @@ -13961,7 +14591,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, "dependencies": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -13976,7 +14605,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, @@ -14007,6 +14635,27 @@ }, "bin": { "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallow-clone/node_modules/kind-of": { + "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, + "engines": { + "node": ">=0.10.0" } }, "node_modules/shebang-command": { @@ -14055,9 +14704,9 @@ "dev": true }, "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "node_modules/simple-swizzle": { @@ -14112,7 +14761,6 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, "dependencies": { "base": "^0.11.1", "debug": "^2.2.0", @@ -14131,7 +14779,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, "dependencies": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -14145,7 +14792,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "dependencies": { "is-descriptor": "^1.0.0" }, @@ -14157,7 +14803,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -14169,7 +14814,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "dependencies": { "kind-of": "^6.0.0" }, @@ -14181,7 +14825,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -14195,7 +14838,6 @@ "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, "engines": { "node": ">=0.10.0" } @@ -14204,7 +14846,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, "dependencies": { "kind-of": "^3.2.0" }, @@ -14216,7 +14857,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, @@ -14228,7 +14868,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, @@ -14240,7 +14879,6 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -14335,7 +14973,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -14345,7 +14982,6 @@ "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==", "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "dev": true, "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", @@ -14376,8 +15012,7 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true + "deprecated": "See https://github.com/lydell/source-map-url#deprecated" }, "node_modules/spdx-correct": { "version": "3.1.1", @@ -14491,7 +15126,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, "dependencies": { "extend-shallow": "^3.0.0" }, @@ -14556,7 +15190,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, "dependencies": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -14569,7 +15202,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, @@ -14584,6 +15216,15 @@ "dev": true, "engines": { "node": ">= 0.6" + } + }, + "node_modules/stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.1" } }, "node_modules/stream-browserify": { @@ -14629,7 +15270,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -14638,7 +15278,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -14707,7 +15346,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, "dependencies": { "ansi-regex": "^2.0.0" }, @@ -14844,12 +15482,310 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=4" + } + }, + "node_modules/svg-baker": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/svg-baker/-/svg-baker-1.7.0.tgz", + "integrity": "sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==", + "dependencies": { + "bluebird": "^3.5.0", + "clone": "^2.1.1", + "he": "^1.1.1", + "image-size": "^0.5.1", + "loader-utils": "^1.1.0", + "merge-options": "1.0.1", + "micromatch": "3.1.0", + "postcss": "^5.2.17", + "postcss-prefix-selector": "^1.6.0", + "posthtml-rename-id": "^1.0", + "posthtml-svg-mode": "^1.0.3", + "query-string": "^4.3.2", + "traverse": "^0.6.6" + } + }, + "node_modules/svg-baker-runtime": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/svg-baker-runtime/-/svg-baker-runtime-1.4.7.tgz", + "integrity": "sha512-Zorfwwj5+lWjk/oxwSMsRdS2sPQQdTmmsvaSpzU+i9ZWi3zugHLt6VckWfnswphQP0LmOel3nggpF5nETbt6xw==", + "dependencies": { + "deepmerge": "1.3.2", + "mitt": "1.1.2", + "svg-baker": "^1.7.0" + } + }, + "node_modules/svg-baker-runtime/node_modules/deepmerge": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.3.2.tgz", + "integrity": "sha512-qjMjTrk+RKv/sp4RPDpV5CnKhxjFI9p+GkLBOls5A8EEElldYWCWA9zceAkmfd0xIo2aU1nxiaLFoiya2sb6Cg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/chalk/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svg-baker/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/svg-baker/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/svg-baker/node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/svg-baker/node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/svg-baker/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/micromatch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.0.tgz", + "integrity": "sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.2.2", + "define-property": "^1.0.0", + "extend-shallow": "^2.0.1", + "extglob": "^2.0.2", + "fragment-cache": "^0.2.1", + "kind-of": "^5.0.2", + "nanomatch": "^1.2.1", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dependencies": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/svg-baker/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-baker/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svg-baker/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/svg-sprite-loader": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/svg-sprite-loader/-/svg-sprite-loader-6.0.11.tgz", + "integrity": "sha512-TedsTf8wsHH6HgdwKjUveDZRC6q5gPloYV8A8/zZaRWP929J7x6TzQ6MvZFl+YYDJuJ0Akyuu/vNVJ+fbPuYXg==", + "dependencies": { + "bluebird": "^3.5.0", + "deepmerge": "1.3.2", + "domready": "1.0.8", + "escape-string-regexp": "1.0.5", + "loader-utils": "^1.1.0", + "svg-baker": "^1.5.0", + "svg-baker-runtime": "^1.4.7", + "url-slug": "2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/svg-sprite-loader/node_modules/deepmerge": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.3.2.tgz", + "integrity": "sha512-qjMjTrk+RKv/sp4RPDpV5CnKhxjFI9p+GkLBOls5A8EEElldYWCWA9zceAkmfd0xIo2aU1nxiaLFoiya2sb6Cg==", + "engines": { + "node": ">=0.10.0" } }, "node_modules/svgo": { @@ -14952,6 +15888,18 @@ "node": ">=0.6" } }, + "node_modules/tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "deprecated": "This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.", + "dev": true, + "dependencies": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, "node_modules/tcp-port-used": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.1.tgz", @@ -14983,6 +15931,14 @@ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true + }, + "node_modules/throttle-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz", + "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==", + "engines": { + "node": ">=4" + } }, "node_modules/through": { "version": "2.3.8", @@ -15075,7 +16031,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, "dependencies": { "kind-of": "^3.0.2" }, @@ -15087,7 +16042,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, "dependencies": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -15139,6 +16093,14 @@ "node": ">=0.8" } }, + "node_modules/traverse": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.7.tgz", + "integrity": "sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", @@ -15155,6 +16117,15 @@ "dev": true, "engines": { "node": ">=0.10.0" + } + }, + "node_modules/true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "dependencies": { + "glob": "^7.1.2" } }, "node_modules/tryer": { @@ -15338,11 +16309,18 @@ "node": ">=0.8.0" } }, + "node_modules/unidecode": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/unidecode/-/unidecode-0.1.8.tgz", + "integrity": "sha512-SdoZNxCWpN2tXTCrGkPF/0rL2HEq+i2gwRG1ReBvx8/0yTzC3enHfugOf8A9JBShVwwrRIkLX0YcDUGbzjbVCA==", + "engines": { + "node": ">= 0.4.12" + } + }, "node_modules/union-value": { "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==", - "dev": true, "dependencies": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -15402,7 +16380,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, "dependencies": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -15415,7 +16392,6 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, "dependencies": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -15429,7 +16405,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, "dependencies": { "isarray": "1.0.0" }, @@ -15441,7 +16416,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -15475,8 +16449,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true + "deprecated": "Please see https://github.com/lydell/urix#deprecated" }, "node_modules/url": { "version": "0.11.0", @@ -15520,6 +16493,14 @@ "requires-port": "^1.0.0" } }, + "node_modules/url-slug": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/url-slug/-/url-slug-2.0.0.tgz", + "integrity": "sha512-aiNmSsVgrjCiJ2+KWPferjT46YFKoE8i0YX04BlMVDue022Xwhg/zYlnZ6V9/mP3p8Wj7LEp0myiTkC/p6sxew==", + "dependencies": { + "unidecode": "0.1.8" + } + }, "node_modules/url/node_modules/punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", @@ -15530,7 +16511,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -15547,8 +16527,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "node_modules/util.promisify": { "version": "1.0.1", @@ -16774,6 +17753,15 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, "node_modules/window-size": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", diff --git a/package.json b/package.json index 884b5ba..2456f98 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,8 @@ "dependencies": { "axios": "^0.19.2", "clipboard": "^2.0.6", + "element-ui": "^2.15.6", + "svg-sprite-loader": "^6.0.11", "vue": "^2.5.2", "vue-router": "^3.0.1", "vuex": "^3.5.1" @@ -47,6 +49,7 @@ "mockjs": "^1.1.0", "nightwatch": "^0.9.12", "node-notifier": "^5.1.2", + "node-sass": "^4.14.1", "optimize-css-assets-webpack-plugin": "^3.2.0", "ora": "^1.2.0", "portfinder": "^1.0.13", @@ -56,6 +59,7 @@ "postcss-url": "^7.2.1", "postcss-viewport-units": "^0.1.6", "rimraf": "^2.6.0", + "sass-loader": "^7.3.1", "selenium-server": "^3.0.1", "semver": "^5.3.0", "shelljs": "^0.7.6", diff --git a/src/assets/css/common.css b/src/assets/css/common.css index 7601764..021caf0 100644 --- a/src/assets/css/common.css +++ b/src/assets/css/common.css @@ -43,7 +43,21 @@ align-items: center; -webkit-align-items: center; } - +/* 姘村钩灞呬腑 */ +.flex-align-center{ + justify-content: center; + -webkit-justify-content: center; +} +/* 姘村钩灞呭乏 */ +.flex-align-start{ + justify-content: start; + -webkit-justify-content: start; +} +/* 姘村钩灞呭彸 */ +.flex-align-end{ + justify-content: end; + -webkit-justify-content: end; +} .flex-ver {-webkit-align-items: center;align-items: center;} .flex-col {-webkit-flex-flow: column;flex-flow: column;} .flex-end{ diff --git a/src/assets/login/login_left.png b/src/assets/login/login_left.png new file mode 100644 index 0000000..596902f --- /dev/null +++ b/src/assets/login/login_left.png Binary files differ diff --git a/src/assets/login/login_mid.png b/src/assets/login/login_mid.png new file mode 100644 index 0000000..c4d9c07 --- /dev/null +++ b/src/assets/login/login_mid.png Binary files differ diff --git a/src/assets/login/login_right.png b/src/assets/login/login_right.png new file mode 100644 index 0000000..f2cb600 --- /dev/null +++ b/src/assets/login/login_right.png Binary files differ diff --git a/src/assets/login/logo.png b/src/assets/login/logo.png new file mode 100644 index 0000000..299f4d7 --- /dev/null +++ b/src/assets/login/logo.png Binary files differ diff --git a/src/components/SvgIcon/index.vue b/src/components/SvgIcon/index.vue new file mode 100644 index 0000000..b07ded2 --- /dev/null +++ b/src/components/SvgIcon/index.vue @@ -0,0 +1,62 @@ +<template> + <div v-if="isExternal" :style="styleExternalIcon" class="svg-external-icon svg-icon" v-on="$listeners" /> + <svg v-else :class="svgClass" aria-hidden="true" v-on="$listeners"> + <use :xlink:href="iconName" /> + </svg> +</template> + +<script> +// doc: https://panjiachen.github.io/vue-element-admin-site/feature/component/svg-icon.html#usage +import { isExternal } from '@/utils/validate' + +export default { + name: 'SvgIcon', + props: { + iconClass: { + type: String, + required: true + }, + className: { + type: String, + default: '' + } + }, + computed: { + isExternal() { + return isExternal(this.iconClass) + }, + iconName() { + return `#icon-${this.iconClass}` + }, + svgClass() { + if (this.className) { + return 'svg-icon ' + this.className + } else { + return 'svg-icon' + } + }, + styleExternalIcon() { + return { + mask: `url(${this.iconClass}) no-repeat 50% 50%`, + '-webkit-mask': `url(${this.iconClass}) no-repeat 50% 50%` + } + } + } +} +</script> + +<style scoped> +.svg-icon { + width: 1em; + height: 1em; + vertical-align: -0.15em; + fill: currentColor; + overflow: hidden; +} + +.svg-external-icon { + background-color: currentColor; + mask-size: cover!important; + display: inline-block; +} +</style> diff --git a/src/components/xio_customer_select/index.vue b/src/components/xio_customer_select/index.vue index 9ed82b5..4c6dfbe 100644 --- a/src/components/xio_customer_select/index.vue +++ b/src/components/xio_customer_select/index.vue @@ -1,6 +1,6 @@ <template> - <div class="mask hide"> - <div class="xio_customer_select_dialog"> + <div v-if="isShow" class="mask" @click="hideDialog"> + <div class="xio_customer_select_dialog" @click.stop="noop"> <div class="title">鏄惁閫夋嫨瀹汉[寮犳��姘慮锛屼娇鐢ㄥ綋鍓嶆埧闂达紵</div> <div class="content flex flex-sb"> <div class="tx flex-1" style="text-align: left;">鍖荤敓锛氬紶鎬�姘�</div> @@ -12,8 +12,8 @@ </div> <div class="btn_box flex flex-center"> <div class="flex flex-ver"> - <div class="btn_box__item flex flex-center">鍙栨秷</div> - <div class="btn_box__item flex flex-center">纭畾</div> + <div class="btn_box__item flex flex-center" @click="cancel">鍙栨秷</div> + <div class="btn_box__item flex flex-center" @click="submit">纭畾</div> </div> </div> </div> @@ -31,12 +31,34 @@ }, data() { return { - isShow: false + isShow: false, + dialogData: {} } }, methods: { - toggleClick() { - this.$emit('toggleClick') + // 鍙栨秷 + cancel() { + this.$emit('cancel', {}) + }, + // 鎻愪氦 + submit() { + this.$emit('submit', {}) + }, + noop() { + return + }, + // 鏄剧ず寮圭獥 + showDialog() { + this.isShow = true + }, + // 鍏抽棴寮圭獥 + hideDialog() { + this.isShow = false + this.dialogData = {} + }, + // 鏁版嵁鍒濆鍖� + dataInit(data) { + this.dialogData = data } } } diff --git a/src/components/xio_room_status_chg/index.vue b/src/components/xio_room_status_chg/index.vue index 1e9034d..208e4d2 100644 --- a/src/components/xio_room_status_chg/index.vue +++ b/src/components/xio_room_status_chg/index.vue @@ -1,6 +1,40 @@ <template> - <div class="mask"> - <div class="xio_room_status_chg_dialog"></div> + <div v-if="isShow" class="mask" @click="hideDialog"> + <div class="xio_room_status_chg_dialog" @click.stop="noop"> + <div class="title">鍒濆鍖栨埧闂寸姸鎬侊紙鐐瑰嚮涓嬫柟鎸夐挳鐩存帴鏇存敼鎴块棿鐘舵�侊級</div> + <div class="btn_box flex flex-center"> + <div style="width: 100%;"> + <div class="line flex flex-ver flex-sb"> + <div class="btn_box_item flex flex-center white" @click="changeStatus('绌洪棽')"> + <div class="flex flex-ver"> + <img class="icon" src="../../assets/img/free.png"> + <div class="tx">绌洪棽</div> + </div> + </div> + <div class="btn_box_item flex flex-center blue" @click="changeStatus('浣跨敤涓�')"> + <div class="flex flex-ver"> + <img class="icon" src="../../assets/img/using.png"> + <div class="tx white">浣跨敤涓�</div> + </div> + </div> + </div> + <div class="line flex flex-ver flex-sb"> + <div class="btn_box_item flex flex-center yellow" @click="changeStatus('瀹汉浼戞伅')"> + <div class="flex flex-ver"> + <img class="icon" src="../../assets/img/rest.png"> + <div class="tx">瀹汉浼戞伅</div> + </div> + </div> + <div class="btn_box_item flex flex-center gray" @click="changeStatus('閫氱煡鎵撴壂')"> + <div class="flex flex-ver"> + <img class="icon" src="../../assets/img/clear.png"> + <div class="tx">閫氱煡鎵撴壂</div> + </div> + </div> + </div> + </div> + </div> + </div> </div> </template> @@ -19,13 +53,87 @@ } }, methods: { - toggleClick() { - this.$emit('toggleClick') + noop() { + return + }, + // 鏇存崲鐘舵�� + changeStatus(tx) { + this.$emit('changeStatus', { statusTx: tx }) + }, + // 鏄剧ず寮圭獥 + showDialog() { + this.isShow = true + }, + // 鍏抽棴寮圭獥 + hideDialog() { + this.isShow = false } } } </script> <style scoped> - +.xio_room_status_chg_dialog { + width: 1105px; + min-height: 602px; + border-radius: 10px; + background-color: rgba(255,255,255,1); + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + -webkit-transform: translate(-50%, -50%); + z-index: 1; +} +.xio_room_status_chg_dialog .title { + line-height: 37px; + color: rgba(16,16,16,1); + font-size: 26px; + text-align: left; + font-family: PingFangSC-medium; + padding: 37px 31px 16px 31px; +} +.xio_room_status_chg_dialog .btn_box { + padding: 0 193px; +} +.xio_room_status_chg_dialog .btn_box .line { + width: 100%; +} +.xio_room_status_chg_dialog .btn_box_item { + width: 250px; + height: 120px; + line-height: 20px; + border-radius: 10px; + text-align: center; + box-shadow: 0px 2px 6px 0px rgba(206,206,206,0.86); + margin-top: 76px; +} +.xio_room_status_chg_dialog .btn_box_item.white { + background-color: rgba(255,255,255,1); +} +.xio_room_status_chg_dialog .btn_box_item.blue { + background-color: rgba(46,77,124,1); +} +.xio_room_status_chg_dialog .btn_box_item.yellow { + background-color: rgba(255,199,115,1); +} +.xio_room_status_chg_dialog .btn_box_item.gray { + background-color: rgba(206,206,206,1); +} +.xio_room_status_chg_dialog .btn_box_item .icon { + width: 60px; + height: 60px; + display: block; + margin-right: 17px; +} +.xio_room_status_chg_dialog .btn_box_item .tx { + line-height: 37px; + color: rgba(51,51,51,1); + font-size: 26px; + text-align: center; + font-family: PingFangSC-medium; +} +.xio_room_status_chg_dialog .btn_box_item .tx.white { + color: #ffffff; +} </style> diff --git a/src/config/index.js b/src/config/index.js index f7eb119..613e9f2 100644 --- a/src/config/index.js +++ b/src/config/index.js @@ -7,16 +7,21 @@ import appId from './appid.js' -var ismock = 1// 铏氭嫙鏁版嵁 0涓嶄娇鐢� 1浣跨敤 -var istest = 0// 0绾夸笂 1鏈湴 2娴嬭瘯鐜 +var ismock = 0// 铏氭嫙鏁版嵁 0涓嶄娇鐢� 1浣跨敤 +var istest = 2// 0绾夸笂 1鏈湴 2娴嬭瘯鐜 var isConsole = 1// 鏄惁灞忚斀console 0灞忚斀 1寮�鏀� var debug = isConsole var isWxLoginType = 0 // 寰俊鐧诲綍 0鏃� 1闈欓粯寰俊鐧诲綍snsapi_base 2鎵嬪姩寰俊鐧诲綍snsapi_userinfo +var isTestView = 1 + +var localOnline = istest ? 0 : 1 // 鏈湴杩炵嚎涓� // 鎵撳寘鍚庣殑鐜 if (process.env && process.env.NODE_ENV !== 'development') { istest = 0 ismock = 0 + isTestView = 0 + localOnline = 0 } const pdomain = '/' // 绾夸笂 @@ -74,6 +79,8 @@ export default { ismock, istest, + isTestView, + localOnline, isWxLoginType, isConsole, debug, diff --git a/src/icons/index.js b/src/icons/index.js new file mode 100644 index 0000000..2c6b309 --- /dev/null +++ b/src/icons/index.js @@ -0,0 +1,9 @@ +import Vue from 'vue' +import SvgIcon from '@/components/SvgIcon'// svg component + +// register globally +Vue.component('svg-icon', SvgIcon) + +const req = require.context('./svg', false, /\.svg$/) +const requireAll = requireContext => requireContext.keys().map(requireContext) +requireAll(req) diff --git a/src/icons/svg/eye-open.svg b/src/icons/svg/eye-open.svg new file mode 100644 index 0000000..88dcc98 --- /dev/null +++ b/src/icons/svg/eye-open.svg @@ -0,0 +1 @@ +<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="128" height="128"><defs><style/></defs><path d="M512 128q69.675 0 135.51 21.163t115.498 54.997 93.483 74.837 73.685 82.006 51.67 74.837 32.17 54.827L1024 512q-2.347 4.992-6.315 13.483T998.87 560.17t-31.658 51.669-44.331 59.99-56.832 64.34-69.504 60.16-82.347 51.5-94.848 34.687T512 896q-69.675 0-135.51-21.163t-115.498-54.826-93.483-74.326-73.685-81.493-51.67-74.496-32.17-54.997L0 513.707q2.347-4.992 6.315-13.483t18.816-34.816 31.658-51.84 44.331-60.33 56.832-64.683 69.504-60.331 82.347-51.84 94.848-34.816T512 128.085zm0 85.333q-46.677 0-91.648 12.331t-81.152 31.83-70.656 47.146-59.648 54.485-48.853 57.686-37.675 52.821-26.325 43.99q12.33 21.674 26.325 43.52t37.675 52.351 48.853 57.003 59.648 53.845T339.2 767.02t81.152 31.488T512 810.667t91.648-12.331 81.152-31.659 70.656-46.848 59.648-54.186 48.853-57.344 37.675-52.651T927.957 512q-12.33-21.675-26.325-43.648t-37.675-52.65-48.853-57.345-59.648-54.186-70.656-46.848-81.152-31.659T512 213.334zm0 128q70.656 0 120.661 50.006T682.667 512 632.66 632.661 512 682.667 391.339 632.66 341.333 512t50.006-120.661T512 341.333zm0 85.334q-35.328 0-60.33 25.002T426.666 512t25.002 60.33T512 597.334t60.33-25.002T597.334 512t-25.002-60.33T512 426.666z"/></svg> \ No newline at end of file diff --git a/src/icons/svg/eye.svg b/src/icons/svg/eye.svg new file mode 100644 index 0000000..16ed2d8 --- /dev/null +++ b/src/icons/svg/eye.svg @@ -0,0 +1 @@ +<svg width="128" height="64" xmlns="http://www.w3.org/2000/svg"><path d="M127.072 7.994c1.37-2.208.914-5.152-.914-6.87-2.056-1.717-4.797-1.226-6.396.982-.229.245-25.586 32.382-55.74 32.382-29.24 0-55.74-32.382-55.968-32.627-1.6-1.963-4.57-2.208-6.397-.49C-.17 3.086-.399 6.275 1.2 8.238c.457.736 5.94 7.36 14.62 14.72L4.17 35.96c-1.828 1.963-1.6 5.152.228 6.87.457.98 1.6 1.471 2.742 1.471s2.284-.49 3.198-1.472l12.564-13.983c5.94 4.416 13.021 8.587 20.788 11.53l-4.797 17.418c-.685 2.699.686 5.397 3.198 6.133h1.37c2.057 0 3.884-1.472 4.341-3.68L52.6 42.83c3.655.736 7.538 1.227 11.422 1.227 3.883 0 7.767-.49 11.422-1.227l4.797 17.173c.457 2.208 2.513 3.68 4.34 3.68.457 0 .914 0 1.143-.246 2.513-.736 3.883-3.434 3.198-6.133l-4.797-17.172c7.767-2.944 14.848-7.114 20.788-11.53l12.336 13.738c.913.981 2.056 1.472 3.198 1.472s2.284-.49 3.198-1.472c1.828-1.963 1.828-4.906.228-6.87l-11.65-13.001c9.366-7.36 14.849-14.474 14.849-14.474z"/></svg> \ No newline at end of file diff --git a/src/icons/svg/password.svg b/src/icons/svg/password.svg new file mode 100644 index 0000000..e291d85 --- /dev/null +++ b/src/icons/svg/password.svg @@ -0,0 +1 @@ +<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M108.8 44.322H89.6v-5.36c0-9.04-3.308-24.163-25.6-24.163-23.145 0-25.6 16.881-25.6 24.162v5.361H19.2v-5.36C19.2 15.281 36.798 0 64 0c27.202 0 44.8 15.281 44.8 38.961v5.361zm-32 39.356c0-5.44-5.763-9.832-12.8-9.832-7.037 0-12.8 4.392-12.8 9.832 0 3.682 2.567 6.808 6.407 8.477v11.205c0 2.718 2.875 4.962 6.4 4.962 3.524 0 6.4-2.244 6.4-4.962V92.155c3.833-1.669 6.393-4.795 6.393-8.477zM128 64v49.201c0 8.158-8.645 14.799-19.2 14.799H19.2C8.651 128 0 121.359 0 113.201V64c0-8.153 8.645-14.799 19.2-14.799h89.6c10.555 0 19.2 6.646 19.2 14.799z"/></svg> \ No newline at end of file diff --git a/src/icons/svg/safecode.svg b/src/icons/svg/safecode.svg new file mode 100644 index 0000000..ae547af --- /dev/null +++ b/src/icons/svg/safecode.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="40px" height="40.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path fill="#00AFAA" d="M511.92574 1023.975247C357.959389 1023.975247 71.50029 794.49855 71.50029 577.448076V163.162251c0-10.049894 8.416167-18.16902 18.837362-18.379424l24.95146-0.420808c0.953007 0 98.766196-1.967898 199.599304-41.895185 103.481725-40.843164 170.179849-87.936569 170.885322-88.419261l14.691162-10.421195a19.86463 19.86463 0 0 1 11.398956-3.601625 19.480951 19.480951 0 0 1 11.324696 3.539741l14.975826 10.507832c0.680719 0.482692 67.440727 47.526591 170.798685 88.419262 100.932121 39.927287 198.74531 41.895185 199.747825 41.895184l24.753432 0.420809c10.433572 0.210404 18.824985 8.32953 18.824986 18.379423l0.210404 414.285825c0 217.02572-286.508606 446.527171-440.6111 446.527171z m372.625797-812.568556c-37.860375-2.846645-117.516921-12.624251-200.267646-45.385419-84.557726-33.417134-146.725972-71.005221-172.358151-87.602398-25.557919 16.535293-87.763295 54.135757-172.296268 87.602398-82.602205 32.686908-162.03597 42.464514-200.416167 45.385419v366.041385c0 170.216979 249.576484 378.281957 372.712435 378.281957 47.724618 0 140.723264-38.726745 232.137691-123.767163 88.12222-81.909108 140.723264-177.07368 140.723264-254.490041z m-407.948946 435.660414a33.305744 33.305744 0 0 1-23.899439 10.049894 33.738929 33.738929 0 0 1-23.998453-10.037517l-101.674724-102.330691a34.345388 34.345388 0 0 1 0-48.269193 33.664668 33.664668 0 0 1 47.935022 0l77.738155 78.183717 196.269967-197.69329a33.590408 33.590408 0 0 1 47.910269 0 34.18449 34.18449 0 0 1 0 48.269194z m0 0" /></svg> \ No newline at end of file diff --git a/src/icons/svg/user.svg b/src/icons/svg/user.svg new file mode 100644 index 0000000..0ba0716 --- /dev/null +++ b/src/icons/svg/user.svg @@ -0,0 +1 @@ +<svg width="130" height="130" xmlns="http://www.w3.org/2000/svg"><path d="M63.444 64.996c20.633 0 37.359-14.308 37.359-31.953 0-17.649-16.726-31.952-37.359-31.952-20.631 0-37.36 14.303-37.358 31.952 0 17.645 16.727 31.953 37.359 31.953zM80.57 75.65H49.434c-26.652 0-48.26 18.477-48.26 41.27v2.664c0 9.316 21.608 9.325 48.26 9.325H80.57c26.649 0 48.256-.344 48.256-9.325v-2.663c0-22.794-21.605-41.271-48.256-41.271z" stroke="#979797"/></svg> \ No newline at end of file diff --git a/src/icons/svgo.yml b/src/icons/svgo.yml new file mode 100644 index 0000000..d11906a --- /dev/null +++ b/src/icons/svgo.yml @@ -0,0 +1,22 @@ +# replace default config + +# multipass: true +# full: true + +plugins: + + # - name + # + # or: + # - name: false + # - name: true + # + # or: + # - name: + # param1: 1 + # param2: 2 + +- removeAttrs: + attrs: + - 'fill' + - 'fill-rule' diff --git a/src/main.js b/src/main.js index b5688cd..84fe861 100644 --- a/src/main.js +++ b/src/main.js @@ -2,9 +2,10 @@ // (runtime-only or standalone) has been set in webpack.base.conf with an alias. // 鐩存帴浠巆ore-js寮曞叆鍏ㄥ眬鐨刾olyfill -import 'core-js/fn/promise'; +import 'core-js/fn/promise' import Vue from 'vue' +import Element from 'element-ui' import App from './App' import router from './router' // 璺敱琛� @@ -15,6 +16,12 @@ import Req from './utils/jun_httpInstall' // http 璇锋眰 import fn from './utils/g_fn_install' +import 'element-ui/lib/theme-chalk/index.css' +import 'element-ui/lib/theme-chalk/display.css' +import '@/icons' // icon + +Vue.prototype.isTestView = config.isTestView + Vue.config.productionTip = false Vue.config.devtools = config.devtools @@ -23,7 +30,11 @@ require('./mock.js') } Vue.config.productionTip = false -// Vue.use(element) +// 瑙e喅elementui涓嬫媺鎼滅储妗嗗湪ios涓婂敜涓嶈捣杞敭鐩� +import ElementUI from '@/utils/element-ui-preprocessing' + +Vue.use(Element) +Vue.use(ElementUI) Vue.use(Axios) Vue.use(filter) Vue.use(Req) diff --git a/src/pages/login/g_mockData.js b/src/pages/login/g_mockData.js new file mode 100644 index 0000000..9b9fb0b --- /dev/null +++ b/src/pages/login/g_mockData.js @@ -0,0 +1,69 @@ +module.exports = { + // login: { + // code: 100, + // msg: '', + // data: { + // adminToken: 'mockdAmintoken', // 鐧诲綍鍑瘉 + // name: '娼樺鎷夌殑鑷槾', // 鐢ㄦ埛鍚嶇О + // // arr: ['sys_admin_see'], // 鏉冮檺鍒楄〃 + // arr: ['sys_admin_see', 'sys_admin_add', 'sys_admin_edit', 'sys_admin_del', 'sys_admin_role_see', + // 'sys_admin_role_add', 'sys_admin_role_edit', 'sys_admin_role_del', 'corp_user_schedule_see', + // 'corp_user_schedule_add', 'corp_user_schedule_edit', 'corp_user_schedule_del', 'user_mp_banner_see', + // 'user_mp_banner_add', 'user_mp_banner_edit', 'user_mp_banner_del', 'shop_see', 'shop_add', 'shop_edit', + // 'shop_del', 'shop_device', 'corp_user_see', 'corp_user_add', 'corp_user_edit', 'corp_user_del', + // 'change_assistant_see', 'ser_pro_material_see', 'service_project_see', 'service_project_add', + // 'service_project_edit', 'service_project_del', 'service_topic_see', 'service_topic_add', + // 'service_topic_edit', 'service_topic_del', 'service_project_order_see', 'service_project_order_edit', + // 'goods_type_see', 'goods_type_add', 'goods_type_edit', 'goods_type_del', 'goods_see', 'goods_add', 'goods_edit', + // 'goods_del', 'goods_inventory', 'goods_order_see', 'goods_order_edit', 'goods_index_banner_see', + // 'goods_index_banner_add', 'goods_index_banner_edit', 'goods_index_banner_del', 'user_see', 'user_edit', + // 'user_cash_see', 'user_cash_edit', 'distribute_relate', 'distribute_order', 'document_edit', 'operation_see', + // 'coupon_see', 'coupon_add', 'coupon_edit', 'coupon_del', 'activity_see', 'activity_add', 'activity_edit', 'activity_del', 'system_set', + // // 闂ㄥ簵 + // 'shop_see', 'shop_add', 'shop_edit', 'shop_del', 'shop_time', 'shop_time', 'doctor_schedule', + // // 椤鹃棶 + // 'corp_user_see', 'corp_user_list', 'corp_user_add', 'corp_user_edit', 'corp_user_del', + // // 椤鹃棶缁� + // 'corp_user_team_see', 'corp_user_team_add', 'corp_user_team_edit', 'corp_user_team_delete', + // // 椤圭洰 + // 'project_type', 'project_see', 'project_add', 'project_edit', 'project_del', 'project_device', + // // 鎶ゅ+ + // 'nurse_see', 'nurse_add', 'nurse_edit', 'nurse_del', + // // 鎴块棿 + // 'room_see', 'room_add', 'room_edit', 'room_del', 'room_project', 'room_schedule', + // // 璁惧 + // 'device_see', 'device_add', 'device_edit', 'device_del', 'device_no', 'device_schedule', + // // 鍖荤敓 + // 'doctor_see', 'doctor_add', 'doctor_edit', 'doctor_del', 'doctor_schedule', + // // 鐢ㄦ埛 + // 'user_see', 'user_add', 'user_edit', 'user_del', + // // 鐢ㄦ埛鏉ユ簮 + // 'user_from_see', 'user_from_add', 'user_from_edit', 'user_from_del', + // // 棰勭害 + // 'appointment_see', 'appointment_add', 'appointment_edit', 'appointment_add', 'appointment_edit' + + // ], + // tel: '13113113111', + // job: '宸ヤ綔浜哄憳', + // role: '瓒呯骇绠$悊鍛�' + // } + // }, + + scanLoginTest: { + 'code': '100', + 'msg': 'SUCCESS', + 'data': { + 'roleList': [ + { + 'roleId': '7c5d1244034611edaaa6525400b8510a', + 'shopName': '闈欏畨搴�', + 'roleName': '绯荤粺缁存姢鍛�', + 'roleUniqueStr': 'admin', + 'id': '138ef33f123511ed91d1525400b8510a', + 'shopId': 'bb4e8a7d620d11ebb06bb8599f4cafbe' + } + ] + } + } + +} diff --git a/src/pages/login/getQueryObj.js b/src/pages/login/getQueryObj.js new file mode 100644 index 0000000..3d6d926 --- /dev/null +++ b/src/pages/login/getQueryObj.js @@ -0,0 +1,27 @@ +export function getQueryObj() { + let search = location.search.replace('?', '') + const obj = {} + if (!search) { + return obj + } + if (search.indexOf('&') > -1) { + search = search.split('&') + } else { + search = [search] + } + + search.forEach(item => { + const [key, value] = item.split('=') + if (!obj[key]) { + obj[key] = value + } else { + if (obj[key] instanceof Array) { + obj[key].push(value) + } else { + obj[key] = [obj[key], value] + } + } + }) + + return obj +} diff --git a/src/pages/login/index.vue b/src/pages/login/index.vue new file mode 100644 index 0000000..f9ef4a6 --- /dev/null +++ b/src/pages/login/index.vue @@ -0,0 +1,1030 @@ +<template> + <div class="login-container flex flex-ver"> + <div class="login-form"> + <!-- <div class="title-container flex flex-ver mb20"> + <img class="login_logo" src="../../assets/login/logo.png"> + <h3 class="title">鑺欒壘棰勭害绠$悊绯荤粺</h3> + <div class="title ml10">鑺欒壘锛圥-HIS锛夊尰闄㈢鐞嗙郴缁�</div> + <h3 class="title ml10">鏄婅姖缁煎悎鍖荤枟杩愯惀绠$悊绯荤粺</h3> + </div> --> + <!-- 璐﹀彿鐧诲綍 --> + <div v-if="loginType===0"> + <el-form ref="loginForm" :model="loginForm" :rules="loginRules" autocomplete="on" label-position="left"> + + <el-form-item prop="username"> + <span class="svg-container"> + <svg-icon icon-class="user" /> + </span> + <el-input + ref="username" + v-model="loginForm.username" + placeholder="璇疯緭鍏ヨ处鍙�" + name="username" + type="text" + tabindex="1" + autocomplete="on" + @keyup.enter.native="handleLogin" + /> + </el-form-item> + + <el-tooltip v-model="capsTooltip" content="Caps lock is On" placement="right" manual> + <el-form-item prop="password"> + <span class="svg-container"> + <svg-icon icon-class="password" /> + </span> + <el-input + :key="passwordType" + ref="password" + v-model="loginForm.password" + :type="passwordType" + placeholder="璇疯緭鍏ュ瘑鐮�" + name="password" + tabindex="2" + autocomplete="on" + @keyup.native="checkCapslock" + @blur="capsTooltip = false" + @keyup.enter.native="handleLogin" + /> + <span class="show-pwd" @click="showPwd"> + <svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'" /> + </span> + </el-form-item> + </el-tooltip> + + <div class="flex flex-start flex-sb"> + <el-form-item prop="safecode" class="flex-1"> + <span class="svg-container"> + <svg-icon icon-class="safecode" /> + </span> + <el-input + ref="safecode" + v-model="loginForm.safecode" + style="width: 70%" + placeholder="璇疯緭鍏ラ獙璇佺爜" + name="safecode" + type="text" + tabindex="3" + autocomplete="off" + @keyup.enter.native="handleLogin" + /> + <el-image + v-if="isTestView" + class="safecode-img" + :src="safecodeImg" + fit="fill" + @click="getSafeCodeImg" + > + <div slot="error" class="image-slot"> + <i class="el-icon-picture-outline" /> + </div> + </el-image> + </el-form-item> + <el-button v-if="!isTestView" class="ml10 mt5" :disabled="isShowCount" type="blackblue" @click="sendCode"> + {{ isShowCount ? secondCount + '绉掑悗閲嶅彂' : '鍙戦�侀獙璇佺爜' }} + </el-button> + </div> + + <!-- <el-form-item prop="safecode"> + <span class="svg-container"> + <svg-icon icon-class="safecode" /> + </span> + <el-input + ref="safecode" + v-model="loginForm.safecode" + style="width: 60%" + placeholder="璇疯緭鍏ラ獙璇佺爜" + name="safecode" + type="text" + tabindex="3" + autocomplete="off" + @keyup.enter.native="handleLogin" + /> + <el-image + class="safecode-img" + :src="safecodeImg" + fit="fill" + @click="getSafeCodeImg" + > + <div slot="error" class="image-slot"> + <i class="el-icon-picture-outline" /> + </div> + </el-image> + </el-form-item> --> + + </el-form> + + <div> + <el-button :loading="loading" type="blackblue" style="width:100%;margin-bottom:20px;border-radius: 22px;" @click.native.prevent="handleLogin">鐧诲綍</el-button> + </div> + <div> + <el-button v-if="!isTestView" :loading="loading" plain style="width:100%;border-radius: 22px;" @click="loginType=1">鍒囨崲鎵爜鐧诲綍</el-button> + <!-- <el-button v-else :loading="loading" plain style="width:100%;border-radius: 22px;" @click="simulateLogin">妯℃嫙鎵爜鐧诲綍</el-button> --> + </div> + <!-- 浼佷笟寰俊鐩存帴甯︿笂state鍜宑ode锛屾棤闇�鍐嶇敤鎸夐挳 --> + <!-- <div> + <el-button :loading="loading" plain style="width:100%;margin-top:20px;border-radius: 22px;" @click.native.prevent="handleWebLogin">缃戦〉鐧诲綍</el-button> + </div> --> + </div> + <!-- 鎵爜鐧诲綍 --> + <div v-if="loginType===1"> + <!-- 鎵爜 --> + <div v-if="!show_role_list" id="wx_reg" class="flex flex-align-center" /> + <!-- 鎵爜鍥炶皟鍚� --> + <div v-if="show_role_list"> + <div class="role-list-title">璇烽�夋嫨瑙掕壊</div> + <div class="role-list flex flex-wrap" :class="{'block-list': roleList.length<=4}"> + <!-- 20231117 long 鍔犱釜鍙屽嚮杩涘叆 --> + <div v-for="(item,index) in roleList" :key="index" class="item flex flex-ver" :class="{active:item.id == roleId}" @click="selectRole(item.id)" @dblclick="item.id == roleId?selectCodeLoginTest(roleId):noop()"> + <div class="flex-1"> + <div class="role-name ell">{{ item.roleName }}</div> + <div class="shop-name ell">{{ item.shopName }}</div> + </div> + <i class="el-icon-check" /> + </div> + </div> + <div> + <el-button v-if="isTestView" :loading="loading" :disabled="!roleId" type="blackblue" style="width: 100%;margin-bottom:20px;border-radius: 22px;" @click.native.prevent="selectCodeLoginTest(roleId)">{{ roleId ? '椹笂鐧诲綍' : '閫夋嫨瑙掕壊鍚庣櫥褰�' }}</el-button> + <el-button v-else :loading="loading" :disabled="!roleId" type="blackblue" style="width: 100%;margin-bottom:20px;border-radius: 22px;" @click.native.prevent="selectCodeLogin(roleId)">{{ roleId ? '椹笂鐧诲綍' : '閫夋嫨瑙掕壊鍚庣櫥褰�' }}</el-button> + </div> + <div v-if="!isTestView"> + <el-button type="blackblue" style="width: 100%;margin-bottom:20px;border-radius: 22px;" @click.native.prevent="scanAgain">閲嶆柊鎵爜<i class="el-icon-refresh-right el-icon--right" /></el-button> + </div> + </div> + <!-- <el-button :loading="loading" plain style="width:100%;border-radius: 22px;" @click="loginType=0">鍒囨崲璐﹀彿鐧诲綍<i class="el-icon-arrow-right el-icon--right" /></el-button> --> + <!-- <el-button :loading="loading" plain style="width:100%;border-radius: 22px;" @click="loginType=0">鍒囨崲鐧诲綍鏂瑰紡<i class="el-icon-arrow-right el-icon--right" /></el-button> --> + </div> + + </div> + </div> +</template> + +<script> +// 璁剧疆token鍜岀敤鎴锋暟鎹� +import { setToken, setUserData } from '@/utils/auth' // get token from session +// 鍩虹閰嶇疆 - 鑾峰彇褰撳墠鐜 +const baseConfig = require('../../config/index') +// 鐧诲綍鎺ュ彛鐨� mockData +const g_mockData = require('./g_mockData.js') +// 鑾峰彇鍙傛暟鏂规硶 +import { getQueryObj } from '@/pages/login/getQueryObj' +import Req from '../../utils/jun_httpInstall' // http 璇锋眰 +export default { + name: 'Login', + components: {}, + data() { + const validateUsername = (rule, value, callback) => { + if (!value) { + callback(new Error('璇疯緭鍏ヨ处鍙�')) + } else { + callback() + } + } + const validatePassword = (rule, value, callback) => { + if (value ? value.length < 6 : !value) { + callback(new Error('瀵嗙爜涓嶈兘灏戜簬6浣�')) + } else { + callback() + } + } + const validateSafecode = (rule, value, callback) => { + if (!value) { + callback(new Error('璇疯緭鍏ラ獙璇佺爜')) + } else { + callback() + } + } + return { + // 褰撳墠鐧婚檰鐜 + localOnline: baseConfig.localOnline, // 鏈湴杩炵嚎涓婏紙鍜宨sTestView涓�璧峰垽鏂級 20230619 long + + loginForm: { + username: '', + password: '', + safecode: '', + checkedId: '' + }, + loginRules: { + username: [{ required: true, trigger: 'blur', validator: validateUsername }], + password: [{ required: true, trigger: 'blur', validator: validatePassword }], + safecode: [{ required: true, trigger: 'blur', validator: validateSafecode }] + }, + passwordType: 'password', + capsTooltip: false, + loading: false, + showDialog: false, + redirect: undefined, + otherQuery: {}, + // 娴嬭瘯鏈嶇敤鍥剧墖楠岃瘉鐮� 绾夸笂鐢ㄥ彂閫佹墜鏈洪獙璇佺爜 + safecodeImg: '', + secondCount: 0, // 绉� + telCode: '', // 鐭俊楠岃瘉鐮� + messageId: '', // 鍙戦�佹垚鍔� + isShowCount: false, + timer: null, + + loginType: 0, + + // 20230216 long 鐢ㄦ埛閲嶅畾鍚戦〉闈㈣瘑鍒櫥褰曠被鍨� + // 鎵爜鐧诲綍STATE_SCAN銆佺綉椤电櫥褰昑ATE_WEB + state: '', + STATE_SCAN: 'hx168', + STATE_WEB: 'hx168_web', + + show_role_list: false, // 鏄剧ず閫夋嫨瑙掕壊 + roleList: [], + roleId: '', + code: '' + } + }, + watch: { + $route: { + handler: function(route) { + const query = route.query + if (query) { + this.redirect = query.redirect + this.otherQuery = this.getOtherQuery(query) + } + }, + immediate: true + }, + + // 鍒囨崲loginType + loginType: { + handler(loginType) { + this.$nextTick(() => { + if (loginType === 1) { + if (baseConfig.ismock) { + // this.$messageWarn('鏈湴鐜璇蜂娇鐢ㄥ瘑鐮佺櫥褰�') + // this.loginType = 0 + } else { + if (!this.show_role_list) { + if (!this.isTestView) this.initCodeLogin() + } + } + } else { + this.initLoginData() + } + }) + }, + immediate: true + } + }, + mounted() { + this.init() + }, + methods: { + init() { + this.loginType = this.isTestView ? 0 : 1 + if (getQueryObj() && getQueryObj().loginType === '1') { + this.loginType = 1 + } + if (this.$route.query.logout) { + // 娓呯┖浼佷笟寰俊鐧诲綍code + this.replaceNoCode() + return + } + if (this.$route.query.logout_603) { + // 娓呯┖浼佷笟寰俊鐧诲綍code锛屾竻绌簉edirect + this.replaceNoCodeNoRedirect() + return + } + const code = getQueryObj().code + if (code) { + this.state = getQueryObj().state + this.code = code + this.$nextTick(() => { + this.codeLogin(code) + }) + } + }, + + // 娓呯┖浼佷笟寰俊鐧诲綍code + replaceNoCode() { + if (this.$route.query.isMiniprogram) { return } + window.location.replace('//' + window.location.host + window.location.pathname + '#/login?redirect=' + this.$route.query.redirect) + }, + + // 娓呯┖浼佷笟寰俊鐧诲綍code锛屾竻绌簉edirect + replaceNoCodeNoRedirect() { + if (this.$route.query.isMiniprogram) { return } + window.location.replace('//' + window.location.host + window.location.pathname + '#/login') + }, + + // 浼佷笟寰俊鎵爜鐧诲綍 - 鍒濆鍖� + initCodeLogin() { + // 娴嬭瘯 + // this.selectCodeLogin(window.prompt('璇疯緭鍏ヨ鑹瞚d')) + // return + + // 娴嬭瘯鍥炶皟 + // this.wwLogin = new window.WwLogin({ + // 'id': 'wx_reg', + // 'appid': 'wx23a7c266dcd048aa', + // 'agentid': '1000050', + // 'redirect_uri': 'http://test6.phiskin.com/assist/admin/employee/login/scanLogin', + // 'state': 'hx168', + // 'href': '', + // 'lang': 'zh' + // }) + + if (this.code) { + return + } + + this.wwLogin = new window.WwLogin({ + 'id': 'wx_reg', + 'appid': 'wx23a7c266dcd048aa', + 'agentid': '1000050', + 'redirect_uri': 'https://' + window.location.host + window.location.pathname, + // 'redirect_uri': 'http://serv3.phiskin.com/appointment/adminweb_v2/index.html', + // 'redirect_uri': 'http://test6.phiskin.com/adminwebV3/index.html', // 鏂扮増绠$悊绯荤粺 + 'state': this.STATE_SCAN, + 'href': '', + 'lang': 'zh' + }) + }, + + scanAgain() { + this.code = '' + this.show_role_list = false + if (this.loginType === 1) { + this.$nextTick(() => { + this.initCodeLogin() + }) + } else { + this.loginType = 1 + } + }, + + // 缃戦〉鐧诲綍 + handleWebLogin() { + let redirect_uri = 'https://' + window.location.host + window.location.pathname + redirect_uri = encodeURIComponent(redirect_uri) + const appid = 'wx23a7c266dcd048aa' + const response_type = 'code' + const scope = 'snsapi_base' + const state = this.STATE_WEB + const agentid = '1000050' + + const loginUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${redirect_uri}&response_type=${response_type}&scope=${scope}&state=${state}&agentid=${agentid}#wechat_redirect` + + window.location.replace(loginUrl) + }, + + // 鎵爜鐧诲綍鍥炶皟 + codeLogin(code) { + const { state, STATE_SCAN, STATE_WEB } = this + let url = '' + if (state === STATE_SCAN) url = 'admin/employee/login/scanLogin' + if (state === STATE_WEB) url = 'admin/employee/login/webAuthLogin' + + if (this.localOnline && this.isTestView) url = 'admin/employee/login/scanLogin' // 鏈湴杩炵嚎涓� 20230619 long + + // state鍊间笉瀵癸紝閲嶆柊鐧诲綍 + if (!url) { + this.$alert('鐧诲綍寮傚父锛岃閲嶆柊鐧诲綍', '鎻愮ず', { + confirmButtonText: '閲嶆柊鐧诲綍', + showClose: false, + callback: action => { + this.replaceNoCodeNoRedirect() + } + }) + return + } + + Req.http.post({ + url: url, + udData: { noToken: true }, + data: { + code, state + }, + mockData: { 'code': '100', 'msg': 'SUCCESS', 'data': { 'roleList': [{ 'roleTypeId': '', 'createTime': { 'date': 22, 'hours': 17, 'seconds': 46, 'month': 8, 'timezoneOffset': -480, 'year': 121, 'minutes': 17, 'time': 1632302266607, 'day': 3 }, 'roleId': '82c1a5fe0a5011ec96245254007749be', 'roleName': '椤鹃棶', 'shopName': '鏂板ぉ鍦板簵', 'employeeId': '', 'roleUniqueStr': 'adviser_leader', 'id': '82c1a5fe0a5011ec96245254007749be', 'shopId': '605e391b620d11ebb06bb8599f4cafbe', 'oldId': '', 'isDel': 0 }, { 'roleTypeId': '', 'createTime': { 'date': 22, 'hours': 17, 'seconds': 46, 'month': 8, 'timezoneOffset': -480, 'year': 121, 'minutes': 17, 'time': 1632302266607, 'day': 3 }, 'roleId': '82c1a5fe0a5011ec96245254007749be', 'roleName': 'MIC', 'shopName': '鏂板ぉ鍦板簵', 'employeeId': '', 'roleUniqueStr': 'mic', 'id': '82c1ca2f0a5011ec96245254007749be', 'shopId': '605e391b620d11ebb06bb8599f4cafbe', 'oldId': '', 'isDel': 0 }, { 'roleTypeId': '', 'createTime': { 'date': 22, 'hours': 17, 'seconds': 46, 'month': 8, 'timezoneOffset': -480, 'year': 121, 'minutes': 17, 'time': 1632302266607, 'day': 3 }, 'roleId': '82c1a5fe0a5011ec96245254007749be', 'roleName': '鍖荤敓', 'shopName': '鏂板ぉ鍦板簵', 'employeeId': '', 'roleUniqueStr': 'doctor', 'id': '82c1eb980a5011ec96245254007749be', 'shopId': '605e391b620d11ebb06bb8599f4cafbe', 'oldId': '', 'isDel': 0 }, { 'roleTypeId': '', 'createTime': { 'date': 22, 'hours': 17, 'seconds': 46, 'month': 8, 'timezoneOffset': -480, 'year': 121, 'minutes': 17, 'time': 1632302266607, 'day': 3 }, 'roleId': '82c1a5fe0a5011ec96245254007749be', 'roleName': '鎶ゅ+', 'shopName': '鏂板ぉ鍦板簵', 'employeeId': '', 'roleUniqueStr': 'nurse', 'id': '82c20cde0a5011ec96245254007749be', 'shopId': '605e391b620d11ebb06bb8599f4cafbe', 'oldId': '', 'isDel': 0 }, { 'roleTypeId': '', 'createTime': { 'date': 22, 'hours': 17, 'seconds': 46, 'month': 8, 'timezoneOffset': -480, 'year': 121, 'minutes': 17, 'time': 1632302266607, 'day': 3 }, 'roleId': '82c1a5fe0a5011ec96245254007749be', 'roleName': '鍓嶅彴', 'shopName': '鏂板ぉ鍦板簵', 'employeeId': '', 'roleUniqueStr': 'reception', 'id': '82c22d150a5011ec96245254007749be', 'shopId': '605e391b620d11ebb06bb8599f4cafbe', 'oldId': '', 'isDel': 0 }, { 'roleTypeId': '', 'createTime': { 'date': 22, 'hours': 17, 'seconds': 46, 'month': 8, 'timezoneOffset': -480, 'year': 121, 'minutes': 17, 'time': 1632302266607, 'day': 3 }, 'roleId': '82c1a5fe0a5011ec96245254007749be', 'roleName': '搴楅暱', 'shopName': '鏂板ぉ鍦板簵', 'employeeId': '', 'roleUniqueStr': 'shopowner', 'id': '82c24da90a5011ec96245254007749be', 'shopId': '605e391b620d11ebb06bb8599f4cafbe', 'oldId': '', 'isDel': 0 }, { 'roleTypeId': '', 'createTime': { 'date': 22, 'hours': 17, 'seconds': 46, 'month': 8, 'timezoneOffset': -480, 'year': 121, 'minutes': 17, 'time': 1632302266607, 'day': 3 }, 'roleId': '82c1a5fe0a5011ec96245254007749be', 'roleName': '鎶ゅ+鍔╃悊', 'shopName': '鏂板ぉ鍦板簵', 'employeeId': '', 'roleUniqueStr': 'nurse_assistant', 'id': '82c26d510a5011ec96245254007749be', 'shopId': '605e391b620d11ebb06bb8599f4cafbe', 'oldId': '', 'isDel': 0 }, { 'roleTypeId': '', 'createTime': { 'date': 22, 'hours': 17, 'seconds': 46, 'month': 8, 'timezoneOffset': -480, 'year': 121, 'minutes': 17, 'time': 1632302266607, 'day': 3 }, 'roleId': '82c1a5fe0a5011ec96245254007749be', 'roleName': '鍖荤敓鍔╃悊', 'shopName': '鏂板ぉ鍦板簵', 'employeeId': '', 'roleUniqueStr': 'doctor_assistant', 'id': '82c28d7d0a5011ec96245254007749be', 'shopId': '605e391b620d11ebb06bb8599f4cafbe', 'oldId': '', 'isDel': 0 }], 'employeeId': '476051fc000711ecbbe230d0422e31b5' }} + }).then((inf) => { + // this.afterLogin(inf) + // 鏇存敼鏄剧ず鐧诲綍閫夐」 + this.roleList = inf.roleList + this.show_role_list = true + // 鍒囨崲鐧诲綍妯″紡 + this.loginType = 1 + }).catch((res) => { + this.loading = false + this.code = '' // 娓呯┖鍏抽敭鍒ゆ柇 + this.$messageError(res.msg) + + // 鍘绘帀code鍙傛暟锛屽埛鏂伴〉闈� + setTimeout(() => { + this.replaceNoCodeNoRedirect() + }, 1500) + }) + }, + + // 閫夋嫨瑙掕壊 + selectRole(id) { + this.roleId = id + }, + // 閫夋嫨瑙掕壊鍚庣櫥褰� + selectCodeLogin(roleId) { + if (!roleId) { + this.$messageWarn('缂哄皯閫夋嫨瑙掕壊id') + return + } + Req.http.post({ + // 2022-06-23 鐧诲綍鏂版帴鍙� + url: 'admin/employee/login/selectLoginRoleNew', + // url: 'admin/employee/login/selectLoginRole', + udData: { noToken: true }, + data: { + roleId + }, + mockData: g_mockData.login + }).then((inf) => { + this.afterLogin(inf) + }).catch((res) => { + this.loading = false + this.$messageError(res.msg) + }) + }, + + // 鍙戦�侀獙璇佺爜 + sendCode() { + if (!this.loginForm.username) return this.$message.error('璇疯緭鍏ヨ处鍙�') + Req.http.post({ + url: 'admin/employee/login/sendVerifyCode', + data: { account: this.loginForm.username }, + mockData: { + code: 100, + msg: '', + data: {} + } + }).then((inf) => { + this.getCode() + this.$message.success('楠岃瘉鐮佸彂閫佹垚鍔�') + }) + }, + // 鍊掕鏃� + getCode() { + const times = 60 // 鍊掕鏃舵椂闂� + if (!this.timer) { + this.secondCount = times + this.isShowCount = true + this.timer = setInterval(() => { + if (this.secondCount > 0 && this.secondCount <= times) { + this.secondCount-- + } else { + this.isShowCount = false + clearInterval(this.timer) + this.timer = null + } + }, 1000) + } + }, + + // 瀵嗙爜鐧诲綍 - 鍒濆鍖� + initLoginData() { + var loginData = localStorage.getItem('loginData') + // console.log(loginData) + // 鑾峰彇淇濆瓨鐨勮处鍙峰瘑鐮� + if (loginData) this.loginForm = JSON.parse(loginData) + + if (this.loginForm.username === '') { + this.$refs.username && this.$refs.username.focus() + } else if (this.loginForm.password === '') { + this.$refs.password && this.$refs.password.focus() + } else if (this.loginForm.safecode === '') { + this.$refs.safecode && this.$refs.safecode.focus() + } + if (this.isTestView) this.getSafeCodeImg() + }, + + // 鏄惁澶у啓 + checkCapslock(e) { + const { key } = e + this.capsTooltip = key && key.length === 1 && (key >= 'A' && key <= 'Z') + }, + + // 鍒囨崲瀵嗙爜鏄剧ず + showPwd() { + if (this.passwordType === 'password') { + this.passwordType = '' + } else { + this.passwordType = 'password' + } + this.$nextTick(() => { + this.$refs.password.focus() + }) + }, + + // 鑾峰彇楠岃瘉鐮佸浘 + getSafeCodeImg() { + var checkedId = this.getCheckedId() + Req.http.post({ + url: 'admin/create/cheked', + data: { checkedId: checkedId }, + udData: { noToken: true }, + mockData: { + code: 100, + msg: '', + data: { + imgStr: 'xxxx' + } + } + }).then((inf) => { + this.safecodeImg = this.perfectSafeCode(inf.data.imgStr) + this.loginForm.checkedId = checkedId + }) + }, + // 琛ュ叏楠岃瘉鐮� + perfectSafeCode(img) { + if (!img) return + return `data:image/jpeg;base64,${img}` + }, + // 鐧诲綍鍚庡洖璋� + afterLogin(inf) { + // 淇濆瓨鐧诲綍鍑瘉 + setToken(inf.adminToken) + + // 淇濆瓨璐﹀彿瀵嗙爜 + var loginData = JSON.stringify({ + username: this.loginForm.username.trim() + }) + // password: this.loginForm.password.trim() // 20210322 long 鍙栨秷璁颁綇瀵嗙爜 + localStorage.setItem('loginData', loginData) + + sessionStorage.setItem('newAppTime', new Date()) // 瀛樺叆鏃堕棿 鐢ㄤ簬鑾峰彇鏂扮殑棰勭害鏁� + + // 淇濆瓨鐢ㄦ埛鏁版嵁 + setUserData(inf) + + this.loading = false + + // 鐧诲綍鎴愬姛璺宠浆椤甸潰 + this.$messageSuc('鐧诲綍鎴愬姛') + setTimeout(() => { + // this.$router.push({ path: '/dashboard' }) + this.$router.push({ path: this.redirect || '/dashboard', query: this.otherQuery }) + }, 1000) + }, + // 瀵嗙爜鐧诲綍 + handleLogin() { + this.$refs.loginForm.validate(valid => { + if (valid) { + const { username, password, safecode, checkedId } = this.loginForm + const params = { + account: username.trim(), + password: password.trim(), + checkedCode: safecode.trim() + } + this.loading = true + // const url = this.isTestView ? 'admin/employee/login/accountLogin' : 'admin/loginNew' + const url = this.isTestView ? 'admin/employee/login/accountLogin' : 'admin/employee/login/accountLogin/v2' + if (this.isTestView) { + params.checkedId = checkedId + } + Req.http.post({ + // url: 'admin/loginNew', + url, + data: params, + udData: { noToken: true }, + // mockData: g_mockData.login + mockData: g_mockData.scanLoginTest + }).then((inf) => { + this.loading = false + this.loginType = 1 + this.jumpToRoomList() + // this.show_role_list = true + // this.roleList = inf.roleList || [] + /* if (this.isTestView) { + this.loading = false + this.loginType = 1 + this.show_role_list = true + this.roleList = inf.roleList || [] + } else { + this.afterLogin(inf) + } */ + }).catch((res) => { + this.loading = false + this.$messageError(res.msg) + }) + } else { + console.log('琛ㄥ崟楠岃瘉澶辫触') + return false + } + }) + }, + // 璺宠浆鎴块棿鍒楄〃 + jumpToRoomList() { + this.$router.push({ + path: `./room/list` + }) + }, + // 鑾峰彇route query瀵硅薄 + getOtherQuery(query) { + return Object.keys(query).reduce((acc, cur) => { + if (cur !== 'redirect') { + acc[cur] = query[cur] + } + return acc + }, {}) + }, + + // 娴嬭瘯鏈嶇櫥褰� 馃憞 + // 娴嬭瘯鎵爜鐧诲綍 + simulateLogin() { + this.loginType = 1 + // 鑾峰彇鐢ㄦ埛缂撳瓨鏉冮檺淇℃伅 + // const userData = JSON.parse(getUserData()) + Req.http.post({ + url: 'admin/employee/login/scanLoginTest', + data: { + employeeId: '476051fc000711ecbbe230d0422e31b5' // 榛勫槈鑽e憳宸d 476051fc000711ecbbe230d0422e31b5 + // employeeId: '3eb10b540b2b11ecb06bb8599f4cafbe' // 榛勫槈鑽e憳宸d 3eb10b540b2b11ecb06bb8599f4cafbe - 鍜岀埛 + }, + mockData: g_mockData.scanLoginTest + }).then((res) => { + this.show_role_list = true + this.roleList = res.roleList || [] + }) + }, + + selectCodeLoginTest(id) { + let url = 'admin/employee/login/selectLoginRoleNewTest' + if (this.localOnline && this.isTestView) url = 'admin/employee/login/selectLoginRoleNew' // 鏈湴杩炵嚎涓� 20230619 long + Req.http.post({ + url, + data: { + roleId: id + }, + mockData: { + code: 100, + msg: '', + data: { + 'adminToken': 'eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxMzhlZjMzZjEyMzUxMWVkOTFkMTUyNTQwMGI4NTEwYSIsInN1YiI6ImxvZ2luX2FkbWluX2VtcGxveWVlIiwiaXNzIjoidXNlciIsImlhdCI6MTY3MzA4MTcwOSwiZXhwIjoxNjczMTI0MDA5fQ.s3QiYhK6EemOw9ksbxvM0jygnQxkHZwTWJ3JdAAFxkc', + 'name': '榛勫槈鑽�', + 'tel': '15999971794', + 'imgUrl': 'https://phiskin-pre-1305571091.cos.ap-shanghai.myqcloud.com/member/3a82bead-4960-44c1-915f-467df3a80cf3.jpg', + arr: [], + arrNew: [], + 'employeeId': '476051fc000711ecbbe230d0422e31b5', + 'shopId': 'bb4e8a7d620d11ebb06bb8599f4cafbe', + 'roleName': 'admin', + 'dataAuth': { + 'warehouseList': [], + 'noAttributionData': 0, + 'roleId': '138ef33f123511ed91d1525400b8510a', + 'dataList': [ + { + 'name': '闈欏畨搴�', + 'id': 'bb4e8a7d620d11ebb06bb8599f4cafbe' + }, + { + 'name': '鍚堣偉搴�', + 'id': '66c581244ebb11edbebb525400b8510a' + }, + { + 'name': '鑺欒壘缇庡', + 'id': '2baa4ed774f111ecb4d45254007749be' + }, + { + 'name': '鍊鹃�夊簵', + 'id': '2bab614774f111ecb4d45254007749be' + }, + { + 'name': '涔濇柟搴�', + 'id': '2bac145474f111ecb4d45254007749be' + }, + { + 'name': '鏂板ぉ鍦板簵', + 'id': '605e391b620d11ebb06bb8599f4cafbe' + }, + { + 'name': '闈欏畨鍥介檯鍙奦IP闂ㄨ瘖', + 'id': '973f9b28620e11ebb06bb8599f4cafbe' + }, + { + 'name': '鑹鹃�夊簵', + 'id': '66cb53b84ebb11edbebb525400b8510a' + }, + { + 'name': '鍖椾含鍏夊崕搴�', + 'id': '66ca982f4ebb11edbebb525400b8510a' + }, + { + 'name': '涓滈摱搴�', + 'id': 'b88e3cd8620d11ebb06bb8599f4cafbe' + }, + { + 'name': '鏉窞搴�', + 'id': 'b96aa6d1620d11ebb06bb8599f4cafbe' + }, + { + 'name': '瀹佹尝娴锋洐搴�', + 'id': 'b9fbfd79620d11ebb06bb8599f4cafbe' + }, + { + 'name': '鑺欒壘鎬婚儴', + 'id': 'd685ff306ca54b1ea06b707fb0f57659' + }, + { + 'name': '钀ラ攢鍔╂墜鍔熻兘娴嬭瘯闂ㄥ簵', + 'id': 'd4b9ace5a01911ecb4d45254007749be' + }, + { + 'name': '鍙ゅ寳搴�', + 'id': 'fc9f34d2994711ecb4d45254007749be' + } + ] + }, + 'shopList': [ + { + 'carWay': '', + 'clinicName': '', + 'code': '', + 'maxAppNum': 0, + 'city': '', + 'departmentId': '', + 'colorStr': '', + 'doctorRelaxTime': '', + 'editTime': { + 'date': 7, + 'hours': 16, + 'seconds': 10, + 'month': 0, + 'timezoneOffset': -480, + 'year': 123, + 'minutes': 55, + 'time': 1673081710058, + 'day': 6 + }, + 'corpMpDepId': 0, + 'isUp': 0, + 'province': '', + 'subWay': '', + 'id': 'bb4e8a7d620d11ebb06bb8599f4cafbe', + 'addr': '', + 'institutionalCode': '', + 'apiId': '', + 'area': '', + 'sameTimeCustomerNum': 0, + 'shengMeiNum': 0, + 'workTime': '', + 'createTime': { + 'date': 7, + 'hours': 16, + 'seconds': 10, + 'month': 0, + 'timezoneOffset': -480, + 'year': 123, + 'minutes': 55, + 'time': 1673081710058, + 'day': 6 + }, + 'maxSwitchNum': 0, + 'name': '闈欏畨搴�', + 'clinicCode': '', + 'isDel': 0 + } + ], + 'warehouseList': [] + } + } + }).then((inf) => { + this.afterLogin(inf) + }).catch((res) => { + this.loading = false + this.$messageError(res.msg) + }) + }, + + noop() {} + } +} +</script> + +<style lang="scss"> +/* 淇input 鑳屾櫙涓嶅崗璋� 鍜屽厜鏍囧彉鑹� */ +/* Detail see https://github.com/PanJiaChen/vue-element-admin/pull/927 */ + +$bg:#283443; +$light_gray:#fff; +$gray_gray:#1B1E2F; +$cursor: #fff; + +@supports (-webkit-mask: none) and (not (cater-color: $cursor)) { + .login-container .el-input input { + color: $cursor; + } +} + +/* reset element-ui css */ +.login-container { + .el-input { + display: inline-block; + height: 47px; + width: 70%; + + input { + background: transparent; + border: 0px; + -webkit-appearance: none; + border-radius: 0px; + padding: 12px 5px 12px 15px; + color: $gray_gray; + height: 47px; + caret-color: $gray_gray; + + &:-webkit-autofill { + box-shadow: 0 0 0px 1000px #f0f1f6 inset !important; + -webkit-text-fill-color: $gray_gray !important; + } + } + + } + + .el-form-item { + border: 1px solid #2B3855; + // background: rgba(0, 0, 0, 0.1); + background: transparent; + border-radius: 22px; + color: #2B3855; + } +} +</style> + +<style lang="scss" scoped> +$bg:#2d3a4b; +$dark_gray:#889aa4; +$light_gray:#eee; +$gray_gray:#2B3855; + +.login-container { + min-height: 100vh; + width: 100vw; + position: relative; + overflow: hidden; + background: url('../../assets/login/login_left.png') 0 0 repeat-y, url('../../assets/login/login_mid.png') 15.2% 50% no-repeat,url('../../assets/login/login_right.png') 18% 0 no-repeat; + background-size: 15% auto, 15px auto, cover; + background-attachment: fixed; + .login-logo { + width: 40px; + height: 40px; + } + + .login-form { + position: relative; + width: 85%; + max-width: 520px; + padding: 30px 35px 130px; + // padding: 160px 35px; + // padding: 0 25px; + margin: 0 auto; + // margin-top: 18vh; + // margin-left: 18%; + overflow: hidden; + } + + .tips { + font-size: 14px; + color: #fff; + margin-bottom: 10px; + + span { + &:first-of-type { + margin-right: 16px; + } + } + } + + .svg-container { + padding: 6px 5px 6px 15px; + color: $dark_gray; + vertical-align: middle; + width: 30px; + display: inline-block; + } + + .title-container { + position: relative; + margin-top: 100px; + .title { + font-size: 26px; + color: $gray_gray; + // margin: 0px auto 40px auto; + text-align: left; + font-weight: bold; + } + } + + .show-pwd { + position: absolute; + right: 10px; + top: 7px; + font-size: 16px; + color: $dark_gray; + cursor: pointer; + user-select: none; + } + + .safecode-img{ + width: 80px; + height: 70%; + position: absolute; + right: 10px; + top: 50%; + transform: translateY(-50%); + font-size: 30px; + text-align: right; + color: $light_gray; + cursor: pointer; + } + + .thirdparty-button { + position: absolute; + right: 0; + bottom: 6px; + } + + @media only screen and (max-width: 470px) { + .thirdparty-button { + display: none; + } + } + + // 浼佷笟寰俊鎵爜鐧诲綍 + #wx_reg{ + padding: 30px 0 0; + border: 1px solid rgba(255, 255, 255, 0.1); + background: rgba(0, 0, 0, 0.1); + border-radius: 12px; + margin-bottom: 30px; + iframe{ + width: 300px; + height: 300px; + } + } + .role-list-title{ + color: $gray_gray; + margin-bottom: 20px; + text-align: center; + font-size: 18px; + font-weight: bold; + letter-spacing: 1px; + } + .role-list{ + // margin-bottom: 20px; + + .item{ + box-sizing: border-box; + width: 47.5%; + margin-right: 5%; + padding: 10px 20px; + border: 1px solid $gray_gray; + background: transparent; + border-radius: 12px; + color: $gray_gray; + margin-bottom: 5%; + cursor: pointer; + transition: background .1s ease; + position: relative; + + &:nth-child(2n){ + margin-right: 0; + } + + &:hover, &.active{ + background: rgba(43, 56, 85, 0.8); + color: #fff; + } + + .el-icon-check{ + font-size: 24px; + font-weight: bold; + color: #99FFCC; + transition: opacity .1s ease; + opacity: 0; + position: absolute; + right: 10px; + bottom: 5px; + } + + &.active .el-icon-check{ + opacity: 1; + } + } + + &.block-list .item{ + margin-right: 0; + width: 100%; + } + + .role-name{ + font-size: 16px; + margin-bottom: 10px; + } + + .shop-name{ + font-size: 14px; + // color: #aaa; + } + } +} +</style> diff --git a/src/pages/room/detail.vue b/src/pages/room/detail.vue index 9490937..e0101a0 100644 --- a/src/pages/room/detail.vue +++ b/src/pages/room/detail.vue @@ -1,13 +1,13 @@ <!--room-detail.vue--> <template> <div class="page"> - <div class="page_header flex flex-ver"> + <div class="page_header flex flex-ver" @click="back"> <div class="left flex flex-ver"> <img class="page_logo_1" src="../../assets/img/logo_1.png"> <img class="page_logo_2" src="../../assets/img/logo_2.png"> </div> <div class="right flex-1 flex flex-jcfe flex-ver"> - <div class="reset_btn flex flex-center">閲嶇疆鎴块棿鐘舵��</div> + <div class="reset_btn flex flex-center" @click="resetStatus">閲嶇疆鎴块棿鐘舵��</div> <div class="page_date"> <div class="page_week">{{ timeObj.week }}</div> <div class="page_day">{{ timeObj.date }}</div> @@ -68,7 +68,7 @@ <div class="guest_title flex flex-center">绛夊緟璇婄枟</div> <div class="guest_block flex-1"> <div class="guest_list"> - <div v-for="(item, index) in list" :key="index" class="guest_list__row flex flex-ver"> + <div v-for="(item, index) in list" :key="index" class="guest_list__row flex flex-ver" @click="selectCustomer"> <div class="guest_list__td flex flex-center"> <div> <div class="tx">寮�*姘�</div> @@ -140,7 +140,7 @@ <div class="guest_title flex flex-center">绛夊緟璇婄枟</div> <div class="guest_block flex-1"> <div class="guest_list"> - <div v-for="(item, index) in list" :key="index" class="guest_list__row flex flex-ver"> + <div v-for="(item, index) in list" :key="index" class="guest_list__row flex flex-ver" @click="selectCustomer"> <div class="guest_list__td flex flex-center"> <div> <div class="tx">寮�*姘�</div> @@ -162,17 +162,24 @@ </div> </div> </div> - <XioCustomerSelect ref="XioCustomerSelect"></XioCustomerSelect> + <!-- 閫夋嫨瀹汉寮圭獥 --> + <XioCustomerSelect ref="XioCustomerSelect" @cancel="selectCustomerCancel" @submit="selectCustomerSubmit" /> + <!-- 鏇存敼鎴块棿鐘舵�佺獥 --> + <XioRoomStatusChg ref="XioRoomStatusChg" @changeStatus="changeStatus" /> </div> </template> <script> // import Login from '../utils/jun_login.js' +// 閫夋嫨瀹汉寮圭獥 import XioCustomerSelect from '@/components/xio_customer_select' +// 鏇存敼鎴块棿鐘舵�佺獥 +import XioRoomStatusChg from '@/components/xio_room_status_chg' export default { name: 'RoomDetail', components: { - XioCustomerSelect + XioCustomerSelect, + XioRoomStatusChg }, inject: ['noop'], data() { @@ -194,6 +201,39 @@ methods: { init() { this.countGetTime(this, 'timeObj', 'detail') + }, + // 杩斿洖 + back() { + this.stopCountGetTime('detail') + this.stopPollingAjaxFn('detail') + this.$router.go(-1) + }, + // 閲嶇疆鐘舵�� + resetStatus() { + // 鎵撳紑寮圭獥 + this.$refs['XioRoomStatusChg'].showDialog() + }, + // 鏇存敼鎴块棿鐘舵�� + changeStatus(opt) { + console.log(opt.statusTx) + // 鍏抽棴寮圭獥 + this.$refs['XioRoomStatusChg'].hideDialog() + }, + // 閫夋嫨瀹㈡埛 + selectCustomer(item = {}) { + // 鎵撳紑寮圭獥 + this.$refs['XioCustomerSelect'].showDialog() + this.$refs['XioCustomerSelect'].dataInit(item) + }, + // 閫夋嫨瀹㈡埛鍙栨秷 + selectCustomerCancel(opt) { + console.log('cancel', opt) + this.$refs['XioCustomerSelect'].hideDialog() + }, + // 閫夋嫨瀹㈡埛纭畾 + selectCustomerSubmit(opt) { + console.log('submit', opt) + this.$refs['XioCustomerSelect'].hideDialog() } } } diff --git a/src/pages/room/list.vue b/src/pages/room/list.vue index 54e4c6b..a7e191e 100644 --- a/src/pages/room/list.vue +++ b/src/pages/room/list.vue @@ -2,7 +2,7 @@ <template> <div class="page"> <div class="page_header flex flex-ver"> - <div class="left flex flex-ver"> + <div class="left flex flex-ver" @click="back"> <img class="page_logo_1" src="../../assets/img/logo_1.png"> <img class="page_logo_2" src="../../assets/img/logo_2.png"> </div> @@ -21,7 +21,7 @@ <div class="list_block flex-1"> <div class="list flex flex-ver flex-wrap"> <!-- act --> - <div v-for="(item, index) in list" :key="index" class="list__item flex flex-center">VIP璇婄枟瀹�-1</div> + <div v-for="(item, index) in list" :key="index" class="list__item flex flex-center" @click="selectRoom()">VIP璇婄枟瀹�-1</div> </div> </div> </div> @@ -55,6 +55,17 @@ methods: { init() { this.countGetTime(this, 'timeObj', 'list') + }, + // 杩斿洖 + back() { + this.stopCountGetTime('list') + this.stopPollingAjaxFn('list') + this.$router.go(-1) + }, + selectRoom(item = {}) { + this.$router.push({ + path: `./detail?id=${item.id || ''}` + }) } } } diff --git a/src/router/index.js b/src/router/index.js index 347fa0c..932b582 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -15,7 +15,13 @@ path: '/', name: 'root', // component: () => import('@/pages/index') - component: () => import('@/pages/room/detail') + component: () => import('@/pages/login/index') + // component: () => import('@/pages/room/list') + }, + { + path: '/login', + name: 'login', + component: () => import('@/pages/login/index') }, { path: '/index', diff --git a/src/utils/auth.js b/src/utils/auth.js new file mode 100644 index 0000000..fccd7c3 --- /dev/null +++ b/src/utils/auth.js @@ -0,0 +1,98 @@ + +// token +const TokenKey = 'adminToken' +export function getToken() { + return sessionStorage.getItem(TokenKey) +} + +export function setToken(token) { + return sessionStorage.setItem(TokenKey, token) +} + +export function removeToken() { + return sessionStorage.removeItem(TokenKey) +} + +// userData 瀛樺偍褰撳墠鐧诲綍璐﹀彿淇℃伅 +const userDataKey = 'userData' +export function getUserData() { + return sessionStorage.getItem(userDataKey) +} + +export function setUserData(data) { + return sessionStorage.setItem(userDataKey, JSON.stringify(data)) +} + +export function removeUserData() { + return sessionStorage.removeItem(userDataKey) +} + +// userNameList 鐐瑰嚮瀛樺偍閫変腑瀹㈡埛鍒楄〃 +const clientListKey = 'userNameList' +export function getClientList() { + return sessionStorage.getItem(clientListKey) +} + +export function setClientList(data) { + return sessionStorage.setItem(clientListKey, JSON.stringify(data)) +} + +export function removeClientList() { + return sessionStorage.removeItem(clientListKey) +} + +// clientInfo 鐐瑰嚮瀛樺偍閫変腑瀹㈡埛鍒楄〃 +const clientInfoKey = 'clientInfo' +export function getClientInfo() { + return sessionStorage.getItem(clientInfoKey) +} + +export function setClientInfo(data) { + return sessionStorage.setItem(clientInfoKey, JSON.stringify(data)) +} + +export function removeClientInfo() { + return sessionStorage.removeItem(clientInfoKey) +} + +// userDatilsId 鐐瑰嚮瀛樺偍閫変腑瀹㈡埛ID +const clientIdKey = 'userDatilsId' +export function getClientId() { + return sessionStorage.getItem(clientIdKey) +} + +export function setClientId(data) { + return sessionStorage.setItem(clientIdKey, data) +} + +export function removeClientId() { + return sessionStorage.removeItem(clientIdKey) +} + +// 鑾峰彇鐧诲綍鐢ㄦ埛姘村嵃鍥緎vg +export function getWaterMark(str) { + const userData = JSON.parse(sessionStorage.getItem('userData')) + var waterMarkText, telBack + if (userData.tel)telBack = (userData.tel).substr(-4) + if (userData.name)waterMarkText = userData.name + if (telBack)waterMarkText = `${waterMarkText}锛�${telBack}锛塦 + str && (waterMarkText = str) + // console.log('11111111111111111111111111111',waterMarkText); + + const can = document.createElement('canvas')// 鍒涘缓涓�涓敾甯� + can.width = 140 // 璁剧疆瀹藉害 + can.height = 140 // 楂樺害 + + const cans = can.getContext('2d') + cans.rotate(-45 * Math.PI / 180) // 姘村嵃鏃嬭浆瑙掑害 0 姘村钩 + // cans.font = '80px' // 瀛椾綋澶у皬 + cans.font = '13px Georgia' + cans.fillStyle = '#e9e9e9' // 姘村嵃鐨勯鑹� + cans.textAlign = 'left' // 璁剧疆鏂囨湰鍐呭鐨勫綋鍓嶅榻愭柟寮� + cans.textBaseline = 'Middle' // 璁剧疆鍦ㄧ粯鍒舵枃鏈椂浣跨敤鐨勫綋鍓嶆枃鏈熀绾� + cans.globalAlpha = 1 // 閫忔槑搴� + cans.fillText(waterMarkText, 0, can.height - 36) // 鍦ㄧ敾甯冧笂缁樺埗濉壊鐨勬枃鏈紙杈撳嚭鐨勬枃鏈紝寮�濮嬬粯鍒舵枃鏈殑X鍧愭爣浣嶇疆锛屽紑濮嬬粯鍒舵枃鏈殑Y鍧愭爣浣嶇疆锛� + // cans.fillText(str1, can.width / 3, can.height / 2.5) // 鏍规嵁闇�姹傚彲娣诲姞澶氳姘村嵃锛屽湪鏂规硶涓坊鍔爏tr1 + // console.log('1111111111111111111111', can) + return can.toDataURL('image/png') +} diff --git a/src/utils/element-ui-preprocessing.js b/src/utils/element-ui-preprocessing.js new file mode 100644 index 0000000..c1f2b9d --- /dev/null +++ b/src/utils/element-ui-preprocessing.js @@ -0,0 +1,12 @@ +// utils/element-ui-preprocessing.js +import ElementUI from 'element-ui' + +// Fixes an issue with filters not working on mobile +ElementUI.Select.computed.readonly = function() { + if (!this.filterable) return true + // trade-off for IE input readonly problem: https://github.com/ElemeFE/element/issues/10403 + const isIE = !this.$isServer && !Number.isNaN(Number(document.documentMode)) + return !(this.filterable || this.multiple || !isIE) && !this.visible +} + +export default ElementUI diff --git a/src/utils/fn.js b/src/utils/fn.js index c569024..15fa356 100644 --- a/src/utils/fn.js +++ b/src/utils/fn.js @@ -330,6 +330,47 @@ fn_obj[`timer_${pageKey}`] = null } +/** + * 杞寮傛璋冪敤鎺ュ彛 + * @param {Object} page 椤甸潰瀵硅薄this + * @param {String} fnName 瑕佽疆璇㈢殑鏂规硶鍚嶇О + * @param {String} pageKey 椤甸潰鍏抽敭瀛� + * @param {Number} timeStamp 澶氬皯绉掕疆璇� + */ +function pollingAjaxFn(page, fnName, pageKey, timeStamp = 1000) { + if (!page || !fnName || !pageKey) { + return + } + page[fnName] && page[fnName]() + fn_obj[`pollingTimer_${pageKey}`] = setTimeout(() => { + pollingAjaxFn(page, fnName, pageKey, timeStamp) + }, timeStamp) +} + +/** + * 鍋滄杞 + * @param {String} pageKey 椤甸潰鍏抽敭璇� + */ +function stopPollingAjaxFn(pageKey) { + clearTimeout(fn_obj[`pollingTimer_${pageKey}`]) + fn_obj[`pollingTimer_${pageKey}`] = null +} + +// 闅忔満12浣嶆暟 +function getCheckedId() { + var s = [] + var hexDigits = '0123456789abcdef' + for (var i = 0; i < 12; i++) { + s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1) + } + // s[14] = '4'; + // s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); + + // s[8] = s[13] = s[18] = s[23] = '-' + var uuid = s.join('') + return uuid +} + var fn = { getLocalStorage, getSessionStorage, @@ -358,6 +399,9 @@ countGetTime, stopCountGetTime, + pollingAjaxFn, + stopPollingAjaxFn, + getCheckedId, /** * 娣辨嫹璐� diff --git a/src/utils/validate.js b/src/utils/validate.js new file mode 100644 index 0000000..8d962ad --- /dev/null +++ b/src/utils/validate.js @@ -0,0 +1,20 @@ +/** + * Created by PanJiaChen on 16/11/18. + */ + +/** + * @param {string} path + * @returns {Boolean} + */ +export function isExternal(path) { + return /^(https?:|mailto:|tel:)/.test(path) +} + +/** + * @param {string} str + * @returns {Boolean} + */ +export function validUsername(str) { + const valid_map = ['admin', 'editor'] + return valid_map.indexOf(str.trim()) >= 0 +} diff --git a/vue.config.js b/vue.config.js new file mode 100644 index 0000000..79cbaa4 --- /dev/null +++ b/vue.config.js @@ -0,0 +1,26 @@ +'use strict' +const path = require('path') +function resolve(dir) { + return path.join(__dirname, dir) +} +module.exports = { + // 閰嶇疆浣跨敤stylus鍏ㄥ眬鍙橀噺 + chainWebpack: config => { + // set svg-sprite-loader + config.module + .rule('svg') + .exclude.add(resolve('src/icons')) + .end() + config.module + .rule('icons') + .test(/\.svg$/) + .include.add(resolve('src/icons')) + .end() + .use('svg-sprite-loader') + .loader('svg-sprite-loader') + .options({ + symbolId: 'icon-[name]' + }) + .end() + } +} -- Gitblit v1.8.0